GNOME Bugzilla – Bug 569781
[Mpegtsparse] drop of valid TS packets
Last modified: 2009-05-04 21:16:59 UTC
Please describe the problem: Wrong filtering while extracting a program from a MPTS. It seems than mpegtsparse is dropping valid packets. Seen on dvb-s stream (Freq: 11567MHz symbol rate: 22000kHz Polarity: Vertical) Steps to reproduce: 1. use the dvb-s stream (with coordonates given above). I can provide a file on demand. 2. check with vlc the given file is valid: $ vlc all.ts --program 9015 3. test program extration using mpegtsparse (not there is many bad crc): $ GST_DEBUG=mpegtsparse:2 gst-launch filesrc location=all.ts ! mpegtsparse program-numbers=9015 name=parse parse.program_9015 ! filesink location=9015.ts 4. check with vlc the resulting file: $ vlc 9015.ts 5. the result file cannot be read anymore with vlc Actual results: vlc is unable to play correctly the resulting file. Expected results: the resulting file should not contains more errors than before the processing. Does this happen every time? yes Other information: As I can see in the source code and in the logs, there is a crc calculation on packets which are not PSI tables which trigger a packet drop. I do not have patch available yet...
Created attachment 127544 [details] [review] proposed patch The bug is due to a bad PSI table management. The function mpegts_parse_is_psi tries to determine the nature of a TS packet using the payload_unit_start_indicator field (which is not possible since PES streams also set the PUSI). The proposed patch use another approch to send the TS packets to the correct pads: It inserts all the reserved PSI pids into each program->stream hashtable.
hello, any news about this bug ? did somebody has reproduce it ?
Thanks for the patch, for some reason I have just seen it. I am looking at the patch now, will give feedback when looked at.
Fixed differently: commit 179f5bb850d0df3841889d88e3ee7ee96cc914aa Author: Zaheer Abbas Merali <zaheer@localhost.localdomain> Date: Mon May 4 22:09:05 2009 +0100 mpegtsparse: Remember pids that are meant to be stream pids. Fixes #569781