[Bug 736655] basesink: preroll issue for some clips which audio is shorter than video

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sat Feb 14 19:20:17 PST 2015


https://bugzilla.gnome.org/show_bug.cgi?id=736655

kevin <kevinbing.song at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|1.2.3                       |1.4.1

--- Comment #103 from kevin <kevinbing.song at gmail.com> ---
(In reply to Sebastian Dröge (slomo) from comment #98)
> Review of attachment 295409 [details] [review]:
> 
> Looks good, just some minor things that should be fast to update :) Then
> this should be ready to be merged
> 
> ::: gst/playback/gststreamsynchronizer.c
> @@ +207,3 @@
> +/* must be called with the STREAM_SYNCHRONIZER_LOCK */
> +static gboolean
> +gst_stream_synchronizer_wait (GstStreamSynchronizer * self, GstPad * pad)
> 
> Can this function also be used for the g_cond_wait() in the SEGMENT event
> handler? I think it should be used there too for consistency (and modified
> to work in both cases).
> 
Accept, will do it in another patch.
> @@ +445,3 @@
>        GST_STREAM_SYNCHRONIZER_LOCK (self);
>        stream = gst_pad_get_element_private (pad);
> +      stream->flushing = TRUE;
> 
> See the "if (stream)" some lines below :) You need to check for NULL
> 
Accept.
> @@ +550,3 @@
> +
> +      /* send eos if haven't seed data as sink can't handle if haven't
> negotiate */
> +      if (!seen_data || self->eos) {
> 
> The only case when we get here and this is not true, is when we're flushing?
> Document that and maybe even add an assertion :)
> 
Add more comments for seen_data.
> @@ +904,3 @@
> +        if (stream->is_eos && !stream->eos_sent) {
> +          self->send_gap_event = TRUE;
> +          g_cond_broadcast (&stream->stream_finish_cond);
> 
> Please document in a comment here why a GAP event should be sent, also why
> not another one is required when going from PAUSED to PLAYING
Add comments on why send GAP event. PAUSED to PLAYING needn't pre-roll, needn't
send GAP event in change_state (). chain () will send GAP event in PLAYING
state.

-- 
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