[Ffmpeg-devel] [PATCH] av_seek_binary() shouldn't call av_rescale() with c = 0

Andy Parkins andyparkins
Tue Jan 31 12:51:50 CET 2006


I've found a bug, but I'm not sure the my fix is the correct way to deal with 
the problem.

I'm seeking around near the end of an MPEGTS wrapped MPEG4 stream.  I was 
getting crashes and traced it to lavf/utils.c/av_seek_frame_binary(); which 
is calling av_rescale() even in situations that will lead to a floating point 
error.  I think the problem is that I'm seeking very small distances and 
there are probably few (or no) keyframes between the two positions (but then 
again, I don't entirely understand av_seek_frame_binary() :-))

The attached simple patch, checks for the invalid condition (ts_max==ts_min) 
and hence allows av_seek_frame_binary()  to fall back to a linear search 
rather than just crashing.


Dr Andy Parkins, M Eng (hons), AMIEE
andyparkins at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ffmpeg-patch-060131-2.diff
Type: text/x-diff
Size: 538 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20060131/442418ae/attachment.diff>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20060131/442418ae/attachment.pgp>

More information about the ffmpeg-devel mailing list