Merge commit 'bd2ab27c488ae92c7820efe11d4f53d84e94d58e'
* commit 'bd2ab27c488ae92c7820efe11d4f53d84e94d58e': avconv: use read_file() for reading the 2pass stats Conflicts: cmdutils.c cmdutils.h ffmpeg_opt.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
		
						commit
						edd110ee45
					
				
							
								
								
									
										58
									
								
								cmdutils.c
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								cmdutils.c
									
									
									
									
									
								
							| @ -1875,64 +1875,6 @@ int read_yesno(void) | |||||||
|     return yesno; |     return yesno; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int cmdutils_read_file(const char *filename, char **bufptr, size_t *size) |  | ||||||
| { |  | ||||||
|     int64_t ret; |  | ||||||
|     FILE *f = av_fopen_utf8(filename, "rb"); |  | ||||||
| 
 |  | ||||||
|     if (!f) { |  | ||||||
|         ret = AVERROR(errno); |  | ||||||
|         av_log(NULL, AV_LOG_ERROR, "Cannot read file '%s': %s\n", filename, |  | ||||||
|                strerror(errno)); |  | ||||||
|         return ret; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     ret = fseek(f, 0, SEEK_END); |  | ||||||
|     if (ret == -1) { |  | ||||||
|         ret = AVERROR(errno); |  | ||||||
|         goto out; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     ret = ftell(f); |  | ||||||
|     if (ret < 0) { |  | ||||||
|         ret = AVERROR(errno); |  | ||||||
|         goto out; |  | ||||||
|     } |  | ||||||
|     *size = ret; |  | ||||||
| 
 |  | ||||||
|     ret = fseek(f, 0, SEEK_SET); |  | ||||||
|     if (ret == -1) { |  | ||||||
|         ret = AVERROR(errno); |  | ||||||
|         goto out; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     *bufptr = av_malloc(*size + 1); |  | ||||||
|     if (!*bufptr) { |  | ||||||
|         av_log(NULL, AV_LOG_ERROR, "Could not allocate file buffer\n"); |  | ||||||
|         ret = AVERROR(ENOMEM); |  | ||||||
|         goto out; |  | ||||||
|     } |  | ||||||
|     ret = fread(*bufptr, 1, *size, f); |  | ||||||
|     if (ret < *size) { |  | ||||||
|         av_free(*bufptr); |  | ||||||
|         if (ferror(f)) { |  | ||||||
|             ret = AVERROR(errno); |  | ||||||
|             av_log(NULL, AV_LOG_ERROR, "Error while reading file '%s': %s\n", |  | ||||||
|                    filename, strerror(errno)); |  | ||||||
|         } else |  | ||||||
|             ret = AVERROR_EOF; |  | ||||||
|     } else { |  | ||||||
|         ret = 0; |  | ||||||
|         (*bufptr)[(*size)++] = '\0'; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| out: |  | ||||||
|     if (ret < 0) |  | ||||||
|         av_log(NULL, AV_LOG_ERROR, "IO error: %s\n", av_err2str(ret)); |  | ||||||
|     fclose(f); |  | ||||||
|     return ret; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| FILE *get_preset_file(char *filename, size_t filename_size, | FILE *get_preset_file(char *filename, size_t filename_size, | ||||||
|                       const char *preset_name, int is_path, |                       const char *preset_name, int is_path, | ||||||
|                       const char *codec_name) |                       const char *codec_name) | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								cmdutils.h
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								cmdutils.h
									
									
									
									
									
								
							| @ -529,18 +529,6 @@ int show_colors(void *optctx, const char *opt, const char *arg); | |||||||
|  */ |  */ | ||||||
| int read_yesno(void); | int read_yesno(void); | ||||||
| 
 | 
 | ||||||
| /**
 |  | ||||||
|  * Read the file with name filename, and put its content in a newly |  | ||||||
|  * allocated 0-terminated buffer. |  | ||||||
|  * |  | ||||||
|  * @param filename file to read from |  | ||||||
|  * @param bufptr location where pointer to buffer is returned |  | ||||||
|  * @param size   location where size of buffer is returned |  | ||||||
|  * @return >= 0 in case of success, a negative value corresponding to an |  | ||||||
|  * AVERROR error code in case of failure. |  | ||||||
|  */ |  | ||||||
| int cmdutils_read_file(const char *filename, char **bufptr, size_t *size); |  | ||||||
| 
 |  | ||||||
| /**
 | /**
 | ||||||
|  * Get a file corresponding to a preset file. |  * Get a file corresponding to a preset file. | ||||||
|  * |  * | ||||||
|  | |||||||
| @ -1482,9 +1482,9 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in | |||||||
|                 av_dict_set(&ost->encoder_opts, "stats", logfilename, AV_DICT_DONT_OVERWRITE); |                 av_dict_set(&ost->encoder_opts, "stats", logfilename, AV_DICT_DONT_OVERWRITE); | ||||||
|             } else { |             } else { | ||||||
|                 if (video_enc->flags & CODEC_FLAG_PASS2) { |                 if (video_enc->flags & CODEC_FLAG_PASS2) { | ||||||
|                     char  *logbuffer; |                     char  *logbuffer = read_file(logfilename); | ||||||
|                     size_t logbuffer_size; | 
 | ||||||
|                     if (cmdutils_read_file(logfilename, &logbuffer, &logbuffer_size) < 0) { |                     if (!logbuffer) { | ||||||
|                         av_log(NULL, AV_LOG_FATAL, "Error reading log file '%s' for pass-2 encoding\n", |                         av_log(NULL, AV_LOG_FATAL, "Error reading log file '%s' for pass-2 encoding\n", | ||||||
|                                logfilename); |                                logfilename); | ||||||
|                         exit_program(1); |                         exit_program(1); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user