/* mpeg2trc.c, main() and parameter file reading */ #include #include #include #include #include #include int main(argc,argv) int argc; char *argv[]; { char parfile[100],inm2v[100],outm2v[100],path[256]; union wait status; int n,flag; n=0; flag=0; if(argc < 4){ printf("Usage: mpeg2 [option] parfile outfile infile"); exit(1); } if(argc == 5 && !strcmp( argv[1],"-f")) { n=1; flag=1; } strcpy(parfile,(char*)argv[1+n]); strcpy(inm2v,(char*)argv[3+n]); strcpy(outm2v,(char*)argv[2+n]); if ((getcwd(path, 64)) == NULL) { perror("pwd"); exit(2); } argv[0]=path; argv[1]=strrchr(path,'/'); if(fork()==0) { strcpy(argv[1],"/xdec/mpeg2decode"); argv[1]="-b"; argv[2]=inm2v; argv[3]="-r"; argv[4]="-f"; argv[5]="-o0"; argv[6]="mid%d"; argv[7]=(char *)malloc(2); sprintf(argv[7],"%d",flag); execv(argv[0], argv); _exit(1); } if(fork()==0) { strcpy(argv[1],"/xenc/mpeg2encode"); argv[1]=parfile; argv[2]=outm2v; argv[3]=(char *)malloc(2); sprintf(argv[3],"%d",flag); execv(argv[0], argv); _exit(1); } wait((int*)&status); wait((int*)&status); unlink("new0.U"); unlink("new0.Y"); unlink("new0.V"); unlink("new0.P"); return 0; }