No subject


Thu Apr 21 00:17:23 PDT 2011


buffers using the running time. However, baseaudiosrc uses the number of
samples processed in its ring buffer to calculate the buffer timestamp.

This is fine, but the variables of interest inside the ring buffer (segbase and
segdone) are not adjusted as appropriate when going down to READY and back up
to PAUSED clearing the ring buffer indirectly through the
gst_ring_buffer_set_flushing () calls.

When in the GST_BASE_AUDIO_SRC_SLAVE_SKEW mode of operation and after hitting
PLAYING again, baseaudiosrc uses segdone * samples per segment * GST_SECOND /
sample rate to calculate a timestamp for new buffers. It also uses segbase, but
segbase always remains at 0 as it is only altered in gst_ring_buffer_set_sample
() which is never called anywhere in -base or -good.

As such, I believe there are two issues in this code:

1) segbase and segdone need to be initialised/reset at appropriate points in
the code paths.
2) segbase needs to be used when referring to segdone unless segdone without
considering segbase is actually what one wants.

For now, I will just take the element down to NULL and back as a workaround.

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