From: Samuel Pitoiset Date: Sat, 21 Jul 2012 10:59:49 +0000 (+0200) Subject: rtmp: Factorize the code by adding handle_server_bw X-Git-Tag: android-x86-4.4-r1~8529^2~1202 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=9b498148ca27fb59994522301da08afafb7d14fd;p=android-x86%2Fexternal-ffmpeg.git rtmp: Factorize the code by adding handle_server_bw Signed-off-by: Martin Storsjö --- diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c index e20aacbc6c..87bed0ee99 100644 --- a/libavformat/rtmpproto.c +++ b/libavformat/rtmpproto.c @@ -880,6 +880,21 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt) return 0; } +static int handle_server_bw(URLContext *s, RTMPPacket *pkt) +{ + RTMPContext *rt = s->priv_data; + + rt->server_bw = AV_RB32(pkt->data); + if (rt->server_bw <= 0) { + av_log(s, AV_LOG_ERROR, "Incorrect server bandwidth %d\n", + rt->server_bw); + return AVERROR(EINVAL); + } + av_log(s, AV_LOG_DEBUG, "Server bandwidth = %d\n", rt->server_bw); + + return 0; +} + /** * Parse received packet and possibly perform some action depending on * the packet contents. @@ -931,12 +946,8 @@ static int rtmp_parse_result(URLContext *s, RTMPContext *rt, RTMPPacket *pkt) rt->client_report_size = AV_RB32(pkt->data) >> 1; break; case RTMP_PT_SERVER_BW: - rt->server_bw = AV_RB32(pkt->data); - if (rt->server_bw <= 0) { - av_log(s, AV_LOG_ERROR, "Incorrect server bandwidth %d\n", rt->server_bw); - return AVERROR(EINVAL); - } - av_log(s, AV_LOG_DEBUG, "Server bandwidth = %d\n", rt->server_bw); + if ((ret = handle_server_bw(s, pkt)) < 0) + return ret; break; case RTMP_PT_INVOKE: //TODO: check for the messages sent for wrong state?