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
@ -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…
x
Reference in New Issue
Block a user