From 76c802e989b61423c1554cf204f96f70b3edb145 Mon Sep 17 00:00:00 2001 From: Reimar Döffinger Date: Sat, 29 Jan 2011 11:56:25 +0100 Subject: VC1testenc: convert pts values to correct time-base. VC1 test container always uses time-base 1 ms, so we must convert from whatever time-base the application gave us to that, otherwise the video will play at ridiculous speeds. It would be possible to signal that a container supports only one time-base and have code in a layer above do the conversion, but for a single format this seems over-engineered. --- libavformat/vc1testenc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libavformat/vc1testenc.c') diff --git a/libavformat/vc1testenc.c b/libavformat/vc1testenc.c index 507b332a86..06431dae17 100644 --- a/libavformat/vc1testenc.c +++ b/libavformat/vc1testenc.c @@ -55,11 +55,14 @@ static int vc1test_write_packet(AVFormatContext *s, AVPacket *pkt) { RCVContext *ctx = s->priv_data; ByteIOContext *pb = s->pb; + uint32_t pts = av_rescale(pkt->pts, + 1000 * (uint64_t)s->streams[0]->time_base.num, + s->streams[0]->time_base.den); if (!pkt->size) return 0; put_le32(pb, pkt->size | ((pkt->flags & AV_PKT_FLAG_KEY) ? 0x80000000 : 0)); - put_le32(pb, pkt->pts); + put_le32(pb, pts); put_buffer(pb, pkt->data, pkt->size); put_flush_packet(pb); ctx->frames++; -- cgit v1.2.3