You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
5.7 KiB
140 lines
5.7 KiB
Index: gst-ffmpeg-0.10.13_p201211/ext/ffmpeg/gstffmpegcfg.c
|
|
===================================================================
|
|
--- gst-ffmpeg-0.10.13_p201211.orig/ext/ffmpeg/gstffmpegcfg.c
|
|
+++ gst-ffmpeg-0.10.13_p201211/ext/ffmpeg/gstffmpegcfg.c
|
|
@@ -171,13 +171,10 @@ gst_ffmpeg_idct_algo_get_type (void)
|
|
{FF_IDCT_INT, "JPEG reference Integer", "int"},
|
|
{FF_IDCT_SIMPLE, "Simple", "simple"},
|
|
{FF_IDCT_SIMPLEMMX, "Simple MMX", "simplemmx"},
|
|
- {FF_IDCT_LIBMPEG2MMX, "LIBMPEG2MMX", "libmpeg2mmx"},
|
|
{FF_IDCT_ARM, "ARM", "arm"},
|
|
{FF_IDCT_ALTIVEC, "ALTIVEC", "altivec"},
|
|
{FF_IDCT_SH4, "SH4", "sh4"},
|
|
{FF_IDCT_SIMPLEARM, "SIMPLEARM", "simplearm"},
|
|
- {FF_IDCT_H264, "H264", "h264"},
|
|
- {FF_IDCT_VP3, "VP3", "vp3"},
|
|
{FF_IDCT_IPP, "IPP", "ipp"},
|
|
{FF_IDCT_XVIDMMX, "XVIDMMX", "xvidmmx"},
|
|
{0, NULL, NULL},
|
|
@@ -274,9 +271,6 @@ gst_ffmpeg_flags_get_type (void)
|
|
"global-headers"},
|
|
{CODEC_FLAG_AC_PRED, "H263 Advanced Intra Coding / MPEG4 AC prediction",
|
|
"aic"},
|
|
- {CODEC_FLAG_CBP_RD, "Rate Distoration Optimization for CBP", "cbp-rd"},
|
|
- {CODEC_FLAG_QP_RD, "Rate Distoration Optimization for QP selection",
|
|
- "qp-rd"},
|
|
{CODEC_FLAG_CLOSED_GOP, "Closed GOP", "closedgop"},
|
|
{0, NULL, NULL},
|
|
};
|
|
@@ -580,18 +574,6 @@ gst_ffmpeg_cfg_init (void)
|
|
-100, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
|
gst_ffmpeg_add_pspec (pspec, max_key_interval, FALSE, mpeg, NULL);
|
|
|
|
- pspec = g_param_spec_int ("luma-elim-threshold",
|
|
- "Luma Elimination Threshold",
|
|
- "Luma Single Coefficient Elimination Threshold",
|
|
- -99, 99, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
|
- gst_ffmpeg_add_pspec (pspec, config.luma_elim_threshold, FALSE, mpeg, NULL);
|
|
-
|
|
- pspec = g_param_spec_int ("chroma-elim-threshold",
|
|
- "Chroma Elimination Threshold",
|
|
- "Chroma Single Coefficient Elimination Threshold",
|
|
- -99, 99, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
|
- gst_ffmpeg_add_pspec (pspec, config.chroma_elim_threshold, FALSE, mpeg, NULL);
|
|
-
|
|
pspec = g_param_spec_float ("lumi-masking", "Luminance Masking",
|
|
"Luminance Masking", -1.0f, 1.0f, 0.0f,
|
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
|
Index: gst-ffmpeg-0.10.13_p201211/ext/ffmpeg/gstffmpegcodecmap.c
|
|
===================================================================
|
|
--- gst-ffmpeg-0.10.13_p201211.orig/ext/ffmpeg/gstffmpegcodecmap.c
|
|
+++ gst-ffmpeg-0.10.13_p201211/ext/ffmpeg/gstffmpegcodecmap.c
|
|
@@ -572,13 +572,11 @@ gst_ffmpeg_codecid_to_caps (enum AVCodec
|
|
break;
|
|
}
|
|
|
|
- /* FIXME: context->sub_id must be filled in during decoding */
|
|
caps =
|
|
gst_ff_vid_caps_new (context, codec_id, encode,
|
|
"video/x-pn-realvideo", "systemstream", G_TYPE_BOOLEAN, FALSE,
|
|
"rmversion", G_TYPE_INT, version, NULL);
|
|
if (context) {
|
|
- gst_caps_set_simple (caps, "format", G_TYPE_INT, context->sub_id, NULL);
|
|
if (context->extradata_size >= 8) {
|
|
gst_caps_set_simple (caps,
|
|
"subformat", G_TYPE_INT, GST_READ_UINT32_BE (context->extradata),
|
|
@@ -2559,18 +2557,6 @@ gst_ffmpeg_caps_with_codecid (enum AVCod
|
|
}
|
|
break;
|
|
|
|
- case AV_CODEC_ID_RV10:
|
|
- case AV_CODEC_ID_RV20:
|
|
- case AV_CODEC_ID_RV30:
|
|
- case AV_CODEC_ID_RV40:
|
|
- {
|
|
- gint format;
|
|
-
|
|
- if (gst_structure_get_int (str, "format", &format))
|
|
- context->sub_id = format;
|
|
-
|
|
- break;
|
|
- }
|
|
case AV_CODEC_ID_COOK:
|
|
case AV_CODEC_ID_RA_288:
|
|
case AV_CODEC_ID_RA_144:
|
|
Index: gst-ffmpeg-0.10.13_p201211/ext/ffmpeg/gstffmpegenc.c
|
|
===================================================================
|
|
--- gst-ffmpeg-0.10.13_p201211.orig/ext/ffmpeg/gstffmpegenc.c
|
|
+++ gst-ffmpeg-0.10.13_p201211/ext/ffmpeg/gstffmpegenc.c
|
|
@@ -572,7 +572,6 @@ gst_ffmpegenc_setcaps (GstPad * pad, Gst
|
|
ffmpegenc->context->coder_type = 0;
|
|
ffmpegenc->context->context_model = 0;
|
|
ffmpegenc->context->scenechange_threshold = 0;
|
|
- ffmpegenc->context->inter_threshold = 0;
|
|
|
|
/* and last but not least the pass; CBR, 2-pass, etc */
|
|
ffmpegenc->context->flags |= ffmpegenc->pass;
|
|
Index: gst-ffmpeg-0.10.13_p201211/ext/ffmpeg/gstffmpegdec.c
|
|
===================================================================
|
|
--- gst-ffmpeg-0.10.13_p201211.orig/ext/ffmpeg/gstffmpegdec.c
|
|
+++ gst-ffmpeg-0.10.13_p201211/ext/ffmpeg/gstffmpegdec.c
|
|
@@ -2082,7 +2082,7 @@ gst_ffmpegdec_audio_frame (GstFFMpegDec
|
|
const GstTSInfo * dec_info, GstBuffer ** outbuf, GstFlowReturn * ret)
|
|
{
|
|
gint len = -1, got_frame;
|
|
- gint have_data = AVCODEC_MAX_AUDIO_FRAME_SIZE;
|
|
+ gint have_data = 0;
|
|
GstClockTime out_timestamp, out_duration;
|
|
gint64 out_offset;
|
|
AVPacket packet;
|
|
@@ -2101,21 +2101,22 @@ gst_ffmpegdec_audio_frame (GstFFMpegDec
|
|
goto beach;
|
|
}
|
|
|
|
- *outbuf =
|
|
- new_aligned_buffer (AVCODEC_MAX_AUDIO_FRAME_SIZE,
|
|
- GST_PAD_CAPS (ffmpegdec->srcpad));
|
|
-
|
|
gst_avpacket_init (&packet, data, size);
|
|
len = avcodec_decode_audio4 (ffmpegdec->context, frame, &got_frame, &packet);
|
|
GST_DEBUG_OBJECT (ffmpegdec,
|
|
"Decode audio: ret=%d, got_frame=%d", len, got_frame);
|
|
if (!got_frame) {
|
|
- gst_buffer_unref (*outbuf);
|
|
- *outbuf = NULL;
|
|
len = -1;
|
|
goto beach;
|
|
}
|
|
- if (len >= 0) have_data = copy_samples(ffmpegdec->context, frame, GST_BUFFER_DATA (*outbuf), AVCODEC_MAX_AUDIO_FRAME_SIZE);
|
|
+
|
|
+ int obuf_size = av_samples_get_buffer_size(NULL, ffmpegdec->context->channels, frame->nb_samples, frame->format, 0);
|
|
+
|
|
+ *outbuf=
|
|
+ new_aligned_buffer (obuf_size,
|
|
+ GST_PAD_CAPS (ffmpegdec->srcpad));
|
|
+
|
|
+ if (len >= 0) have_data = copy_samples(ffmpegdec->context, frame, GST_BUFFER_DATA (*outbuf), obuf_size);
|
|
|
|
if (len >= 0 && have_data > 0) {
|
|
GST_DEBUG_OBJECT (ffmpegdec, "Creating output buffer");
|