decoder/ffmpeg: simplify mpd_ffmpeg_open_input()
This commit is contained in:
		| @@ -57,23 +57,19 @@ extern "C" { | |||||||
| #include <assert.h> | #include <assert.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  |  | ||||||
| /** | static AVFormatContext * | ||||||
|  * API compatibility wrapper for av_open_input_stream() and | FfmpegOpenInput(AVIOContext *pb, | ||||||
|  * avformat_open_input(). |  | ||||||
|  */ |  | ||||||
| static int |  | ||||||
| mpd_ffmpeg_open_input(AVFormatContext **ic_ptr, |  | ||||||
| 		      AVIOContext *pb, |  | ||||||
| 		      const char *filename, | 		      const char *filename, | ||||||
| 		      AVInputFormat *fmt) | 		      AVInputFormat *fmt) | ||||||
| { | { | ||||||
| 	AVFormatContext *context = avformat_alloc_context(); | 	AVFormatContext *context = avformat_alloc_context(); | ||||||
| 	if (context == nullptr) | 	if (context == nullptr) | ||||||
| 		return AVERROR(ENOMEM); | 		return nullptr; | ||||||
|  |  | ||||||
| 	context->pb = pb; | 	context->pb = pb; | ||||||
| 	*ic_ptr = context; |  | ||||||
| 	return avformat_open_input(ic_ptr, filename, fmt, nullptr); | 	avformat_open_input(&context, filename, fmt, nullptr); | ||||||
|  | 	return context; | ||||||
| } | } | ||||||
|  |  | ||||||
| static bool | static bool | ||||||
| @@ -557,10 +553,9 @@ ffmpeg_decode(Decoder &decoder, InputStream &input) | |||||||
| 		return; | 		return; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	AVFormatContext *format_context = nullptr; | 	AVFormatContext *format_context = | ||||||
| 	if (mpd_ffmpeg_open_input(&format_context, stream.io, | 		FfmpegOpenInput(stream.io, input.GetURI(), input_format); | ||||||
| 				  input.GetURI(), | 	if (format_context == nullptr) { | ||||||
| 				  input_format) != 0) { |  | ||||||
| 		LogError(ffmpeg_domain, "Open failed"); | 		LogError(ffmpeg_domain, "Open failed"); | ||||||
| 		return; | 		return; | ||||||
| 	} | 	} | ||||||
| @@ -605,9 +600,9 @@ ffmpeg_scan_stream(InputStream &is, | |||||||
| 	if (!stream.Open()) | 	if (!stream.Open()) | ||||||
| 		return false; | 		return false; | ||||||
|  |  | ||||||
| 	AVFormatContext *f = nullptr; | 	AVFormatContext *f = | ||||||
| 	if (mpd_ffmpeg_open_input(&f, stream.io, is.GetURI(), | 		FfmpegOpenInput(stream.io, is.GetURI(), input_format); | ||||||
| 				  input_format) != 0) | 	if (f == nullptr) | ||||||
| 		return false; | 		return false; | ||||||
|  |  | ||||||
| 	bool result = FfmpegScanStream(*f, *handler, handler_ctx); | 	bool result = FfmpegScanStream(*f, *handler, handler_ctx); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann