Ticket #2911: 0001-avformat-rtmpproto-Added-handling-of-an-initial-RTMP.patch

File 0001-avformat-rtmpproto-Added-handling-of-an-initial-RTMP.patch, 1.3 KB (added by arkanis, 12 years ago)

Patch to handle an initial chunk size packet

  • libavformat/rtmpproto.c

    From ff1c93e55fff3e162e2599c1f61ca683f504439f Mon Sep 17 00:00:00 2001
    From: Stephan Soller <stephan.soller@helionweb.de>
    Date: Sun, 13 Apr 2014 01:06:22 +0200
    Subject: [PATCH] avformat/rtmpproto: Added handling of an initial RTMP chunk
     size packet.
    
    Fixes ticket #2911.
    ---
     libavformat/rtmpproto.c |   11 +++++++++++
     1 file changed, 11 insertions(+)
    
    diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
    index 9a80c2f..9c62164 100644
    a b static int read_connect(URLContext *s, RTMPContext *rt)  
    408408    if ((ret = ff_rtmp_packet_read(rt->stream, &pkt, rt->in_chunk_size,
    409409                                   &rt->prev_pkt[0], &rt->nb_prev_pkt[0])) < 0)
    410410        return ret;
     411   
     412    if (pkt.type == RTMP_PT_CHUNK_SIZE) {
     413        cp = pkt.data;
     414        rt->in_chunk_size = bytestream_get_be32(&cp);
     415       
     416        ff_rtmp_packet_destroy(&pkt);
     417        if ((ret = ff_rtmp_packet_read(rt->stream, &pkt, rt->in_chunk_size,
     418                                       &rt->prev_pkt[0], &rt->nb_prev_pkt[0])) < 0)
     419            return ret;
     420    }
     421   
    411422    cp = pkt.data;
    412423    bytestream2_init(&gbc, cp, pkt.size);
    413424    if (ff_amf_read_string(&gbc, command, sizeof(command), &stringlen)) {