@ -1918,28 +1918,18 @@ static int init_input_stream(int ist_index, OutputStream *output_streams, int nb
return 0 ;
}
/*
* The following code is the main loop of the file converter
*/
static int transcode ( OutputFile * output_files ,
int nb_output_files ,
InputFile * input_files ,
int nb_input_files )
static int transcode_init ( OutputFile * output_files ,
int nb_output_files ,
InputFile * input_files ,
int nb_input_files )
{
int ret = 0 , i , step ;
AVFormatContext * is , * os ;
int ret = 0 , i ;
AVFormatContext * os ;
AVCodecContext * codec , * icodec ;
OutputStream * ost ;
InputStream * ist ;
char error [ 1024 ] ;
int key ;
int want_sdp = 1 ;
uint8_t * no_packet ;
int no_packet_count = 0 ;
int64_t timer_start ;
if ( ! ( no_packet = av_mallocz ( nb_input_files ) ) )
exit_program ( 1 ) ;
if ( rate_emu )
for ( i = 0 ; i < nb_input_streams ; i + + )
@ -1951,8 +1941,7 @@ static int transcode(OutputFile *output_files,
if ( ! os - > nb_streams & & ! ( os - > oformat - > flags & AVFMT_NOSTREAMS ) ) {
av_dump_format ( os , i , os - > filename , 1 ) ;
fprintf ( stderr , " Output file #%d does not contain any stream \n " , i ) ;
ret = AVERROR ( EINVAL ) ;
goto fail ;
return AVERROR ( EINVAL ) ;
}
}
@ -1973,8 +1962,7 @@ static int transcode(OutputFile *output_files,
uint64_t extra_size = ( uint64_t ) icodec - > extradata_size + FF_INPUT_BUFFER_PADDING_SIZE ;
if ( extra_size > INT_MAX ) {
ret = AVERROR ( EINVAL ) ;
goto fail ;
return AVERROR ( EINVAL ) ;
}
/* if stream_copy is selected, no need to decode or encode */
@ -1993,8 +1981,7 @@ static int transcode(OutputFile *output_files,
codec - > rc_buffer_size = icodec - > rc_buffer_size ;
codec - > extradata = av_mallocz ( extra_size ) ;
if ( ! codec - > extradata ) {
ret = AVERROR ( ENOMEM ) ;
goto fail ;
return AVERROR ( ENOMEM ) ;
}
memcpy ( codec - > extradata , icodec - > extradata , icodec - > extradata_size ) ;
codec - > extradata_size = icodec - > extradata_size ;
@ -2061,8 +2048,7 @@ static int transcode(OutputFile *output_files,
case AVMEDIA_TYPE_AUDIO :
ost - > fifo = av_fifo_alloc ( 1024 ) ;
if ( ! ost - > fifo ) {
ret = AVERROR ( ENOMEM ) ;
goto fail ;
return AVERROR ( ENOMEM ) ;
}
ost - > reformat_pair = MAKE_SFMT_PAIR ( AV_SAMPLE_FMT_NONE , AV_SAMPLE_FMT_NONE ) ;
if ( ! codec - > sample_rate ) {
@ -2182,8 +2168,7 @@ static int transcode(OutputFile *output_files,
if ( ! bit_buffer ) {
fprintf ( stderr , " Cannot allocate %d bytes output buffer \n " ,
bit_buffer_size ) ;
ret = AVERROR ( ENOMEM ) ;
goto fail ;
return AVERROR ( ENOMEM ) ;
}
/* open each encoder */
@ -2270,13 +2255,40 @@ static int transcode(OutputFile *output_files,
if ( ret ) {
fprintf ( stderr , " %s \n " , error ) ;
goto fail ;
return ret ;
}
if ( want_sdp ) {
print_sdp ( output_files , nb_output_files ) ;
}
return 0 ;
}
/*
* The following code is the main loop of the file converter
*/
static int transcode ( OutputFile * output_files ,
int nb_output_files ,
InputFile * input_files ,
int nb_input_files )
{
int ret , i ;
AVFormatContext * is , * os ;
OutputStream * ost ;
InputStream * ist ;
uint8_t * no_packet ;
int no_packet_count = 0 ;
int64_t timer_start ;
int key ;
if ( ! ( no_packet = av_mallocz ( nb_input_files ) ) )
exit_program ( 1 ) ;
ret = transcode_init ( output_files , nb_output_files , input_files , nb_input_files ) ;
if ( ret < 0 )
goto fail ;
if ( ! using_stdin ) {
if ( verbose > = 0 )
fprintf ( stderr , " Press [q] to stop, [?] for help \n " ) ;