Mercurial > libavcodec.hg
annotate msmpeg4.h @ 7983:47f50599b368 libavcodec
x264 has removed the b-rdo and bime options, and instead integrated
them into the subme number to attempt to reduce the number of
unnecessary options. subme now scales up to 9.
Patch by Jason Garett-Glaser %darkshikari A gmail P com%
author | gpoirier |
---|---|
date | Thu, 02 Oct 2008 19:05:35 +0000 |
parents | c4a4495715dd |
children | 67b0e60022bf |
rev | line source |
---|---|
4967
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
1 /* |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
2 * MSMPEG4 backend for ffmpeg encoder and decoder |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
3 * copyright (c) 2007 Aurelien Jacobs <aurel@gnuage.org> |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
4 * |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
5 * This file is part of FFmpeg. |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
6 * |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
7 * FFmpeg is free software; you can redistribute it and/or |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
8 * modify it under the terms of the GNU Lesser General Public |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
9 * License as published by the Free Software Foundation; either |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
10 * version 2.1 of the License, or (at your option) any later version. |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
11 * |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
12 * FFmpeg is distributed in the hope that it will be useful, |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
15 * Lesser General Public License for more details. |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
16 * |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
17 * You should have received a copy of the GNU Lesser General Public |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
18 * License along with FFmpeg; if not, write to the Free Software |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
20 */ |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
21 |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
22 /** |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
23 * @file msmpeg4.h |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
24 */ |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
25 |
7760 | 26 #ifndef AVCODEC_MSMPEG4_H |
27 #define AVCODEC_MSMPEG4_H | |
4967
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
28 |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
29 #include "config.h" |
5884 | 30 #include "avcodec.h" |
31 #include "dsputil.h" | |
32 #include "mpegvideo.h" | |
33 | |
34 #define INTER_INTRA_VLC_BITS 3 | |
35 #define MB_NON_INTRA_VLC_BITS 9 | |
36 #define MB_INTRA_VLC_BITS 9 | |
37 | |
38 extern VLC ff_mb_non_intra_vlc[4]; | |
39 extern VLC ff_inter_intra_vlc; | |
40 | |
41 void ff_msmpeg4_code012(PutBitContext *pb, int n); | |
42 void ff_msmpeg4_encode_block(MpegEncContext * s, DCTELEM * block, int n); | |
43 void ff_msmpeg4_handle_slices(MpegEncContext *s); | |
44 void ff_msmpeg4_encode_motion(MpegEncContext * s, int mx, int my); | |
45 int ff_msmpeg4_coded_block_pred(MpegEncContext * s, int n, | |
46 uint8_t **coded_block_ptr); | |
47 int ff_msmpeg4_decode_motion(MpegEncContext * s, int *mx_ptr, int *my_ptr); | |
48 int ff_msmpeg4_decode_block(MpegEncContext * s, DCTELEM * block, | |
49 int n, int coded, const uint8_t *scan_table); | |
50 int ff_wmv2_decode_mb(MpegEncContext *s, DCTELEM block[6][64]); | |
4967
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
51 |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
52 #define ENABLE_MSMPEG4_DECODER (ENABLE_MSMPEG4V1_DECODER || \ |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
53 ENABLE_MSMPEG4V2_DECODER || \ |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
54 ENABLE_MSMPEG4V3_DECODER || \ |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
55 ENABLE_WMV2_DECODER) |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
56 #define ENABLE_MSMPEG4_ENCODER (ENABLE_MSMPEG4V1_ENCODER || \ |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
57 ENABLE_MSMPEG4V2_ENCODER || \ |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
58 ENABLE_MSMPEG4V3_ENCODER || \ |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
59 ENABLE_WMV2_ENCODER) |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
60 #define ENABLE_MSMPEG4 (ENABLE_MSMPEG4_DECODER || ENABLE_MSMPEG4_ENCODER) |
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
61 #define ENABLE_WMV2 (ENABLE_WMV2_DECODER || ENABLE_WMV2_ENCODER) |
5277
7b3fcb7c61ce
Avoid linking with h263.c functions when the relevant codecs
aurel
parents:
4967
diff
changeset
|
62 #define ENABLE_WMV_DECODER (ENABLE_WMV1_DECODER || ENABLE_WMV2_DECODER) |
7b3fcb7c61ce
Avoid linking with h263.c functions when the relevant codecs
aurel
parents:
4967
diff
changeset
|
63 #define ENABLE_WMV_ENCODER (ENABLE_WMV1_ENCODER || ENABLE_WMV2_ENCODER) |
4967
6d45158e0249
disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff
changeset
|
64 |
7760 | 65 #endif /* AVCODEC_MSMPEG4_H */ |