[vlc-devel] [PATCH] ts: fix applying pcr offset in PCRCheckDTS()

Francois Cartegnie fcvlcdev at free.fr
Mon Feb 29 11:18:49 CET 2016


Le 29/02/2016 09:35, Petri Hintukainen a écrit :
>>> +        if( i_dts > 0 && i_dts <= i_pcr ) {
>>>              msg_Err( p_demux, "send queued data for pid %d: DTS
>>> %"PRId64" >= PCR %"PRId64"\n", p_pid->i_pid, i_dts, i_pcr);
>>>              ParsePESDataChain( p_demux, p_pid );
>>> +        } else if( i_pts > 0 && i_pts <= i_pcr ) {
>>> +            msg_Err( p_demux, "send queued data for pid %d: PTS
>>> %"PRId64" >= PCR %"PRId64"\n", p_pid->i_pid, i_pts, i_pcr);
>>> +            ParsePESDataChain( p_demux, p_pid );
>>>          }
>>>      }
>>>  }
>>>
>>
>> Sorry, but It seems that logging was a debugging left-off.
> 
> No, it's intentional.
> 
> This code can potentially break lot of streams. Logging makes it easier
> to find and fix those.

That's the problem. I've ran into random DVB regressions showing that
debug code, which I can't reproduce at will.
Waiting now to hit those since the offset on invalid dts fix.

> This code path should not be triggered in "normal" streams. It is inten
> ded to handle sparse video streams, where last video frame is left
> hanging in the demuxer before next video frame starts.

And that's probably not the best place/way to fix it.
If you have a reproduceable case without BD drive (ts dump), then I
could have a look at it.

Francois


More information about the vlc-devel mailing list