diff --git a/ffmpeg.c b/ffmpeg.c index 473185fef2aeb69dda02764960cb4562ceb19053..cf866b3a242be66e81b123275935a5df18ad4377 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 1eff031de63c2d52738afd57492ce67b248dae7e..df87339e8bb8d8add9507895dbdddb12cde3a434 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 047113bb6829c43c6390f156ff03afe3e964122b..2d12e31d0639dee1a54e719b7d13fe153e2a5d9b 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 d3efc7a5b42624e38dcec1b4da9c42065879a4ef..ef67132ca1ffaa7d895714749da85dcbfa46c6de 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),