00001
00002
00003 #ifndef DVDID__DVDID2_H
00004 #define DVDID__DVDID2_H
00005
00006 #include <stdint.h>
00007
00008
00009 #include "export.h"
00010
00011
00012 #include "dvdid.h"
00013
00014
00015 #ifdef __cplusplus
00016 extern "C" {
00017 #endif
00018
00019
00020 enum dvdid_medium_e {
00021 DVDID_MEDIUM_DVD = 1,
00022 DVDID_MEDIUM_VCD,
00023 DVDID_MEDIUM_SVCD,
00024 };
00025
00026 enum dvdid_dir_e {
00027
00028 DVDID_DIR_VIDEO_TS = 1,
00029
00030 DVDID_DIR_VCD,
00031 DVDID_DIR_CDI,
00032 DVDID_DIR_EXT,
00033 DVDID_DIR_KARAOKE,
00034 DVDID_DIR_CDDA,
00035 DVDID_DIR_MPEGAV,
00036 DVDID_DIR_SEGMENT,
00037
00038 DVDID_DIR_SVCD,
00039
00040
00041
00042
00043 DVDID_DIR_MPEG2,
00044
00045 };
00046
00047 enum dvdid_file_e {
00048
00049 DVDID_FILE_VMGI = 1,
00050 DVDID_FILE_VTS01I,
00051
00052 DVDID_FILE_INFO_VCD,
00053 DVDID_FILE_ENTRIES_VCD,
00054
00055 DVDID_FILE_INFO_SVD,
00056 DVDID_FILE_ENTRIES_SVD,
00057 DVDID_FILE_TRACKS_SVD,
00058 };
00059
00060
00061 typedef struct dvdid_hashinfo_s dvdid_hashinfo_t;
00062 typedef struct dvdid_fileinfo_s dvdid_fileinfo_t;
00063
00064 typedef enum dvdid_medium_e dvdid_medium_t;
00065 typedef enum dvdid_dir_e dvdid_dir_t;
00066 typedef enum dvdid_file_e dvdid_file_t;
00067
00068
00069 struct dvdid_fileinfo_s {
00070
00071 uint64_t creation_time;
00072
00073
00074
00075
00076
00077 uint32_t size;
00078
00079
00080 char *name;
00081 };
00082
00083
00084 DVDID_API(dvdid_status_t) dvdid_calculate2(uint64_t *discid, const dvdid_hashinfo_t *hi);
00085
00086
00087 DVDID_API(dvdid_status_t) dvdid_hashinfo_create(dvdid_hashinfo_t **hi);
00088
00089
00090
00091 DVDID_API(dvdid_status_t) dvdid_hashinfo_set_medium(dvdid_hashinfo_t *hi, dvdid_medium_t medium);
00092 DVDID_API(dvdid_medium_t) dvdid_hashinfo_get_medium(const dvdid_hashinfo_t *hi);
00093
00094
00095
00096
00097
00098 DVDID_API(dvdid_status_t) dvdid_hashinfo_add_fileinfo(dvdid_hashinfo_t *hi, dvdid_dir_t dir, const dvdid_fileinfo_t *fi);
00099
00100
00101
00102
00103
00104 #define DVDID_HASHINFO_FILEDATA_MAXSIZE 0x10000
00105 DVDID_API(dvdid_status_t) dvdid_hashinfo_add_filedata(dvdid_hashinfo_t *hi, dvdid_file_t file, const uint8_t *buf, size_t size);
00106
00107
00108
00109 DVDID_API(dvdid_status_t) dvdid_hashinfo_init(dvdid_hashinfo_t *hi);
00110
00111
00112 DVDID_API(void) dvdid_hashinfo_free(dvdid_hashinfo_t *hi);
00113
00114
00115
00116 DVDID_API(dvdid_status_t) dvdid_hashinfo_addfile(dvdid_hashinfo_t *hi, const dvdid_fileinfo_t *fi);
00117
00118
00119 #define DVDID_HASHINFO_VXXI_MAXBUF DVDID_HASHINFO_FILEDATA_MAXSIZE
00120 DVDID_API(dvdid_status_t) dvdid_hashinfo_set_vmgi(dvdid_hashinfo_t *hi, const uint8_t *buf, size_t size);
00121
00122
00123 DVDID_API(dvdid_status_t) dvdid_hashinfo_set_vts01i(dvdid_hashinfo_t *hi, const uint8_t *buf, size_t size);
00124
00125
00126 #ifdef __cplusplus
00127 }
00128 #endif
00129
00130
00131 #endif