forked from FFmpeg/FFmpeg
avformat/mlvdec: Use AVFormatContext->open_cb()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
a228f7d5e5
commit
62a1e0035a
1 changed files with 8 additions and 1 deletions
|
@ -28,6 +28,7 @@
|
|||
#include "libavutil/intreadwrite.h"
|
||||
#include "libavutil/rational.h"
|
||||
#include "avformat.h"
|
||||
#include "avio_internal.h"
|
||||
#include "internal.h"
|
||||
#include "riff.h"
|
||||
|
||||
|
@ -331,11 +332,17 @@ static int read_header(AVFormatContext *avctx)
|
|||
if (strlen(avctx->filename) > 2) {
|
||||
int i;
|
||||
char *filename = av_strdup(avctx->filename);
|
||||
AVOpenCallback open_func = avctx->open_cb;
|
||||
|
||||
if (!filename)
|
||||
return AVERROR(ENOMEM);
|
||||
|
||||
if (!open_func)
|
||||
open_func = ffio_open2_wrapper;
|
||||
|
||||
for (i = 0; i < 100; i++) {
|
||||
snprintf(filename + strlen(filename) - 2, 3, "%02d", i);
|
||||
if (avio_open2(&mlv->pb[i], filename, AVIO_FLAG_READ, &avctx->interrupt_callback, NULL) < 0)
|
||||
if (open_func(avctx, &mlv->pb[i], filename, AVIO_FLAG_READ, &avctx->interrupt_callback, NULL) < 0)
|
||||
break;
|
||||
if (check_file_header(mlv->pb[i], guid) < 0) {
|
||||
av_log(avctx, AV_LOG_WARNING, "ignoring %s; bad format or guid mismatch\n", filename);
|
||||
|
|
Loading…
Add table
Reference in a new issue