matroskamux: Add HEVC / h265 support
authorSebastian Dröge <sebastian@centricular.com>
Mon, 6 Jan 2014 13:54:46 +0000 (14:54 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Mon, 6 Jan 2014 13:55:36 +0000 (14:55 +0100)
gst/matroska/matroska-mux.c

index 262d0e1..a8167db 100644 (file)
@@ -103,6 +103,8 @@ static GstStaticPadTemplate videosink_templ =
         COMMON_VIDEO_CAPS "; "
         "video/x-h264, stream-format=avc, alignment=au, "
         COMMON_VIDEO_CAPS "; "
+        "video/x-h265, stream-format=hvc1, alignment=au, "
+        COMMON_VIDEO_CAPS "; "
         "video/x-divx, "
         COMMON_VIDEO_CAPS "; "
         "video/x-huffyuv, "
@@ -1119,6 +1121,16 @@ skip_details:
       context->codec_priv = g_malloc0 (context->codec_priv_size);
       gst_buffer_extract (codec_buf, 0, context->codec_priv, -1);
     }
+  } else if (!strcmp (mimetype, "video/x-h265")) {
+    gst_matroska_mux_set_codec_id (context,
+        GST_MATROSKA_CODEC_ID_VIDEO_MPEGH_HEVC);
+    gst_matroska_mux_free_codec_priv (context);
+    /* Create hvcC header */
+    if (codec_buf != NULL) {
+      context->codec_priv_size = gst_buffer_get_size (codec_buf);
+      context->codec_priv = g_malloc0 (context->codec_priv_size);
+      gst_buffer_extract (codec_buf, 0, context->codec_priv, -1);
+    }
   } else if (!strcmp (mimetype, "video/x-theora")) {
     const GValue *streamheader;