@ -163,7 +163,6 @@ static int write_manifest(AVFormatContext *s, int final)
HDSContext * c = s - > priv_data ;
HDSContext * c = s - > priv_data ;
AVIOContext * out ;
AVIOContext * out ;
char filename [ 1024 ] , temp_filename [ 1024 ] ;
char filename [ 1024 ] , temp_filename [ 1024 ] ;
const char * write_filename ;
int ret , i ;
int ret , i ;
float duration = 0 ;
float duration = 0 ;
@ -172,11 +171,10 @@ static int write_manifest(AVFormatContext *s, int final)
snprintf ( filename , sizeof ( filename ) , " %s/index.f4m " , s - > filename ) ;
snprintf ( filename , sizeof ( filename ) , " %s/index.f4m " , s - > filename ) ;
snprintf ( temp_filename , sizeof ( temp_filename ) , " %s/index.f4m.tmp " , s - > filename ) ;
snprintf ( temp_filename , sizeof ( temp_filename ) , " %s/index.f4m.tmp " , s - > filename ) ;
write_filename = USE_RENAME_REPLACE ? temp_filename : filename ;
ret = avio_open2 ( & out , temp_filename , AVIO_FLAG_WRITE ,
ret = avio_open2 ( & out , write_filename , AVIO_FLAG_WRITE ,
& s - > interrupt_callback , NULL ) ;
& s - > interrupt_callback , NULL ) ;
if ( ret < 0 ) {
if ( ret < 0 ) {
av_log ( s , AV_LOG_ERROR , " Unable to open %s for writing \n " , wri te_filename) ;
av_log ( s , AV_LOG_ERROR , " Unable to open %s for writing \n " , temp _filename ) ;
return ret ;
return ret ;
}
}
avio_printf ( out , " <?xml version= \" 1.0 \" encoding= \" utf-8 \" ?> \n " ) ;
avio_printf ( out , " <?xml version= \" 1.0 \" encoding= \" utf-8 \" ?> \n " ) ;
@ -206,7 +204,7 @@ static int write_manifest(AVFormatContext *s, int final)
avio_printf ( out , " </manifest> \n " ) ;
avio_printf ( out , " </manifest> \n " ) ;
avio_flush ( out ) ;
avio_flush ( out ) ;
avio_close ( out ) ;
avio_close ( out ) ;
return USE_RENAME_REPLACE ? ff_rename ( temp_filename , filename ) : 0 ;
return ff_rename ( temp_filename , filename ) ;
}
}
static void update_size ( AVIOContext * out , int64_t pos )
static void update_size ( AVIOContext * out , int64_t pos )
@ -225,7 +223,6 @@ static int write_abst(AVFormatContext *s, OutputStream *os, int final)
HDSContext * c = s - > priv_data ;
HDSContext * c = s - > priv_data ;
AVIOContext * out ;
AVIOContext * out ;
char filename [ 1024 ] , temp_filename [ 1024 ] ;
char filename [ 1024 ] , temp_filename [ 1024 ] ;
const char * write_filename ;
int i , ret ;
int i , ret ;
int64_t asrt_pos , afrt_pos ;
int64_t asrt_pos , afrt_pos ;
int start = 0 , fragments ;
int start = 0 , fragments ;
@ -243,11 +240,10 @@ static int write_abst(AVFormatContext *s, OutputStream *os, int final)
" %s/stream%d.abst " , s - > filename , index ) ;
" %s/stream%d.abst " , s - > filename , index ) ;
snprintf ( temp_filename , sizeof ( temp_filename ) ,
snprintf ( temp_filename , sizeof ( temp_filename ) ,
" %s/stream%d.abst.tmp " , s - > filename , index ) ;
" %s/stream%d.abst.tmp " , s - > filename , index ) ;
write_filename = USE_RENAME_REPLACE ? temp_filename : filename ;
ret = avio_open2 ( & out , temp_filename , AVIO_FLAG_WRITE ,
ret = avio_open2 ( & out , write_filename , AVIO_FLAG_WRITE ,
& s - > interrupt_callback , NULL ) ;
& s - > interrupt_callback , NULL ) ;
if ( ret < 0 ) {
if ( ret < 0 ) {
av_log ( s , AV_LOG_ERROR , " Unable to open %s for writing \n " , wri te_filename) ;
av_log ( s , AV_LOG_ERROR , " Unable to open %s for writing \n " , temp _filename ) ;
return ret ;
return ret ;
}
}
avio_wb32 ( out , 0 ) ; // abst size
avio_wb32 ( out , 0 ) ; // abst size
@ -289,7 +285,7 @@ static int write_abst(AVFormatContext *s, OutputStream *os, int final)
update_size ( out , afrt_pos ) ;
update_size ( out , afrt_pos ) ;
update_size ( out , 0 ) ;
update_size ( out , 0 ) ;
avio_close ( out ) ;
avio_close ( out ) ;
return USE_RENAME_REPLACE ? ff_rename ( temp_filename , filename ) : 0 ;
return ff_rename ( temp_filename , filename ) ;
}
}
static int init_file ( AVFormatContext * s , OutputStream * os , int64_t start_ts )
static int init_file ( AVFormatContext * s , OutputStream * os , int64_t start_ts )