From f7371f86919a904b24b3888abf029fa754bca78c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 26 Jun 2020 13:11:56 +0300 Subject: avcodecmap: Add support for SpeedHQ video codec Part-of: --- ext/libav/gstavcodecmap.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'ext') diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c index c9a7812..bde228e 100644 --- a/ext/libav/gstavcodecmap.c +++ b/ext/libav/gstavcodecmap.c @@ -1413,6 +1413,21 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id, "video/x-cineform", NULL); break; + case AV_CODEC_ID_SPEEDHQ: + if (context && context->codec_tag) { + gchar *variant = g_strdup_printf ("%" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (context->codec_tag)); + caps = + gst_ff_vid_caps_new (context, NULL, codec_id, encode, + "video/x-speedhq", "variant", G_TYPE_STRING, variant, NULL); + g_free (variant); + } else { + caps = + gst_ff_vid_caps_new (context, NULL, codec_id, encode, + "video/x-speedhq", NULL); + } + break; + case AV_CODEC_ID_AAC: { caps = @@ -3415,6 +3430,18 @@ gst_ffmpeg_caps_with_codecid (enum AVCodecID codec_id, } break; } + case AV_CODEC_ID_SPEEDHQ: + { + const gchar *variant; + + if (context && (variant = gst_structure_get_string (str, "variant")) + && strlen (variant) == 4) { + + context->codec_tag = + GST_MAKE_FOURCC (variant[0], variant[1], variant[2], variant[3]); + } + break; + } default: break; } @@ -4070,6 +4097,9 @@ gst_ffmpeg_caps_to_codecid (const GstCaps * caps, AVCodecContext * context) } else if (!strcmp (mimetype, "video/x-cineform")) { id = AV_CODEC_ID_CFHD; video = TRUE; + } else if (!strcmp (mimetype, "video/x-speedhq")) { + id = AV_CODEC_ID_SPEEDHQ; + video = TRUE; } else if (!strcmp (mimetype, "video/x-indeo")) { gint indeoversion = 0; -- cgit v1.2.1