44 char *mapping, *saveptr =
NULL, *p;
49 if (*p ==
'|' || *p ==
' ')
64 for (n = 0; n < nb_items; n++) {
66 if (!map || sscanf(map,
"%d", &s->
map[n]) != 1) {
71 if (s->
map[n] < -1 || s->
map[n] >= nb_items) {
133 #define OFFSET(x) offsetof(ShuffleFramesContext, x)
134 #define FLAGS (AV_OPT_FLAG_FILTERING_PARAM | AV_OPT_FLAG_VIDEO_PARAM)
160 .
name =
"shuffleframes",
163 .priv_class = &shuffleframes_class,
166 .
inputs = shuffleframes_inputs,
167 .
outputs = shuffleframes_outputs,
This structure describes decoded (raw) audio or video data.
Main libavfilter public API header.
static const AVOption shuffleframes_options[]
void * av_calloc(size_t nmemb, size_t size)
Non-inlined equivalent of av_mallocz_array().
#define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC
Some filters support a generic "enable" expression option that can be used to enable or disable a fil...
const char * name
Pad name.
int ff_filter_frame(AVFilterLink *link, AVFrame *frame)
Send a frame of data to the next filter.
static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user).
A filter pad used for either input or output.
A link between two filters.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
void * priv
private data for use by the filter
simple assert() macros that are a bit more flexible than ISO C assert().
common internal API header
static const AVFilterPad shuffleframes_outputs[]
static const AVFilterPad inputs[]
AVFrame * av_frame_clone(const AVFrame *src)
Create a new frame that references the same data as src.
static const AVFilterPad outputs[]
char * av_strdup(const char *s)
Duplicate a string.
Describe the class of an AVClass context structure.
const char * name
Filter name.
const VDPAUPixFmtMap * map
AVFilterLink ** outputs
array of pointers to output links
#define flags(name, subs,...)
static const AVFilterPad shuffleframes_inputs[]
char * av_strtok(char *s, const char *delim, char **saveptr)
Split the string into several tokens which can be accessed by successive calls to av_strtok()...
common internal and external API header
static av_cold void uninit(AVFilterContext *ctx)
AVFilterContext * dst
dest filter
static av_cold int init(AVFilterContext *ctx)
AVFILTER_DEFINE_CLASS(shuffleframes)
AVFilter ff_vf_shuffleframes