diff rtmppkt.c @ 5297:53688cb639b0 libavformat

Support more than 64 channels in RTMP input
author kostya
date Sun, 18 Oct 2009 07:01:06 +0000
parents a280af9ae028
children a00cc1aac80d
line wrap: on
line diff
--- a/rtmppkt.c	Sun Oct 18 06:58:00 2009 +0000
+++ b/rtmppkt.c	Sun Oct 18 07:01:06 2009 +0000
@@ -81,6 +81,12 @@
         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;