From 57b1970395d8bd79fbea761dbde7f3ccab84ac1c Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 6 Jun 2014 16:52:28 +0200 Subject: [PATCH] avcodecmap: place supported profiles in mpeg4 caps Place the supported profiles in the srcpad caps of the mpeg4 encoder. --- ext/libav/gstavcodecmap.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c index cb65866..0c53d10 100644 --- a/ext/libav/gstavcodecmap.c +++ b/ext/libav/gstavcodecmap.c @@ -978,7 +978,7 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id, break; case GST_MAKE_FOURCC ('m', 'p', '4', 'v'): default: - /* FIXME: bitrate */ + /* FIXME: bitrate. libav doesn't expose the used profile and level */ caps = gst_ff_vid_caps_new (context, NULL, codec_id, encode, "video/mpeg", "systemstream", G_TYPE_BOOLEAN, FALSE, @@ -991,7 +991,22 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id, gst_ff_vid_caps_new (context, NULL, codec_id, encode, "video/mpeg", "mpegversion", G_TYPE_INT, 4, "systemstream", G_TYPE_BOOLEAN, FALSE, NULL); + if (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, "simple"); + gst_value_list_append_value (&arr, &item); + g_value_set_string (&item, "advanced-simple"); + gst_value_list_append_value (&arr, &item); + g_value_unset (&item); + + gst_caps_set_value (caps, "profile", &arr); + g_value_unset (&arr); + gst_caps_append (caps, gst_ff_vid_caps_new (context, NULL, codec_id, encode, "video/x-divx", "divxversion", G_TYPE_INT, 5, NULL)); } else { -- 2.7.4