FFmpeg
Loading...
Searching...
No Matches
f_metadata.c File Reference

filter for manipulating frame metadata More...

#include "config_components.h"
#include <float.h>
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/eval.h"
#include "libavutil/internal.h"
#include "libavutil/opt.h"
#include "libavutil/timestamp.h"
#include "libavformat/avio.h"
#include "avfilter.h"
#include "audio.h"
#include "filters.h"
#include "video.h"

Go to the source code of this file.

Data Structures

struct  MetadataContext
 

Macros

#define OFFSET(x)
 
#define DEFINE_OPTIONS(filt_name, FLAGS)
 

Enumerations

enum  MetadataMode {
  METADATA_SELECT , METADATA_ADD , METADATA_MODIFY , METADATA_DELETE ,
  METADATA_PRINT , METADATA_NB
}
 
enum  MetadataFunction {
  METADATAF_SAME_STR , METADATAF_STARTS_WITH , METADATAF_LESS , METADATAF_EQUAL ,
  METADATAF_GREATER , METADATAF_EXPR , METADATAF_ENDS_WITH , METADATAF_NB
}
 
enum  var_name {
  VAR_VALUE1 , VAR_VALUE2 , VAR_FRAMEVAL , VAR_USERVAL ,
  VAR_VARS_NB
}
 

Functions

static int same_str (MetadataContext *s, const char *value1, const char *value2)
 
static int starts_with (MetadataContext *s, const char *value1, const char *value2)
 
static int ends_with (MetadataContext *s, const char *value1, const char *value2)
 
static int equal (MetadataContext *s, const char *value1, const char *value2)
 
static int less (MetadataContext *s, const char *value1, const char *value2)
 
static int greater (MetadataContext *s, const char *value1, const char *value2)
 
static int parse_expr (MetadataContext *s, const char *value1, const char *value2)
 
static void print_log (AVFilterContext *ctx, const char *msg,...)
 
static void print_file (AVFilterContext *ctx, const char *msg,...)
 
static av_cold int init (AVFilterContext *ctx)
 
static av_cold void uninit (AVFilterContext *ctx)
 
static int filter_frame (AVFilterLink *inlink, AVFrame *frame)
 

Variables

static const char *const var_names []
 

Detailed Description

filter for manipulating frame metadata

Definition in file f_metadata.c.

Macro Definition Documentation

◆ OFFSET

#define OFFSET ( x)
Value:

Definition at line 100 of file f_metadata.c.

◆ DEFINE_OPTIONS

#define DEFINE_OPTIONS ( filt_name,
FLAGS )
Value:
static const AVOption filt_name##_options[] = { \
{ "mode", "set a mode of operation", OFFSET(mode), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, METADATA_NB-1, FLAGS, .unit = "mode" }, \
{ "select", "select frame", 0, AV_OPT_TYPE_CONST, {.i64 = METADATA_SELECT }, 0, 0, FLAGS, .unit = "mode" }, \
{ "add", "add new metadata", 0, AV_OPT_TYPE_CONST, {.i64 = METADATA_ADD }, 0, 0, FLAGS, .unit = "mode" }, \
{ "modify", "modify metadata", 0, AV_OPT_TYPE_CONST, {.i64 = METADATA_MODIFY }, 0, 0, FLAGS, .unit = "mode" }, \
{ "delete", "delete metadata", 0, AV_OPT_TYPE_CONST, {.i64 = METADATA_DELETE }, 0, 0, FLAGS, .unit = "mode" }, \
{ "print", "print metadata", 0, AV_OPT_TYPE_CONST, {.i64 = METADATA_PRINT }, 0, 0, FLAGS, .unit = "mode" }, \
{ "key", "set metadata key", OFFSET(key), AV_OPT_TYPE_STRING, {.str = NULL }, 0, 0, FLAGS }, \
{ "value", "set metadata value", OFFSET(value), AV_OPT_TYPE_STRING, {.str = NULL }, 0, 0, FLAGS }, \
{ "function", "function for comparing values", OFFSET(function), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, METADATAF_NB-1, FLAGS, .unit = "function" }, \
{ "same_str", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = METADATAF_SAME_STR }, 0, 3, FLAGS, .unit = "function" }, \
{ "starts_with", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = METADATAF_STARTS_WITH }, 0, 0, FLAGS, .unit = "function" }, \
{ "less", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = METADATAF_LESS }, 0, 3, FLAGS, .unit = "function" }, \
{ "equal", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = METADATAF_EQUAL }, 0, 3, FLAGS, .unit = "function" }, \
{ "greater", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = METADATAF_GREATER }, 0, 3, FLAGS, .unit = "function" }, \
{ "expr", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = METADATAF_EXPR }, 0, 3, FLAGS, .unit = "function" }, \
{ "ends_with", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = METADATAF_ENDS_WITH }, 0, 0, FLAGS, .unit = "function" }, \
{ "expr", "set expression for expr function", OFFSET(expr_str), AV_OPT_TYPE_STRING, {.str = NULL }, 0, 0, FLAGS }, \
{ "file", "set file where to print metadata information", OFFSET(file_str), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS }, \
{ "direct", "reduce buffering when printing to user-set file or pipe", OFFSET(direct), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, FLAGS }, \
{ NULL } \
}
#define FLAGS
Definition cmdutils.c:598
#define NULL
Definition coverity.c:32
double value
Definition eval.c:102
@ METADATA_ADD
Definition f_metadata.c:44
@ METADATA_PRINT
Definition f_metadata.c:47
@ METADATA_SELECT
Definition f_metadata.c:43
@ METADATA_MODIFY
Definition f_metadata.c:45
@ METADATA_NB
Definition f_metadata.c:48
@ METADATA_DELETE
Definition f_metadata.c:46
@ METADATAF_LESS
Definition f_metadata.c:54
@ METADATAF_ENDS_WITH
Definition f_metadata.c:58
@ METADATAF_EQUAL
Definition f_metadata.c:55
@ METADATAF_SAME_STR
Definition f_metadata.c:52
@ METADATAF_EXPR
Definition f_metadata.c:57
@ METADATAF_STARTS_WITH
Definition f_metadata.c:53
@ METADATAF_NB
Definition f_metadata.c:59
@ METADATAF_GREATER
Definition f_metadata.c:56
const char * key
#define OFFSET(x)
@ AV_OPT_TYPE_CONST
Special option type for declaring named constants.
Definition opt.h:298
@ AV_OPT_TYPE_INT
Underlying C type is int.
Definition opt.h:258
@ AV_OPT_TYPE_BOOL
Underlying C type is int.
Definition opt.h:326
@ AV_OPT_TYPE_STRING
Underlying C type is a uint8_t* that is either NULL or points to a C string allocated with the av_mal...
Definition opt.h:275
AVOption.
Definition opt.h:428
Definition swscale.c:71

Definition at line 101 of file f_metadata.c.

Enumeration Type Documentation

◆ MetadataMode

Enumerator
METADATA_SELECT 
METADATA_ADD 
METADATA_MODIFY 
METADATA_DELETE 
METADATA_PRINT 
METADATA_NB 

Definition at line 42 of file f_metadata.c.

◆ MetadataFunction

Enumerator
METADATAF_SAME_STR 
METADATAF_STARTS_WITH 
METADATAF_LESS 
METADATAF_EQUAL 
METADATAF_GREATER 
METADATAF_EXPR 
METADATAF_ENDS_WITH 
METADATAF_NB 

Definition at line 51 of file f_metadata.c.

◆ var_name

enum var_name
Enumerator
VAR_VALUE1 
VAR_VALUE2 
VAR_FRAMEVAL 
VAR_USERVAL 
VAR_VARS_NB 

Definition at line 70 of file f_metadata.c.

Function Documentation

◆ same_str()

static int same_str ( MetadataContext * s,
const char * value1,
const char * value2 )
static

Definition at line 125 of file f_metadata.c.

Referenced by init().

◆ starts_with()

static int starts_with ( MetadataContext * s,
const char * value1,
const char * value2 )
static

Definition at line 130 of file f_metadata.c.

Referenced by init().

◆ ends_with()

static int ends_with ( MetadataContext * s,
const char * value1,
const char * value2 )
static

Definition at line 135 of file f_metadata.c.

Referenced by init().

◆ equal()

static int equal ( MetadataContext * s,
const char * value1,
const char * value2 )
static

Definition at line 143 of file f_metadata.c.

Referenced by init().

◆ less()

static int less ( MetadataContext * s,
const char * value1,
const char * value2 )
static

Definition at line 153 of file f_metadata.c.

◆ greater()

static int greater ( MetadataContext * s,
const char * value1,
const char * value2 )
static

Definition at line 163 of file f_metadata.c.

Referenced by init().

◆ parse_expr()

static int parse_expr ( MetadataContext * s,
const char * value1,
const char * value2 )
static

Definition at line 173 of file f_metadata.c.

Referenced by init().

◆ print_log()

static void print_log ( AVFilterContext * ctx,
const char * msg,
... )
static

Definition at line 186 of file f_metadata.c.

Referenced by init().

◆ print_file()

static void print_file ( AVFilterContext * ctx,
const char * msg,
... )
static

Definition at line 196 of file f_metadata.c.

Referenced by init().

◆ init()

static av_cold int init ( AVFilterContext * ctx)
static

Definition at line 210 of file f_metadata.c.

◆ uninit()

static av_cold void uninit ( AVFilterContext * ctx)
static

Definition at line 291 of file f_metadata.c.

◆ filter_frame()

static int filter_frame ( AVFilterLink * inlink,
AVFrame * frame )
static

Definition at line 302 of file f_metadata.c.

Variable Documentation

◆ var_names

const char* const var_names[]
static
Initial value:
= {
"VALUE1",
"VALUE2",
"FRAMEVAL",
"USERVAL",
}

Definition at line 62 of file f_metadata.c.