mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-01 05:39:51 +00:00
tsdemux: more correctly determine expected PES packet payload size
... particularly considering that packet_length == 0 is possible.
This commit is contained in:
parent
7b5340f3be
commit
76aedf5641
1 changed files with 10 additions and 2 deletions
|
@ -1300,8 +1300,16 @@ gst_ts_demux_parse_pes_header (GstTSDemux * demux, TSDemuxStream * stream,
|
|||
/* Remove PES headers */
|
||||
GST_DEBUG ("Moving data forward by %d bytes (packet_size:%d, have:%d)",
|
||||
header.header_size, header.packet_length, length);
|
||||
g_assert (header.packet_length >= header.header_size);
|
||||
stream->expected_size = header.packet_length - header.header_size;
|
||||
stream->expected_size = header.packet_length;
|
||||
if (stream->expected_size) {
|
||||
if (G_LIKELY (stream->expected_size > header.header_size)) {
|
||||
stream->expected_size -= header.header_size;
|
||||
} else {
|
||||
/* next packet will have to complete this one */
|
||||
GST_ERROR ("invalid header and packet size combination");
|
||||
stream->expected_size = 0;
|
||||
}
|
||||
}
|
||||
data += header.header_size;
|
||||
length -= header.header_size;
|
||||
|
||||
|
|
Loading…
Reference in a new issue