fix dvcprohd 720p channels 3 and 4 audio timestamps, patch by Brian Brice, bbrice...
authorBrian Brice <bbrice@gmail.com>
Fri, 19 Jun 2009 21:36:21 +0000 (21:36 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Fri, 19 Jun 2009 21:36:21 +0000 (21:36 +0000)
Originally committed as revision 19228 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/dv.c

index 78e3b38..a75b4a6 100644 (file)
@@ -336,15 +336,18 @@ int dv_produce_packet(DVDemuxContext *c, AVPacket *pkt,
        ppcm[i] = c->audio_buf[i];
     }
     dv_extract_audio(buf, ppcm, c->sys);
        ppcm[i] = c->audio_buf[i];
     }
     dv_extract_audio(buf, ppcm, c->sys);
-    c->abytes += size;
 
     /* We work with 720p frames split in half, thus even frames have
      * channels 0,1 and odd 2,3. */
     if (c->sys->height == 720) {
 
     /* We work with 720p frames split in half, thus even frames have
      * channels 0,1 and odd 2,3. */
     if (c->sys->height == 720) {
-        if (buf[1] & 0x0C)
+        if (buf[1] & 0x0C) {
             c->audio_pkt[2].size = c->audio_pkt[3].size = 0;
             c->audio_pkt[2].size = c->audio_pkt[3].size = 0;
-        else
+        } else {
             c->audio_pkt[0].size = c->audio_pkt[1].size = 0;
             c->audio_pkt[0].size = c->audio_pkt[1].size = 0;
+            c->abytes += size;
+        }
+    } else {
+        c->abytes += size;
     }
 
     /* Now it's time to return video packet */
     }
 
     /* Now it's time to return video packet */