annotate msmpeg4.h @ 12530:63edd10ad4bc libavcodec tip

Try to fix crashes introduced by r25218 r25218 made assumptions about the existence of past reference frames that weren't necessarily true.
author darkshikari
date Tue, 28 Sep 2010 09:06:22 +0000
parents 7dd2a45249a9
children
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 /**
11644
7dd2a45249a9 Remove explicit filename from Doxygen @file commands.
diego
parents: 10746
diff changeset
23 * @file
4967
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
8596
68e959302527 replace all occurrence of ENABLE_ by the corresponding CONFIG_, HAVE_ or ARCH_
aurel
parents: 8458
diff changeset
52 #define CONFIG_MSMPEG4_DECODER (CONFIG_MSMPEG4V1_DECODER || \
68e959302527 replace all occurrence of ENABLE_ by the corresponding CONFIG_, HAVE_ or ARCH_
aurel
parents: 8458
diff changeset
53 CONFIG_MSMPEG4V2_DECODER || \
68e959302527 replace all occurrence of ENABLE_ by the corresponding CONFIG_, HAVE_ or ARCH_
aurel
parents: 8458
diff changeset
54 CONFIG_MSMPEG4V3_DECODER || \
68e959302527 replace all occurrence of ENABLE_ by the corresponding CONFIG_, HAVE_ or ARCH_
aurel
parents: 8458
diff changeset
55 CONFIG_WMV2_DECODER || \
9995
3141f69e3905 Do not check for both CONFIG_VC1_DECODER and CONFIG_WMV3_DECODER,
diego
parents: 8718
diff changeset
56 CONFIG_VC1_DECODER)
8596
68e959302527 replace all occurrence of ENABLE_ by the corresponding CONFIG_, HAVE_ or ARCH_
aurel
parents: 8458
diff changeset
57 #define CONFIG_MSMPEG4_ENCODER (CONFIG_MSMPEG4V1_ENCODER || \
68e959302527 replace all occurrence of ENABLE_ by the corresponding CONFIG_, HAVE_ or ARCH_
aurel
parents: 8458
diff changeset
58 CONFIG_MSMPEG4V2_ENCODER || \
68e959302527 replace all occurrence of ENABLE_ by the corresponding CONFIG_, HAVE_ or ARCH_
aurel
parents: 8458
diff changeset
59 CONFIG_MSMPEG4V3_ENCODER || \
68e959302527 replace all occurrence of ENABLE_ by the corresponding CONFIG_, HAVE_ or ARCH_
aurel
parents: 8458
diff changeset
60 CONFIG_WMV2_ENCODER)
4967
6d45158e0249 disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
aurel
parents:
diff changeset
61
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5884
diff changeset
62 #endif /* AVCODEC_MSMPEG4_H */