|
|
|
@@ -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); |
|
|
|
|