Skip to content

Commit

Permalink
Merge commit '567d6d5f9d1400f00445183b3477391f58979aa3'
Browse files Browse the repository at this point in the history
* commit '567d6d5f9d1400f00445183b3477391f58979aa3':
  avprobe: add local per-stream state

Merged-by: Derek Buitenhuis <[email protected]>
  • Loading branch information
dwbuiten committed Apr 11, 2016
2 parents 9d48aa6 + 567d6d5 commit 48fb529
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions ffprobe.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,15 @@
#include "libpostproc/postprocess.h"
#include "cmdutils.h"

typedef struct InputStream {
AVStream *st;
} InputStream;

typedef struct InputFile {
AVFormatContext *fmt_ctx;

InputStream *streams;
int nb_streams;
} InputFile;

const char program_name[] = "ffprobe";
Expand Down Expand Up @@ -2541,11 +2548,20 @@ static int open_input_file(InputFile *ifile, const char *filename)

av_dump_format(fmt_ctx, 0, filename, 0);

ifile->streams = av_mallocz_array(fmt_ctx->nb_streams,
sizeof(*ifile->streams));
if (!ifile->streams)
exit(1);
ifile->nb_streams = fmt_ctx->nb_streams;

/* bind a decoder to each input stream */
for (i = 0; i < fmt_ctx->nb_streams; i++) {
InputStream *ist = &ifile->streams[i];
AVStream *stream = fmt_ctx->streams[i];
AVCodec *codec;

ist->st = stream;

if (stream->codec->codec_id == AV_CODEC_ID_PROBE) {
av_log(NULL, AV_LOG_WARNING,
"Failed to probe codec for input stream %d\n",
Expand Down Expand Up @@ -2583,6 +2599,9 @@ static void close_input_file(InputFile *ifile)
if (fmt_ctx->streams[i]->codec->codec_id != AV_CODEC_ID_NONE)
avcodec_close(fmt_ctx->streams[i]->codec);

av_freep(&ifile->streams);
ifile->nb_streams = 0;

avformat_close_input(&ifile->fmt_ctx);
}

Expand Down

0 comments on commit 48fb529

Please sign in to comment.