matroskademux: Extract codec_data for AV1
authorOlivier Crête <olivier.crete@collabora.com>
Wed, 25 Jul 2018 20:39:18 +0000 (16:39 -0400)
committerOlivier Crête <olivier.crete@collabora.com>
Thu, 26 Jul 2018 18:14:53 +0000 (14:14 -0400)
According to
https://github.com/Matroska-Org/matroska-specification/blob/av1-mappin/codec/av1.md

gst/matroska/matroska-demux.c

index 32d4598..e305e5c 100644 (file)
@@ -5627,6 +5627,17 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext *
     *codec_name = g_strdup_printf ("On2 VP9");
   } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_AV1)) {
     caps = gst_caps_new_empty_simple ("video/x-av1");
+    if (data) {
+      GstBuffer *priv;
+
+      priv = gst_buffer_new_wrapped (g_memdup (data, size), size);
+      gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, priv, NULL);
+      gst_buffer_unref (priv);
+    } else {
+      GST_WARNING ("No codec data found, assuming output is byte-stream");
+      gst_caps_set_simple (caps, "stream-format", G_TYPE_STRING, "byte-stream",
+          NULL);
+    }
     *codec_name = g_strdup_printf ("AOM AV1");
   } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_PRORES)) {
     guint32 fourcc;