diff --git a/contrib/src/ffmpeg/0001-rtpdec-add-a-trace-when-jitter-buffer-is-full.patch b/contrib/src/ffmpeg/0001-rtpdec-add-a-trace-when-jitter-buffer-is-full.patch new file mode 100644 index 0000000000000000000000000000000000000000..5f85261e675dad472ee9c161bcd40b15291c09f0 --- /dev/null +++ b/contrib/src/ffmpeg/0001-rtpdec-add-a-trace-when-jitter-buffer-is-full.patch @@ -0,0 +1,35 @@ +From ff7f6ea9db2a77d74f7e68a716f53ba1f3f85017 Mon Sep 17 00:00:00 2001 +From: Eloi BAIL <eloi.bail@savoirfairelinux.com> +Date: Tue, 15 Sep 2015 11:38:21 -0400 +Subject: [PATCH] rtpdec: add a trace when jitter buffer is full +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This commit adds a warning trace when jitter buffer +is full. It helps to understand leading decoding issues. + +Signed-off-by: Eloi BAIL <eloi.bail@savoirfairelinux.com> +Signed-off-by: Martin Storsjö <martin@martin.st> +--- + libavformat/rtpdec.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c +index 0efcdb9..5706f16 100644 +--- a/libavformat/rtpdec.c ++++ b/libavformat/rtpdec.c +@@ -804,8 +804,11 @@ static int rtp_parse_one_packet(RTPDemuxContext *s, AVPacket *pkt, + *bufptr = NULL; + /* Return the first enqueued packet if the queue is full, + * even if we're missing something */ +- if (s->queue_len >= s->queue_size) ++ if (s->queue_len >= s->queue_size) { ++ av_log(s->st ? s->st->codec : NULL, AV_LOG_WARNING, ++ "jitter buffer full\n"); + return rtp_parse_queued_packet(s, pkt); ++ } + return -1; + } + } +2.1.4 diff --git a/contrib/src/ffmpeg/0002-rtpdec-inform-jitter-buffer-size.patch b/contrib/src/ffmpeg/0002-rtpdec-inform-jitter-buffer-size.patch new file mode 100644 index 0000000000000000000000000000000000000000..e2d089b14f03eb27f23cdb82508271c6396585d9 --- /dev/null +++ b/contrib/src/ffmpeg/0002-rtpdec-inform-jitter-buffer-size.patch @@ -0,0 +1,33 @@ +From d555bd69e792e42d94bd909b30d9bfef01db4e25 Mon Sep 17 00:00:00 2001 +From: Eloi BAIL <eloi.bail@savoirfairelinux.com> +Date: Tue, 15 Sep 2015 11:38:22 -0400 +Subject: [PATCH] rtpdec: inform jitter buffer size +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This commit print as AV_LOG_VERBOSE the jitter buffer +size. It might be the default value or the value set by application. + +Signed-off-by: Eloi BAIL <eloi.bail@savoirfairelinux.com> +Signed-off-by: Martin Storsjö <martin@martin.st> +--- + libavformat/rtpdec.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c +index 5706f16..34c77f8 100644 +--- a/libavformat/rtpdec.c ++++ b/libavformat/rtpdec.c +@@ -513,6 +513,10 @@ RTPDemuxContext *ff_rtp_parse_open(AVFormatContext *s1, AVStream *st, + s->ic = s1; + s->st = st; + s->queue_size = queue_size; ++ ++ av_log(s->st ? s->st->codec : NULL, AV_LOG_VERBOSE, ++ "setting jitter buffer size to %d\n", s->queue_size); ++ + rtp_init_statistics(&s->statistics, 0); + if (st) { + switch (st->codec->codec_id) { +2.1.4 diff --git a/contrib/src/ffmpeg/0003-rtsp-warning-when-max_delay-reached.patch b/contrib/src/ffmpeg/0003-rtsp-warning-when-max_delay-reached.patch new file mode 100644 index 0000000000000000000000000000000000000000..7d32a8f249607bc30ecacd0bcf2a4c75a6aeb251 --- /dev/null +++ b/contrib/src/ffmpeg/0003-rtsp-warning-when-max_delay-reached.patch @@ -0,0 +1,32 @@ +From 1ec611a10228945d2ec8a9cf6c5531dee6b7ee56 Mon Sep 17 00:00:00 2001 +From: Eloi BAIL <eloi.bail@savoirfairelinux.com> +Date: Tue, 15 Sep 2015 11:38:23 -0400 +Subject: [PATCH] rtsp: warning when max_delay reached +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +packets are queued due to packet reordering until the queue reach its +maximal size or max delay is reached. +This commit adds a warning trace when max delay is reached. + +Signed-off-by: Eloi BAIL <eloi.bail@savoirfairelinux.com> +Signed-off-by: Martin Storsjö <martin@martin.st> +--- + libavformat/rtsp.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c +index 90a6b75..d2c99ea 100644 +--- a/libavformat/rtsp.c ++++ b/libavformat/rtsp.c +@@ -2112,6 +2112,8 @@ redo: + } + if (len == AVERROR(EAGAIN) && first_queue_st && + rt->transport == RTSP_TRANSPORT_RTP) { ++ av_log(s, AV_LOG_WARNING, ++ "max delay reached. need to consume packet\n"); + rtsp_st = first_queue_st; + ret = ff_rtp_parse_packet(rtsp_st->transport_priv, pkt, NULL, 0); + goto end; +2.1.4 diff --git a/contrib/src/ffmpeg/rules.mak b/contrib/src/ffmpeg/rules.mak index a37698175a010822ce23f592c0480cfaa6e757a1..fc8edde375058a7d800497e8c2ccb722919621ff 100644 --- a/contrib/src/ffmpeg/rules.mak +++ b/contrib/src/ffmpeg/rules.mak @@ -122,6 +122,9 @@ ffmpeg: ffmpeg-$(FFMPEG_HASH).tar.xz .sum-ffmpeg mkdir -p $@-$(FFMPEG_HASH) (cd $@-$(FFMPEG_HASH) && tar xv --strip-components=1 -f ../$<) $(UPDATE_AUTOCONFIG) + $(APPLY) $(SRC)/ffmpeg/0001-rtpdec-add-a-trace-when-jitter-buffer-is-full.patch + $(APPLY) $(SRC)/ffmpeg/0002-rtpdec-inform-jitter-buffer-size.patch + $(APPLY) $(SRC)/ffmpeg/0003-rtsp-warning-when-max_delay-reached.patch $(MOVE) .ffmpeg: ffmpeg