# HG changeset patch # User aurel # Date 1194478899 0 # Node ID 02007962faf44f2167bfd30154d74650aef94c9a # Parent c64d94561b190fafb83f49f0d8ca606ccfd41052 split wmv2 in its own file diff -r c64d94561b19 -r 02007962faf4 Makefile --- a/Makefile Wed Nov 07 23:35:48 2007 +0000 +++ b/Makefile Wed Nov 07 23:41:39 2007 +0000 @@ -209,8 +209,8 @@ OBJS-$(CONFIG_WMAV2_ENCODER) += wmaenc.o wma.o mdct.o fft.o OBJS-$(CONFIG_WMV1_DECODER) += h263dec.o h263.o OBJS-$(CONFIG_WMV1_ENCODER) += mpegvideo_enc.o motion_est.o ratecontrol.o h263.o -OBJS-$(CONFIG_WMV2_DECODER) += msmpeg4.o msmpeg4data.o h263dec.o h263.o -OBJS-$(CONFIG_WMV2_ENCODER) += msmpeg4.o msmpeg4data.o mpegvideo_enc.o motion_est.o ratecontrol.o h263.o +OBJS-$(CONFIG_WMV2_DECODER) += wmv2.o msmpeg4.o msmpeg4data.o h263dec.o h263.o +OBJS-$(CONFIG_WMV2_ENCODER) += wmv2.o msmpeg4.o msmpeg4data.o mpegvideo_enc.o motion_est.o ratecontrol.o h263.o OBJS-$(CONFIG_WMV3_DECODER) += vc1.o vc1data.o vc1dsp.o OBJS-$(CONFIG_WNV1_DECODER) += wnv1.o OBJS-$(CONFIG_WS_SND1_DECODER) += ws-snd1.o diff -r c64d94561b19 -r 02007962faf4 msmpeg4.c --- a/msmpeg4.c Wed Nov 07 23:35:48 2007 +0000 +++ b/msmpeg4.c Wed Nov 07 23:41:39 2007 +0000 @@ -30,6 +30,7 @@ #include "avcodec.h" #include "dsputil.h" #include "mpegvideo.h" +#include "msmpeg4.h" /* * You can also call this codec : MPEG4 with a twist ! @@ -42,7 +43,6 @@ #define DC_VLC_BITS 9 #define CBPY_VLC_BITS 6 -#define INTER_INTRA_VLC_BITS 3 #define V1_INTRA_CBPC_VLC_BITS 6 #define V1_INTER_CBPC_VLC_BITS 6 #define V2_INTRA_CBPC_VLC_BITS 3 @@ -50,8 +50,6 @@ #define MV_VLC_BITS 9 #define V2_MV_VLC_BITS 9 #define TEX_VLC_BITS 9 -#define MB_NON_INTRA_VLC_BITS 9 -#define MB_INTRA_VLC_BITS 9 #define II_BITRATE 128*1024 #define MBAC_BITRATE 50*1024 @@ -61,12 +59,7 @@ static uint32_t v2_dc_lum_table[512][2]; static uint32_t v2_dc_chroma_table[512][2]; -void ff_msmpeg4_encode_block(MpegEncContext * s, DCTELEM * block, int n); -int ff_msmpeg4_decode_block(MpegEncContext * s, DCTELEM * block, - int n, int coded, const uint8_t *scantable); static int msmpeg4_decode_dc(MpegEncContext * s, int n, int *dir_ptr); -int ff_msmpeg4_decode_motion(MpegEncContext * s, - int *mx_ptr, int *my_ptr); static void init_h263_dc_for_msmpeg4(void); static inline void msmpeg4_memsetw(short *tab, int val, int n); #ifdef CONFIG_ENCODERS @@ -75,7 +68,6 @@ #endif //CONFIG_ENCODERS static int msmpeg4v12_decode_mb(MpegEncContext *s, DCTELEM block[6][64]); static int msmpeg4v34_decode_mb(MpegEncContext *s, DCTELEM block[6][64]); -int ff_wmv2_decode_mb(MpegEncContext *s, DCTELEM block[6][64]); /* vc1 externs */ extern uint8_t wmv3_dc_scale_table[32]; @@ -1145,6 +1137,7 @@ s->decode_mb= msmpeg4v34_decode_mb; break; case 5: + if (ENABLE_WMV2_DECODER) s->decode_mb= ff_wmv2_decode_mb; case 6: //FIXME + TODO VC1 decode mb @@ -1949,9 +1942,3 @@ *my_ptr = my; return 0; } - -/* cleanest way to support it - * there is too much shared between versions so that we cant have 1 file per version & 1 common - * as allmost everything would be in the common file - */ -#include "wmv2.c" diff -r c64d94561b19 -r 02007962faf4 msmpeg4.h --- a/msmpeg4.h Wed Nov 07 23:35:48 2007 +0000 +++ b/msmpeg4.h Wed Nov 07 23:41:39 2007 +0000 @@ -27,6 +27,27 @@ #define FFMPEG_MSMPEG4_H #include "config.h" +#include "avcodec.h" +#include "dsputil.h" +#include "mpegvideo.h" + +#define INTER_INTRA_VLC_BITS 3 +#define MB_NON_INTRA_VLC_BITS 9 +#define MB_INTRA_VLC_BITS 9 + +extern VLC ff_mb_non_intra_vlc[4]; +extern VLC ff_inter_intra_vlc; + +void ff_msmpeg4_code012(PutBitContext *pb, int n); +void ff_msmpeg4_encode_block(MpegEncContext * s, DCTELEM * block, int n); +void ff_msmpeg4_handle_slices(MpegEncContext *s); +void ff_msmpeg4_encode_motion(MpegEncContext * s, int mx, int my); +int ff_msmpeg4_coded_block_pred(MpegEncContext * s, int n, + uint8_t **coded_block_ptr); +int ff_msmpeg4_decode_motion(MpegEncContext * s, int *mx_ptr, int *my_ptr); +int ff_msmpeg4_decode_block(MpegEncContext * s, DCTELEM * block, + int n, int coded, const uint8_t *scan_table); +int ff_wmv2_decode_mb(MpegEncContext *s, DCTELEM block[6][64]); #define ENABLE_MSMPEG4_DECODER (ENABLE_MSMPEG4V1_DECODER || \ ENABLE_MSMPEG4V2_DECODER || \ diff -r c64d94561b19 -r 02007962faf4 wmv2.c --- a/wmv2.c Wed Nov 07 23:35:48 2007 +0000 +++ b/wmv2.c Wed Nov 07 23:41:39 2007 +0000 @@ -23,6 +23,11 @@ * wmv2 codec. */ +#include "avcodec.h" +#include "dsputil.h" +#include "mpegvideo.h" +#include "msmpeg4.h" +#include "msmpeg4data.h" #include "simple_idct.h" #define SKIP_TYPE_NONE 0