diff --git a/ffmpeg.c b/ffmpeg.c index 473185fef2..cf866b3a24 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -159,7 +159,7 @@ static int me_penalty_compensation= 256; static int frame_skip_threshold= 0; static int frame_skip_factor= 0; static int frame_skip_exp= 0; -extern int loop_input; /* currently a hack */ +static int loop_input = 0; static int loop_output = AVFMT_NOOUTPUTLOOP; static int genpts = 0; static int qp_hist = 0; @@ -2843,6 +2843,8 @@ static void opt_input_file(const char *filename) exit(1); } + ic->loop_input = loop_input; + if(genpts) ic->flags|= AVFMT_FLAG_GENPTS; diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 1eff031de6..df87339e8b 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -5,8 +5,8 @@ extern "C" { #endif -#define LIBAVFORMAT_VERSION_INT ((50<<16)+(4<<8)+0) -#define LIBAVFORMAT_VERSION 50.4.0 +#define LIBAVFORMAT_VERSION_INT ((50<<16)+(5<<8)+0) +#define LIBAVFORMAT_VERSION 50.5.0 #define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT #define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION) @@ -337,6 +337,8 @@ typedef struct AVFormatContext { int flags; #define AVFMT_FLAG_GENPTS 0x0001 ///< generate pts if missing even if it requires parsing future frames + + int loop_input; } AVFormatContext; typedef struct AVPacketList { diff --git a/libavformat/img.c b/libavformat/img.c index 047113bb68..2d12e31d06 100644 --- a/libavformat/img.c +++ b/libavformat/img.c @@ -18,9 +18,6 @@ */ #include "avformat.h" -/* XXX: this is a hack */ -int loop_input = 0; - typedef struct { int width; int height; @@ -200,7 +197,7 @@ static int img_read_packet(AVFormatContext *s1, AVPacket *pkt) if (!s->is_pipe) { /* loop over input */ - if (loop_input && s->img_number > s->img_last) { + if (s1->loop_input && s->img_number > s->img_last) { s->img_number = s->img_first; } if (get_frame_filename(filename, sizeof(filename), diff --git a/libavformat/img2.c b/libavformat/img2.c index d3efc7a5b4..ef67132ca1 100644 --- a/libavformat/img2.c +++ b/libavformat/img2.c @@ -19,9 +19,6 @@ */ #include "avformat.h" -/* XXX: this is a hack */ -extern int loop_input; - typedef struct { int img_first; int img_last; @@ -236,7 +233,7 @@ static int img_read_packet(AVFormatContext *s1, AVPacket *pkt) if (!s->is_pipe) { /* loop over input */ - if (loop_input && s->img_number > s->img_last) { + if (s1->loop_input && s->img_number > s->img_last) { s->img_number = s->img_first; } if (get_frame_filename(filename, sizeof(filename),