You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	cmdutils: add a macro to simplify grow_array() calls.
This commit is contained in:
		| @@ -77,8 +77,7 @@ FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost) | ||||
|         exit(1); | ||||
|     fg->index = nb_filtergraphs; | ||||
|  | ||||
|     fg->outputs = grow_array(fg->outputs, sizeof(*fg->outputs), &fg->nb_outputs, | ||||
|                              fg->nb_outputs + 1); | ||||
|     GROW_ARRAY(fg->outputs, fg->nb_outputs); | ||||
|     if (!(fg->outputs[0] = av_mallocz(sizeof(*fg->outputs[0])))) | ||||
|         exit(1); | ||||
|     fg->outputs[0]->ost   = ost; | ||||
| @@ -86,19 +85,16 @@ FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost) | ||||
|  | ||||
|     ost->filter = fg->outputs[0]; | ||||
|  | ||||
|     fg->inputs = grow_array(fg->inputs, sizeof(*fg->inputs), &fg->nb_inputs, | ||||
|                             fg->nb_inputs + 1); | ||||
|     GROW_ARRAY(fg->inputs, fg->nb_inputs); | ||||
|     if (!(fg->inputs[0] = av_mallocz(sizeof(*fg->inputs[0])))) | ||||
|         exit(1); | ||||
|     fg->inputs[0]->ist   = ist; | ||||
|     fg->inputs[0]->graph = fg; | ||||
|  | ||||
|     ist->filters = grow_array(ist->filters, sizeof(*ist->filters), | ||||
|                               &ist->nb_filters, ist->nb_filters + 1); | ||||
|     GROW_ARRAY(ist->filters, ist->nb_filters); | ||||
|     ist->filters[ist->nb_filters - 1] = fg->inputs[0]; | ||||
|  | ||||
|     filtergraphs = grow_array(filtergraphs, sizeof(*filtergraphs), | ||||
|                               &nb_filtergraphs, nb_filtergraphs + 1); | ||||
|     GROW_ARRAY(filtergraphs, nb_filtergraphs); | ||||
|     filtergraphs[nb_filtergraphs - 1] = fg; | ||||
|  | ||||
|     return fg; | ||||
| @@ -164,15 +160,13 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) | ||||
|     ist->decoding_needed = 1; | ||||
|     ist->st->discard = AVDISCARD_NONE; | ||||
|  | ||||
|     fg->inputs = grow_array(fg->inputs, sizeof(*fg->inputs), | ||||
|                             &fg->nb_inputs, fg->nb_inputs + 1); | ||||
|     GROW_ARRAY(fg->inputs, fg->nb_inputs); | ||||
|     if (!(fg->inputs[fg->nb_inputs - 1] = av_mallocz(sizeof(*fg->inputs[0])))) | ||||
|         exit(1); | ||||
|     fg->inputs[fg->nb_inputs - 1]->ist   = ist; | ||||
|     fg->inputs[fg->nb_inputs - 1]->graph = fg; | ||||
|  | ||||
|     ist->filters = grow_array(ist->filters, sizeof(*ist->filters), | ||||
|                               &ist->nb_filters, ist->nb_filters + 1); | ||||
|     GROW_ARRAY(ist->filters, ist->nb_filters); | ||||
|     ist->filters[ist->nb_filters - 1] = fg->inputs[fg->nb_inputs - 1]; | ||||
| } | ||||
|  | ||||
| @@ -541,8 +535,7 @@ int configure_filtergraph(FilterGraph *fg) | ||||
|     } else { | ||||
|         /* wait until output mappings are processed */ | ||||
|         for (cur = outputs; cur;) { | ||||
|             fg->outputs = grow_array(fg->outputs, sizeof(*fg->outputs), | ||||
|                                      &fg->nb_outputs, fg->nb_outputs + 1); | ||||
|             GROW_ARRAY(fg->outputs, fg->nb_outputs); | ||||
|             if (!(fg->outputs[fg->nb_outputs - 1] = av_mallocz(sizeof(*fg->outputs[0])))) | ||||
|                 exit(1); | ||||
|             fg->outputs[fg->nb_outputs - 1]->graph   = fg; | ||||
|   | ||||
							
								
								
									
										21
									
								
								avconv_opt.c
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								avconv_opt.c
									
									
									
									
									
								
							| @@ -210,8 +210,7 @@ static int opt_map(void *optctx, const char *opt, const char *arg) | ||||
|     if (map[0] == '[') { | ||||
|         /* this mapping refers to lavfi output */ | ||||
|         const char *c = map + 1; | ||||
|         o->stream_maps = grow_array(o->stream_maps, sizeof(*o->stream_maps), | ||||
|                                     &o->nb_stream_maps, o->nb_stream_maps + 1); | ||||
|         GROW_ARRAY(o->stream_maps, o->nb_stream_maps); | ||||
|         m = &o->stream_maps[o->nb_stream_maps - 1]; | ||||
|         m->linklabel = av_get_token(&c, "]"); | ||||
|         if (!m->linklabel) { | ||||
| @@ -239,8 +238,7 @@ static int opt_map(void *optctx, const char *opt, const char *arg) | ||||
|                 if (check_stream_specifier(input_files[file_idx]->ctx, input_files[file_idx]->ctx->streams[i], | ||||
|                             *p == ':' ? p + 1 : p) <= 0) | ||||
|                     continue; | ||||
|                 o->stream_maps = grow_array(o->stream_maps, sizeof(*o->stream_maps), | ||||
|                                             &o->nb_stream_maps, o->nb_stream_maps + 1); | ||||
|                 GROW_ARRAY(o->stream_maps, o->nb_stream_maps); | ||||
|                 m = &o->stream_maps[o->nb_stream_maps - 1]; | ||||
|  | ||||
|                 m->file_index   = file_idx; | ||||
| @@ -268,8 +266,7 @@ static int opt_map(void *optctx, const char *opt, const char *arg) | ||||
| static int opt_attach(void *optctx, const char *opt, const char *arg) | ||||
| { | ||||
|     OptionsContext *o = optctx; | ||||
|     o->attachments = grow_array(o->attachments, sizeof(*o->attachments), | ||||
|                                 &o->nb_attachments, o->nb_attachments + 1); | ||||
|     GROW_ARRAY(o->attachments, o->nb_attachments); | ||||
|     o->attachments[o->nb_attachments - 1] = arg; | ||||
|     return 0; | ||||
| } | ||||
| @@ -445,7 +442,7 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic) | ||||
|         if (!ist) | ||||
|             exit(1); | ||||
|  | ||||
|         input_streams = grow_array(input_streams, sizeof(*input_streams), &nb_input_streams, nb_input_streams + 1); | ||||
|         GROW_ARRAY(input_streams, nb_input_streams); | ||||
|         input_streams[nb_input_streams - 1] = ist; | ||||
|  | ||||
|         ist->st = st; | ||||
| @@ -658,7 +655,7 @@ static int opt_input_file(void *optctx, const char *opt, const char *filename) | ||||
|     /* dump the file content */ | ||||
|     av_dump_format(ic, nb_input_files, filename, 0); | ||||
|  | ||||
|     input_files = grow_array(input_files, sizeof(*input_files), &nb_input_files, nb_input_files + 1); | ||||
|     GROW_ARRAY(input_files, nb_input_files); | ||||
|     if (!(input_files[nb_input_files - 1] = av_mallocz(sizeof(*input_files[0])))) | ||||
|         exit(1); | ||||
|  | ||||
| @@ -766,8 +763,7 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e | ||||
|     if (oc->nb_streams - 1 < o->nb_streamid_map) | ||||
|         st->id = o->streamid_map[oc->nb_streams - 1]; | ||||
|  | ||||
|     output_streams = grow_array(output_streams, sizeof(*output_streams), &nb_output_streams, | ||||
|                                 nb_output_streams + 1); | ||||
|     GROW_ARRAY(output_streams, nb_output_streams); | ||||
|     if (!(ost = av_mallocz(sizeof(*ost)))) | ||||
|         exit(1); | ||||
|     output_streams[nb_output_streams - 1] = ost; | ||||
| @@ -1370,7 +1366,7 @@ loop_end: | ||||
|         avio_close(pb); | ||||
|     } | ||||
|  | ||||
|     output_files = grow_array(output_files, sizeof(*output_files), &nb_output_files, nb_output_files + 1); | ||||
|     GROW_ARRAY(output_files, nb_output_files); | ||||
|     if (!(output_files[nb_output_files - 1] = av_mallocz(sizeof(*output_files[0])))) | ||||
|         exit(1); | ||||
|  | ||||
| @@ -1783,8 +1779,7 @@ static int opt_audio_qscale(void *optctx, const char *opt, const char *arg) | ||||
|  | ||||
| static int opt_filter_complex(void *optctx, const char *opt, const char *arg) | ||||
| { | ||||
|     filtergraphs = grow_array(filtergraphs, sizeof(*filtergraphs), | ||||
|                               &nb_filtergraphs, nb_filtergraphs + 1); | ||||
|     GROW_ARRAY(filtergraphs, nb_filtergraphs); | ||||
|     if (!(filtergraphs[nb_filtergraphs - 1] = av_mallocz(sizeof(*filtergraphs[0])))) | ||||
|         return AVERROR(ENOMEM); | ||||
|     filtergraphs[nb_filtergraphs - 1]->index       = nb_filtergraphs - 1; | ||||
|   | ||||
| @@ -418,6 +418,9 @@ FILE *get_preset_file(char *filename, size_t filename_size, | ||||
|  */ | ||||
| void *grow_array(void *array, int elem_size, int *size, int new_size); | ||||
|  | ||||
| #define GROW_ARRAY(array, nb_elems)\ | ||||
|     array = grow_array(array, sizeof(*array), &nb_elems, nb_elems + 1) | ||||
|  | ||||
| typedef struct FrameBuffer { | ||||
|     uint8_t *base[4]; | ||||
|     uint8_t *data[4]; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user