]> granicus.if.org Git - handbrake/commit
handle TS streams that have no PCRs better
authorjstebbins <jstebbins.hb@gmail.com>
Mon, 26 Sep 2011 20:48:11 +0000 (20:48 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Mon, 26 Sep 2011 20:48:11 +0000 (20:48 +0000)
commit18591273b5278c8b9f2a0ab60e71dcf789bffd1f
tree222b3ad74c1247409cd5413fd47e20912fd79709
parent070be6a0fd2bdcf4c60a207c79e10d0451e9be6a
handle TS streams that have no PCRs better

For TS streams that don't have PCRs, we substitute the DTS timestamp
from the video track (or PTS if we don't see DTS).  But these can bounce
around or be wider spaced in the stream that PCRs are meant to be.  So I
have added a test to see if the timestamp looks like a discontinuity.
Then I only pass the timestamp as a PCR if there appears to be a
discontinuity.  This prevents a lot of scr_offset thrashing.

I have also fixed an error in our scr_offset processing.  It is rarely
triggered and it's effects are so minor with well behaved streams that
it would be completely unnoticed.  But with the test stream I was using,
it caused a factor of 10 times more "audio went backwards" errors.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4254 b64f7644-9d1e-0410-96f1-a4d463321fa5
libhb/reader.c
libhb/stream.c