summaryrefslogtreecommitdiff
path: root/src/input/libdvdnav/decoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/libdvdnav/decoder.h')
-rw-r--r--src/input/libdvdnav/decoder.h24
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 */