mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-23 06:26:23 +00:00
mpegtsmux: set non-0 payload length in PES header if video ES packet is small enough
https://bugzilla.gnome.org/show_bug.cgi?id=748507
This commit is contained in:
parent
f9ef150652
commit
a274299f48
1 changed files with 10 additions and 5 deletions
|
@ -411,11 +411,6 @@ tsmux_stream_initialize_pes_packet (TsMuxStream * stream)
|
|||
stream->cur_pes_payload_size = stream->pes_payload_size;
|
||||
tsmux_stream_find_pts_dts_within (stream, stream->cur_pes_payload_size,
|
||||
&stream->pts, &stream->dts);
|
||||
} else if (stream->is_video_stream) {
|
||||
/* Unbounded for video streams */
|
||||
stream->cur_pes_payload_size = 0;
|
||||
tsmux_stream_find_pts_dts_within (stream, stream->bytes_avail, &stream->pts,
|
||||
&stream->dts);
|
||||
} else {
|
||||
/* Output a PES packet of all currently available bytes otherwise */
|
||||
stream->cur_pes_payload_size = stream->bytes_avail;
|
||||
|
@ -443,6 +438,16 @@ tsmux_stream_initialize_pes_packet (TsMuxStream * stream)
|
|||
}
|
||||
}
|
||||
|
||||
if (stream->is_video_stream) {
|
||||
guint8 hdr_len;
|
||||
|
||||
hdr_len = tsmux_stream_pes_header_length (stream);
|
||||
|
||||
/* Unbounded for video streams if pes packet length is over 16 bit */
|
||||
if ((stream->cur_pes_payload_size + hdr_len - 6) > G_MAXUINT16)
|
||||
stream->cur_pes_payload_size = 0;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue