Skip to content

Conversation

@mirakels
Copy link

@mirakels mirakels commented Sep 6, 2012

Referring to my posts on the libdvdnav mailing list (subject dvdnav_sector_search()) I cloned Erics tree and put the patch in. Hope you find them usefull.

@erik: please only take the commit 31c1fa7 about dvdnav_get_position. I want to redo the ones for dvdnav_sector_search as I forgot to update the boundary checks and don't like to have 3 commits to add just one thing...

Thanks,
-Marcel

Mirakels added 3 commits September 6, 2012 22:57
As offset was a uint64_t offset could not be negative. Seeking
backwards is then only possible by get_position(), substract an
offset and do a SEEK_SET.
Now with a signed offset SEEK_CUR can be used to go backwards
without getting the current position.
This also fixes wrong positioning in dvdnav_sector_search() for
multi-angle DVDS.
BLOCK_TYPE_ANGLE_BLOCK cells seem to overlap sectors in the previous
cell hence they should be skipped when adding cell lengths up to get
to the correct sector.

dvdnav_sector_search() already checks for BLOCK_TYPE_ANGLE_BLOCK
cells in calculating the new position but dvdnav_get_position()
did not. As dvdnav_sector_search() starts by calling
dvdnav_get_position() the end result for the new position could
be wrong.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant