wtvenc: output third video pts in timestamp chunk (this is what Microsoft Windows...
authorPeter Ross <pross@xvid.org>
Wed, 7 Nov 2012 05:52:12 +0000 (16:52 +1100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 7 Nov 2012 12:45:01 +0000 (13:45 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/wtvenc.c
tests/ref/lavf/wtv

index e86bfeb..e078213 100644 (file)
@@ -84,7 +84,6 @@ typedef struct {
     WtvFile file[WTV_FILES];
     int64_t serial;         /** chunk serial number */
     int64_t last_chunk_pos; /** last chunk position */
-    int64_t frame_nb;
 
     WtvChunkEntry index[MAX_NB_INDEX];
     int nb_index;
@@ -374,19 +373,15 @@ static void write_timestamp(AVFormatContext *s, AVPacket *pkt)
     WtvContext  *wctx = s->priv_data;
     AVCodecContext *enc = s->streams[pkt->stream_index]->codec;
     int flag = 0;
-    int64_t frame_number = 0;
 
     if (enc->codec_type == AVMEDIA_TYPE_VIDEO) {
-        wctx->frame_nb++;
-        frame_number = wctx->frame_nb;
         flag = pkt->flags & AV_PKT_FLAG_KEY ? 1 : 0;
     }
     write_chunk_header(s, &ff_timestamp_guid, 56, 0x40000000 | (INDEX_BASE + pkt->stream_index));
     write_pad(pb, 8);
     avio_wl64(pb, pkt->pts == AV_NOPTS_VALUE ? -1 : pkt->pts);
     avio_wl64(pb, pkt->pts == AV_NOPTS_VALUE ? -1 : pkt->pts);
-
-    avio_wl64(pb, frame_number);
+    avio_wl64(pb, pkt->pts == AV_NOPTS_VALUE ? -1 : pkt->pts);
     avio_wl64(pb, 0);
     avio_wl64(pb, flag);
     avio_wl64(pb, 0);
index 6481160..0aaa01a 100644 (file)
@@ -1,3 +1,3 @@
-accf6a5131e2eba81c9aa9fa8f0eb69a *./tests/data/lavf/lavf.wtv
+dcb02f245dca4597704cbfc06e7eb543 *./tests/data/lavf/lavf.wtv
 413696 ./tests/data/lavf/lavf.wtv
 ./tests/data/lavf/lavf.wtv CRC=0xcc2dc628