[FFmpeg-devel] [PATCH] cdxl: fix duration

Piotr Bandurski ami_stuff at o2.pl
Mon Dec 17 20:42:49 CET 2012


Hi,

> > @@ -129,6 +132,8 @@ static int cdxl_read_packet(AVFormatContext *s, AVPacket *pkt)
> > audio_size = AV_RB16(&cdxl->header[22]);
> > image_size = FFALIGN(width, 16) * height * cdxl->header[19] / 8;
> > video_size = palette_size + image_size;
> > + 
> > + frames = cdxl->filesize / (audio_size + video_size);
> 
> This seems kind of error prone to me. It doesn't account for things like header, palette
> size, and such, I think.

Maybe, but it seems to work ok on the files I've tested, so if there are some errors then not big enough
to be noticable in the final duration, but if it's possible to make a better calculation for number of
frames then please suggest a code I could use and I will do so.

> > @@ -175,6 +180,10 @@ static int cdxl_read_packet(AVFormatContext *s, AVPacket *pkt)
> > st->codec->codec_id = AV_CODEC_ID_CDXL;
> > st->codec->width = width;
> > st->codec->height = height;
> > + if(cdxl->framerate)
> > + st->duration = frames;
> > + else
> > + st->duration = frames * audio_size;
> 
> Needs to be properly indented.

Thanks, fixed.

Regards


More information about the ffmpeg-devel mailing list