GNOME Bugzilla – Bug 635917
[mpegtsparse] don't parse and post all the EIT events.
Last modified: 2011-05-26 07:50:45 UTC
Created attachment 175355 [details] [review] Patch file for mpegtsparse.c, based on the current git sources. In the "mpegts_parse_is_psi" function, when the new transport stream packet is comming, the value of the table_id is read in a wrong way : if (packet->payload_unit_start_indicator) { table_id = *(packet->data); ... } At this point the table_id value can be the value of the pointer field, not the table_id value. For this reason some of the sections of the EIT tables will not be parsed. The test case for parsing the EIT tables was done by using the dvbsnoop utility, in DVB-S transmission, for the present & following events, actual transport stream ( Table_ID = 0X4e ). szap -n 970 >> /dev/null& # tune on the channels dvbsnoop 0x12 -crc -nph -pd 3 -f 0x4e -m 0xff | grep --line-buffered Event_ID | tee eit-dump (wait a while until the same events will be received again) sort -u eit-dump | wc versus: gst-launch -m dvbsrc pids=0x12 polarity="v" frequency=12551000 symbol-rate=22000 diseqc-source=0 inversion=2 ! mpegtsparse | grep "actual-transport-stream=(boolean)true, present-following=(boolean)true" | tee eit-dump1 (wait a while until the same events will be received again) grep -w -o "event-[0-9]*" eit-dump1 | sort -u | wc -w The booth test case should report the same number of EIT events. I had attached the patch file based on the gst-plugins-bad git.
commit d8fd874f5290e4911437120057ee885cdb68b4af Author: Gabriel Strimtu <gabrielstrimtu@yahoo.com> Date: Thu May 26 09:46:58 2011 +0200 mpegtsparse: Fix parsing of PSI table IDs Fixes bug #635917.