|
|
@ -329,7 +329,6 @@ typedef struct AVInputFile { |
|
|
|
int eof_reached; /* true if eof reached */ |
|
|
|
int eof_reached; /* true if eof reached */ |
|
|
|
int ist_index; /* index of first stream in ist_table */ |
|
|
|
int ist_index; /* index of first stream in ist_table */ |
|
|
|
int buffer_size; /* current total buffer size */ |
|
|
|
int buffer_size; /* current total buffer size */ |
|
|
|
int nb_streams; /* nb streams we are aware of */ |
|
|
|
|
|
|
|
} AVInputFile; |
|
|
|
} AVInputFile; |
|
|
|
|
|
|
|
|
|
|
|
static AVInputStream *input_streams = NULL; |
|
|
|
static AVInputStream *input_streams = NULL; |
|
|
@ -1976,7 +1975,7 @@ static int transcode(AVFormatContext **output_files, |
|
|
|
int si = stream_maps[i].stream_index; |
|
|
|
int si = stream_maps[i].stream_index; |
|
|
|
|
|
|
|
|
|
|
|
if (fi < 0 || fi > nb_input_files - 1 || |
|
|
|
if (fi < 0 || fi > nb_input_files - 1 || |
|
|
|
si < 0 || si > input_files[fi].nb_streams - 1) { |
|
|
|
si < 0 || si > input_files[fi].ctx->nb_streams - 1) { |
|
|
|
fprintf(stderr,"Could not find input stream #%d.%d\n", fi, si); |
|
|
|
fprintf(stderr,"Could not find input stream #%d.%d\n", fi, si); |
|
|
|
ret = AVERROR(EINVAL); |
|
|
|
ret = AVERROR(EINVAL); |
|
|
|
goto fail; |
|
|
|
goto fail; |
|
|
@ -1984,7 +1983,7 @@ static int transcode(AVFormatContext **output_files, |
|
|
|
fi = stream_maps[i].sync_file_index; |
|
|
|
fi = stream_maps[i].sync_file_index; |
|
|
|
si = stream_maps[i].sync_stream_index; |
|
|
|
si = stream_maps[i].sync_stream_index; |
|
|
|
if (fi < 0 || fi > nb_input_files - 1 || |
|
|
|
if (fi < 0 || fi > nb_input_files - 1 || |
|
|
|
si < 0 || si > input_files[fi].nb_streams - 1) { |
|
|
|
si < 0 || si > input_files[fi].ctx->nb_streams - 1) { |
|
|
|
fprintf(stderr,"Could not find sync stream #%d.%d\n", fi, si); |
|
|
|
fprintf(stderr,"Could not find sync stream #%d.%d\n", fi, si); |
|
|
|
ret = AVERROR(EINVAL); |
|
|
|
ret = AVERROR(EINVAL); |
|
|
|
goto fail; |
|
|
|
goto fail; |
|
|
@ -2569,7 +2568,7 @@ static int transcode(AVFormatContext **output_files, |
|
|
|
} |
|
|
|
} |
|
|
|
/* the following test is needed in case new streams appear
|
|
|
|
/* the following test is needed in case new streams appear
|
|
|
|
dynamically in stream : we ignore them */ |
|
|
|
dynamically in stream : we ignore them */ |
|
|
|
if (pkt.stream_index >= input_files[file_index].nb_streams) |
|
|
|
if (pkt.stream_index >= input_files[file_index].ctx->nb_streams) |
|
|
|
goto discard_packet; |
|
|
|
goto discard_packet; |
|
|
|
ist_index = input_files[file_index].ist_index + pkt.stream_index; |
|
|
|
ist_index = input_files[file_index].ist_index + pkt.stream_index; |
|
|
|
ist = &input_streams[ist_index]; |
|
|
|
ist = &input_streams[ist_index]; |
|
|
@ -3322,7 +3321,6 @@ static void opt_input_file(const char *filename) |
|
|
|
input_files = grow_array(input_files, sizeof(*input_files), &nb_input_files, nb_input_files + 1); |
|
|
|
input_files = grow_array(input_files, sizeof(*input_files), &nb_input_files, nb_input_files + 1); |
|
|
|
input_files[nb_input_files - 1].ctx = ic; |
|
|
|
input_files[nb_input_files - 1].ctx = ic; |
|
|
|
input_files[nb_input_files - 1].ist_index = nb_input_streams - ic->nb_streams; |
|
|
|
input_files[nb_input_files - 1].ist_index = nb_input_streams - ic->nb_streams; |
|
|
|
input_files[nb_input_files - 1].nb_streams = ic->nb_streams; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
video_channel = 0; |
|
|
|
video_channel = 0; |
|
|
|
|
|
|
|
|
|
|
|