- Feb 06, 2013
-
-
Diego Elio Pettenò authored
-
Diego Elio Pettenò authored
-
Diego Elio Pettenò authored
-
Diego Elio Pettenò authored
-
Diego Elio Pettenò authored
-
Diego Elio Pettenò authored
-
Diego Elio Pettenò authored
-
Diego Elio Pettenò authored
This is the only regex matching the symbols that are built.
-
Diego Elio Pettenò authored
-
Diego Elio Pettenò authored
This includes the removal of INSTALL and NEWS files that were forced by the non-foreign automake flavour.
-
Diego Elio Pettenò authored
-
Diego Elio Pettenò authored
Rely on pkg-config only, as that's what we're going to do for libdvdread next.
-
Diego Elio Pettenò authored
Rely solely on pkg-config to find the library, as that makes it much simpler.
-
Diego Elio Pettenò authored
This new buildsystem is non-recursive (so it uses higher parallel build), but also drops libdvdnavmini (which is just an alias for libdvdnav itself), and a few more useless sophistications.
-
Diego Elio Pettenò authored
-
Diego Elio Pettenò authored
-
- Feb 05, 2013
-
-
Fixes segfaults with a rip of Ghost Protocol. Signed-off-by:
Jean-Baptiste Kempf <jb@videolan.org>
-
Fixes crashes with non-compliant DVDs after applying the duplicate detection patch for libdvdread. It might make more sense to do those checks in libdvdread instead and zero out structures that don't check out. Signed-off-by:
Jean-Baptiste Kempf <jb@videolan.org>
-
Jean-Baptiste Kempf authored
-
There was a time where dvdnav examples failed to build on mingw. Rather than fix them, we just disabled examples since we had no need for them. Although the examples seem to build fine now, this option may be useful in general. Patch provided by John Stebbins (stebbins AT jetheaddev DOT come), thanks!
-
As offset was an 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 first.
-
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.
-
If the cell number is 0 dvdnav will crash w/ a SIGBUS. Check the cell number before this can happen and just continue.
-
If the start byte is in the wrong place then dvdnav can crash because it is out of bounds.
-
The pgc pointer might be null when it is retrieved from the IFO. This can cause a segfault when pgc is dereferenced a few lines later.
-
If a VOB is not open we will dereference a null pointer in DVDReadBlocks. That will produce a segfault. If we check for an open VOB when we check to see if we need to change the currently open VOB we can ensure that a VOB is open when DVDReadBlocks dereferences it. This patch supplied by John Stebbins <stebbins AT jetheaddev DOT com>.
-
This adds a function to create a duplicate of a dvdnav handle and it's state. This allows you to recursively move through the handle. HandBrake uses these functions to do recursive automated search of the menus for something that looks like the main feature.
-
When vm_start is called it should check to see if the vm is stopped. If it is, reset it and marked the vm as started (set vm->stopped to zero).
-
Replace vm_stop() w/ vm_close() where necessary.
-
It is convenient to have vm_stop() have different processing when called by other parts of the library. When vm_stop is changed in this way, it means that the vm needs to be able to do the same processing internally. The introduction of the static function vm_close() provides that processing.
-
libdvdnav's configure2 lacked endian detection. This problem was pointed out by Ganael Laplanche <ganael DOT laplanche AT martymac DOT org> through a patch that he submitted to fix this issue (and others) for the BSDs. Thanks!
-
It's easier to manage pkg-config when cross-compiling, and libdvdread installs .pc files, so check those first. Patch provided by Mike Frysinger <vapier AT gentoo DOT org>, Thanks!
-
This patch fixes the following error messages one might get when building libdvdnav on W32 using MinGW: libtool: link: gcc -shared .libs/libdvdnavmini-4.dll.def .libs/dvdnav.o .libs/read_cache.o .libs/navigation.o .libs/highlight.o .libs/searching.o .libs/settings.o .libs/remap.o -Wl,--whole-archive ../src/vm/.libs/libdvdvm.a -Wl,--no-whole-archive -O3 -march=i686 - -o .libs/libdvdnavmini-4.dll -Wl,--enable-auto-image-base -Xlinker - --out-implib -Xlinker .libs/libdvdnavmini.dll.a Creating library file: .libs/libdvdnavmini.dll.a.libs/dvdnav.o:dvdnav.c:(.text+0x27): undefined reference to `DVDCloseFile' Patch provided by LRN <lrn1986 AT gmail DOT com>, Thanks!
-
cellnr is used to index into cell_playback after subtracting one from it. If cellnr is 0, then it will index -1 in cell_playback which will seek out of boundary of cell_playback. This manifested into a segfault for some users as reported by this launchpad bug: https://bugs.launchpad.net/ubuntu/+source/libdvdnav/+bug/934471 By checking cellnr and skipping the indexing if cellnr is equal to zero then we avoid the segfault. There might be a bigger issue w/ regard to retrieving a value of zero for cell new row, but this fix works for the reporter. Thanks goes to Sylvain Henry (hsyl20 AT gmail DOT com for both reporting the bug to launchpad and submitting a potential patch (even though we went w/ a different fix).
-
When converting to ticks it is possible for the first value to overflow. We can prevent this overflow if we cast the first value to int64_t before multiplying. This will cause the compiler to use int64_t as the base type for the operations.
-
Now that dvd_read_name returns a status code we can check it before calling remap_loadmap.
-
dvd_read_name has several places where it can fail. Since it doesn't return a value it can't communicate that to any callers. This commit changes the function so it does all of the same work but it checks every possible failure point.
-
Roger Pack reported that when playing the DVD "Tangled" w/ mplayer and recent libdvdnav, mplayer crashes w/ the error message: Assertion failed: (vm->state).pgc->cell_playback[(vm->state).cellN - 1].block_mode != 0, file libdvdnav/vm/vm.c, line 1141 This line should only be triggered when a developer wants a "strict" build of the library. Most likely using the very general term STRICT to #ifdef this clause is what is causing this issue. This patch adds a DVDNAV_ in front of the strict to prevent the macro from being enabled accidentally.
-
The CLUT that is copied in from struct variable palette is an array of 16 values. So the &(palette) is unnecessary. The size argument was also changed to use the palette array instead of the type (just in case palette ever gets changed). Thanks goes to Lee Essen who originally submitted the patch way back in 2008 and to Roger Pack who brought the patch to our attention recently.
-
It is possible (although unlikely) that the while loop will never execute and next_vobu will be uninitialized at this point.
-