diff options
Diffstat (limited to 'src/input/libdvdnav/decoder.h')
-rw-r--r-- | src/input/libdvdnav/decoder.h | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/input/libdvdnav/decoder.h b/src/input/libdvdnav/decoder.h index 24657e889..6a91323f7 100644 --- a/src/input/libdvdnav/decoder.h +++ b/src/input/libdvdnav/decoder.h @@ -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.h,v 1.4 2002/09/04 11:07:47 mroi Exp $ + * $Id: decoder.h,v 1.5 2003/02/20 16:01:58 mroi Exp $ * */ @@ -30,9 +30,7 @@ #include "ifo_types.h" /* vm_cmd_t */ -/* Uncomment for tracing */ -/* #define TRACE */ - +/* link command types */ typedef enum { LinkNoLink = 0, @@ -76,6 +74,7 @@ typedef enum { PlayThis } link_cmd_t; +/* a link's data set */ typedef struct { link_cmd_t command; uint16_t data1; @@ -83,6 +82,7 @@ typedef struct { uint16_t data3; } link_t; +/* the VM registers */ typedef struct { uint16_t SPRM[24]; uint16_t GPRM[16]; @@ -90,18 +90,28 @@ typedef struct { struct timeval GPRM_time[16]; /* For counter mode */ } registers_t; -typedef struct -{ +/* a VM command data set */ +typedef struct { uint64_t instruction; uint64_t examined; registers_t *registers; } command_t; +/* the big VM function, executing the given commands and writing + * the link where to continue, the return value indicates if a jump + * has been performed */ int vmEval_CMD(vm_cmd_t commands[], int num_commands, registers_t *registers, link_t *return_values); +/* extracts some bits from the command */ +uint32_t vm_getbits(command_t* command, int start, int count); + +#ifdef TRACE +/* for debugging: prints a link in readable form */ void vmPrint_LINK(link_t value); + +/* for debugging: dumps VM registers */ void vmPrint_registers( registers_t *registers ); -uint32_t vm_getbits(command_t* command, int start, int count); +#endif #endif /* DECODER_H_INCLUDED */ |