@ -404,38 +404,26 @@ int ff_rtp_check_and_send_back_rr(RTPDemuxContext *s, URLContext *fd,
void ff_rtp_send_punch_packets ( URLContext * rtp_handle )
{
AVIOContext * pb ;
uint8_t * buf ;
int len ;
uint8_t buf [ RTP_MIN_PACKET_LENGTH ] , * ptr = buf ;
/* Send a small RTP packet */
if ( avio_open_dyn_buf ( & pb ) < 0 )
return ;
avio_w8 ( pb , ( RTP_VERSION < < 6 ) ) ;
avio_w8 ( pb , 0 ) ; /* Payload type */
avio_wb16 ( pb , 0 ) ; /* Seq */
avio_wb32 ( pb , 0 ) ; /* Timestamp */
avio_wb32 ( pb , 0 ) ; /* SSRC */
bytestream_put_byte ( & ptr , ( RTP_VERSION < < 6 ) ) ;
bytestream_put_byte ( & ptr , 0 ) ; /* Payload type */
bytestream_put_be16 ( & ptr , 0 ) ; /* Seq */
bytestream_put_be32 ( & ptr , 0 ) ; /* Timestamp */
bytestream_put_be32 ( & ptr , 0 ) ; /* SSRC */
len = avio_close_dyn_buf ( pb , & buf ) ;
if ( ( len > 0 ) & & buf )
ffurl_write ( rtp_handle , buf , len ) ;
av_free ( buf ) ;
ffurl_write ( rtp_handle , buf , ptr - buf ) ;
/* Send a minimal RTCP RR */
if ( avio_open_dyn_buf ( & pb ) < 0 )
return ;
ptr = buf ;
bytestream_put_byte ( & ptr , ( RTP_VERSION < < 6 ) ) ;
bytestream_put_byte ( & ptr , RTCP_RR ) ; /* receiver report */
bytestream_put_be16 ( & ptr , 1 ) ; /* length in words - 1 */
bytestream_put_be32 ( & ptr , 0 ) ; /* our own SSRC */
avio_w8 ( pb , ( RTP_VERSION < < 6 ) ) ;
avio_w8 ( pb , RTCP_RR ) ; /* receiver report */
avio_wb16 ( pb , 1 ) ; /* length in words - 1 */
avio_wb32 ( pb , 0 ) ; /* our own SSRC */
len = avio_close_dyn_buf ( pb , & buf ) ;
if ( ( len > 0 ) & & buf )
ffurl_write ( rtp_handle , buf , len ) ;
av_free ( buf ) ;
ffurl_write ( rtp_handle , buf , ptr - buf ) ;
}
static int find_missing_packets ( RTPDemuxContext * s , uint16_t * first_missing ,