diff --git a/subprojects/gst-plugins-bad/sys/androidmedia/gstamc.c b/subprojects/gst-plugins-bad/sys/androidmedia/gstamc.c index f72fd836fd..48cf396848 100644 --- a/subprojects/gst-plugins-bad/sys/androidmedia/gstamc.c +++ b/subprojects/gst-plugins-bad/sys/androidmedia/gstamc.c @@ -2405,6 +2405,15 @@ gst_amc_codec_info_to_caps (const GstAmcCodecInfo * codec_info, "height", GST_TYPE_INT_RANGE, 16, 4096, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL); + encoded_ret = gst_caps_merge_structure (encoded_ret, tmp); + } else if (strcmp (type->mime, "video/av01") == 0) { + tmp = gst_structure_new ("video/x-av1", + "stream-format", G_TYPE_STRING, "obu-stream", + "alignment", G_TYPE_STRING, "tu", + "width", GST_TYPE_INT_RANGE, 16, 4096, + "height", GST_TYPE_INT_RANGE, 16, 4096, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL); + encoded_ret = gst_caps_merge_structure (encoded_ret, tmp); } else if (strcmp (type->mime, "video/mpeg2") == 0) { tmp = gst_structure_new ("video/mpeg", diff --git a/subprojects/gst-plugins-bad/sys/androidmedia/gstamcvideodec.c b/subprojects/gst-plugins-bad/sys/androidmedia/gstamcvideodec.c index 22cda5872c..7a706aa014 100644 --- a/subprojects/gst-plugins-bad/sys/androidmedia/gstamcvideodec.c +++ b/subprojects/gst-plugins-bad/sys/androidmedia/gstamcvideodec.c @@ -323,6 +323,8 @@ caps_to_mime (GstCaps * caps) return "video/x-vnd.on2.vp8"; } else if (strcmp (name, "video/x-vp9") == 0) { return "video/x-vnd.on2.vp9"; + } else if (strcmp (name, "video/x-av1") == 0) { + return "video/av01"; } else if (strcmp (name, "video/x-divx") == 0) { return "video/mp4v-es"; } diff --git a/subprojects/gst-plugins-bad/sys/androidmedia/gstamcvideoenc.c b/subprojects/gst-plugins-bad/sys/androidmedia/gstamcvideoenc.c index e777aa46fe..f3ead8e2bc 100644 --- a/subprojects/gst-plugins-bad/sys/androidmedia/gstamcvideoenc.c +++ b/subprojects/gst-plugins-bad/sys/androidmedia/gstamcvideoenc.c @@ -232,6 +232,8 @@ create_amc_format (GstAmcVideoEnc * encoder, GstVideoCodecState * input_state, mime = "video/x-vnd.on2.vp8"; } else if (strcmp (name, "video/x-vp9") == 0) { mime = "video/x-vnd.on2.vp9"; + } else if (strcmp (name, "video/x-av1") == 0) { + mime = "video/av01"; } else { GST_ERROR_OBJECT (encoder, "Failed to convert caps(%s/...) to any mime", name); @@ -459,6 +461,10 @@ caps_from_amc_format (GstAmcFormat * amc_format) caps = gst_caps_new_empty_simple ("video/x-vp8"); } else if (strcmp (mime, "video/x-vnd.on2.vp9") == 0) { caps = gst_caps_new_empty_simple ("video/x-vp9"); + } else if (strcmp (mime, "video/av01") == 0) { + caps = gst_caps_new_simple ("video/x-av1", + "stream-format", G_TYPE_STRING, "obu-stream", + "alignment", G_TYPE_STRING, "tu", NULL); } gst_caps_set_simple (caps, "width", G_TYPE_INT, width,