summaryrefslogtreecommitdiff
path: root/libavformat/vc1testenc.c
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2011-01-29 11:56:25 +0100
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2011-01-29 11:56:25 +0100
commit76c802e989b61423c1554cf204f96f70b3edb145 (patch)
treeb863fe49d4be9404f87be1b3fc29dd9d741431be /libavformat/vc1testenc.c
parent55fa97e215c40a1f7cdd2ad3ca4c098a3caa4c28 (diff)
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.
Diffstat (limited to 'libavformat/vc1testenc.c')
-rw-r--r--libavformat/vc1testenc.c5
1 files changed, 4 insertions, 1 deletions
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++;