00001 #include "libmpeg3.h"
00002 #include <stdlib.h>
00003
00004
00005
00006
00007 int main(int argc, char *argv[])
00008 {
00009 mpeg3_t *file;
00010 if(argc < 3)
00011 {
00012 printf("Usage: mpeg3peek <table of contents> <frame number>\n");
00013 printf("Print the byte offset of a given frame.\n");
00014 printf("Only works for video. Requires table of contents.\n");
00015 printf("Example: mpeg3peek heroine.toc 123\n");
00016 exit(1);
00017 }
00018
00019 int error = 0;
00020 file = mpeg3_open(argv[1], &error);
00021 if(file)
00022 {
00023 if(!mpeg3_total_vstreams(file))
00024 {
00025 printf("Need a video stream.\n");
00026 exit(1);
00027 }
00028
00029 if(!file->vtrack[0]->total_frame_offsets)
00030 {
00031 printf("Zero length track. Did you load a table of contents?\n");
00032 exit(1);
00033 }
00034
00035 int frame_number = atoi(argv[2]);
00036 if(frame_number < 0) frame_number = 0;
00037 if(frame_number > file->vtrack[0]->total_frame_offsets)
00038 frame_number = file->vtrack[0]->total_frame_offsets - 1;
00039 printf("frame=%d offset=0x%llx\n",
00040 frame_number,
00041 file->vtrack[0]->frame_offsets[frame_number]);
00042 }
00043 }