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:
parent
0d9435048c
commit
3e65134326
@ -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);
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user