diff --git a/libavformat/mov.c b/libavformat/mov.c index 151bd60ca2d46a059ed056ecdc4a06e6acbc42f0..d0a315757d77a022422586f3e0d01629d00eb902 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -1539,20 +1539,13 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt) sc->ffindex, sample->pos); return -1; } -#ifdef CONFIG_DV_DEMUXER - if (sc->dv_audio_container) { - dv_get_packet(mov->dv_demux, pkt); - dprintf(s, "dv audio pkt size %d\n", pkt->size); - } else { -#endif av_get_packet(s->pb, pkt, sample->size); #ifdef CONFIG_DV_DEMUXER - if (mov->dv_demux) { - void *pkt_destruct_func = pkt->destruct; + if (mov->dv_demux && sc->dv_audio_container) { dv_produce_packet(mov->dv_demux, pkt, pkt->data, pkt->size); - pkt->destruct = pkt_destruct_func; + av_free(pkt->data); + dv_get_packet(mov->dv_demux, pkt); } - } #endif pkt->stream_index = sc->ffindex; pkt->dts = sample->timestamp;