[FFmpeg-cvslog] Merge commit 'bc2a32969eb4db17677971def5ad5b936d9d1648'

Clément Bœsch git at videolan.org
Tue Jun 21 22:26:49 CEST 2016


ffmpeg | branch: master | Clément Bœsch <u at pkh.me> | Tue Jun 21 22:26:44 2016 +0200| [00e122bc0f2a4d867797f593770f9902f275b864] | committer: Clément Bœsch

Merge commit 'bc2a32969eb4db17677971def5ad5b936d9d1648'

* commit 'bc2a32969eb4db17677971def5ad5b936d9d1648':
  rtsp: Parse SSRC attributes in the SDP

Merged-by: Clément Bœsch <u at pkh.me>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=00e122bc0f2a4d867797f593770f9902f275b864
---

 libavformat/rtsp.c |    6 ++++++
 libavformat/rtsp.h |    3 +++
 2 files changed, 9 insertions(+)

diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 6888a2b..6f0d2c5 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -573,6 +573,10 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
                 s1->seen_fmtp = 1;
                 av_strlcpy(s1->delayed_fmtp, buf, sizeof(s1->delayed_fmtp));
             }
+        } else if (av_strstart(p, "ssrc:", &p) && s->nb_streams > 0) {
+            rtsp_st = rt->rtsp_streams[rt->nb_rtsp_streams - 1];
+            get_word(buf1, sizeof(buf1), &p);
+            rtsp_st->ssrc = strtoll(buf1, NULL, 10);
         } else if (av_strstart(p, "range:", &p)) {
             int64_t start, end;
 
@@ -831,6 +835,8 @@ int ff_rtsp_open_transport_ctx(AVFormatContext *s, RTSPStream *rtsp_st)
     if (!rtsp_st->transport_priv) {
          return AVERROR(ENOMEM);
     } else if (CONFIG_RTPDEC && rt->transport == RTSP_TRANSPORT_RTP) {
+        RTPDemuxContext *rtpctx = rtsp_st->transport_priv;
+        rtpctx->ssrc = rtsp_st->ssrc;
         if (rtsp_st->dynamic_handler) {
             ff_rtp_parse_set_dynamic_protocol(rtsp_st->transport_priv,
                                               rtsp_st->dynamic_protocol_context,
diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h
index bd837b5..852fd67 100644
--- a/libavformat/rtsp.h
+++ b/libavformat/rtsp.h
@@ -466,6 +466,9 @@ typedef struct RTSPStream {
     /** Enable sending RTCP feedback messages according to RFC 4585 */
     int feedback;
 
+    /** SSRC for this stream, to allow identifying RTCP packets before the first RTP packet */
+    uint32_t ssrc;
+
     char crypto_suite[40];
     char crypto_params[100];
 } RTSPStream;


======================================================================




More information about the ffmpeg-cvslog mailing list