aboutsummaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-02-09 11:38:38 +0100
committerSebastian Dröge <sebastian@centricular.com>2014-02-09 11:38:38 +0100
commit6434cb8463988f94659da773d338286343528571 (patch)
tree8f90bbd347d894b93f07ec53a1ed947096c37fcf /ext
parent4d912e229cc8d946e85ea967063619dd78a83ede (diff)
Imported Upstream version 1.2.3upstream/1.2.3
Diffstat (limited to 'ext')
-rw-r--r--ext/Makefile.in2
-rw-r--r--ext/libav/Makefile.in2
-rw-r--r--ext/libav/gstavauddec.c7
-rw-r--r--ext/libav/gstavaudenc.c2
-rw-r--r--ext/libav/gstavcfg.c4
-rw-r--r--ext/libav/gstavcodecmap.c17
-rw-r--r--ext/libav/gstavdeinterlace.c1
-rw-r--r--ext/libav/gstavmux.c6
-rw-r--r--ext/libav/gstavviddec.c2
-rw-r--r--ext/libav/gstavvidenc.c2
-rw-r--r--ext/libswscale/Makefile.in2
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.