qtdemux: create correct pad names in encrypted streams
authorHosang Lee <hosang10.lee@lge.com>
Tue, 16 Jun 2020 08:23:44 +0000 (17:23 +0900)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 28 Jul 2020 11:41:51 +0000 (11:41 +0000)
Refer to "original-media-type" when setting stream's subtype
for encrypted streams in mss mode.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/628>

gst/isomp4/qtdemux.c

index 93ebef2..5b79ace 100644 (file)
@@ -1925,6 +1925,16 @@ gst_qtdemux_setcaps (GstQTDemux * demux, GstCaps * caps)
             &CUR_STREAM (stream)->n_channels);
         gst_structure_get_int (structure, "rate", &rate);
         CUR_STREAM (stream)->rate = rate;
+      } else if (gst_structure_has_name (structure, "application/x-cenc")) {
+        if (gst_structure_has_field (structure, "original-media-type")) {
+          const gchar *media_type =
+              gst_structure_get_string (structure, "original-media-type");
+          if (g_str_has_prefix (media_type, "video")) {
+            stream->subtype = FOURCC_vide;
+          } else if (g_str_has_prefix (media_type, "audio")) {
+            stream->subtype = FOURCC_soun;
+          }
+        }
       }
     }
     gst_caps_replace (&demux->media_caps, (GstCaps *) mediacaps);