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:

committed by
Michael Niedermayer

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);
|
||||
|
Reference in New Issue
Block a user