Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linuxtv-softmpeg] Re: Demultiplex strangeness when playing VDR files



Hello Colin,

On 02/18/04 22:34, ac2crp@blueyonder.co.uk wrote:
I've tried to look into why softmpeg won't play VDR files.
Thank you for your initial analysis.

It looks as though the only place a problem could exist is in softmpeg_decoder_process_pes_data or is_pes_packet_start.
The problem seems to be the way vdr handles live tv and recording.

Here is a debug output of live tv:
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 1840
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 213
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048
softmpeg_decoder_process_pes_data: 2048

The function always gets nice packetized audio or video pes packets, ie. every time the function is called, it's the beginning of one audio or video pes packet.

Now playback:
softmpeg_decoder_process_pes_data: 6305
softmpeg_decoder_process_pes_data: 16174
softmpeg_decoder_process_pes_data: 7825
softmpeg_decoder_process_pes_data: 8677
softmpeg_decoder_process_pes_data: 58846
softmpeg_decoder_process_pes_data: 6353
softmpeg_decoder_process_pes_data: 6440
softmpeg_decoder_process_pes_data: 16311
softmpeg_decoder_process_pes_data: 6769
softmpeg_decoder_process_pes_data: 7712
softmpeg_decoder_process_pes_data: 14387
softmpeg_decoder_process_pes_data: 8761
softmpeg_decoder_process_pes_data: 6413
softmpeg_decoder_process_pes_data: 16912

It seems that multiple pes packets (regardless if it's audio or video) are written to the function at once. The video and audio pes functions cannot handle this. They expect the ES payload only, with the PES header stripped.

But here, only the first PES header is stripped, the rest is pushed down to the video and audio stuff. This is where the garbled start codes you have noticed come from.

I'll corfirm this tomorrow. The solution is to make the softmpeg_decoder_process_pes_data() function aware that multiple pes packets can be send at once. My fault!

Thanks,
Colin
CU
Michael.


--
Info: To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linuxtv-softmpeg" as subject.



Home | Main Index | Thread Index