[FFmpeg-cvslog] r20270 - in trunk/libavformat: rtmppkt.c rtmppkt.h
kostya
subversion
Sun Oct 18 09:01:06 CEST 2009
Author: kostya
Date: Sun Oct 18 09:01:06 2009
New Revision: 20270
Log:
Support more than 64 channels in RTMP input
Modified:
trunk/libavformat/rtmppkt.c
trunk/libavformat/rtmppkt.h
Modified: trunk/libavformat/rtmppkt.c
==============================================================================
--- trunk/libavformat/rtmppkt.c Sun Oct 18 08:58:00 2009 (r20269)
+++ trunk/libavformat/rtmppkt.c Sun Oct 18 09:01:06 2009 (r20270)
@@ -81,6 +81,12 @@ int ff_rtmp_packet_read(URLContext *h, R
return AVERROR(EIO);
channel_id = hdr & 0x3F;
+ if (channel_id < 2) { //special case for channel number >= 64
+ buf[1] = 0;
+ if (url_read_complete(h, buf, channel_id + 1) != channel_id + 1)
+ return AVERROR(EIO);
+ channel_id = AV_RL16(buf) + 64;
+ }
data_size = prev_pkt[channel_id].data_size;
type = prev_pkt[channel_id].type;
extra = prev_pkt[channel_id].extra;
Modified: trunk/libavformat/rtmppkt.h
==============================================================================
--- trunk/libavformat/rtmppkt.h Sun Oct 18 08:58:00 2009 (r20269)
+++ trunk/libavformat/rtmppkt.h Sun Oct 18 09:01:06 2009 (r20270)
@@ -25,7 +25,7 @@
#include "avformat.h"
/** maximum possible number of different RTMP channels */
-#define RTMP_CHANNELS 64
+#define RTMP_CHANNELS 65599
/**
* channels used to for RTMP packets with different purposes (i.e. data, network
More information about the ffmpeg-cvslog
mailing list