[Bug 734659] qtdemux: Does not properly update base time for non-flushing seeks

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Sep 3 01:00:20 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=734659
  GStreamer | gst-plugins-good | git

--- Comment #29 from Aleix Conchillo Flaqué <aleix at oblong.com> 2014-09-03 08:00:13 UTC ---
(In reply to comment #28)
> Review of attachment 285192 [details]:
> 
> Looks good, just needs a simplification.
> 
> Also it would be good to test if this doesn't break the heavily edited samples
> from https://bugzilla.gnome.org/show_bug.cgi?id=345830

I am trying the videos and they don't work with this patch.

> 
> Sorry for not mentioning this earlier, but there is already a position tracking
> in qtdemux for all streams: qtdemux->segment.position
> 
> This is actually what is used to answer the POSITION query. So you can simplify
> it here and use that.
> 

Not sure if I understand. Does qtdemux->segment.position *always* has the
latest position for all streams? If so, this should work?

  stream->segment.base = gst_segment_to_running_time (&stream->segment,
      GST_FORMAT_TIME, qtdemux->segment.position);

It doesn't work actually.

So, in my patch I just used qtdemux->segment.position to save the largest
position in each stream. But that doesn't work either. Audio loses
synchronization after a while.

Now that I have videos with multiple segments I will try to fix it properly.

> @@ +6211,3 @@
>    stream->stps_present = FALSE;
>    if ((stream->stss_present =
> +          !!qtdemux_tree_get_child_by_type_full (stbl, FOURCC_stss,
> 
> Those changes seem to be caused by gst-indent not being consistent, they should
> be removed from this patch.

Yes, sorry. I just removed them

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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