From 98251f015844da1311ea4d3c18b5c8a1c51e1cf1 Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Sat, 26 Jan 2019 21:01:08 -0500 Subject: [PATCH] rtph264depay: Fix handling or marker on STAP-A Only forward the marker for the last NAL of the STAP-A. Otherwise each NAL endup being assumed to be a full frame which may break rendering. Fixes 557 --- gst/rtp/gstrtph264depay.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gst/rtp/gstrtph264depay.c b/gst/rtp/gstrtph264depay.c index 1712bee0a1..4b3be6ac42 100644 --- a/gst/rtp/gstrtph264depay.c +++ b/gst/rtp/gstrtph264depay.c @@ -1103,6 +1103,8 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) /* STAP-A Single-time aggregation packet 5.7.1 */ while (payload_len > 2) { + gboolean last = FALSE; + /* 1 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -1136,8 +1138,11 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) gst_rtp_copy_video_meta (rtph264depay, outbuf, rtp->buffer); + if (payload_len - nalu_size <= 2) + last = TRUE; + gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp, - marker); + marker && last); payload += nalu_size; payload_len -= nalu_size;