From f16aa0be149c422a99a5350b061afe00d66a5519 Mon Sep 17 00:00:00 2001 From: Joe Palmer Date: Sun, 27 Jan 2019 13:33:07 +0000 Subject: [PATCH] Backported rtph264depay STAP-A marker handling fix https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/merge_requests /97 --- gst/rtp/gstrtph264depay.c | 7 ++++++- gst/rtp/gstrtph265depay.c | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gst/rtp/gstrtph264depay.c b/gst/rtp/gstrtph264depay.c index 6ce38205ca..c4a3f53dea 100644 --- a/gst/rtp/gstrtph264depay.c +++ b/gst/rtp/gstrtph264depay.c @@ -1074,6 +1074,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 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -1107,8 +1109,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; diff --git a/gst/rtp/gstrtph265depay.c b/gst/rtp/gstrtph265depay.c index 9b53dfd662..ac20a1063f 100644 --- a/gst/rtp/gstrtph265depay.c +++ b/gst/rtp/gstrtph265depay.c @@ -1331,6 +1331,7 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) #endif while (payload_len > 2) { + gboolean last = FALSE; nalu_size = (payload[0] << 8) | payload[1]; @@ -1357,8 +1358,11 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) gst_rtp_copy_video_meta (rtph265depay, outbuf, rtp->buffer); + if (payload_len - nalu_size <= 2) + last = TRUE; + gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf, timestamp, - marker); + marker && last); payload += nalu_size; payload_len -= nalu_size;