annotate msmpeg4data.c @ 5319:40af705cef7e libavcodec

AC-3 decoder, soc revision 69, Aug 31 07:12:56 2006 UTC by cloud9 Fix the bugs: 1. The quality of output because of incorrect windowing coefficients. New code for window generation. 2. Dynrng values were reset where dynrng value is present in the first block, but not in the subsequent block.
author jbr
date Sat, 14 Jul 2007 16:03:14 +0000
parents 470601203f44
children 56bc8fbd9aee
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4964
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
1 /*
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
2 * MSMPEG4 backend for ffmpeg encoder and decoder
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
3 * copyright (c) 2001 Fabrice Bellard
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
4 * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
5 *
5214
470601203f44 Group all copyright and author notices together.
diego
parents: 4964
diff changeset
6 * msmpeg4v1 & v2 stuff by Michael Niedermayer <michaelni@gmx.at>
470601203f44 Group all copyright and author notices together.
diego
parents: 4964
diff changeset
7 *
4964
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
8 * This file is part of FFmpeg.
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
9 *
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
10 * FFmpeg is free software; you can redistribute it and/or
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
11 * modify it under the terms of the GNU Lesser General Public
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
12 * License as published by the Free Software Foundation; either
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
13 * version 2.1 of the License, or (at your option) any later version.
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
14 *
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
15 * FFmpeg is distributed in the hope that it will be useful,
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
18 * Lesser General Public License for more details.
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
19 *
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
20 * You should have received a copy of the GNU Lesser General Public
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
21 * License along with FFmpeg; if not, write to the Free Software
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
23 */
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
24
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
25 /**
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
26 * @file msmpeg4data.c
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
27 * MSMPEG4 data tables.
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
28 */
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
29
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
30 #include "msmpeg4data.h"
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
31
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
32 VLC ff_msmp4_mb_i_vlc;
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
33 VLC ff_msmp4_dc_luma_vlc[2];
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
34 VLC ff_msmp4_dc_chroma_vlc[2];
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
35
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
36 /* intra picture macro block coded block pattern */
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
37 const uint16_t ff_msmp4_mb_i_table[64][2] = {
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
38 { 0x1, 1 },{ 0x17, 6 },{ 0x9, 5 },{ 0x5, 5 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
39 { 0x6, 5 },{ 0x47, 9 },{ 0x20, 7 },{ 0x10, 7 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
40 { 0x2, 5 },{ 0x7c, 9 },{ 0x3a, 7 },{ 0x1d, 7 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
41 { 0x2, 6 },{ 0xec, 9 },{ 0x77, 8 },{ 0x0, 8 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
42 { 0x3, 5 },{ 0xb7, 9 },{ 0x2c, 7 },{ 0x13, 7 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
43 { 0x1, 6 },{ 0x168, 10 },{ 0x46, 8 },{ 0x3f, 8 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
44 { 0x1e, 6 },{ 0x712, 13 },{ 0xb5, 9 },{ 0x42, 8 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
45 { 0x22, 7 },{ 0x1c5, 11 },{ 0x11e, 10 },{ 0x87, 9 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
46 { 0x6, 4 },{ 0x3, 9 },{ 0x1e, 7 },{ 0x1c, 6 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
47 { 0x12, 7 },{ 0x388, 12 },{ 0x44, 9 },{ 0x70, 9 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
48 { 0x1f, 6 },{ 0x23e, 11 },{ 0x39, 8 },{ 0x8e, 9 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
49 { 0x1, 7 },{ 0x1c6, 11 },{ 0xb6, 9 },{ 0x45, 9 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
50 { 0x14, 6 },{ 0x23f, 11 },{ 0x7d, 9 },{ 0x18, 9 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
51 { 0x7, 7 },{ 0x1c7, 11 },{ 0x86, 9 },{ 0x19, 9 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
52 { 0x15, 6 },{ 0x1db, 10 },{ 0x2, 9 },{ 0x46, 9 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
53 { 0xd, 8 },{ 0x713, 13 },{ 0x1da, 10 },{ 0x169, 10 },
9fb6d2125500 split msmpeg4 data to easily share some of it with vc1.c
aurel
parents:
diff changeset
54 };