decoder/ffmpeg: simplify mpd_ffmpeg_open_input()

This commit is contained in:
Max Kellermann 2014-12-22 21:58:01 +01:00
parent a2c6d5e148
commit 7f3fecbdf5
1 changed files with 12 additions and 17 deletions

View File

@ -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);