GNOME Bugzilla – Bug 162355
[PATCH] [cdparanoia] Fix for _QUERY_POSITION
Last modified: 2005-04-27 13:58:56 UTC
This patch updated the cdparanoia-module to always deliver the position in the current track instead of the position based on the last seek-action as starting-point.
Created attachment 35244 [details] [review] the patch
Does this break sound-juicer and is this expected behaviour of the element?
It doesn't do any harm to totem and sound-juicer. As discussed in #gstreamer this behaviour should be fine.
I checked it in seek 11 (Totem is doing weird stuff, unrelated; see gst-plugins/examples/seeking/seek 11 cdda://), and the timestamps just increment between tracks. Make sure to change timestamps as provided on data, too. Also, on track change, make sure to send a discont event since there's a time discontinuity. I'll try to work on this later. If you have some time, you can do it yourself. I'll apply that as part of your patch.
Created attachment 35725 [details] [review] update This patch stamps output buffers, too. This should be the intended behaviour, I think. Tested in seek 11 cdda://, works fine.
Created attachment 35728 [details] [review] update As noticed by Julian, the last track failed. Updated patch, with seeking fixed etc. Works fine in apps such as seek 11. Unfortunately, apps such as s-j and such relied on broken cdparanoia element behaviour so this breaks those apps. Therefore, we can apply this only for 0.9, or as a separate element.
Created attachment 36392 [details] [review] update This update fixes continous playback of a cd. If the is_track_switch-function returns true, the timestamp has to be fetched again, because it has to be relative to the src->cur_tracks begin point, and src->cur_track is changed if is_track_switch returns true.
Created attachment 45404 [details] [review] possible solution for 0.8 This one will use a track-mode, but only if the URI tells us so (so cdda://1 will play track 1, but cdda:// will play the whole CD).
Applied the above with small modifications.