gstreamer/gst/mpegtsmux/tsmux
Andoni Morales Alastruey 4668330bdc mpegtsmux: Initialize PES packet before getting the header size.
The PES header length is calculated before setting the dynamic flags, returning
a wrong value. Small frames that should be sent in a single TS packet are
spawned to a new packet because of that error. For audio streams where a single
frame can cope in one TS packet it introduces a huge overhead.

For a 100B packet, we prepare a TS packet with a payload of(100+9)B. Then, we
write the TS header using this value in tsmux_write_ts_header, and call
tsmux_stream_get_data(). The dynamic flags where not set yet and now
tsmux_stream_pes_header_length() returns 14B instead of 9B. The payload of the
TS packet is 114B, 5B more than what was calculated. 109B are sent in a first
packet and the remaining 5B are sent in another one.

Fixes bug #628548.
2010-09-04 15:01:30 +02:00
..
crc.h Add Fluendo MPEG-TS muxer and libtsmux to gst-plugins-bad. This is renamed to mpegtsmux to prevent conflicts. Also al... 2008-09-01 16:38:40 +00:00
Makefile.am Add Fluendo MPEG-TS muxer and libtsmux to gst-plugins-bad. This is renamed to mpegtsmux to prevent conflicts. Also al... 2008-09-01 16:38:40 +00:00
tsmux.c mpegtsmux: Initialize PES packet before getting the header size. 2010-09-04 15:01:30 +02:00
tsmux.h mpegtsmux: start pmt at 0x020 as suggested by Zaheer 2010-06-08 15:36:47 +02:00
tsmuxcommon.h mpegtsmux: add pat-interval and pmt-interval properties 2010-02-03 18:26:12 +00:00
tsmuxstream.c mpegtsmux: Initialize PES packet before getting the header size. 2010-09-04 15:01:30 +02:00
tsmuxstream.h mpegtsmux: Initialize PES packet before getting the header size. 2010-09-04 15:01:30 +02:00