mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-24 11:49:48 +00:00
image2: Add "start_number" private option to the demuxer
Currently if a pattern is given we look for up to the fifth file name in the sequence. This option sets that limit to an arbitrary number. Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
b5bce20cc3
commit
f57d2f587b
@ -40,6 +40,7 @@ typedef struct {
|
||||
char *video_size; /**< Set by a private option. */
|
||||
char *framerate; /**< Set by a private option. */
|
||||
int loop;
|
||||
int start_number;
|
||||
} VideoDemuxData;
|
||||
|
||||
static const int sizes[][2] = {
|
||||
@ -70,13 +71,13 @@ static int infer_size(int *width_ptr, int *height_ptr, int size)
|
||||
|
||||
/* return -1 if no image found */
|
||||
static int find_image_range(int *pfirst_index, int *plast_index,
|
||||
const char *path)
|
||||
const char *path, int max_start)
|
||||
{
|
||||
char buf[1024];
|
||||
int range, last_index, range1, first_index;
|
||||
|
||||
/* find the first image */
|
||||
for(first_index = 0; first_index < 5; first_index++) {
|
||||
for (first_index = 0; first_index < max_start; first_index++) {
|
||||
if (av_get_frame_filename(buf, sizeof(buf), path, first_index) < 0){
|
||||
*pfirst_index =
|
||||
*plast_index = 1;
|
||||
@ -182,7 +183,8 @@ static int read_header(AVFormatContext *s1)
|
||||
}
|
||||
|
||||
if (!s->is_pipe) {
|
||||
if (find_image_range(&first_index, &last_index, s->path) < 0)
|
||||
if (find_image_range(&first_index, &last_index, s->path,
|
||||
FFMAX(s->start_number, 5)) < 0)
|
||||
return AVERROR(ENOENT);
|
||||
s->img_first = first_index;
|
||||
s->img_last = last_index;
|
||||
@ -283,6 +285,7 @@ static const AVOption options[] = {
|
||||
{ "video_size", "", OFFSET(video_size), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, DEC },
|
||||
{ "framerate", "", OFFSET(framerate), AV_OPT_TYPE_STRING, {.str = "25"}, 0, 0, DEC },
|
||||
{ "loop", "", OFFSET(loop), AV_OPT_TYPE_INT, {.dbl = 0}, 0, 1, DEC },
|
||||
{ "start_number", "first number in the sequence", OFFSET(start_number), AV_OPT_TYPE_INT, {.dbl = 1}, 1, INT_MAX, DEC },
|
||||
{ NULL },
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user