/* Changed Sept 15th by John M McIntosh to support Macintosh & Squeak */ #include "libmpeg3.h" #include #include #ifdef MACINTOSH #include #else #include #endif int main(int argc, char *argv[]) { int i; /* FILE *output; */ char new_path[1024], *ext; struct stat st; long size; int timecode_search = 0; if(argc < 2) { fprintf(stderr, "Create a table of contents for a DVD.\n" " Usage: mpeg3toc [-t] ...\n" " -t Perform timecode search.\n" "\n" " The filenames should be absolute paths unless you plan\n" " to always run your movie player from the same directory\n" " as the filename. Alternatively you can edit the toc by\n" " hand.\n" " The timecode search allows XMovie to play the Matrix.\n" "Example: mpeg3toc /cd2/video_ts/vts_01_*.vob > titanic.toc\n"); exit(1); } for(i = 1; i < argc; i++) { if(!strcmp(argv[i], "-t")) { timecode_search = 1; } else { /* Get just name */ ext = strrchr(argv[i], '/'); if(ext) { ext++; strcpy(new_path, ext); } else strcpy(new_path, argv[i]); /* Replace suffix */ ext = strrchr(new_path, '.'); if(ext) { sprintf(ext, ".toc"); } else strcat(new_path, ".toc"); /* fprintf(stderr, "Creating %s\n", new_path); */ stat(argv[i], &st); size = (long)st.st_size; if(!size) { fprintf(stderr, "%s is 0 length. Skipping\n", new_path); } else { /* Just want the first title's streams */ if(mpeg3_generate_toc(stdout, argv[i], timecode_search, i == argc - 1)) { fprintf(stderr, "Skipping %s\n", argv[i]); } } } } }