[DVDnav-discuss] [PATCH] "dvdnav_jump_to_sector" as an alternative to "dvdnav_time_search" (Overview: Source to follow)

Roger Pack rogerdpack2 at gmail.com
Fri Nov 11 19:07:55 CET 2011


> Currently, dvdnav_time_search is marked "FIXME: right now, this
> function does not use the time tables but interpolates only the cell
> times". This method is usually inaccurate: it interpolates using
> sectors, but one sector does not equal one fixed unit of time. For
> example, if there is a 10:00 cell and the cell is 1000 sectors long,
> it assumes that 5:00 is at sector 500. Jumping to sector 500 may
> actually jump instead to 5:12.
>
> My patch jumps to a time using the time map and the vobu address map.
> I placed it in a new function called "dvdnav_jump_to_sector"

Ok I tried out the new search functionality (in mplayer, as a drop in
replacement: https://gist.github.com/1358679)

It works well.  Lightning-sharp DVD seeking accuracy.  Thanks!

Mplayer "used" to sometimes advance by 15 seconds, when it requested
it to go forward 10 (or sometimes, it would even go *backward* when
you attempting to go 10 seconds forward--weird), this fixes it right
up.  Seeking is precise now.
That being said, it seems to "jerk" (take a little bit longer) when
seeking.  But I'm ok with that for accuracy sake :) (maybe it could be
optimized to be faster?)

For the VLC dev's, this maybe helpful in clearing up
http://trac.videolan.org/vlc/ticket/4 et al.

Some code feedback:
I think method documentation for "public" api's goes in the .h file.
Also I think the method should be declare not at the bottom of the .h
file but in the middle :)

Also why not use uint64_t like dvdnav_time_search does?
And maybe return value for dvdnav_jump_to_sector_by_time should be
dvdnav_status_t ?
Thanks.
-roger-


More information about the DVDnav-discuss mailing list