diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-02-09 11:38:38 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-02-09 11:38:38 +0100 |
commit | 6434cb8463988f94659da773d338286343528571 (patch) | |
tree | 8f90bbd347d894b93f07ec53a1ed947096c37fcf /ext | |
parent | 4d912e229cc8d946e85ea967063619dd78a83ede (diff) |
Imported Upstream version 1.2.3upstream/1.2.3
Diffstat (limited to 'ext')
-rw-r--r-- | ext/Makefile.in | 2 | ||||
-rw-r--r-- | ext/libav/Makefile.in | 2 | ||||
-rw-r--r-- | ext/libav/gstavauddec.c | 7 | ||||
-rw-r--r-- | ext/libav/gstavaudenc.c | 2 | ||||
-rw-r--r-- | ext/libav/gstavcfg.c | 4 | ||||
-rw-r--r-- | ext/libav/gstavcodecmap.c | 17 | ||||
-rw-r--r-- | ext/libav/gstavdeinterlace.c | 1 | ||||
-rw-r--r-- | ext/libav/gstavmux.c | 6 | ||||
-rw-r--r-- | ext/libav/gstavviddec.c | 2 | ||||
-rw-r--r-- | ext/libav/gstavvidenc.c | 2 | ||||
-rw-r--r-- | ext/libswscale/Makefile.in | 2 |
11 files changed, 39 insertions, 8 deletions
diff --git a/ext/Makefile.in b/ext/Makefile.in index a276d68..98351c3 100644 --- a/ext/Makefile.in +++ b/ext/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. diff --git a/ext/libav/Makefile.in b/ext/libav/Makefile.in index 806dadb..10958d4 100644 --- a/ext/libav/Makefile.in +++ b/ext/libav/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. diff --git a/ext/libav/gstavauddec.c b/ext/libav/gstavauddec.c index f195ca0..b685928 100644 --- a/ext/libav/gstavauddec.c +++ b/ext/libav/gstavauddec.c @@ -150,9 +150,11 @@ gst_ffmpegauddec_finalize (GObject * object) { GstFFMpegAudDec *ffmpegdec = (GstFFMpegAudDec *) object; - if (ffmpegdec->context != NULL) + if (ffmpegdec->context != NULL) { + gst_ffmpeg_avcodec_close (ffmpegdec->context); av_free (ffmpegdec->context); - ffmpegdec->context = NULL; + ffmpegdec->context = NULL; + } G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -199,6 +201,7 @@ gst_ffmpegauddec_start (GstAudioDecoder * decoder) oclass = (GstFFMpegAudDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec)); GST_OBJECT_LOCK (ffmpegdec); + gst_ffmpeg_avcodec_close (ffmpegdec->context); if (avcodec_get_context_defaults3 (ffmpegdec->context, oclass->in_plugin) < 0) { GST_DEBUG_OBJECT (ffmpegdec, "Failed to set context defaults"); GST_OBJECT_UNLOCK (ffmpegdec); diff --git a/ext/libav/gstavaudenc.c b/ext/libav/gstavaudenc.c index 83a2eee..11969cb 100644 --- a/ext/libav/gstavaudenc.c +++ b/ext/libav/gstavaudenc.c @@ -191,6 +191,7 @@ gst_ffmpegaudenc_finalize (GObject * object) GstFFMpegAudEnc *ffmpegaudenc = (GstFFMpegAudEnc *) object; /* clean up remaining allocated data */ + gst_ffmpeg_avcodec_close (ffmpegaudenc->context); av_free (ffmpegaudenc->context); G_OBJECT_CLASS (parent_class)->finalize (object); @@ -203,6 +204,7 @@ gst_ffmpegaudenc_start (GstAudioEncoder * encoder) GstFFMpegAudEncClass *oclass = (GstFFMpegAudEncClass *) G_OBJECT_GET_CLASS (ffmpegaudenc); + gst_ffmpeg_avcodec_close (ffmpegaudenc->context); if (avcodec_get_context_defaults3 (ffmpegaudenc->context, oclass->in_plugin) < 0) { GST_DEBUG_OBJECT (ffmpegaudenc, "Failed to set context defaults"); diff --git a/ext/libav/gstavcfg.c b/ext/libav/gstavcfg.c index 8c368ad..64e8398 100644 --- a/ext/libav/gstavcfg.c +++ b/ext/libav/gstavcfg.c @@ -839,8 +839,10 @@ gst_ffmpeg_cfg_install_property (GstFFMpegVidEncClass * klass, guint base) } } - if (ctx) + if (ctx) { + gst_ffmpeg_avcodec_close (ctx); av_free (ctx); + } } /* returns TRUE if it is a known property for this config system, diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c index a5be63e..fe52cff 100644 --- a/ext/libav/gstavcodecmap.c +++ b/ext/libav/gstavcodecmap.c @@ -1438,7 +1438,22 @@ gst_ffmpeg_codecid_to_caps (enum CodecID codec_id, case AV_CODEC_ID_VC1: caps = gst_ff_vid_caps_new (context, NULL, codec_id, encode, "video/x-wmv", - "wmvversion", G_TYPE_INT, 3, "format", G_TYPE_STRING, "WVC1", NULL); + "wmvversion", G_TYPE_INT, 3, NULL); + if (!context && !encode) { + GValue arr = { 0, }; + GValue item = { 0, }; + + g_value_init (&arr, GST_TYPE_LIST); + g_value_init (&item, G_TYPE_STRING); + g_value_set_string (&item, "WVC1"); + gst_value_list_append_value (&arr, &item); + g_value_set_string (&item, "WMVA"); + gst_value_list_append_and_take_value (&arr, &item); + gst_caps_set_value (caps, "format", &arr); + g_value_unset (&arr); + } else { + gst_caps_set_simple (caps, "format", G_TYPE_STRING, "WVC1", NULL); + } break; case AV_CODEC_ID_QDM2: caps = diff --git a/ext/libav/gstavdeinterlace.c b/ext/libav/gstavdeinterlace.c index faa81bb..67ec9c2 100644 --- a/ext/libav/gstavdeinterlace.c +++ b/ext/libav/gstavdeinterlace.c @@ -209,6 +209,7 @@ gst_ffmpegdeinterlace_sink_setcaps (GstPad * pad, GstCaps * caps) ctx->pix_fmt = PIX_FMT_NB; gst_ffmpeg_caps_with_codectype (AVMEDIA_TYPE_VIDEO, caps, ctx); if (ctx->pix_fmt == PIX_FMT_NB) { + gst_ffmpeg_avcodec_close (ctx); av_free (ctx); return FALSE; } diff --git a/ext/libav/gstavmux.c b/ext/libav/gstavmux.c index e15931c..f161d75 100644 --- a/ext/libav/gstavmux.c +++ b/ext/libav/gstavmux.c @@ -254,6 +254,10 @@ gst_ffmpegmux_base_init (gpointer g_class) const gint rates[] = { 44100, 22050, 11025 }; gst_ffmpeg_mux_simple_caps_set_int_list (audiosinkcaps, "rate", 3, rates); + } else if (strcmp (in_plugin->name, "dv") == 0) { + gst_caps_set_simple (audiosinkcaps, + "rate", G_TYPE_INT, 48000, "channels", G_TYPE_INT, 2, NULL); + } else if (strcmp (in_plugin->name, "gif") == 0) { if (videosinkcaps) gst_caps_unref (videosinkcaps); @@ -474,7 +478,7 @@ gst_ffmpegmux_setcaps (GstPad * pad, GstCaps * caps) collect_pad = (GstFFMpegMuxPad *) gst_pad_get_element_private (pad); st = ffmpegmux->context->streams[collect_pad->padnum]; - av_opt_set_int (&ffmpegmux->context, "preload", ffmpegmux->preload, 0); + av_opt_set_int (ffmpegmux->context, "preload", ffmpegmux->preload, 0); ffmpegmux->context->max_delay = ffmpegmux->max_delay; /* for the format-specific guesses, we'll go to diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c index 3453231..6c9c0c9 100644 --- a/ext/libav/gstavviddec.c +++ b/ext/libav/gstavviddec.c @@ -266,6 +266,7 @@ gst_ffmpegviddec_finalize (GObject * object) GstFFMpegVidDec *ffmpegdec = (GstFFMpegVidDec *) object; if (ffmpegdec->context != NULL) { + gst_ffmpeg_avcodec_close (ffmpegdec->context); av_free (ffmpegdec->context); ffmpegdec->context = NULL; } @@ -1548,6 +1549,7 @@ gst_ffmpegviddec_start (GstVideoDecoder * decoder) oclass = (GstFFMpegVidDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec)); GST_OBJECT_LOCK (ffmpegdec); + gst_ffmpeg_avcodec_close (ffmpegdec->context); if (avcodec_get_context_defaults3 (ffmpegdec->context, oclass->in_plugin) < 0) { GST_DEBUG_OBJECT (ffmpegdec, "Failed to set context defaults"); GST_OBJECT_UNLOCK (ffmpegdec); diff --git a/ext/libav/gstavvidenc.c b/ext/libav/gstavvidenc.c index 6f32627..11d1eef 100644 --- a/ext/libav/gstavvidenc.c +++ b/ext/libav/gstavvidenc.c @@ -263,6 +263,7 @@ gst_ffmpegvidenc_finalize (GObject * object) gst_ffmpeg_cfg_finalize (ffmpegenc); /* clean up remaining allocated data */ + gst_ffmpeg_avcodec_close (ffmpegenc->context); av_free (ffmpegenc->context); avcodec_free_frame (&ffmpegenc->picture); @@ -834,6 +835,7 @@ gst_ffmpegvidenc_start (GstVideoEncoder * encoder) (GstFFMpegVidEncClass *) G_OBJECT_GET_CLASS (ffmpegenc); /* close old session */ + gst_ffmpeg_avcodec_close (ffmpegenc->context); if (avcodec_get_context_defaults3 (ffmpegenc->context, oclass->in_plugin) < 0) { GST_DEBUG_OBJECT (ffmpegenc, "Failed to set context defaults"); return FALSE; diff --git a/ext/libswscale/Makefile.in b/ext/libswscale/Makefile.in index a46a1ec..80079a1 100644 --- a/ext/libswscale/Makefile.in +++ b/ext/libswscale/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. |