more correct and simpler
[ffmpeg.git] / libavformat / mov.c
index 151bd60..d0a3157 100644 (file)
@@ -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;