You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	Use atexit() instead of defining a custom exit_program() interface.
This commit is contained in:
		
				
					committed by
					
						 Derek Buitenhuis
						Derek Buitenhuis
					
				
			
			
				
	
			
			
			
						parent
						
							bd680c7b49
						
					
				
				
					commit
					5e3f9979fa
				
			
							
								
								
									
										56
									
								
								avconv.c
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								avconv.c
									
									
									
									
									
								
							| @@ -143,7 +143,7 @@ static int decode_interrupt_cb(void *ctx) | ||||
|  | ||||
| const AVIOInterruptCB int_cb = { decode_interrupt_cb, NULL }; | ||||
|  | ||||
| void exit_program(int ret) | ||||
| static void exit_program() | ||||
| { | ||||
|     int i, j; | ||||
|  | ||||
| @@ -218,8 +218,6 @@ void exit_program(int ret) | ||||
|                (int) received_sigterm); | ||||
|         exit (255); | ||||
|     } | ||||
|  | ||||
|     exit(ret); | ||||
| } | ||||
|  | ||||
| void assert_avoptions(AVDictionary *m) | ||||
| @@ -227,7 +225,7 @@ void assert_avoptions(AVDictionary *m) | ||||
|     AVDictionaryEntry *t; | ||||
|     if ((t = av_dict_get(m, "", NULL, AV_DICT_IGNORE_SUFFIX))) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Option %s not found.\n", t->key); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -244,7 +242,7 @@ static void assert_codec_experimental(AVCodecContext *c, int encoder) | ||||
|         if (!(codec->capabilities & CODEC_CAP_EXPERIMENTAL)) | ||||
|             av_log(NULL, AV_LOG_FATAL, "Or use the non experimental %s '%s'.\n", | ||||
|                    codec_string, codec->name); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -343,7 +341,7 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) | ||||
|                    avctx->codec ? avctx->codec->name : "copy"); | ||||
|             print_error("", a); | ||||
|             if (exit_on_error) | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|         } | ||||
|         *pkt = new_pkt; | ||||
|  | ||||
| @@ -354,7 +352,7 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) | ||||
|     ret = av_interleaved_write_frame(s, pkt); | ||||
|     if (ret < 0) { | ||||
|         print_error("av_interleaved_write_frame()", ret); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -391,7 +389,7 @@ static void do_audio_out(AVFormatContext *s, OutputStream *ost, | ||||
|  | ||||
|     if (avcodec_encode_audio2(enc, &pkt, frame, &got_packet) < 0) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Audio encoding failed\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     if (got_packet) { | ||||
| @@ -462,7 +460,7 @@ static void do_subtitle_out(AVFormatContext *s, | ||||
|     if (pts == AV_NOPTS_VALUE) { | ||||
|         av_log(NULL, AV_LOG_ERROR, "Subtitle packets must have a pts\n"); | ||||
|         if (exit_on_error) | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
| @@ -494,7 +492,7 @@ static void do_subtitle_out(AVFormatContext *s, | ||||
|                                                     subtitle_out_max_size, sub); | ||||
|         if (subtitle_out_size < 0) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Subtitle encoding failed\n"); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|  | ||||
|         av_init_packet(&pkt); | ||||
| @@ -594,7 +592,7 @@ static void do_video_out(AVFormatContext *s, | ||||
|         ret = avcodec_encode_video2(enc, &pkt, &big_picture, &got_packet); | ||||
|         if (ret < 0) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Video encoding failed\n"); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|  | ||||
|         if (got_packet) { | ||||
| @@ -639,7 +637,7 @@ static void do_video_stats(AVFormatContext *os, OutputStream *ost, | ||||
|         vstats_file = fopen(vstats_filename, "w"); | ||||
|         if (!vstats_file) { | ||||
|             perror("fopen"); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -952,7 +950,7 @@ static void flush_encoders(void) | ||||
|                 ret = encode(enc, &pkt, NULL, &got_packet); | ||||
|                 if (ret < 0) { | ||||
|                     av_log(NULL, AV_LOG_FATAL, "%s encoding failed\n", desc); | ||||
|                     exit_program(1); | ||||
|                     exit(1); | ||||
|                 } | ||||
|                 *size += ret; | ||||
|                 if (ost->logfile && enc->stats_out) { | ||||
| @@ -1163,7 +1161,7 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) | ||||
|             av_log(NULL, AV_LOG_FATAL, | ||||
|                    "Audio volume adjustment on sample format %s is not supported.\n", | ||||
|                    av_get_sample_fmt_name(ist->st->codec->sample_fmt)); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -1180,7 +1178,7 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) | ||||
|             av_log(NULL, AV_LOG_FATAL, "Unable to find default channel " | ||||
|                    "layout for Input Stream #%d.%d\n", ist->file_index, | ||||
|                    ist->st->index); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         decoded_frame->channel_layout = avctx->channel_layout; | ||||
|  | ||||
| @@ -1206,7 +1204,7 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) | ||||
|             if (ist_in_filtergraph(filtergraphs[i], ist) && | ||||
|                 configure_filtergraph(filtergraphs[i]) < 0) { | ||||
|                 av_log(NULL, AV_LOG_FATAL, "Error reinitializing filters!\n"); | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|             } | ||||
|     } | ||||
|  | ||||
| @@ -1276,7 +1274,7 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output) | ||||
|             if (ist_in_filtergraph(filtergraphs[i], ist) && | ||||
|                 configure_filtergraph(filtergraphs[i]) < 0) { | ||||
|                 av_log(NULL, AV_LOG_FATAL, "Error reinitializing filters!\n"); | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|             } | ||||
|     } | ||||
|  | ||||
| @@ -1442,7 +1440,7 @@ static void print_sdp(void) | ||||
|     AVFormatContext **avc = av_malloc(sizeof(*avc) * nb_output_files); | ||||
|  | ||||
|     if (!avc) | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     for (i = 0; i < nb_output_files; i++) | ||||
|         avc[i] = output_files[i]->ctx; | ||||
|  | ||||
| @@ -1530,7 +1528,7 @@ static void parse_forced_key_frames(char *kf, OutputStream *ost, | ||||
|     ost->forced_kf_pts   = av_malloc(sizeof(*ost->forced_kf_pts) * n); | ||||
|     if (!ost->forced_kf_pts) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Could not allocate forced key frames array.\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     p = kf; | ||||
| @@ -1644,7 +1642,7 @@ static int transcode_init(void) | ||||
|             case AVMEDIA_TYPE_AUDIO: | ||||
|                 if (audio_volume != 256) { | ||||
|                     av_log(NULL, AV_LOG_FATAL, "-acodec copy and -vol are incompatible (frames are not decoded)\n"); | ||||
|                     exit_program(1); | ||||
|                     exit(1); | ||||
|                 } | ||||
|                 codec->channel_layout     = icodec->channel_layout; | ||||
|                 codec->sample_rate        = icodec->sample_rate; | ||||
| @@ -1782,7 +1780,7 @@ static int transcode_init(void) | ||||
|                         if (!f) { | ||||
|                             av_log(NULL, AV_LOG_FATAL, "Cannot write log file '%s' for pass-1 encoding: %s\n", | ||||
|                                    logfilename, strerror(errno)); | ||||
|                             exit_program(1); | ||||
|                             exit(1); | ||||
|                         } | ||||
|                         ost->logfile = f; | ||||
|                     } else { | ||||
| @@ -1791,7 +1789,7 @@ static int transcode_init(void) | ||||
|                         if (cmdutils_read_file(logfilename, &logbuffer, &logbuffer_size) < 0) { | ||||
|                             av_log(NULL, AV_LOG_FATAL, "Error reading log file '%s' for pass-2 encoding\n", | ||||
|                                    logfilename); | ||||
|                             exit_program(1); | ||||
|                             exit(1); | ||||
|                         } | ||||
|                         codec->stats_in = logbuffer; | ||||
|                     } | ||||
| @@ -2184,7 +2182,7 @@ static int process_input(void) | ||||
|         if (ret != AVERROR_EOF) { | ||||
|             print_error(is->filename, ret); | ||||
|             if (exit_on_error) | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|         } | ||||
|         ifile->eof_reached = 1; | ||||
|  | ||||
| @@ -2252,7 +2250,7 @@ static int process_input(void) | ||||
|         av_log(NULL, AV_LOG_ERROR, "Error while decoding stream #%d:%d\n", | ||||
|                ist->file_index, ist->st->index); | ||||
|         if (exit_on_error) | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|     } | ||||
|  | ||||
| discard_packet: | ||||
| @@ -2429,6 +2427,8 @@ int main(int argc, char **argv) | ||||
|     OptionsContext o = { 0 }; | ||||
|     int64_t ti; | ||||
|  | ||||
|     atexit(exit_program); | ||||
|  | ||||
|     reset_options(&o); | ||||
|  | ||||
|     av_log_set_flags(AV_LOG_SKIP_REPEATED); | ||||
| @@ -2452,24 +2452,24 @@ int main(int argc, char **argv) | ||||
|     if (nb_output_files <= 0 && nb_input_files == 0) { | ||||
|         show_usage(); | ||||
|         av_log(NULL, AV_LOG_WARNING, "Use -h to get full help or, even better, run 'man %s'\n", program_name); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     /* file converter / grab */ | ||||
|     if (nb_output_files <= 0) { | ||||
|         fprintf(stderr, "At least one output file must be specified\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     ti = getutime(); | ||||
|     if (transcode() < 0) | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     ti = getutime() - ti; | ||||
|     if (do_benchmark) { | ||||
|         int maxrss = getmaxrss() / 1024; | ||||
|         printf("bench: utime=%0.3fs maxrss=%ikB\n", ti / 1000000.0, maxrss); | ||||
|     } | ||||
|  | ||||
|     exit_program(0); | ||||
|     exit(0); | ||||
|     return 0; | ||||
| } | ||||
|   | ||||
| @@ -46,7 +46,7 @@ static char *choose_ ## var ## s(OutputStream *ost)                            \ | ||||
|         int len;                                                               \ | ||||
|                                                                                \ | ||||
|         if (avio_open_dyn_buf(&s) < 0)                                         \ | ||||
|             exit_program(1);                                                   \ | ||||
|             exit(1);                                                           \ | ||||
|                                                                                \ | ||||
|         for (p = ost->enc->supported_list; *p != none; p++) {                  \ | ||||
|             get_name(*p);                                                      \ | ||||
| @@ -76,13 +76,13 @@ FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost) | ||||
|     FilterGraph *fg = av_mallocz(sizeof(*fg)); | ||||
|  | ||||
|     if (!fg) | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     fg->index = nb_filtergraphs; | ||||
|  | ||||
|     fg->outputs = grow_array(fg->outputs, sizeof(*fg->outputs), &fg->nb_outputs, | ||||
|                              fg->nb_outputs + 1); | ||||
|     if (!(fg->outputs[0] = av_mallocz(sizeof(*fg->outputs[0])))) | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     fg->outputs[0]->ost   = ost; | ||||
|     fg->outputs[0]->graph = fg; | ||||
|  | ||||
| @@ -91,7 +91,7 @@ FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost) | ||||
|     fg->inputs = grow_array(fg->inputs, sizeof(*fg->inputs), &fg->nb_inputs, | ||||
|                             fg->nb_inputs + 1); | ||||
|     if (!(fg->inputs[0] = av_mallocz(sizeof(*fg->inputs[0])))) | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     fg->inputs[0]->ist   = ist; | ||||
|     fg->inputs[0]->graph = fg; | ||||
|  | ||||
| @@ -116,7 +116,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) | ||||
|     if (type != AVMEDIA_TYPE_VIDEO && type != AVMEDIA_TYPE_AUDIO) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Only video and audio filters supported " | ||||
|                "currently.\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     if (in->name) { | ||||
| @@ -128,7 +128,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) | ||||
|         if (file_idx < 0 || file_idx >= nb_input_files) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Invalid file index %d in filtegraph description %s.\n", | ||||
|                    file_idx, fg->graph_desc); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         s = input_files[file_idx]->ctx; | ||||
|  | ||||
| @@ -143,7 +143,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) | ||||
|         if (!st) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Stream specifier '%s' in filtergraph description %s " | ||||
|                    "matches no streams.\n", p, fg->graph_desc); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         ist = input_streams[input_files[file_idx]->ist_index + st->index]; | ||||
|     } else { | ||||
| @@ -157,7 +157,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) | ||||
|             av_log(NULL, AV_LOG_FATAL, "Cannot find a matching stream for " | ||||
|                    "unlabeled input pad %d on filter %s", in->pad_idx, | ||||
|                    in->filter_ctx->name); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } | ||||
|     av_assert0(ist); | ||||
| @@ -169,7 +169,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) | ||||
|     fg->inputs = grow_array(fg->inputs, sizeof(*fg->inputs), | ||||
|                             &fg->nb_inputs, fg->nb_inputs + 1); | ||||
|     if (!(fg->inputs[fg->nb_inputs - 1] = av_mallocz(sizeof(*fg->inputs[0])))) | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     fg->inputs[fg->nb_inputs - 1]->ist   = ist; | ||||
|     fg->inputs[fg->nb_inputs - 1]->graph = fg; | ||||
|  | ||||
| @@ -332,7 +332,7 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter, | ||||
|     AVIOContext *pb;                                               \ | ||||
|                                                                    \ | ||||
|     if (avio_open_dyn_buf(&pb) < 0)                                \ | ||||
|         exit_program(1);                                           \ | ||||
|         exit(1);                                                   \ | ||||
|                                                                    \ | ||||
|     avio_printf(pb, "%s", ctx->filter->name);                      \ | ||||
|     if (nb_pads > 1)                                               \ | ||||
| @@ -524,7 +524,7 @@ int configure_filtergraph(FilterGraph *fg) | ||||
|             fg->outputs = grow_array(fg->outputs, sizeof(*fg->outputs), | ||||
|                                      &fg->nb_outputs, fg->nb_outputs + 1); | ||||
|             if (!(fg->outputs[fg->nb_outputs - 1] = av_mallocz(sizeof(*fg->outputs[0])))) | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|             fg->outputs[fg->nb_outputs - 1]->graph   = fg; | ||||
|             fg->outputs[fg->nb_outputs - 1]->out_tmp = cur; | ||||
|             cur = cur->next; | ||||
|   | ||||
							
								
								
									
										130
									
								
								avconv_opt.c
									
									
									
									
									
								
							
							
						
						
									
										130
									
								
								avconv_opt.c
									
									
									
									
									
								
							| @@ -50,7 +50,7 @@ | ||||
|         if ((ret = check_stream_specifier(fmtctx, st, spec)) > 0)\ | ||||
|             outvar = o->name[i].u.type;\ | ||||
|         else if (ret < 0)\ | ||||
|             exit_program(1);\ | ||||
|             exit(1);\ | ||||
|     }\ | ||||
| } | ||||
|  | ||||
| @@ -140,7 +140,7 @@ static double parse_frame_aspect_ratio(const char *arg) | ||||
|  | ||||
|     if (!ar) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Incorrect aspect ratio specification.\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|     return ar; | ||||
| } | ||||
| @@ -190,7 +190,7 @@ static int opt_map(void *optctx, const char *opt, const char *arg) | ||||
|         sync_file_idx = strtol(sync + 1, &sync, 0); | ||||
|         if (sync_file_idx >= nb_input_files || sync_file_idx < 0) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Invalid sync file index: %d.\n", sync_file_idx); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         if (*sync) | ||||
|             sync++; | ||||
| @@ -203,7 +203,7 @@ static int opt_map(void *optctx, const char *opt, const char *arg) | ||||
|         if (i == input_files[sync_file_idx]->nb_streams) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Sync stream specification in map %s does not " | ||||
|                                        "match any streams.\n", arg); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -217,13 +217,13 @@ static int opt_map(void *optctx, const char *opt, const char *arg) | ||||
|         m->linklabel = av_get_token(&c, "]"); | ||||
|         if (!m->linklabel) { | ||||
|             av_log(NULL, AV_LOG_ERROR, "Invalid output link label: %s.\n", map); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } else { | ||||
|         file_idx = strtol(map, &p, 0); | ||||
|         if (file_idx >= nb_input_files || file_idx < 0) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Invalid input file index: %d.\n", file_idx); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         if (negative) | ||||
|             /* disable some already defined maps */ | ||||
| @@ -259,7 +259,7 @@ static int opt_map(void *optctx, const char *opt, const char *arg) | ||||
|  | ||||
|     if (!m) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Stream map '%s' matches no streams.\n", arg); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     av_freep(&map); | ||||
| @@ -291,7 +291,7 @@ static void parse_meta_type(char *arg, char *type, int *index, const char **stre | ||||
|         case 's': | ||||
|             if (*(++arg) && *arg != ':') { | ||||
|                 av_log(NULL, AV_LOG_FATAL, "Invalid metadata specifier %s.\n", arg); | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|             } | ||||
|             *stream_spec = *arg == ':' ? arg + 1 : ""; | ||||
|             break; | ||||
| @@ -302,7 +302,7 @@ static void parse_meta_type(char *arg, char *type, int *index, const char **stre | ||||
|             break; | ||||
|         default: | ||||
|             av_log(NULL, AV_LOG_FATAL, "Invalid metadata type %c.\n", *arg); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } else | ||||
|         *type = 'g'; | ||||
| @@ -331,7 +331,7 @@ static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFor | ||||
|     if ((index) < 0 || (index) >= (nb_elems)) {\ | ||||
|         av_log(NULL, AV_LOG_FATAL, "Invalid %s index %d while processing metadata maps.\n",\ | ||||
|                 (desc), (index));\ | ||||
|         exit_program(1);\ | ||||
|         exit(1);\ | ||||
|     } | ||||
|  | ||||
| #define SET_DICT(type, meta, context, index)\ | ||||
| @@ -360,11 +360,11 @@ static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFor | ||||
|                 meta_in = &ic->streams[i]->metadata; | ||||
|                 break; | ||||
|             } else if (ret < 0) | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|         } | ||||
|         if (!meta_in) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Stream specifier %s does not match  any streams.\n", istream_spec); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -374,7 +374,7 @@ static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFor | ||||
|                 meta_out = &oc->streams[i]->metadata; | ||||
|                 av_dict_copy(meta_out, *meta_in, AV_DICT_DONT_OVERWRITE); | ||||
|             } else if (ret < 0) | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|         } | ||||
|     } else | ||||
|         av_dict_copy(meta_out, *meta_in, AV_DICT_DONT_OVERWRITE); | ||||
| @@ -402,11 +402,11 @@ static AVCodec *find_codec_or_die(const char *name, enum AVMediaType type, int e | ||||
|  | ||||
|     if (!codec) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Unknown %s '%s'\n", codec_string, name); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|     if (codec->type != type) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Invalid %s type '%s'\n", codec_string, name); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|     return codec; | ||||
| } | ||||
| @@ -439,7 +439,7 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic) | ||||
|         char *framerate = NULL; | ||||
|  | ||||
|         if (!ist) | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|  | ||||
|         input_streams = grow_array(input_streams, sizeof(*input_streams), &nb_input_streams, nb_input_streams + 1); | ||||
|         input_streams[nb_input_streams - 1] = ist; | ||||
| @@ -466,7 +466,7 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic) | ||||
|                                                  framerate) < 0) { | ||||
|                 av_log(NULL, AV_LOG_ERROR, "Error parsing framerate %s.\n", | ||||
|                        framerate); | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|             } | ||||
|  | ||||
|             break; | ||||
| @@ -501,12 +501,12 @@ static void assert_file_overwrite(const char *filename) | ||||
|                 fflush(stderr); | ||||
|                 if (!read_yesno()) { | ||||
|                     fprintf(stderr, "Not overwriting - exiting\n"); | ||||
|                     exit_program(1); | ||||
|                     exit(1); | ||||
|                 } | ||||
|             } | ||||
|             else { | ||||
|                 fprintf(stderr,"File '%s' already exists. Exiting.\n", filename); | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| @@ -528,7 +528,7 @@ static void dump_attachment(AVStream *st, const char *filename) | ||||
|     if (!*filename) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "No filename specified and no 'filename' tag" | ||||
|                "in stream #%d:%d.\n", nb_input_files - 1, st->index); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     assert_file_overwrite(filename); | ||||
| @@ -536,7 +536,7 @@ static void dump_attachment(AVStream *st, const char *filename) | ||||
|     if ((ret = avio_open2(&out, filename, AVIO_FLAG_WRITE, &int_cb, NULL)) < 0) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Could not open file %s for writing.\n", | ||||
|                filename); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     avio_write(out, st->codec->extradata, st->codec->extradata_size); | ||||
| @@ -558,7 +558,7 @@ static int opt_input_file(void *optctx, const char *opt, const char *filename) | ||||
|     if (o->format) { | ||||
|         if (!(file_iformat = av_find_input_format(o->format))) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Unknown input format: '%s'\n", o->format); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -572,7 +572,7 @@ static int opt_input_file(void *optctx, const char *opt, const char *filename) | ||||
|     ic = avformat_alloc_context(); | ||||
|     if (!ic) { | ||||
|         print_error(filename, AVERROR(ENOMEM)); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|     if (o->nb_audio_sample_rate) { | ||||
|         snprintf(buf, sizeof(buf), "%d", o->audio_sample_rate[o->nb_audio_sample_rate - 1].u.i); | ||||
| @@ -613,7 +613,7 @@ static int opt_input_file(void *optctx, const char *opt, const char *filename) | ||||
|     err = avformat_open_input(&ic, filename, file_iformat, &format_opts); | ||||
|     if (err < 0) { | ||||
|         print_error(filename, err); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|     assert_avoptions(format_opts); | ||||
|  | ||||
| @@ -631,7 +631,7 @@ static int opt_input_file(void *optctx, const char *opt, const char *filename) | ||||
|     if (ret < 0) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "%s: could not find codec parameters\n", filename); | ||||
|         avformat_close_input(&ic); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     timestamp = o->start_time; | ||||
| @@ -656,7 +656,7 @@ static int opt_input_file(void *optctx, const char *opt, const char *filename) | ||||
|  | ||||
|     input_files = grow_array(input_files, sizeof(*input_files), &nb_input_files, nb_input_files + 1); | ||||
|     if (!(input_files[nb_input_files - 1] = av_mallocz(sizeof(*input_files[0])))) | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|  | ||||
|     input_files[nb_input_files - 1]->ctx        = ic; | ||||
|     input_files[nb_input_files - 1]->ist_index  = nb_input_streams - ic->nb_streams; | ||||
| @@ -691,7 +691,7 @@ static uint8_t *get_line(AVIOContext *s) | ||||
|  | ||||
|     if (avio_open_dyn_buf(&line) < 0) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Could not alloc buffer for reading preset.\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     while ((c = avio_r8(s)) && c != '\n') | ||||
| @@ -758,7 +758,7 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e | ||||
|  | ||||
|     if (!st) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Could not alloc stream.\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     if (oc->nb_streams - 1 < o->nb_streamid_map) | ||||
| @@ -767,7 +767,7 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e | ||||
|     output_streams = grow_array(output_streams, sizeof(*output_streams), &nb_output_streams, | ||||
|                                 nb_output_streams + 1); | ||||
|     if (!(ost = av_mallocz(sizeof(*ost)))) | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     output_streams[nb_output_streams - 1] = ost; | ||||
|  | ||||
|     ost->file_index = nb_output_files; | ||||
| @@ -792,7 +792,7 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e | ||||
|             } | ||||
|             if (!(arg = strchr(buf, '='))) { | ||||
|                 av_log(NULL, AV_LOG_FATAL, "Invalid line found in the preset file.\n"); | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|             } | ||||
|             *arg++ = 0; | ||||
|             av_dict_set(&ost->opts, buf, arg, AV_DICT_DONT_OVERWRITE); | ||||
| @@ -804,7 +804,7 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e | ||||
|         av_log(NULL, AV_LOG_FATAL, | ||||
|                "Preset %s specified for stream %d:%d, but could not be opened.\n", | ||||
|                preset, ost->file_index, ost->index); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     ost->max_frames = INT64_MAX; | ||||
| @@ -816,7 +816,7 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e | ||||
|             *next++ = 0; | ||||
|         if (!(bsfc = av_bitstream_filter_init(bsf))) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Unknown bitstream filter %s\n", bsf); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         if (bsfc_prev) | ||||
|             bsfc_prev->next = bsfc; | ||||
| @@ -862,7 +862,7 @@ static void parse_matrix_coeffs(uint16_t *dest, const char *str) | ||||
|         p = strchr(p, ','); | ||||
|         if (!p) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Syntax error in matrix \"%s\" at coeff %d\n", str, i); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         p++; | ||||
|     } | ||||
| @@ -890,13 +890,13 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc) | ||||
|         MATCH_PER_STREAM_OPT(frame_rates, str, frame_rate, oc, st); | ||||
|         if (frame_rate && av_parse_video_rate(&ost->frame_rate, frame_rate) < 0) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Invalid framerate value: %s\n", frame_rate); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|  | ||||
|         MATCH_PER_STREAM_OPT(frame_sizes, str, frame_size, oc, st); | ||||
|         if (frame_size && av_parse_video_size(&video_enc->width, &video_enc->height, frame_size) < 0) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Invalid frame size: %s.\n", frame_size); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|  | ||||
|         MATCH_PER_STREAM_OPT(frame_aspect_ratios, str, frame_aspect_ratio, oc, st); | ||||
| @@ -906,7 +906,7 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc) | ||||
|         MATCH_PER_STREAM_OPT(frame_pix_fmts, str, frame_pix_fmt, oc, st); | ||||
|         if (frame_pix_fmt && (video_enc->pix_fmt = av_get_pix_fmt(frame_pix_fmt)) == PIX_FMT_NONE) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Unknown pixel format requested: %s.\n", frame_pix_fmt); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         st->sample_aspect_ratio = video_enc->sample_aspect_ratio; | ||||
|  | ||||
| @@ -914,7 +914,7 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc) | ||||
|         if (intra_matrix) { | ||||
|             if (!(video_enc->intra_matrix = av_mallocz(sizeof(*video_enc->intra_matrix) * 64))) { | ||||
|                 av_log(NULL, AV_LOG_FATAL, "Could not allocate memory for intra matrix.\n"); | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|             } | ||||
|             parse_matrix_coeffs(video_enc->intra_matrix, intra_matrix); | ||||
|         } | ||||
| @@ -922,7 +922,7 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc) | ||||
|         if (inter_matrix) { | ||||
|             if (!(video_enc->inter_matrix = av_mallocz(sizeof(*video_enc->inter_matrix) * 64))) { | ||||
|                 av_log(NULL, AV_LOG_FATAL, "Could not allocate memory for inter matrix.\n"); | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|             } | ||||
|             parse_matrix_coeffs(video_enc->inter_matrix, inter_matrix); | ||||
|         } | ||||
| @@ -933,7 +933,7 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc) | ||||
|             int e = sscanf(p, "%d,%d,%d", &start, &end, &q); | ||||
|             if (e != 3) { | ||||
|                 av_log(NULL, AV_LOG_FATAL, "error parsing rc_override\n"); | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|             } | ||||
|             video_enc->rc_override = | ||||
|                 av_realloc(video_enc->rc_override, | ||||
| @@ -969,7 +969,7 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc) | ||||
|         MATCH_PER_STREAM_OPT(passlogfiles, str, ost->logfile_prefix, oc, st); | ||||
|         if (ost->logfile_prefix && | ||||
|             !(ost->logfile_prefix = av_strdup(ost->logfile_prefix))) | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|  | ||||
|         MATCH_PER_STREAM_OPT(forced_key_frames, str, ost->forced_keyframes, oc, st); | ||||
|         if (ost->forced_keyframes) | ||||
| @@ -1011,7 +1011,7 @@ static OutputStream *new_audio_stream(OptionsContext *o, AVFormatContext *oc) | ||||
|         if (sample_fmt && | ||||
|             (audio_enc->sample_fmt = av_get_sample_fmt(sample_fmt)) == AV_SAMPLE_FMT_NONE) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Invalid sample format '%s'\n", sample_fmt); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|  | ||||
|         MATCH_PER_STREAM_OPT(audio_sample_rate, i, audio_enc->sample_rate, oc, st); | ||||
| @@ -1030,7 +1030,7 @@ static OutputStream *new_data_stream(OptionsContext *o, AVFormatContext *oc) | ||||
|     ost = new_output_stream(o, oc, AVMEDIA_TYPE_DATA); | ||||
|     if (!ost->stream_copy) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Data stream encoding not supported yet (only streamcopy)\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     return ost; | ||||
| @@ -1072,7 +1072,7 @@ static int opt_streamid(void *optctx, const char *opt, const char *arg) | ||||
|         av_log(NULL, AV_LOG_FATAL, | ||||
|                "Invalid value '%s' for option '%s', required syntax is 'index:value'\n", | ||||
|                arg, opt); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|     *p++ = '\0'; | ||||
|     idx = parse_number_or_die(opt, idx_str, OPT_INT, 0, INT_MAX); | ||||
| @@ -1133,7 +1133,7 @@ static void init_output_filter(OutputFilter *ofilter, OptionsContext *o, | ||||
|     default: | ||||
|         av_log(NULL, AV_LOG_FATAL, "Only video and audio filters are supported " | ||||
|                "currently.\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     ost->source_index = -1; | ||||
| @@ -1145,12 +1145,12 @@ static void init_output_filter(OutputFilter *ofilter, OptionsContext *o, | ||||
|         av_log(NULL, AV_LOG_ERROR, "Streamcopy requested for output stream %d:%d, " | ||||
|                "which is fed from a complex filtergraph. Filtering and streamcopy " | ||||
|                "cannot be used together.\n", ost->file_index, ost->index); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     if (configure_output_filter(ofilter->graph, ofilter, ofilter->out_tmp) < 0) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Error configuring filter.\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|     avfilter_inout_free(&ofilter->out_tmp); | ||||
| } | ||||
| @@ -1177,7 +1177,7 @@ void opt_output_file(void *optctx, const char *filename) | ||||
|  | ||||
|     if (configure_complex_filters() < 0) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Error configuring filters.\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     if (!strcmp(filename, "-")) | ||||
| @@ -1186,21 +1186,21 @@ void opt_output_file(void *optctx, const char *filename) | ||||
|     oc = avformat_alloc_context(); | ||||
|     if (!oc) { | ||||
|         print_error(filename, AVERROR(ENOMEM)); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     if (o->format) { | ||||
|         file_oformat = av_guess_format(o->format, NULL, NULL); | ||||
|         if (!file_oformat) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Requested output format '%s' is not a suitable output format\n", o->format); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } else { | ||||
|         file_oformat = av_guess_format(NULL, filename, NULL); | ||||
|         if (!file_oformat) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Unable to find a suitable output format for '%s'\n", | ||||
|                    filename); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -1301,7 +1301,7 @@ loop_end: | ||||
|                 if (!ofilter) { | ||||
|                     av_log(NULL, AV_LOG_FATAL, "Output with label '%s' does not exist " | ||||
|                            "in any defined filter graph.\n", map->linklabel); | ||||
|                     exit_program(1); | ||||
|                     exit(1); | ||||
|                 } | ||||
|                 init_output_filter(ofilter, o, oc); | ||||
|             } else { | ||||
| @@ -1315,7 +1315,7 @@ loop_end: | ||||
|                 default: | ||||
|                     av_log(NULL, AV_LOG_FATAL, "Cannot map stream #%d:%d - unsupported type.\n", | ||||
|                            map->file_index, map->stream_index); | ||||
|                     exit_program(1); | ||||
|                     exit(1); | ||||
|                 } | ||||
|  | ||||
|                 ost->source_index = input_files[map->file_index]->ist_index + map->stream_index; | ||||
| @@ -1337,17 +1337,17 @@ loop_end: | ||||
|         if ((err = avio_open2(&pb, o->attachments[i], AVIO_FLAG_READ, &int_cb, NULL)) < 0) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Could not open attachment file %s.\n", | ||||
|                    o->attachments[i]); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         if ((len = avio_size(pb)) <= 0) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Could not get size of the attachment %s.\n", | ||||
|                    o->attachments[i]); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         if (!(attachment = av_malloc(len))) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Attachment %s too large to fit into memory.\n", | ||||
|                    o->attachments[i]); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         avio_read(pb, attachment, len); | ||||
|  | ||||
| @@ -1365,7 +1365,7 @@ loop_end: | ||||
|  | ||||
|     output_files = grow_array(output_files, sizeof(*output_files), &nb_output_files, nb_output_files + 1); | ||||
|     if (!(output_files[nb_output_files - 1] = av_mallocz(sizeof(*output_files[0])))) | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|  | ||||
|     output_files[nb_output_files - 1]->ctx            = oc; | ||||
|     output_files[nb_output_files - 1]->ost_index      = nb_output_streams - oc->nb_streams; | ||||
| @@ -1381,7 +1381,7 @@ loop_end: | ||||
|     if (oc->oformat->flags & AVFMT_NEEDNUMBER) { | ||||
|         if (!av_filename_number_test(oc->filename)) { | ||||
|             print_error(oc->filename, AVERROR(EINVAL)); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -1394,7 +1394,7 @@ loop_end: | ||||
|                               &oc->interrupt_callback, | ||||
|                               &output_files[nb_output_files - 1]->opts)) < 0) { | ||||
|             print_error(filename, err); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -1415,7 +1415,7 @@ loop_end: | ||||
|             continue; | ||||
|         if (in_file_index >= nb_input_files) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Invalid input file index %d while processing metadata maps\n", in_file_index); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         copy_metadata(o->metadata_map[i].specifier, *p ? p + 1 : p, oc, input_files[in_file_index]->ctx, o); | ||||
|     } | ||||
| @@ -1433,7 +1433,7 @@ loop_end: | ||||
|         } else { | ||||
|             av_log(NULL, AV_LOG_FATAL, "Invalid input file index %d in chapter mapping.\n", | ||||
|                    o->chapters_input_file); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|     } | ||||
|     if (o->chapters_input_file >= 0) | ||||
| @@ -1464,7 +1464,7 @@ loop_end: | ||||
|         if (!val) { | ||||
|             av_log(NULL, AV_LOG_FATAL, "No '=' character in metadata string %s.\n", | ||||
|                    o->metadata[i].u.str); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         *val++ = 0; | ||||
|  | ||||
| @@ -1474,7 +1474,7 @@ loop_end: | ||||
|                 if ((ret = check_stream_specifier(oc, oc->streams[j], stream_spec)) > 0) { | ||||
|                     av_dict_set(&oc->streams[j]->metadata, o->metadata[i].u.str, *val ? val : NULL, 0); | ||||
|                 } else if (ret < 0) | ||||
|                     exit_program(1); | ||||
|                     exit(1); | ||||
|             } | ||||
|         } | ||||
|         else { | ||||
| @@ -1485,13 +1485,13 @@ loop_end: | ||||
|             case 'c': | ||||
|                 if (index < 0 || index >= oc->nb_chapters) { | ||||
|                     av_log(NULL, AV_LOG_FATAL, "Invalid chapter index %d in metadata specifier.\n", index); | ||||
|                     exit_program(1); | ||||
|                     exit(1); | ||||
|                 } | ||||
|                 m = &oc->chapters[index]->metadata; | ||||
|                 break; | ||||
|             default: | ||||
|                 av_log(NULL, AV_LOG_FATAL, "Invalid metadata specifier %s.\n", o->metadata[i].specifier); | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|             } | ||||
|             av_dict_set(m, o->metadata[i].u.str, *val ? val : NULL, 0); | ||||
|         } | ||||
| @@ -1545,7 +1545,7 @@ static int opt_target(void *optctx, const char *opt, const char *arg) | ||||
|         av_log(NULL, AV_LOG_FATAL, "Could not determine norm (PAL/NTSC/NTSC-Film) for target.\n"); | ||||
|         av_log(NULL, AV_LOG_FATAL, "Please prefix target with \"pal-\", \"ntsc-\" or \"film-\",\n"); | ||||
|         av_log(NULL, AV_LOG_FATAL, "or set a framerate with \"-r xxx\".\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     if (!strcmp(arg, "vcd")) { | ||||
|   | ||||
							
								
								
									
										5
									
								
								avplay.c
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								avplay.c
									
									
									
									
									
								
							| @@ -282,11 +282,6 @@ static AVPacket flush_pkt; | ||||
|  | ||||
| static SDL_Surface *screen; | ||||
|  | ||||
| void exit_program(int ret) | ||||
| { | ||||
|     exit(ret); | ||||
| } | ||||
|  | ||||
| static int packet_queue_put(PacketQueue *q, AVPacket *pkt); | ||||
|  | ||||
| /* packet queue handling */ | ||||
|   | ||||
| @@ -59,10 +59,9 @@ static const char unit_hertz_str[]          = "Hz"   ; | ||||
| static const char unit_byte_str[]           = "byte" ; | ||||
| static const char unit_bit_per_second_str[] = "bit/s"; | ||||
|  | ||||
| void exit_program(int ret) | ||||
| static void exit_program() | ||||
| { | ||||
|     av_dict_free(&fmt_entries_to_show); | ||||
|     exit(ret); | ||||
| } | ||||
|  | ||||
| /* | ||||
| @@ -926,6 +925,8 @@ int main(int argc, char **argv) | ||||
|     if (!buffer) | ||||
|         exit(1); | ||||
|  | ||||
|     atexit(exit_program); | ||||
|  | ||||
|     options = real_options; | ||||
|     parse_loglevel(argc, argv, options); | ||||
|     av_register_all(); | ||||
|   | ||||
| @@ -323,11 +323,6 @@ static AVLFG random_state; | ||||
|  | ||||
| static FILE *logfile = NULL; | ||||
|  | ||||
| void exit_program(int ret) | ||||
| { | ||||
|     exit(ret); | ||||
| } | ||||
|  | ||||
| /* FIXME: make avserver work with IPv6 */ | ||||
| /* resolve host with also IP address parsing */ | ||||
| static int resolve_host(struct in_addr *sin_addr, const char *hostname) | ||||
|   | ||||
							
								
								
									
										14
									
								
								cmdutils.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								cmdutils.c
									
									
									
									
									
								
							| @@ -97,7 +97,7 @@ double parse_number_or_die(const char *context, const char *numstr, int type, | ||||
|     else | ||||
|         return d; | ||||
|     av_log(NULL, AV_LOG_FATAL, error, context, numstr, min, max); | ||||
|     exit_program(1); | ||||
|     exit(1); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -108,7 +108,7 @@ int64_t parse_time_or_die(const char *context, const char *timestr, | ||||
|     if (av_parse_time(&us, timestr, is_duration) < 0) { | ||||
|         av_log(NULL, AV_LOG_FATAL, "Invalid %s specification for %s: %s\n", | ||||
|                is_duration ? "duration" : "date", context, timestr); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|     return us; | ||||
| } | ||||
| @@ -294,7 +294,7 @@ int parse_option(void *optctx, const char *opt, const char *arg, | ||||
|         } | ||||
|     } | ||||
|     if (po->flags & OPT_EXIT) | ||||
|         exit_program(0); | ||||
|         exit(0); | ||||
|     return !!(po->flags & HAS_ARG); | ||||
| } | ||||
|  | ||||
| @@ -320,7 +320,7 @@ void parse_options(void *optctx, int argc, char **argv, const OptionDef *options | ||||
|             opt++; | ||||
|  | ||||
|             if ((ret = parse_option(optctx, opt, argv[optindex], options)) < 0) | ||||
|                 exit_program(1); | ||||
|                 exit(1); | ||||
|             optindex += ret; | ||||
|         } else { | ||||
|             if (parse_arg_function) | ||||
| @@ -429,7 +429,7 @@ int opt_loglevel(void *optctx, const char *opt, const char *arg) | ||||
|                "Possible levels are numbers or:\n", arg); | ||||
|         for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) | ||||
|             av_log(NULL, AV_LOG_FATAL, "\"%s\"\n", log_levels[i].name); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|     av_log_set_level(level); | ||||
|     return 0; | ||||
| @@ -1265,13 +1265,13 @@ void *grow_array(void *array, int elem_size, int *size, int new_size) | ||||
| { | ||||
|     if (new_size >= INT_MAX / elem_size) { | ||||
|         av_log(NULL, AV_LOG_ERROR, "Array too big.\n"); | ||||
|         exit_program(1); | ||||
|         exit(1); | ||||
|     } | ||||
|     if (*size < new_size) { | ||||
|         uint8_t *tmp = av_realloc(array, new_size*elem_size); | ||||
|         if (!tmp) { | ||||
|             av_log(NULL, AV_LOG_ERROR, "Could not alloc buffer.\n"); | ||||
|             exit_program(1); | ||||
|             exit(1); | ||||
|         } | ||||
|         memset(tmp + *size*elem_size, 0, (new_size-*size) * elem_size); | ||||
|         *size = new_size; | ||||
|   | ||||
| @@ -400,15 +400,9 @@ int64_t guess_correct_pts(PtsCorrectionContext *ctx, int64_t pts, int64_t dts); | ||||
| FILE *get_preset_file(char *filename, size_t filename_size, | ||||
|                       const char *preset_name, int is_path, const char *codec_name); | ||||
|  | ||||
| /** | ||||
|  * Do all the necessary cleanup and abort. | ||||
|  * This function is implemented in the avtools, not cmdutils. | ||||
|  */ | ||||
| av_noreturn void exit_program(int ret); | ||||
|  | ||||
| /** | ||||
|  * Realloc array to hold new_size elements of elem_size. | ||||
|  * Calls exit_program() on failure. | ||||
|  * Calls exit() on failure. | ||||
|  * | ||||
|  * @param elem_size size in bytes of each element | ||||
|  * @param size new element count will be written here | ||||
|   | ||||
		Reference in New Issue
	
	Block a user