diff options
author | Martin Storsjö <martin@martin.st> | 2013-10-03 07:44:51 +0200 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2013-10-04 09:25:04 +0300 |
commit | a6b361325f2bfc8d9d4e5f761d6c1a07b209c4fb (patch) | |
tree | c0018d55f624dbca6fba08adb48c186fbd4dc14f /libavformat | |
parent | b2bed9325dbd6be0da1d91ffed3f513c40274fd2 (diff) | |
download | ffmpeg-a6b361325f2bfc8d9d4e5f761d6c1a07b209c4fb.tar.gz |
rtmpproto: Print the error code string if there's no description
On (certain streams/setups at least on) Red5, the description string
actually is present, but empty. Therefore, first try loading the
description, but if not found or empty, load the code string instead.
The code string is quite understandable in most cases anyway (like
"NetStream.Play.StreamNotFound").
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/rtmpproto.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c index 91f9b1ca6c..52dc45f752 100644 --- a/libavformat/rtmpproto.c +++ b/libavformat/rtmpproto.c @@ -2018,8 +2018,12 @@ static int handle_invoke_status(URLContext *s, RTMPPacket *pkt) t = ff_amf_get_field_value(ptr, data_end, "level", tmpstr, sizeof(tmpstr)); if (!t && !strcmp(tmpstr, "error")) { - if (!ff_amf_get_field_value(ptr, data_end, - "description", tmpstr, sizeof(tmpstr))) + t = ff_amf_get_field_value(ptr, data_end, + "description", tmpstr, sizeof(tmpstr)); + if (t || !tmpstr[0]) + t = ff_amf_get_field_value(ptr, data_end, "code", + tmpstr, sizeof(tmpstr)); + if (!t) av_log(s, AV_LOG_ERROR, "Server error: %s\n", tmpstr); return -1; } |