From 6002fdef5eba7ecc623092583d5bb051c8a27318 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 18 Jun 2011 09:28:49 +0200 Subject: [PATCH] img2: add loop private option. Deprecate AVFormatContext.loop_input. --- libavformat/avformat.h | 7 ++++++- libavformat/img2.c | 9 ++++++++- libavformat/version.h | 3 +++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 9011099a21..1be9f39646 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -742,7 +742,12 @@ typedef struct AVFormatContext { #endif #define AVFMT_FLAG_CUSTOM_IO 0x0080 ///< The caller has supplied a custom AVIOContext, don't avio_close() it. - int loop_input; +#if FF_API_LOOP_INPUT + /** + * @deprecated, use the 'loop' img2 demuxer private option. + */ + attribute_deprecated int loop_input; +#endif /** * decoding: size of data to probe; encoding: unused. diff --git a/libavformat/img2.c b/libavformat/img2.c index 4eef62371d..a4f39e7256 100644 --- a/libavformat/img2.c +++ b/libavformat/img2.c @@ -42,6 +42,7 @@ typedef struct { char *pixel_format; /**< Set by a private option. */ char *video_size; /**< Set by a private option. */ char *framerate; /**< Set by a private option. */ + int loop; } VideoData; typedef struct { @@ -243,6 +244,11 @@ static int read_header(AVFormatContext *s1, AVFormatParameters *ap) framerate = (AVRational){ap->time_base.den, ap->time_base.num}; #endif +#if FF_API_LOOP_INPUT + if (s1->loop_input) + s->loop = s1->loop_input; +#endif + av_strlcpy(s->path, s1->filename, sizeof(s->path)); s->img_number = 0; s->img_count = 0; @@ -300,7 +306,7 @@ static int read_packet(AVFormatContext *s1, AVPacket *pkt) if (!s->is_pipe) { /* loop over input */ - if (s1->loop_input && s->img_number > s->img_last) { + if (s->loop && s->img_number > s->img_last) { s->img_number = s->img_first; } if (s->img_number > s->img_last) @@ -458,6 +464,7 @@ static const AVOption options[] = { { "pixel_format", "", OFFSET(pixel_format), FF_OPT_TYPE_STRING, {.str = NULL}, 0, 0, DEC }, { "video_size", "", OFFSET(video_size), FF_OPT_TYPE_STRING, {.str = NULL}, 0, 0, DEC }, { "framerate", "", OFFSET(framerate), FF_OPT_TYPE_STRING, {.str = "25"}, 0, 0, DEC }, + { "loop", "", OFFSET(loop), FF_OPT_TYPE_INT, {.dbl = 0}, 0, 1, DEC }, { NULL }, }; diff --git a/libavformat/version.h b/libavformat/version.h index 0cf383fcc1..957ce529dc 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -77,5 +77,8 @@ #ifndef FF_API_AVSTREAM_QUALITY #define FF_API_AVSTREAM_QUALITY (LIBAVFORMAT_VERSION_MAJOR < 54) #endif +#ifndef FF_API_LOOP_INPUT +#define FF_API_LOOP_INPUT (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif #endif /* AVFORMAT_VERSION_H */