annotate msmpeg4.h @ 8520:a0164882aa38 libavcodec

Generic metadata API. avi is updated as example. No version bump, the API still might change slightly ... No update to ffmpeg.c as requested by aurel.
author michael
date Sun, 04 Jan 2009 18:48:37 +0000
parents 67b0e60022bf
children 68e959302527
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5884
diff changeset
26 #ifndef AVCODEC_MSMPEG4_H
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5884
diff changeset
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
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
30 #include "avcodec.h"
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
31 #include "dsputil.h"
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
32 #include "mpegvideo.h"
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
33
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
34 #define INTER_INTRA_VLC_BITS 3
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
35 #define MB_NON_INTRA_VLC_BITS 9
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
36 #define MB_INTRA_VLC_BITS 9
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
37
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
38 extern VLC ff_mb_non_intra_vlc[4];
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
39 extern VLC ff_inter_intra_vlc;
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
40
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
41 void ff_msmpeg4_code012(PutBitContext *pb, int n);
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
42 void ff_msmpeg4_encode_block(MpegEncContext * s, DCTELEM * block, int n);
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
43 void ff_msmpeg4_handle_slices(MpegEncContext *s);
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
44 void ff_msmpeg4_encode_motion(MpegEncContext * s, int mx, int my);
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
45 int ff_msmpeg4_coded_block_pred(MpegEncContext * s, int n,
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
46 uint8_t **coded_block_ptr);
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
47 int ff_msmpeg4_decode_motion(MpegEncContext * s, int *mx_ptr, int *my_ptr);
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
48 int ff_msmpeg4_decode_block(MpegEncContext * s, DCTELEM * block,
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
49 int n, int coded, const uint8_t *scan_table);
02007962faf4 split wmv2 in its own file
aurel
parents: 5830
diff changeset
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 || \
8458
67b0e60022bf The VC-1/WMV3 decoders depend on ENABLE_MSMPEG4_DECODER.
diego
parents: 7760
diff changeset
55 ENABLE_WMV2_DECODER || \
67b0e60022bf The VC-1/WMV3 decoders depend on ENABLE_MSMPEG4_DECODER.
diego
parents: 7760
diff changeset
56 ENABLE_VC1_DECODER || \
67b0e60022bf The VC-1/WMV3 decoders depend on ENABLE_MSMPEG4_DECODER.
diego
parents: 7760
diff changeset
57 ENABLE_WMV3_DECODER)
4967
6d45158e0249 disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff changeset
58 #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
59 ENABLE_MSMPEG4V2_ENCODER || \
6d45158e0249 disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff changeset
60 ENABLE_MSMPEG4V3_ENCODER || \
6d45158e0249 disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff changeset
61 ENABLE_WMV2_ENCODER)
6d45158e0249 disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff changeset
62 #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
63 #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
64 #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
65 #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
66
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5884
diff changeset
67 #endif /* AVCODEC_MSMPEG4_H */