Commit bd9f1426 authored by Éloi Bail's avatar Éloi Bail Committed by gerrit2

contrib/libav: add rtpdec traces

This patchset adds information about jitter buffer used in rtpdec.
The first patch prints as warning when jitter buffer is full.
The second patch prints as verbose jitter buffer size set by default in
libav headers or by application.
The third patch prints as waring when max delay on jitter buffer is
reached

Those traces are helpful to know the origin of decoding issues.
Indeed a jitter buffer full or a max delay reached will lead to packet
reordering failure and then to video decoding failure.

Issue: #80483
Change-Id: I1351e9b607fd2ffa1223209389cfdb6162c9c93b
parent 38e050c4
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 1/3] 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
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 2/3] 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
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 3/3] 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
......@@ -182,6 +182,9 @@ libav: libav-$(LIBAV_HASH).tar.xz .sum-libav
(cd $@-$(LIBAV_HASH) && tar xv --strip-components=1 -f ../$<)
$(UPDATE_AUTOCONFIG)
$(APPLY) $(SRC)/libav/osx.patch
$(APPLY) $(SRC)/libav/0001-rtpdec-add-a-trace-when-jitter-buffer-is-full.patch
$(APPLY) $(SRC)/libav/0002-rtpdec-inform-jitter-buffer-size.patch
$(APPLY) $(SRC)/libav/0003-rtsp-warning-when-max_delay-reached.patch
$(MOVE)
.libav: libav
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment