From c226b5c184993b4dc09816e4da08a533b656f934 Mon Sep 17 00:00:00 2001 From: James Courtier-Dutton Date: Tue, 29 Apr 2003 21:55:46 +0000 Subject: Update from libdvdnav CVS patchset: 4712 CVS date: 2003/04/29 21:55:46 --- src/input/libdvdnav/decoder.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/input/libdvdnav/decoder.c') diff --git a/src/input/libdvdnav/decoder.c b/src/input/libdvdnav/decoder.c index 154bac848..76b1cc048 100644 --- a/src/input/libdvdnav/decoder.c +++ b/src/input/libdvdnav/decoder.c @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: decoder.c,v 1.8 2003/04/07 18:10:45 mroi Exp $ + * $Id: decoder.c,v 1.9 2003/04/29 21:55:47 jcdutton Exp $ * */ @@ -32,14 +32,15 @@ #include /* For memset */ #include "ifo_types.h" /* vm_cmd_t */ #include + #include "dvdnav_internal.h" uint32_t vm_getbits(command_t *command, int start, int count) { uint64_t result = 0; - uint64_t bit_mask=0xffffffffffffffff; /* I could put -1 instead */ + uint64_t bit_mask = 0; uint64_t examining = 0; int32_t bits; - + if (count == 0) return 0; if ( ((start - count) < -1) || @@ -50,6 +51,8 @@ uint32_t vm_getbits(command_t *command, int start, int count) { fprintf(MSG_OUT, "libdvdnav: Bad call to vm_getbits. Parameter out of range\n"); assert(0); } + /* all ones, please */ + bit_mask = ~bit_mask; bit_mask >>= 63 - start; bits = start + 1 - count; examining = ((bit_mask >> bits) << bits ); -- cgit v1.2.3