From fcd2d08125646774e3b2ecd0f496a1167aed736b Mon Sep 17 00:00:00 2001 From: albeu Date: Sat, 26 Nov 2005 17:10:17 +0000 Subject: Add support to get the list of files from a file containing one filename per line. Patch from devik (devik .at. cdi .dot. cz). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17051 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/mf.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'libmpdemux') diff --git a/libmpdemux/mf.c b/libmpdemux/mf.c index ed11acbd7f..f138710b28 100644 --- a/libmpdemux/mf.c +++ b/libmpdemux/mf.c @@ -40,9 +40,38 @@ mf_t* open_mf(char * filename){ mf=calloc( 1,sizeof( mf_t ) ); + if( filename[0] == '@' ) + { + FILE *lst_f=fopen(filename + 1,"r"); + if ( lst_f ) + { + fname=malloc( 255 ); + while ( fgets( fname,255,lst_f ) ) + { + /* remove spaces from end of fname */ + char *t=fname + strlen( fname ) - 1; + while ( t > fname && isspace( *t ) ) *(t--)=0; + if ( stat( fname,&fs ) ) + { + mp_msg( MSGT_STREAM,MSGL_V,"[mf] file not found: '%s'\n",fname ); + } + else + { + mf->names=realloc( mf->names,( mf->nr_of_files + 1 ) * sizeof( char* ) ); + mf->names[mf->nr_of_files]=strdup( fname ); + mf->nr_of_files++; + } + } + fclose( lst_f ); + + mp_msg( MSGT_STREAM,MSGL_INFO,"[mf] number of files: %d\n",mf->nr_of_files ); + goto exit_mf; + } + mp_msg( MSGT_STREAM,MSGL_INFO,"[mf] %s is not indirect filelist\n",filename+1 ); + } + if( strchr( filename,',') ) { - fname=malloc( 255 ); mp_msg( MSGT_STREAM,MSGL_INFO,"[mf] filelist: %s\n",filename ); while ( ( fname=strsep( &filename,"," ) ) ) -- cgit v1.2.3