|
|
@@ -627,16 +627,9 @@ ff_rm_parse_packet (AVFormatContext *s, ByteIOContext *pb, |
|
|
|
|
|
|
|
if (++(ast->sub_packet_cnt) < h) |
|
|
|
return -1; |
|
|
|
else { |
|
|
|
ast->sub_packet_cnt = 0; |
|
|
|
rm->audio_stream_num = st->index; |
|
|
|
rm->audio_pkt_cnt = h * w / st->codec->block_align - 1; |
|
|
|
// Release first audio packet |
|
|
|
av_new_packet(pkt, st->codec->block_align); |
|
|
|
memcpy(pkt->data, ast->pkt.data, st->codec->block_align); //FIXME avoid this |
|
|
|
*timestamp = ast->audiotimestamp; |
|
|
|
*flags = 2; // Mark first packet as keyframe |
|
|
|
} |
|
|
|
rm->audio_pkt_cnt = h * w / st->codec->block_align; |
|
|
|
} else if (st->codec->codec_id == CODEC_ID_AAC) { |
|
|
|
int x; |
|
|
|
rm->audio_stream_num = st->index; |
|
|
@@ -644,11 +637,10 @@ ff_rm_parse_packet (AVFormatContext *s, ByteIOContext *pb, |
|
|
|
if (ast->sub_packet_cnt) { |
|
|
|
for (x = 0; x < ast->sub_packet_cnt; x++) |
|
|
|
ast->sub_packet_lengths[x] = get_be16(pb); |
|
|
|
// Release first audio packet |
|
|
|
rm->audio_pkt_cnt = ast->sub_packet_cnt - 1; |
|
|
|
av_get_packet(pb, pkt, ast->sub_packet_lengths[0]); |
|
|
|
*flags = 2; // Mark first packet as keyframe |
|
|
|
} |
|
|
|
rm->audio_pkt_cnt = ast->sub_packet_cnt; |
|
|
|
ast->audiotimestamp = *timestamp; |
|
|
|
} else |
|
|
|
return -1; |
|
|
|
} else { |
|
|
|
av_get_packet(pb, pkt, len); |
|
|
|
rm_ac3_swap_bytes(st, pkt); |
|
|
|