[FFmpeg-cvslog] VC1testenc: convert pts values to correct time-base.

Reimar Döffinger Reimar.Doeffinger
Sat Jan 29 13:08:22 CET 2011


On Sat, Jan 29, 2011 at 01:05:36PM +0100, Reimar D?ffinger wrote:
> On Sat, Jan 29, 2011 at 03:47:49AM -0800, Baptiste Coudurier wrote:
> > On 1/29/11 3:01 AM, Reimar D?ffinger wrote:
> > > ffmpeg | branch: master | Reimar D?ffinger <Reimar.Doeffinger at gmx.de> | Sat Jan 29 11:56:25 2011 +0100| [76c802e989b61423c1554cf204f96f70b3edb145] | committer: Reimar D?ffinger
> > > 
> > > 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.
> > > 
> > >> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=76c802e989b61423c1554cf204f96f70b3edb145
> > > ---
> > > 
> > >  libavformat/vc1testenc.c |    5 ++++-
> > >  1 files changed, 4 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/libavformat/vc1testenc.c b/libavformat/vc1testenc.c
> > > index 507b332..06431da 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);
> > 
> > This should not be needed if av_set_pts_info is correctly used in
> > write_header.
> 
> That means that an application must re-check the time-base after
> av_write_header, that is definitely _not_ documented, or am I
> missing something?

And I forgot to say that this just pushes the need for conversion
onto the libavformat user, I am not exactly fond of that.



More information about the ffmpeg-cvslog mailing list