Mercurial > libdvdnav.hg
diff decoder.c @ 114:b6834e6359cf src
big libdvdnav cleanup, quoting the ChangeLog:
* some bugfixes
* code cleanup
* build process polishing
* more sensible event order in get_next_block to ensure useful event delivery
* VOBU level resume
* fixed: seeking in a multiangle feature briefly showed the wrong angle
author | mroi |
---|---|
date | Thu, 20 Feb 2003 15:32:21 +0000 |
parents | 96707bfb63d7 |
children | 5897ff629f7c |
line wrap: on
line diff
--- a/decoder.c Mon Jan 13 13:33:45 2003 +0000 +++ b/decoder.c Thu Feb 20 15:32:21 2003 +0000 @@ -41,13 +41,14 @@ uint64_t bit_mask=0xffffffffffffffff; /* I could put -1 instead */ uint64_t examining = 0; int32_t bits; + if (count == 0) return 0; if ( ((count+start) > 64) || (count > 32) || (start > 63) || (count < 0) || - (start < 0) ){ + (start < 0) ) { fprintf(MSG_OUT, "libdvdnav: Bad call to vm_getbits. Parameter out of range\n"); assert(0); } @@ -101,7 +102,7 @@ if(reg & 0x80) { if ((reg & 0x1f) == 20) { fprintf(MSG_OUT, "libdvdnav: Suspected RCE Region Protection!!!"); - } + } return command->registers->SPRM[reg & 0x1f]; /* FIXME max 24 not 32 */ } else { return get_GPRM(command->registers, reg & 0x0f) ; @@ -570,8 +571,7 @@ return res; } -/* Evaluate a set of commands in the given register set (which is - * modified */ +/* Evaluate a set of commands in the given register set (which is modified) */ int32_t vmEval_CMD(vm_cmd_t commands[], int32_t num_commands, registers_t *registers, link_t *return_values) { int32_t i = 0; @@ -587,6 +587,7 @@ fprintf(MSG_OUT, "libdvdnav: --------------------------------------------\n"); fprintf(MSG_OUT, "libdvdnav: Single stepping commands\n"); #endif + i = 0; while(i < num_commands && total < 100000) { int32_t line; @@ -594,6 +595,7 @@ #ifdef TRACE vmPrint_CMD(i, &commands[i]); #endif + line = eval_command(&commands[i].bytes[0], registers, return_values); if (line < 0) { /* Link command */ @@ -621,6 +623,8 @@ return 0; } +#ifdef TRACE + static char *linkcmd2str(link_cmd_t cmd) { switch(cmd) { case LinkNoLink: @@ -762,3 +766,6 @@ fprintf(MSG_OUT, "%04lx|", registers->GPRM_time[i].tv_sec & 0xffff); fprintf(MSG_OUT, "\n"); } + +#endif +