image2: Add "start_number" private option to the muxer
This adds the capability to start counting file number from an arbitrary integer. This includes a few lines of trivial code from FFmpeg codebase. Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
fd269d6253
commit
b5bce20cc3
@ -26,8 +26,10 @@
|
|||||||
#include "avformat.h"
|
#include "avformat.h"
|
||||||
#include "avio_internal.h"
|
#include "avio_internal.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
#include "libavutil/opt.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
const AVClass *class; /**< Class for private options. */
|
||||||
int img_number;
|
int img_number;
|
||||||
int is_pipe;
|
int is_pipe;
|
||||||
char path[1024];
|
char path[1024];
|
||||||
@ -37,7 +39,6 @@ static int write_header(AVFormatContext *s)
|
|||||||
{
|
{
|
||||||
VideoMuxData *img = s->priv_data;
|
VideoMuxData *img = s->priv_data;
|
||||||
|
|
||||||
img->img_number = 1;
|
|
||||||
av_strlcpy(img->path, s->filename, sizeof(img->path));
|
av_strlcpy(img->path, s->filename, sizeof(img->path));
|
||||||
|
|
||||||
/* find format */
|
/* find format */
|
||||||
@ -124,7 +125,21 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define OFFSET(x) offsetof(VideoMuxData, x)
|
||||||
|
#define ENC AV_OPT_FLAG_ENCODING_PARAM
|
||||||
|
static const AVOption muxoptions[] = {
|
||||||
|
{ "start_number", "first number in the sequence", OFFSET(img_number), AV_OPT_TYPE_INT, {.dbl = 1}, 1, INT_MAX, ENC },
|
||||||
|
{ NULL },
|
||||||
|
};
|
||||||
|
|
||||||
#if CONFIG_IMAGE2_MUXER
|
#if CONFIG_IMAGE2_MUXER
|
||||||
|
static const AVClass img2mux_class = {
|
||||||
|
.class_name = "image2 muxer",
|
||||||
|
.item_name = av_default_item_name,
|
||||||
|
.option = muxoptions,
|
||||||
|
.version = LIBAVUTIL_VERSION_INT,
|
||||||
|
};
|
||||||
|
|
||||||
AVOutputFormat ff_image2_muxer = {
|
AVOutputFormat ff_image2_muxer = {
|
||||||
.name = "image2",
|
.name = "image2",
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("image2 sequence"),
|
.long_name = NULL_IF_CONFIG_SMALL("image2 sequence"),
|
||||||
@ -135,7 +150,8 @@ AVOutputFormat ff_image2_muxer = {
|
|||||||
.video_codec = CODEC_ID_MJPEG,
|
.video_codec = CODEC_ID_MJPEG,
|
||||||
.write_header = write_header,
|
.write_header = write_header,
|
||||||
.write_packet = write_packet,
|
.write_packet = write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS | AVFMT_NODIMENSIONS | AVFMT_NOFILE
|
.flags = AVFMT_NOTIMESTAMPS | AVFMT_NODIMENSIONS | AVFMT_NOFILE,
|
||||||
|
.priv_class = &img2mux_class,
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
#if CONFIG_IMAGE2PIPE_MUXER
|
#if CONFIG_IMAGE2PIPE_MUXER
|
||||||
|
Loading…
x
Reference in New Issue
Block a user