flacparse: set both pts and dts so baseparse doesn't make up wrong dts after a seek
authorTim-Philipp Müller <tim@centricular.com>
Fri, 4 Sep 2015 18:34:41 +0000 (19:34 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Sun, 6 Sep 2015 15:36:44 +0000 (16:36 +0100)
commit0d88f271084cce54de38907a618368deed843ee8
tree62cb567bb93b07b755fe66b4cb4aea7d16abc456
parentd46c1df74542c3fc97b6a903db762c9aafed2187
flacparse: set both pts and dts so baseparse doesn't make up wrong dts after a seek

flac contains the sample offset in the frame header, so after a seek
without index flacparse will know the exact position we landed on and
timestamp buffers accordingly. It only set the pts though, which means
the baseparse-set dts which was set to the seek position prevails, and
since the seek was based on an estimate, there's likely a discrepancy
between where we wanted to land and where we did land, so from here on
that dts/pts difference will be maintained, with dts possibly multiple
seconds ahead of pts, which is just wrong. The easiest way to fix this
is to just set both pts and dts based on the sample offset, but perhaps
parsed audio should just not have dts set at all.

https://bugzilla.gnome.org/show_bug.cgi?id=752106
gst/audioparsers/gstflacparse.c