X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2Fgdcmmpeg2%2Fsrc%2Fmpeg2dec%2Fmpeg2dec.c;h=f5f7dc43f1740c6cc6b6a171865bf0ad561ea960;hb=ac954771575ed03dde66e0ebb7349e32c6312379;hp=209013d69ef5b9cc0f371b98f32f293f406f5381;hpb=7c26892f568c67ce60f08f1a21fa64105bf6bb2d;p=gdcm.git diff --git a/src/gdcmmpeg2/src/mpeg2dec/mpeg2dec.c b/src/gdcmmpeg2/src/mpeg2dec/mpeg2dec.c index 209013d6..f5f7dc43 100644 --- a/src/gdcmmpeg2/src/mpeg2dec/mpeg2dec.c +++ b/src/gdcmmpeg2/src/mpeg2dec/mpeg2dec.c @@ -39,7 +39,7 @@ /* private prototypes */ static int video_sequence _ANSI_ARGS_((int *framenum)); -static int Decode_Bitstream _ANSI_ARGS_((void)); +static int Decode_Bitstream _ANSI_ARGS_((void)); static int Headers _ANSI_ARGS_((void)); static void Initialize_Sequence _ANSI_ARGS_((void)); static void Initialize_Decoder _ANSI_ARGS_((void)); @@ -58,11 +58,35 @@ static void Clear_Options(); static void Print_Options(); #endif +int my_open(char *filename) +{ + return open(filename,O_RDONLY|O_BINARY); +} +off_t my_seek(int infile, off_t offset,int whence) +{ + return lseek(infile, offset, whence); +} +ssize_t my_read(int infile,void *buf,size_t count) +{ + return read(infile,buf,count); +} +int my_close(int infile) +{ + return close(infile); +} + + + +#ifdef GDCM_BUILD_MPEG2DEC int main(argc,argv) int argc; char *argv[]; { int ret, code; + base.open_stream = my_open; + base.seek_stream = my_seek; + base.read_stream = my_read; + base.close_stream = my_close; Clear_Options(); @@ -77,7 +101,9 @@ char *argv[]; /* open MPEG base layer bitstream file(s) */ /* NOTE: this is either a base layer stream or a spatial enhancement stream */ - if ((base.Infile=open(Main_Bitstream_Filename,O_RDONLY|O_BINARY))<0) +/* if ((base.Infile=open(Main_Bitstream_Filename,O_RDONLY|O_BINARY))<0) */ + base.Infile = ld->open_stream(Main_Bitstream_Filename); + if( base.Infile < 0 ) { fprintf(stderr,"Base layer input file %s not found\n", Main_Bitstream_Filename); exit(1); @@ -112,13 +138,15 @@ char *argv[]; break; } - lseek(base.Infile, 0l, SEEK_SET); + /*lseek(base.Infile, 0l, SEEK_SET);*/ + ld->seek_stream(base.Infile,0l,SEEK_SET); Initialize_Buffer(); } if(base.Infile!=0) { - lseek(base.Infile, 0l, SEEK_SET); + /*lseek(base.Infile, 0l, SEEK_SET);*/ + ld->seek_stream(base.Infile,0l,SEEK_SET); } Initialize_Buffer(); @@ -127,7 +155,9 @@ char *argv[]; { ld = &enhan; /* select enhancement layer context */ - if ((enhan.Infile = open(Enhancement_Layer_Bitstream_Filename,O_RDONLY|O_BINARY))<0) + /*if ((enhan.Infile = open(Enhancement_Layer_Bitstream_Filename,O_RDONLY|O_BINARY))<0)*/ + enhan.Infile = ld->open_stream(Enhancement_Layer_Bitstream_Filename); + if (enhan.Infile<0) { sprintf(Error_Text,"enhancment layer bitstream file %s not found\n", Enhancement_Layer_Bitstream_Filename); @@ -143,15 +173,18 @@ char *argv[]; ret = Decode_Bitstream(); - close(base.Infile); + /*close(base.Infile);*/ + ld->close_stream(base.Infile); if (Two_Streams) - close(enhan.Infile); + /*close(enhan.Infile);*/ + ld->close_stream(enhan.Infile); return ret; } +#endif /*GDCM_BUILD_MPEG2DEC*/ -/* IMPLEMENTAION specific rouintes */ +/* IMPLEMENTATION specific routines */ static void Initialize_Decoder() { int i; @@ -763,3 +796,4 @@ static void Print_Options() } #endif +