@ -47,7 +47,8 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
AVIOContext pb ;
GetBitContext gb ;
int packing_scheme , has_payload_desc , has_packet_info , alen ,
has_marker_bit = flags & RTP_FLAG_MARKER ;
has_marker_bit = flags & RTP_FLAG_MARKER ,
keyframe ;
if ( qt - > remaining ) {
int num = qt - > pkt . size / qt - > bytes_per_frame ;
@ -79,8 +80,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
skip_bits ( & gb , 4 ) ; // version
if ( ( packing_scheme = get_bits ( & gb , 2 ) ) = = 0 )
return AVERROR_INVALIDDATA ;
if ( get_bits1 ( & gb ) )
flags | = RTP_FLAG_KEY ;
keyframe = get_bits1 ( & gb ) ;
has_payload_desc = get_bits1 ( & gb ) ;
has_packet_info = get_bits1 ( & gb ) ;
skip_bits ( & gb , 23 ) ; // reserved:7, cache payload info:1, payload ID:15
@ -196,7 +196,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
qt - > pkt . size = 0 ;
qt - > pkt . data = NULL ;
pkt - > flags = flags & RTP_FLAG_KEY ? AV_PKT_FLAG_KEY : 0 ;
pkt - > flags = keyframe ? AV_PKT_FLAG_KEY : 0 ;
pkt - > stream_index = st - > index ;
memset ( pkt - > data + pkt - > size , 0 , FF_INPUT_BUFFER_PADDING_SIZE ) ;
return 0 ;
@ -211,7 +211,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
if ( av_new_packet ( pkt , qt - > bytes_per_frame ) )
return AVERROR ( ENOMEM ) ;
memcpy ( pkt - > data , buf + avio_tell ( & pb ) , qt - > bytes_per_frame ) ;
pkt - > flags = flags & RTP_FLAG_KEY ? AV_PKT_FLAG_KEY : 0 ;
pkt - > flags = keyframe ? AV_PKT_FLAG_KEY : 0 ;
pkt - > stream_index = st - > index ;
if ( qt - > remaining > 0 ) {
av_freep ( & qt - > pkt . data ) ;