[vlc-devel] [PATCH] speex: Fix DecodeRtpSpeexPacket function PTS handling error
changyp6 at gmail.com
Wed Jul 29 12:48:31 CEST 2015
Thank you for reviewing my patch.
Please see my reply in blue below.
On Wed, Jul 29, 2015 at 5:01 PM, Rémi Denis-Courmont <remi at remlab.net>
> Le 2015-07-28 21:55, Yupeng Chang a écrit :
>> at line 708, the orginal code is
>> if ( !date_Get( &p_sys->end_date ) )
>> date_Set( &p_sys->end_date, p_speex_bit_block->i_dts );
>> This is not correct.
>> When end_date is 0, the first packet's PTS will be set to end_date,
>> after RTCP sync,
>> the packet's PTS/DTS will be much different than the first packet's
>> if the end_date is not updated, decoder will always report error message
> I think this code was copied from the non-RTP version above. I think you
> right that it will break if the first RTCP SR compound is received after
> first RTP packet (or if NTP/RTP time correlation is modified later).
> In my opinion, Speex over RTP should not be treated as a codec of its own
> anyway. RTP depayloading and RTCP processing belongs in the demuxer.
>> After I remove if ( !date_Get( &p_sys->end_date ) ), speex RTP playing
>> back works perfect with VLC.
> That would probably work as a stop-gap solution. But then I guess you
> remove the date_Increment() call. In fact, you should probably remove
> date_*() calls completely and just copy the i_pts value from input block
> output block.
OK, I'll remove date_*() calls and make a new patch.
> Ideally, the RTP processing would be moved out of the codec plugin into
> RTP plugin, though. Are you using live555?
I haven't studied VLC source code, so I'm lack of some architecture
knowledge of some plugins.
I think I can refine my patch and give a quick fix on this obvious bug.
I implemented my own RTSP server, and I use VLC as the standard client
player to test my RTSP server.
So, I don't use live555 library.
> Rémi Denis-Courmont
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the vlc-devel