wtvenc: output third video pts in timestamp chunk (this is what Microsoft Windows Media Center expects)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Peter Ross 2012-11-07 16:52:12 +11:00 committed by Michael Niedermayer
parent 0d9435048c
commit 3e65134326
2 changed files with 2 additions and 7 deletions

View 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);

View 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