mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-23 14:36:24 +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;
|
stream->cur_pes_payload_size = stream->pes_payload_size;
|
||||||
tsmux_stream_find_pts_dts_within (stream, stream->cur_pes_payload_size,
|
tsmux_stream_find_pts_dts_within (stream, stream->cur_pes_payload_size,
|
||||||
&stream->pts, &stream->dts);
|
&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 {
|
} else {
|
||||||
/* Output a PES packet of all currently available bytes otherwise */
|
/* Output a PES packet of all currently available bytes otherwise */
|
||||||
stream->cur_pes_payload_size = stream->bytes_avail;
|
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;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue