[Bug 752603] qtdemux: Unable to play streaming MP4 (H264+AAC) file from VLC
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Thu Jun 21 14:41:17 UTC 2018
https://bugzilla.gnome.org/show_bug.cgi?id=752603
Thibault Saunier <tsaunier at gnome.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #372659|none |needs-work
status| |
--- Comment #71 from Thibault Saunier <tsaunier at gnome.org> ---
Review of attachment 372659:
--> (https://bugzilla.gnome.org/review?bug=752603&attachment=372659)
In overall this patch makes a lot of sense to me.
::: gst/isomp4/qtdemux.c
@@ -2369,3 @@
/* map segment to internal qt segments and push on each stream */
if (demux->n_streams) {
- if (demux->fragmented) {
In the new code path this checks become `demux->upstream_format_is_time`
(inverted) - we agreed this is the right thing to do as per Bug #796480.
@@ +3955,3 @@
gint64 base_offset, running_offset;
guint32 frag_num;
+ GstClockTime min_decode_time_ns = GST_CLOCK_TIME_NONE;
Just call it `min_dts`?
@@ +4068,3 @@
+ if (stream) {
+ GstClockTime decode_time_ns =
Just `dts` or so - ClockTime already implies NS.
You can also just do min_dts = MIN(min_dts, QTSTREAMTIME_TO_GSTTIME (stream,
decode_time));
@@ +4132,2 @@
pssh_node = qtdemux_tree_get_sibling_by_type (pssh_node, FOURCC_pssh);
}
Just move L4070 right after that line removing the `if` I think.
@@ +4159,3 @@
+ * parsed... which is OK -- some apps (mostly tests) expect a segment to
+ * be emitted after a moov, and we can emit a second segment anyway for
+ * special cases like this. */
Agreed.
@@ -4532,3 @@
gst_buffer_unref (moov);
qtdemux->got_moov = TRUE;
- if (!qtdemux->fragmented && !qtdemux->upstream_format_is_time) {
What makes it possible to remove that block? (Sorry, it is not clear to me).
@@ -6017,3 @@
GList *iter;
- gst_qtdemux_push_pending_newsegment (qtdemux);
Why can you remove that like this? It is totally unclear to me
@@ +13753,3 @@
+ GstClockTime duration;
+ /* set duration in the segment info */
+ gst_qtdemux_get_duration (qtdemux, &duration);
You need to check that `duration != 0` here as before I think.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list