You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
ffmpeg: get rid of the arbitrary MAX_FILES limit.
This commit is contained in:
committed by
Michael Niedermayer
parent
76e4873319
commit
dd0724288e
13
ffmpeg.c
13
ffmpeg.c
@@ -109,7 +109,6 @@ typedef struct MetadataMap {
|
|||||||
|
|
||||||
static const OptionDef options[];
|
static const OptionDef options[];
|
||||||
|
|
||||||
#define MAX_FILES 100
|
|
||||||
#define MAX_STREAMS 1024 /* arbitrary sanity check value */
|
#define MAX_STREAMS 1024 /* arbitrary sanity check value */
|
||||||
static const char *last_asked_format = NULL;
|
static const char *last_asked_format = NULL;
|
||||||
static AVDictionary *ts_scale;
|
static AVDictionary *ts_scale;
|
||||||
@@ -1903,9 +1902,12 @@ static int transcode(OutputFile *output_files,
|
|||||||
char error[1024];
|
char error[1024];
|
||||||
int key;
|
int key;
|
||||||
int want_sdp = 1;
|
int want_sdp = 1;
|
||||||
uint8_t no_packet[MAX_FILES]={0};
|
uint8_t *no_packet;
|
||||||
int no_packet_count=0;
|
int no_packet_count=0;
|
||||||
|
|
||||||
|
if (!(no_packet = av_mallocz(nb_input_files)))
|
||||||
|
exit_program(1);
|
||||||
|
|
||||||
if (rate_emu)
|
if (rate_emu)
|
||||||
for (i = 0; i < nb_input_streams; i++)
|
for (i = 0; i < nb_input_streams; i++)
|
||||||
input_streams[i].start = av_gettime();
|
input_streams[i].start = av_gettime();
|
||||||
@@ -2394,7 +2396,7 @@ static int transcode(OutputFile *output_files,
|
|||||||
if (file_index < 0) {
|
if (file_index < 0) {
|
||||||
if(no_packet_count){
|
if(no_packet_count){
|
||||||
no_packet_count=0;
|
no_packet_count=0;
|
||||||
memset(no_packet, 0, sizeof(no_packet));
|
memset(no_packet, 0, nb_input_files);
|
||||||
usleep(10000);
|
usleep(10000);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -2422,7 +2424,7 @@ static int transcode(OutputFile *output_files,
|
|||||||
}
|
}
|
||||||
|
|
||||||
no_packet_count=0;
|
no_packet_count=0;
|
||||||
memset(no_packet, 0, sizeof(no_packet));
|
memset(no_packet, 0, nb_input_files);
|
||||||
|
|
||||||
if (do_pkt_dump) {
|
if (do_pkt_dump) {
|
||||||
av_pkt_dump_log2(NULL, AV_LOG_DEBUG, &pkt, do_hex_dump,
|
av_pkt_dump_log2(NULL, AV_LOG_DEBUG, &pkt, do_hex_dump,
|
||||||
@@ -2531,6 +2533,7 @@ static int transcode(OutputFile *output_files,
|
|||||||
|
|
||||||
fail:
|
fail:
|
||||||
av_freep(&bit_buffer);
|
av_freep(&bit_buffer);
|
||||||
|
av_freep(&no_packet);
|
||||||
|
|
||||||
if (output_streams) {
|
if (output_streams) {
|
||||||
for (i = 0; i < nb_output_streams; i++) {
|
for (i = 0; i < nb_output_streams; i++) {
|
||||||
@@ -3715,8 +3718,6 @@ static int opt_output_file(const char *opt, const char *filename)
|
|||||||
av_dict_free(&metadata);
|
av_dict_free(&metadata);
|
||||||
|
|
||||||
|
|
||||||
if (nb_output_files == MAX_FILES)
|
|
||||||
exit_program(1); /* a temporary hack until all the other MAX_FILES-sized arrays are removed */
|
|
||||||
output_files = grow_array(output_files, sizeof(*output_files), &nb_output_files, nb_output_files + 1);
|
output_files = grow_array(output_files, sizeof(*output_files), &nb_output_files, nb_output_files + 1);
|
||||||
output_files[nb_output_files - 1].ctx = oc;
|
output_files[nb_output_files - 1].ctx = oc;
|
||||||
output_files[nb_output_files - 1].ost_index = nb_output_streams - oc->nb_streams;
|
output_files[nb_output_files - 1].ost_index = nb_output_streams - oc->nb_streams;
|
||||||
|
Reference in New Issue
Block a user