diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c index 0f18d5ab1c..f9759cea1f 100644 --- a/gst/isomp4/gstqtmux.c +++ b/gst/isomp4/gstqtmux.c @@ -3156,6 +3156,9 @@ gst_qt_mux_video_sink_set_caps (GstPad * pad, GstCaps * caps) } else if (strcmp (mimetype, "video/x-vp8") == 0) { entry.fourcc = FOURCC_VP80; sync = FALSE; + } else if (strcmp (mimetype, "video/x-dirac") == 0) { + entry.fourcc = FOURCC_drac; + qtpad->have_dts = TRUE; } else if (strcmp (mimetype, "video/x-qt-part") == 0) { guint32 fourcc; diff --git a/gst/isomp4/gstqtmuxmap.c b/gst/isomp4/gstqtmuxmap.c index e62c5eec44..a595c2234b 100644 --- a/gst/isomp4/gstqtmuxmap.c +++ b/gst/isomp4/gstqtmuxmap.c @@ -166,6 +166,8 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = { "image/jpeg, " COMMON_VIDEO_CAPS_NO_FRAMERATE "; " "video/x-vp8, " + COMMON_VIDEO_CAPS "; " + "video/x-dirac, " COMMON_VIDEO_CAPS "; " "video/x-qt-part, " COMMON_VIDEO_CAPS), GST_STATIC_CAPS (PCM_CAPS_FULL "; " MP3_CAPS " ; " diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c index c82400dbe1..0eac2b769c 100644 --- a/gst/matroska/matroska-demux.c +++ b/gst/matroska/matroska-demux.c @@ -2961,7 +2961,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, GstFlowReturn ret = GST_FLOW_OK; gboolean readblock = FALSE; guint32 id; - guint64 block_duration = 0; + guint64 block_duration = -1; GstBuffer *buf = NULL; gint stream_num = -1, n, laces = 0; guint size = 0; @@ -3249,7 +3249,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, demux->need_newsegment = FALSE; } - if (block_duration) { + if (block_duration != -1) { if (stream->timecodescale == 1.0) duration = gst_util_uint64_scale (block_duration, demux->common.time_scale, 1);