1. 06 Feb, 2013 6 commits
  2. 08 Dec, 2012 1 commit
  3. 04 Nov, 2012 1 commit
  4. 05 Feb, 2013 1 commit
  5. 16 Oct, 2012 1 commit
    • John Stebbins's avatar
      Make examples optional · 31c746ad
      John Stebbins 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.
      31c746ad
  6. 09 Sep, 2012 1 commit
    • Marcel J.E. Mol's avatar
      dvdnav_sector_search: allow backward search for SEEK_CUR · e37e405b
      Marcel J.E. Mol authored
      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.
      e37e405b
  7. 06 Sep, 2012 1 commit
    • Marcel J.E. Mol's avatar
      dvdnav_get_position: fix calculation for multi-angle DVDs · 62f37237
      Marcel J.E. Mol authored
      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.
      62f37237
  8. 30 Aug, 2012 3 commits
  9. 24 May, 2012 1 commit
    • John Stebbins's avatar
      Check that a VOB is open in case we need to open one · d52ee641
      John Stebbins authored
      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.
      d52ee641
  10. 21 May, 2012 4 commits
    • Erik Hovland's avatar
      Adds a function to create a dpu of a dvdnav handle · e9ac0cd4
      Erik Hovland authored
      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.
      e9ac0cd4
    • Erik Hovland's avatar
      Reset the vm if necessary. · 46a425c4
      Erik Hovland authored
      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).
      46a425c4
    • Erik Hovland's avatar
      Use vm_close() w/in vm.c where appropriate · 99e6c0f4
      Erik Hovland authored
      Replace vm_stop() w/ vm_close() where necessary.
      99e6c0f4
    • Erik Hovland's avatar
      Add the static function vm_close() · 6ef9c3d3
      Erik Hovland authored
      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.
      6ef9c3d3
  11. 30 Apr, 2012 1 commit
    • Ganael Laplanche's avatar
      Add in endian detection to configure2 · 4864592f
      Ganael Laplanche authored
      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!
      4864592f
  12. 17 Apr, 2012 2 commits
    • Mike Frysinger's avatar
      check pkg-config before xxx-config scripts · 0028d8a5
      Mike Frysinger authored
      It's easier to manage pkg-config when cross-compiling, and libdvdread
      installs .pc files, so check those first.
      0028d8a5
    • LRN's avatar
      libdvdnavmini depends on libdvdread · 219c5e91
      LRN authored
      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'
      219c5e91
  13. 16 Apr, 2012 1 commit
    • Erik Hovland's avatar
      Check cell new row before using it to index into cell_playback · ef9a6a68
      Erik Hovland authored
      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.
      
      
      reporting the bug to launchpad and submitting a potential patch (even
      though we went w/ a different fix).
      ef9a6a68
  14. 14 Feb, 2012 1 commit
    • Erik Hovland's avatar
      Prevent overflow by pre-casting to int64_t · a5477486
      Erik Hovland authored
      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.
      a5477486
  15. 30 Nov, 2011 3 commits
    • Erik Hovland's avatar
      Check the return value of dvd_read_name · 8bfde147
      Erik Hovland authored
      Now that dvd_read_name returns a status code we can check it before
      calling remap_loadmap.
      8bfde147
    • Erik Hovland's avatar
      Rewrite dvd_read_name to return a value · 2d5489af
      Erik Hovland authored
      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.
      2d5489af
    • Erik Hovland's avatar
      Prevent general CPP macro from causing strange behavior. · 3403cc2d
      Erik Hovland authored
      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.
      3403cc2d
  16. 12 Nov, 2011 1 commit
    • Lee Essen's avatar
      Remove unneeded address-of of CLUT · 14c750b8
      Lee Essen authored
      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).
      
      
      
      14c750b8
  17. 31 Oct, 2011 7 commits
  18. 10 Oct, 2011 4 commits