[DVDnav-discuss] [PATCH] "dvdnav_jump_to_sector" as an alternative to "dvdnav_time_search" (REV 5: combined args to structs)

gnosygnu gnosygnu at gmail.com
Mon Apr 23 06:13:21 CEST 2012


I spent some time looking at this today, and I think the effort is
going to be quite significant (at least by my abilities).

The dsi information seems to be read by dvdnav_decode_packet which is
deep in dvdnav_get_next_cache_block. I think I would need a separate
dvdnav_t struct to "peek" at the jumped packet. If I use the existing
dvdnav_get_next_cache_block (*this), I would be overwriting the
existing state. Creating a 2nd dvdnav_t doesn't seem better.

In either event, I think the code would be involved. On a high-level
basis, I think the following would be done:
1) For the "jumped" VOBU, read its dsi info (as mentioned above, there
doesn't seem to be a way to peek at it without using the existing
dvdnav_t struct)
2) With the dsi, compare the requested time with the c_eltm.
3) Depending on the difference, get the VOBU from vobu_sri_t.
    For example, if c_eltm is .5 seconds behind the requested time,
look at vobu_sri_t.fwda and sri_fwda1 to get the VOBU span for the
VOBU .5 seconds ahead.
    (BTW: I'm taking my info from here:
http://dvd.sourceforge.net/dvdinfo/dsi_pkt.html)
4) With the VOBU from (3) look at the ADMAP and get the sector

(1) and (3) seem like extensive operations, especially since I have
little familiarity with the underlying procs/data structures.

Unless there's something simpler, I'm going to have to defer this for
later. I will still send a REVISION 6 with the new interface, but the
actual implementation will be a TODO for later.

Let me know if I'm missing anything.
Thanks.


More information about the DVDnav-discuss mailing list