mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-28 03:00:35 +00:00
2addec025a
Original commit message from CVS: Patch avcodec.h and wmadec.c to use flag1 and flag2 from context The asfdemux calculates the 2 values and gives them to the decoder via the pad/caps The ffdec_wmav1 & ffdec_wmav2 put them in the ffmpeg context before they start to decode the data
183 lines
5.6 KiB
Diff
183 lines
5.6 KiB
Diff
Index: ffmpeg/libavcodec/i386/mpegvideo_mmx.c
|
|
===================================================================
|
|
RCS file: /cvsroot/ffmpeg/ffmpeg/libavcodec/i386/mpegvideo_mmx.c,v
|
|
retrieving revision 1.25
|
|
diff -u -u -r1.25 mpegvideo_mmx.c
|
|
--- ffmpeg/libavcodec/i386/mpegvideo_mmx.c 14 May 2003 15:12:13 -0000 1.25
|
|
+++ ffmpeg/libavcodec/i386/mpegvideo_mmx.c 11 Sep 2003 19:34:45 -0000
|
|
@@ -488,6 +488,7 @@
|
|
}
|
|
}
|
|
|
|
+#if 0
|
|
#undef HAVE_MMX2
|
|
#define RENAME(a) a ## _MMX
|
|
#include "mpegvideo_mmx_template.c"
|
|
@@ -496,6 +497,7 @@
|
|
#undef RENAME
|
|
#define RENAME(a) a ## _MMX2
|
|
#include "mpegvideo_mmx_template.c"
|
|
+#endif
|
|
|
|
void MPV_common_init_mmx(MpegEncContext *s)
|
|
{
|
|
@@ -508,6 +510,7 @@
|
|
|
|
draw_edges = draw_edges_mmx;
|
|
|
|
+#if 0
|
|
if(dct_algo==FF_DCT_AUTO || dct_algo==FF_DCT_MMX){
|
|
if(mm_flags & MM_MMXEXT){
|
|
s->dct_quantize= dct_quantize_MMX2;
|
|
@@ -515,5 +518,6 @@
|
|
s->dct_quantize= dct_quantize_MMX;
|
|
}
|
|
}
|
|
+#endif
|
|
}
|
|
}
|
|
Index: ffmpeg/libavcodec/i386/mpegvideo_mmx_template.c
|
|
===================================================================
|
|
RCS file: /cvsroot/ffmpeg/ffmpeg/libavcodec/i386/mpegvideo_mmx_template.c,v
|
|
retrieving revision 1.17
|
|
diff -u -u -r1.17 mpegvideo_mmx_template.c
|
|
--- ffmpeg/libavcodec/i386/mpegvideo_mmx_template.c 13 May 2003 08:21:35 -0000 1.17
|
|
+++ ffmpeg/libavcodec/i386/mpegvideo_mmx_template.c 11 Sep 2003 19:34:47 -0000
|
|
@@ -122,7 +122,7 @@
|
|
"movd %%mm3, %%eax \n\t"
|
|
"movzbl %%al, %%eax \n\t" // last_non_zero_p1
|
|
: "+a" (last_non_zero_p1)
|
|
- : "r" (block+64), "r" (qmat), "r" (bias),
|
|
+ : "b" (block+64), "r" (qmat), "r" (bias),
|
|
"r" (inv_zigzag_direct16+64), "r" (temp_block+64)
|
|
);
|
|
// note the asm is split cuz gcc doesnt like that many operands ...
|
|
Index: ffmpeg/libavformat/avformat.h
|
|
===================================================================
|
|
RCS file: /cvsroot/ffmpeg/ffmpeg/libavformat/avformat.h,v
|
|
retrieving revision 1.55
|
|
diff -u -u -r1.55 avformat.h
|
|
--- ffmpeg/libavformat/avformat.h 4 Jul 2003 23:48:20 -0000 1.55
|
|
+++ ffmpeg/libavformat/avformat.h 11 Sep 2003 19:34:48 -0000
|
|
@@ -317,7 +317,7 @@
|
|
int amr_init(void);
|
|
|
|
/* wav.c */
|
|
-int wav_init(void);
|
|
+int avf_wav_init(void);
|
|
|
|
/* raw.c */
|
|
int raw_init(void);
|
|
@@ -326,7 +326,7 @@
|
|
int ogg_init(void);
|
|
|
|
/* dv.c */
|
|
-int dv_init(void);
|
|
+int avf_dv_init(void);
|
|
|
|
/* ffm.c */
|
|
int ffm_init(void);
|
|
Index: ffmpeg/libavformat/dv.c
|
|
===================================================================
|
|
RCS file: /cvsroot/ffmpeg/ffmpeg/libavformat/dv.c,v
|
|
retrieving revision 1.9
|
|
diff -u -u -r1.9 dv.c
|
|
--- ffmpeg/libavformat/dv.c 23 Apr 2003 02:04:40 -0000 1.9
|
|
+++ ffmpeg/libavformat/dv.c 11 Sep 2003 19:34:48 -0000
|
|
@@ -138,7 +138,7 @@
|
|
dv_write_trailer,
|
|
};
|
|
|
|
-int dv_init(void)
|
|
+int avf_dv_init(void)
|
|
{
|
|
av_register_input_format(&dv_iformat);
|
|
av_register_output_format(&dv_oformat);
|
|
Index: ffmpeg/libavformat/wav.c
|
|
===================================================================
|
|
RCS file: /cvsroot/ffmpeg/ffmpeg/libavformat/wav.c,v
|
|
retrieving revision 1.23
|
|
diff -u -u -r1.23 wav.c
|
|
--- ffmpeg/libavformat/wav.c 12 Mar 2003 18:45:50 -0000 1.23
|
|
+++ ffmpeg/libavformat/wav.c 11 Sep 2003 19:34:52 -0000
|
|
@@ -334,7 +334,7 @@
|
|
wav_write_trailer,
|
|
};
|
|
|
|
-int wav_init(void)
|
|
+int avf_wav_init(void)
|
|
{
|
|
av_register_input_format(&wav_iformat);
|
|
av_register_output_format(&wav_oformat);
|
|
--- ffmpeg/libavformat/allformats.c 2003-10-26 12:06:32.000000000 +0100
|
|
+++ ffmpeg/libavformat/allformats.c 2003-10-26 12:06:04.000000000 +0100
|
|
@@ -45,7 +45,7 @@
|
|
avienc_init();
|
|
#endif //CONFIG_ENCODERS
|
|
avidec_init();
|
|
- wav_init();
|
|
+ avf_wav_init();
|
|
swf_init();
|
|
au_init();
|
|
#ifdef CONFIG_ENCODERS
|
|
@@ -56,7 +56,7 @@
|
|
movenc_init();
|
|
jpeg_init();
|
|
#endif //CONFIG_ENCODERS
|
|
- dv_init();
|
|
+ avf_dv_init();
|
|
fourxm_init();
|
|
#ifdef CONFIG_ENCODERS
|
|
flvenc_init();
|
|
Index: ffmpeg/libavcodec/avcodec.h
|
|
===================================================================
|
|
RCS file: /cvsroot/ffmpeg/ffmpeg/libavcodec/avcodec.h,v
|
|
retrieving revision 1.237
|
|
diff -a -u -r1.237 avcodec.h
|
|
--- ffmpeg/libavcodec/avcodec.h 22 Oct 2003 18:26:38 -0000 1.237
|
|
+++ ffmpeg/libavcodec/avcodec.h 5 Nov 2003 22:54:53 -0000
|
|
@@ -1341,6 +1341,9 @@
|
|
* - decoding: unused
|
|
*/
|
|
int lmax;
|
|
+
|
|
+ /* Added for ffmpeg gstreamer plugin (ffdec_wmav1 & ffdec_wmav2) */
|
|
+ int wma_flags1, wma_flags2;
|
|
|
|
} AVCodecContext;
|
|
|
|
Index: ffmpeg/libavcodec/wmadec.c
|
|
===================================================================
|
|
RCS file: /cvsroot/ffmpeg/ffmpeg/libavcodec/wmadec.c,v
|
|
retrieving revision 1.18
|
|
diff -a -u -r1.18 wmadec.c
|
|
--- ffmpeg/libavcodec/wmadec.c 4 Jul 2003 20:32:04 -0000 1.18
|
|
+++ ffmpeg/libavcodec/wmadec.c 5 Nov 2003 22:56:01 -0000
|
|
@@ -214,9 +214,15 @@
|
|
s->version = 2;
|
|
}
|
|
|
|
- /* extract flag infos */
|
|
- flags1 = 0;
|
|
- flags2 = 0;
|
|
+ /* extract flag infos
|
|
+ * Get wma flags from context : modification for gstreamer
|
|
+ * ffmpegdec get these values from sink caps and put them in the context
|
|
+ */
|
|
+ flags1 = avctx->wma_flags1;
|
|
+ flags2 = avctx->wma_flags2;
|
|
+
|
|
+ /* The gstreamer asfdemux computed already these flags */
|
|
+ /*
|
|
extradata = avctx->extradata;
|
|
if (s->version == 1 && avctx->extradata_size >= 4) {
|
|
flags1 = extradata[0] | (extradata[1] << 8);
|
|
@@ -225,7 +231,7 @@
|
|
flags1 = extradata[0] | (extradata[1] << 8) |
|
|
(extradata[2] << 16) | (extradata[3] << 24);
|
|
flags2 = extradata[4] | (extradata[5] << 8);
|
|
- }
|
|
+ }*/
|
|
s->use_exp_vlc = flags2 & 0x0001;
|
|
s->use_bit_reservoir = flags2 & 0x0002;
|
|
s->use_variable_block_len = flags2 & 0x0004;
|