[gstreamer-bugs] [Bug 621027] New: mpegtsparse problem when parsing EIT and obtaining Transport Stream packet size

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Jun 8 14:04:14 PDT 2010


https://bugzilla.gnome.org/show_bug.cgi?id=621027
  GStreamer | gst-plugins-bad | 0.10.x

           Summary: mpegtsparse problem when parsing EIT and obtaining
                    Transport Stream packet size
    Classification: Desktop
           Product: GStreamer
           Version: 0.10.x
        OS/Version: All
            Status: UNCONFIRMED
          Severity: major
          Priority: Normal
         Component: gst-plugins-bad
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: napewnotrafi at gmail.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
      GNOME target: ---
     GNOME version: ---


Created an attachment (id=163109)
 --> (https://bugzilla.gnome.org/attachment.cgi?id=163109)
mpegtspacketizer.c

Hi,

I have found some bugs when using mpegtsparse with DVB-T.

mpegtsparse is not parsing EIT correctly. Some event informations may be lost
during parsing. This is because EIT with the same version number may be divided
into sections. In that case the packet containing EIT with higher section
number, but with the same version number will be discarded (see function
"mpegts_packetizer_parse_section_header").

mpegtsparse is not handling seeks correctly. In my case when I was playing
MPEG-TS from file and then trying to seek, the mpegtsparse is holding data (not
pushing it further). After seek the information about transport stream packet
size is lost. Then in function "mpegts_try_discover_packet_size" the packet
size is obtained again (when new data in arriving). If the packets at the
beginning of "gst_adapter" are invalid, the "mpegts_try_discover_packet_size"
would not be able to determine the packet size and the packets at the beginning
of the gst_adapter will not be discarded. Therefore all incoming data will be
queued in gst_adapter indefinitely.

I have fixed this issues and I am attaching my versions of "mpegtspacketizer.c"
and "mpegtspacketizer.h". I was using 10.18 version as code base. In those
files I have also added support for TDT tables, but it is already implemented
in 10.19 versions of those files.

My fixes are in functions:
mpegts_packetizer_stream_subtable_compare,
mpegts_packetizer_stream_subtable_new,
mpegts_packetizer_parse_section_header,
mpegts_try_discover_packet_size.
and they are quite simple.

Kind regards,
Karol

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.




More information about the Gstreamer-bugs mailing list