|
|
|
@@ -7147,6 +7147,19 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt) |
|
|
|
} |
|
|
|
return ret; |
|
|
|
} |
|
|
|
#if CONFIG_DV_DEMUXER |
|
|
|
if (mov->dv_demux && sc->dv_audio_container) { |
|
|
|
AVBufferRef *buf = pkt->buf; |
|
|
|
ret = avpriv_dv_produce_packet(mov->dv_demux, pkt, pkt->data, pkt->size, pkt->pos); |
|
|
|
pkt->buf = buf; |
|
|
|
av_packet_unref(pkt); |
|
|
|
if (ret < 0) |
|
|
|
return ret; |
|
|
|
ret = avpriv_dv_get_packet(mov->dv_demux, pkt); |
|
|
|
if (ret < 0) |
|
|
|
return ret; |
|
|
|
} |
|
|
|
#endif |
|
|
|
if (sc->has_palette) { |
|
|
|
uint8_t *pal; |
|
|
|
|
|
|
|
@@ -7158,16 +7171,6 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt) |
|
|
|
sc->has_palette = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
#if CONFIG_DV_DEMUXER |
|
|
|
if (mov->dv_demux && sc->dv_audio_container) { |
|
|
|
avpriv_dv_produce_packet(mov->dv_demux, pkt, pkt->data, pkt->size, pkt->pos); |
|
|
|
av_freep(&pkt->data); |
|
|
|
pkt->size = 0; |
|
|
|
ret = avpriv_dv_get_packet(mov->dv_demux, pkt); |
|
|
|
if (ret < 0) |
|
|
|
return ret; |
|
|
|
} |
|
|
|
#endif |
|
|
|
if (st->codecpar->codec_id == AV_CODEC_ID_MP3 && !st->need_parsing && pkt->size > 4) { |
|
|
|
if (ff_mpa_check_header(AV_RB32(pkt->data)) < 0) |
|
|
|
st->need_parsing = AVSTREAM_PARSE_FULL; |
|
|
|
|