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