Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
2d9d4440
Commit
2d9d4440
authored
Nov 28, 2012
by
Clément Bœsch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lavfi: convert remaining input/output list compound literals to named objects.
This is following
568c70e7
.
parent
bff576c7
Hide whitespace changes
Inline
Side-by-side
Showing
48 changed files
with
1038 additions
and
761 deletions
+1038
-761
af_aconvert.c
libavfilter/af_aconvert.c
+21
-10
af_amerge.c
libavfilter/af_amerge.c
+13
-10
af_aresample.c
libavfilter/af_aresample.c
+22
-11
af_asetnsamples.c
libavfilter/af_asetnsamples.c
+23
-21
af_astreamsync.c
libavfilter/af_astreamsync.c
+32
-23
af_atempo.c
libavfilter/af_atempo.c
+22
-16
af_earwax.c
libavfilter/af_earwax.c
+21
-10
af_pan.c
libavfilter/af_pan.c
+21
-14
af_silencedetect.c
libavfilter/af_silencedetect.c
+21
-14
af_volume.c
libavfilter/af_volume.c
+20
-10
af_volumedetect.c
libavfilter/af_volumedetect.c
+21
-14
asrc_aevalsrc.c
libavfilter/asrc_aevalsrc.c
+13
-9
asrc_flite.c
libavfilter/asrc_flite.c
+13
-14
avf_concat.c
libavfilter/avf_concat.c
+2
-2
avf_showspectrum.c
libavfilter/avf_showspectrum.c
+23
-22
avf_showwaves.c
libavfilter/avf_showwaves.c
+23
-22
f_ebur128.c
libavfilter/f_ebur128.c
+12
-9
f_sendcmd.c
libavfilter/f_sendcmd.c
+41
-35
f_setpts.c
libavfilter/f_setpts.c
+21
-19
f_settb.c
libavfilter/f_settb.c
+21
-14
sink_buffer.c
libavfilter/sink_buffer.c
+46
-26
src_movie.c
libavfilter/src_movie.c
+3
-3
vf_alphaextract.c
libavfilter/vf_alphaextract.c
+21
-14
vf_alphamerge.c
libavfilter/vf_alphamerge.c
+33
-25
vf_ass.c
libavfilter/vf_ass.c
+25
-18
vf_bbox.c
libavfilter/vf_bbox.c
+22
-16
vf_blackdetect.c
libavfilter/vf_blackdetect.c
+25
-19
vf_colormatrix.c
libavfilter/vf_colormatrix.c
+24
-14
vf_decimate.c
libavfilter/vf_decimate.c
+25
-22
vf_deshake.c
libavfilter/vf_deshake.c
+22
-12
vf_edgedetect.c
libavfilter/vf_edgedetect.c
+21
-18
vf_framestep.c
libavfilter/vf_framestep.c
+24
-21
vf_hue.c
libavfilter/vf_hue.c
+23
-20
vf_idet.c
libavfilter/vf_idet.c
+25
-15
vf_mp.c
libavfilter/vf_mp.c
+25
-14
vf_removelogo.c
libavfilter/vf_removelogo.c
+24
-17
vf_setfield.c
libavfilter/vf_setfield.c
+20
-13
vf_smartblur.c
libavfilter/vf_smartblur.c
+21
-18
vf_super2xsai.c
libavfilter/vf_super2xsai.c
+23
-16
vf_swapuv.c
libavfilter/vf_swapuv.c
+20
-13
vf_thumbnail.c
libavfilter/vf_thumbnail.c
+25
-17
vf_tile.c
libavfilter/vf_tile.c
+24
-17
vf_tinterlace.c
libavfilter/vf_tinterlace.c
+23
-16
vsrc_cellauto.c
libavfilter/vsrc_cellauto.c
+13
-12
vsrc_life.c
libavfilter/vsrc_life.c
+13
-12
vsrc_mandelbrot.c
libavfilter/vsrc_mandelbrot.c
+12
-8
vsrc_mptestsrc.c
libavfilter/vsrc_mptestsrc.c
+12
-7
vsrc_testsrc.c
libavfilter/vsrc_testsrc.c
+38
-39
No files found.
libavfilter/af_aconvert.c
View file @
2d9d4440
...
...
@@ -154,6 +154,25 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamplesref)
return
ret
;
}
static
const
AVFilterPad
aconvert_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
aconvert_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_output
,
},
{
NULL
}
};
AVFilter
avfilter_af_aconvert
=
{
.
name
=
"aconvert"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Convert the input audio to sample_fmt:channel_layout."
),
...
...
@@ -161,14 +180,6 @@ AVFilter avfilter_af_aconvert = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_output
,
},
{
.
name
=
NULL
}},
.
inputs
=
aconvert_inputs
,
.
outputs
=
aconvert_outputs
,
};
libavfilter/af_amerge.c
View file @
2d9d4440
...
...
@@ -323,6 +323,16 @@ static av_cold int init(AVFilterContext *ctx, const char *args)
return
0
;
}
static
const
AVFilterPad
amerge_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_af_amerge
=
{
.
name
=
"amerge"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Merge two audio streams into "
...
...
@@ -331,14 +341,7 @@ AVFilter avfilter_af_amerge = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
amerge_class
,
.
inputs
=
NULL
,
.
outputs
=
amerge_outputs
,
.
priv_class
=
&
amerge_class
,
};
libavfilter/af_aresample.c
View file @
2d9d4440
...
...
@@ -253,6 +253,26 @@ static int request_frame(AVFilterLink *outlink)
return
ret
;
}
static
const
AVFilterPad
aresample_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
},
};
static
const
AVFilterPad
aresample_outputs
[]
=
{
{
.
name
=
"default"
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
NULL
},
};
AVFilter
avfilter_af_aresample
=
{
.
name
=
"aresample"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Resample audio data."
),
...
...
@@ -260,15 +280,6 @@ AVFilter avfilter_af_aresample = {
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
priv_size
=
sizeof
(
AResampleContext
),
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
.
name
=
NULL
}},
.
inputs
=
aresample_inputs
,
.
outputs
=
aresample_outputs
,
};
libavfilter/af_asetnsamples.c
View file @
2d9d4440
...
...
@@ -175,31 +175,33 @@ static int request_frame(AVFilterLink *outlink)
return
ret
;
}
static
const
AVFilterPad
asetnsamples_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_WRITE
,
},
{
NULL
}
};
static
const
AVFilterPad
asetnsamples_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_props_output
,
},
{
NULL
}
};
AVFilter
avfilter_af_asetnsamples
=
{
.
name
=
"asetnsamples"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Set the number of samples for each output audio frames."
),
.
priv_size
=
sizeof
(
ASNSContext
),
.
init
=
init
,
.
uninit
=
uninit
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_WRITE
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_props_output
,
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
asetnsamples_class
,
.
inputs
=
asetnsamples_inputs
,
.
outputs
=
asetnsamples_outputs
,
.
priv_class
=
&
asetnsamples_class
,
};
libavfilter/af_astreamsync.c
View file @
2d9d4440
...
...
@@ -180,6 +180,36 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
return
0
;
}
static
const
AVFilterPad
astreamsync_inputs
[]
=
{
{
.
name
=
"in1"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},{
.
name
=
"in2"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
NULL
}
};
static
const
AVFilterPad
astreamsync_outputs
[]
=
{
{
.
name
=
"out1"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
},{
.
name
=
"out2"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_af_astreamsync
=
{
.
name
=
"astreamsync"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Copy two streams of audio data "
...
...
@@ -187,27 +217,6 @@ AVFilter avfilter_af_astreamsync = {
.
priv_size
=
sizeof
(
AStreamSyncContext
),
.
init
=
init
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"in1"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
.
name
=
"in2"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"out1"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
},
{
.
name
=
"out2"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
},
{
.
name
=
NULL
}
},
.
inputs
=
astreamsync_inputs
,
.
outputs
=
astreamsync_outputs
,
};
libavfilter/af_atempo.c
View file @
2d9d4440
...
...
@@ -1136,6 +1136,26 @@ static int process_command(AVFilterContext *ctx,
return
!
strcmp
(
cmd
,
"tempo"
)
?
yae_set_tempo
(
ctx
,
arg
)
:
AVERROR
(
ENOSYS
);
}
static
const
AVFilterPad
atempo_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
config_props
=
config_props
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
atempo_outputs
[]
=
{
{
.
name
=
"default"
,
.
request_frame
=
request_frame
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
NULL
}
};
AVFilter
avfilter_af_atempo
=
{
.
name
=
"atempo"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Adjust audio tempo."
),
...
...
@@ -1144,20 +1164,6 @@ AVFilter avfilter_af_atempo = {
.
query_formats
=
query_formats
,
.
process_command
=
process_command
,
.
priv_size
=
sizeof
(
ATempoContext
),
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
config_props
=
config_props
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
request_frame
=
request_frame
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
.
name
=
NULL
}
},
.
inputs
=
atempo_inputs
,
.
outputs
=
atempo_outputs
,
};
libavfilter/af_earwax.c
View file @
2d9d4440
...
...
@@ -153,19 +153,30 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
return
ret
;
}
static
const
AVFilterPad
earwax_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
config_props
=
config_input
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
earwax_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
NULL
}
};
AVFilter
avfilter_af_earwax
=
{
.
name
=
"earwax"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Widen the stereo image."
),
.
query_formats
=
query_formats
,
.
priv_size
=
sizeof
(
EarwaxContext
),
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
config_props
=
config_input
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
.
name
=
NULL
}},
.
inputs
=
earwax_inputs
,
.
outputs
=
earwax_outputs
,
};
libavfilter/af_pan.c
View file @
2d9d4440
...
...
@@ -376,6 +376,25 @@ static av_cold void uninit(AVFilterContext *ctx)
swr_free
(
&
pan
->
swr
);
}
static
const
AVFilterPad
pan_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_props
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
pan_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
NULL
}
};
AVFilter
avfilter_af_pan
=
{
.
name
=
"pan"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Remix channels with coefficients (panning)."
),
...
...
@@ -383,18 +402,6 @@ AVFilter avfilter_af_pan = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_props
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
.
name
=
NULL
}
},
.
inputs
=
pan_inputs
,
.
outputs
=
pan_outputs
,
};
libavfilter/af_silencedetect.c
View file @
2d9d4440
...
...
@@ -162,24 +162,31 @@ static int query_formats(AVFilterContext *ctx)
return
0
;
}
static
const
AVFilterPad
silencedetect_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
get_audio_buffer
=
ff_null_get_audio_buffer
,
.
filter_frame
=
filter_frame
,
},
{
NULL
}
};
static
const
AVFilterPad
silencedetect_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
NULL
}
};
AVFilter
avfilter_af_silencedetect
=
{
.
name
=
"silencedetect"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Detect silence."
),
.
priv_size
=
sizeof
(
SilenceDetectContext
),
.
init
=
init
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
get_audio_buffer
=
ff_null_get_audio_buffer
,
.
filter_frame
=
filter_frame
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
silencedetect_class
,
.
inputs
=
silencedetect_inputs
,
.
outputs
=
silencedetect_outputs
,
.
priv_class
=
&
silencedetect_class
,
};
libavfilter/af_volume.c
View file @
2d9d4440
...
...
@@ -172,20 +172,30 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
return
ff_filter_frame
(
outlink
,
insamples
);
}
static
const
AVFilterPad
volume_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_WRITE
,
},
{
NULL
},
};
static
const
AVFilterPad
volume_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
NULL
},
};
AVFilter
avfilter_af_volume
=
{
.
name
=
"volume"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Change input volume."
),
.
query_formats
=
query_formats
,
.
priv_size
=
sizeof
(
VolumeContext
),
.
init
=
init
,
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_WRITE
},
{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
.
name
=
NULL
}},
.
inputs
=
volume_inputs
,
.
outputs
=
volume_outputs
,
};
libavfilter/af_volumedetect.c
View file @
2d9d4440
...
...
@@ -131,6 +131,25 @@ static void uninit(AVFilterContext *ctx)
print_stats
(
ctx
);
}
static
const
AVFilterPad
volumedetect_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
get_audio_buffer
=
ff_null_get_audio_buffer
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
volumedetect_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
NULL
}
};
AVFilter
avfilter_af_volumedetect
=
{
.
name
=
"volumedetect"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Detect audio volume."
),
...
...
@@ -138,18 +157,6 @@ AVFilter avfilter_af_volumedetect = {
.
priv_size
=
sizeof
(
VolDetectContext
),
.
query_formats
=
query_formats
,
.
uninit
=
uninit
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
get_audio_buffer
=
ff_null_get_audio_buffer
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
.
name
=
NULL
}
},
.
inputs
=
volumedetect_inputs
,
.
outputs
=
volumedetect_outputs
,
};
libavfilter/asrc_aevalsrc.c
View file @
2d9d4440
...
...
@@ -242,6 +242,16 @@ static int request_frame(AVFilterLink *outlink)
return
0
;
}
static
const
AVFilterPad
aevalsrc_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_props
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_asrc_aevalsrc
=
{
.
name
=
"aevalsrc"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Generate an audio signal generated by an expression."
),
...
...
@@ -250,13 +260,7 @@ AVFilter avfilter_asrc_aevalsrc = {
.
init
=
init
,
.
uninit
=
uninit
,
.
priv_size
=
sizeof
(
EvalContext
),
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_props
,
.
request_frame
=
request_frame
,
},
{
.
name
=
NULL
}},
.
priv_class
=
&
aevalsrc_class
,
.
inputs
=
NULL
,
.
outputs
=
aevalsrc_outputs
,
.
priv_class
=
&
aevalsrc_class
,
};
libavfilter/asrc_flite.c
View file @
2d9d4440
...
...
@@ -268,6 +268,16 @@ static int request_frame(AVFilterLink *outlink)
return
ff_filter_frame
(
outlink
,
samplesref
);
}
static
const
AVFilterPad
flite_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_props
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_asrc_flite
=
{
.
name
=
"flite"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Synthesize voice from text using libflite."
),
...
...
@@ -275,18 +285,7 @@ AVFilter avfilter_asrc_flite = {
.
init
=
init
,
.
uninit
=
uninit
,
.
priv_size
=
sizeof
(
FliteContext
),
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_props
,
.
request_frame
=
request_frame
,
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
flite_class
,
.
inputs
=
NULL
,
.
outputs
=
flite_outputs
,
.
priv_class
=
&
flite_class
,
};
libavfilter/avf_concat.c
View file @
2d9d4440
...
...
@@ -445,7 +445,7 @@ AVFilter avfilter_avf_concat = {
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
priv_size
=
sizeof
(
ConcatContext
),
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
NULL
}
}
,
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
NULL
}
}
,
.
inputs
=
NULL
,
.
outputs
=
NULL
,
.
priv_class
=
&
concat_class
,
};
libavfilter/avf_showspectrum.c
View file @
2d9d4440
...
...
@@ -298,6 +298,26 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
return
0
;
}
static
const
AVFilterPad
showspectrum_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
showspectrum_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_avf_showspectrum
=
{
.
name
=
"showspectrum"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Convert input audio to a spectrum video output."
),
...
...
@@ -305,26 +325,7 @@ AVFilter avfilter_avf_showspectrum = {
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
priv_size
=
sizeof
(
ShowSpectrumContext
),
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
showspectrum_class
,
.
inputs
=
showspectrum_inputs
,
.
outputs
=
showspectrum_outputs
,
.
priv_class
=
&
showspectrum_class
,
};
libavfilter/avf_showwaves.c
View file @
2d9d4440
...
...
@@ -228,6 +228,26 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
return
0
;
}
static
const
AVFilterPad
showwaves_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
showwaves_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_avf_showwaves
=
{
.
name
=
"showwaves"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Convert input audio to a video output."
),
...
...
@@ -235,26 +255,7 @@ AVFilter avfilter_avf_showwaves = {
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
priv_size
=
sizeof
(
ShowWavesContext
),
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
showwaves_class
,
.
inputs
=
showwaves_inputs
,
.
outputs
=
showwaves_outputs
,
.
priv_class
=
&
showwaves_class
,
};
libavfilter/f_ebur128.c
View file @
2d9d4440
...
...
@@ -728,6 +728,16 @@ static av_cold void uninit(AVFilterContext *ctx)
avfilter_unref_bufferp
(
&
ebur128
->
outpicref
);
}
static
const
AVFilterPad
ebur128_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
get_audio_buffer
=
ff_null_get_audio_buffer
,
.
filter_frame
=
filter_frame
,
},
{
NULL
}
};
AVFilter
avfilter_af_ebur128
=
{
.
name
=
"ebur128"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"EBU R128 scanner."
),
...
...
@@ -735,13 +745,6 @@ AVFilter avfilter_af_ebur128 = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
get_audio_buffer
=
ff_null_get_audio_buffer
,
.
filter_frame
=
filter_frame
,
},
{
.
name
=
NULL
}
},
.
outputs
=
NULL
,
.
inputs
=
ebur128_inputs
,
.
outputs
=
NULL
,
};
libavfilter/f_sendcmd.c
View file @
2d9d4440
...
...
@@ -518,6 +518,25 @@ end:
#if CONFIG_SENDCMD_FILTER
static
const
AVFilterPad
sendcmd_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
process_frame
,
.
end_frame
=
ff_null_end_frame
,
},
{
NULL
}
};
static
const
AVFilterPad
sendcmd_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
NULL
}
};
AVFilter
avfilter_vf_sendcmd
=
{
.
name
=
"sendcmd"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Send commands to filters."
),
...
...
@@ -525,30 +544,32 @@ AVFilter avfilter_vf_sendcmd = {
.
init
=
init
,
.
uninit
=
uninit
,
.
priv_size
=
sizeof
(
SendCmdContext
),
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
process_frame
,
.
end_frame
=
ff_null_end_frame
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
.
name
=
NULL
}
},
.
inputs
=
sendcmd_inputs
,
.
outputs
=
sendcmd_outputs
,
};
#endif
#if CONFIG_ASENDCMD_FILTER
static
const
AVFilterPad
asendcmd_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
get_audio_buffer
=
ff_null_get_audio_buffer
,
.
filter_frame
=
process_frame
,
},
{
NULL
}
};
static
const
AVFilterPad
asendcmd_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
NULL
}
};
AVFilter
avfilter_af_asendcmd
=
{
.
name
=
"asendcmd"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Send commands to filters."
),
...
...
@@ -556,23 +577,8 @@ AVFilter avfilter_af_asendcmd = {
.
init
=
init
,
.
uninit
=
uninit
,
.
priv_size
=
sizeof
(
SendCmdContext
),
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
get_audio_buffer
=
ff_null_get_audio_buffer
,
.
filter_frame
=
process_frame
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
.
name
=
NULL
}
},
.
inputs
=
asendcmd_inputs
,
.
outputs
=
asendcmd_outputs
,
};
#endif
libavfilter/f_setpts.c
View file @
2d9d4440
...
...
@@ -183,31 +183,33 @@ static av_cold void uninit(AVFilterContext *ctx)
}
#if CONFIG_ASETPTS_FILTER
static
const
AVFilterPad
avfilter_af_asetpts_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
get_audio_buffer
=
ff_null_get_audio_buffer
,
.
config_props
=
config_input
,
.
filter_frame
=
filter_frame
,
},
{
NULL
}
};
static
const
AVFilterPad
avfilter_af_asetpts_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
NULL
}
};
AVFilter
avfilter_af_asetpts
=
{
.
name
=
"asetpts"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Set PTS for the output audio frame."
),
.
init
=
init
,
.
uninit
=
uninit
,
.
priv_size
=
sizeof
(
SetPTSContext
),
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
get_audio_buffer
=
ff_null_get_audio_buffer
,
.
config_props
=
config_input
,
.
filter_frame
=
filter_frame
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
},
{
.
name
=
NULL
}
},
.
inputs
=
avfilter_af_asetpts_inputs
,
.
outputs
=
avfilter_af_asetpts_outputs
,
};
#endif
/* CONFIG_ASETPTS_FILTER */
...
...
libavfilter/f_settb.c
View file @
2d9d4440
...
...
@@ -152,25 +152,32 @@ AVFilter avfilter_vf_settb = {
#endif
#if CONFIG_ASETTB_FILTER
static
const
AVFilterPad
avfilter_af_asettb_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
get_audio_buffer
=
ff_null_get_audio_buffer
,
.
filter_frame
=
filter_frame
,
},
{
NULL
}
};
static
const
AVFilterPad
avfilter_af_asettb_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_output_props
,
},
{
NULL
}
};
AVFilter
avfilter_af_asettb
=
{
.
name
=
"asettb"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Set timebase for the audio output link."
),
.
init
=
init
,
.
priv_size
=
sizeof
(
SetTBContext
),
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
get_audio_buffer
=
ff_null_get_audio_buffer
,
.
filter_frame
=
filter_frame
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
config_props
=
config_output_props
,
},
{
.
name
=
NULL
}
},
.
inputs
=
avfilter_af_asettb_inputs
,
.
outputs
=
avfilter_af_asettb_outputs
,
};
#endif
libavfilter/sink_buffer.c
View file @
2d9d4440
...
...
@@ -234,6 +234,16 @@ static int vsink_query_formats(AVFilterContext *ctx)
return
0
;
}
static
const
AVFilterPad
ffbuffersink_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
NULL
},
};
AVFilter
avfilter_vsink_ffbuffersink
=
{
.
name
=
"ffbuffersink"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Buffer video frames, and make them available to the end of the filter graph."
),
...
...
@@ -242,13 +252,18 @@ AVFilter avfilter_vsink_ffbuffersink = {
.
uninit
=
vsink_uninit
,
.
query_formats
=
vsink_query_formats
,
.
inputs
=
ffbuffersink_inputs
,
.
outputs
=
NULL
,
};
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
NULL
}},
static
const
AVFilterPad
buffersink_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
NULL
},
};
AVFilter
avfilter_vsink_buffersink
=
{
...
...
@@ -259,13 +274,8 @@ AVFilter avfilter_vsink_buffersink = {
.
uninit
=
vsink_uninit
,
.
query_formats
=
vsink_query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
NULL
}},
.
inputs
=
buffersink_inputs
,
.
outputs
=
NULL
,
};
static
int
filter_frame
(
AVFilterLink
*
link
,
AVFilterBufferRef
*
samplesref
)
...
...
@@ -328,6 +338,16 @@ static int asink_query_formats(AVFilterContext *ctx)
return
0
;
}
static
const
AVFilterPad
ffabuffersink_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
NULL
},
};
AVFilter
avfilter_asink_ffabuffersink
=
{
.
name
=
"ffabuffersink"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Buffer audio frames, and make them available to the end of the filter graph."
),
...
...
@@ -335,13 +355,18 @@ AVFilter avfilter_asink_ffabuffersink = {
.
uninit
=
asink_uninit
,
.
priv_size
=
sizeof
(
BufferSinkContext
),
.
query_formats
=
asink_query_formats
,
.
inputs
=
ffabuffersink_inputs
,
.
outputs
=
NULL
,
};
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
NULL
}},
static
const
AVFilterPad
abuffersink_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
NULL
},
};
AVFilter
avfilter_asink_abuffersink
=
{
...
...
@@ -351,13 +376,8 @@ AVFilter avfilter_asink_abuffersink = {
.
uninit
=
asink_uninit
,
.
priv_size
=
sizeof
(
BufferSinkContext
),
.
query_formats
=
asink_query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
NULL
}},
.
inputs
=
abuffersink_inputs
,
.
outputs
=
NULL
,
};
/* Libav compatibility API */
...
...
libavfilter/src_movie.c
View file @
2d9d4440
...
...
@@ -612,7 +612,7 @@ AVFilter avfilter_avsrc_movie = {
.
query_formats
=
movie_query_formats
,
.
inputs
=
NULL
,
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
NULL
}}
,
.
outputs
=
NULL
,
.
priv_class
=
&
movie_class
,
};
...
...
@@ -636,8 +636,8 @@ AVFilter avfilter_avsrc_amovie = {
.
uninit
=
movie_uninit
,
.
query_formats
=
movie_query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
NULL
}}
,
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
NULL
}}
,
.
inputs
=
NULL
,
.
outputs
=
NULL
,
.
priv_class
=
&
amovie_class
,
};
...
...
libavfilter/vf_alphaextract.c
View file @
2d9d4440
...
...
@@ -94,24 +94,31 @@ static int draw_slice(AVFilterLink *inlink, int y0, int h, int slice_dir)
return
ff_draw_slice
(
inlink
->
dst
->
outputs
[
0
],
y0
,
h
,
slice_dir
);
}
static
const
AVFilterPad
alphaextract_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_input
,
.
draw_slice
=
draw_slice
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
alphaextract_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
NULL
}
};
AVFilter
avfilter_vf_alphaextract
=
{
.
name
=
"alphaextract"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Extract an alpha channel as a "
"grayscale image component."
),
.
priv_size
=
sizeof
(
AlphaExtractContext
),
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_input
,
.
draw_slice
=
draw_slice
,
.
min_perms
=
AV_PERM_READ
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
.
name
=
NULL
}
},
.
inputs
=
alphaextract_inputs
,
.
outputs
=
alphaextract_outputs
,
};
libavfilter/vf_alphamerge.c
View file @
2d9d4440
...
...
@@ -176,6 +176,37 @@ static int request_frame(AVFilterLink *outlink)
return
0
;
}
static
const
AVFilterPad
alphamerge_inputs
[]
=
{
{
.
name
=
"main"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_input_main
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
start_frame
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_WRITE
|
AV_PERM_PRESERVE
,
},{
.
name
=
"alpha"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
start_frame
=
start_frame
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
NULL
}
};
static
const
AVFilterPad
alphamerge_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_vf_alphamerge
=
{
.
name
=
"alphamerge"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Copy the luma value of the second "
...
...
@@ -183,29 +214,6 @@ AVFilter avfilter_vf_alphamerge = {
.
uninit
=
uninit
,
.
priv_size
=
sizeof
(
AlphaMergeContext
),
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"main"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_input_main
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
start_frame
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_WRITE
|
AV_PERM_PRESERVE
},
{
.
name
=
"alpha"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
start_frame
=
start_frame
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_output
,
.
request_frame
=
request_frame
},
{
.
name
=
NULL
}
},
.
inputs
=
alphamerge_inputs
,
.
outputs
=
alphamerge_outputs
,
};
libavfilter/vf_ass.c
View file @
2d9d4440
...
...
@@ -200,6 +200,28 @@ static int end_frame(AVFilterLink *inlink)
return
ff_end_frame
(
outlink
);
}
static
const
AVFilterPad
ass_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
ff_null_start_frame
,
.
draw_slice
=
null_draw_slice
,
.
end_frame
=
end_frame
,
.
config_props
=
config_input
,
.
min_perms
=
AV_PERM_WRITE
|
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
ass_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
NULL
}
};
AVFilter
avfilter_vf_ass
=
{
.
name
=
"ass"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Render subtitles onto input video using the libass library."
),
...
...
@@ -207,22 +229,7 @@ AVFilter avfilter_vf_ass = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
ff_null_start_frame
,
.
draw_slice
=
null_draw_slice
,
.
end_frame
=
end_frame
,
.
config_props
=
config_input
,
.
min_perms
=
AV_PERM_WRITE
|
AV_PERM_READ
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
ass_class
,
.
inputs
=
ass_inputs
,
.
outputs
=
ass_outputs
,
.
priv_class
=
&
ass_class
,
};
libavfilter/vf_bbox.c
View file @
2d9d4440
...
...
@@ -89,26 +89,32 @@ static int end_frame(AVFilterLink *inlink)
return
ff_end_frame
(
inlink
->
dst
->
outputs
[
0
]);
}
static
const
AVFilterPad
bbox_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
ff_null_start_frame
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
bbox_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
NULL
}
};
AVFilter
avfilter_vf_bbox
=
{
.
name
=
"bbox"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Compute bounding box for each frame."
),
.
priv_size
=
sizeof
(
BBoxContext
),
.
query_formats
=
query_formats
,
.
init
=
init
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
ff_null_start_frame
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
},
{
.
name
=
NULL
}
},
.
inputs
=
bbox_inputs
,
.
outputs
=
bbox_outputs
,
};
libavfilter/vf_blackdetect.c
View file @
2d9d4440
...
...
@@ -197,29 +197,35 @@ static int end_frame(AVFilterLink *inlink)
return
ff_end_frame
(
inlink
->
dst
->
outputs
[
0
]);
}
static
const
AVFilterPad
blackdetect_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_input
,
.
draw_slice
=
draw_slice
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
ff_null_start_frame
,
.
end_frame
=
end_frame
,
},
{
NULL
}
};
static
const
AVFilterPad
blackdetect_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_vf_blackdetect
=
{
.
name
=
"blackdetect"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Detect video intervals that are (almost) black."
),
.
priv_size
=
sizeof
(
BlackDetectContext
),
.
init
=
init
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_input
,
.
draw_slice
=
draw_slice
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
ff_null_start_frame
,
.
end_frame
=
end_frame
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
blackdetect_class
,
.
inputs
=
blackdetect_inputs
,
.
outputs
=
blackdetect_outputs
,
.
priv_class
=
&
blackdetect_class
,
};
libavfilter/vf_colormatrix.c
View file @
2d9d4440
...
...
@@ -369,6 +369,28 @@ static int end_frame(AVFilterLink *link)
static
int
null_draw_slice
(
AVFilterLink
*
link
,
int
y
,
int
h
,
int
slice_dir
)
{
return
0
;
}
static
const
AVFilterPad
colormatrix_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_input
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_WRITE
,
.
start_frame
=
start_frame
,
.
get_video_buffer
=
get_video_buffer
,
.
draw_slice
=
null_draw_slice
,
.
end_frame
=
end_frame
,
},
{
NULL
}
};
static
const
AVFilterPad
colormatrix_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
NULL
}
};
AVFilter
avfilter_vf_colormatrix
=
{
.
name
=
"colormatrix"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Color matrix conversion"
),
...
...
@@ -376,18 +398,6 @@ AVFilter avfilter_vf_colormatrix = {
.
priv_size
=
sizeof
(
ColorMatrixContext
),
.
init
=
init
,
.
query_formats
=
query_formats
,
.
inputs
=
(
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_input
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_WRITE
,
.
start_frame
=
start_frame
,
.
get_video_buffer
=
get_video_buffer
,
.
draw_slice
=
null_draw_slice
,
.
end_frame
=
end_frame
,
},
{
.
name
=
NULL
}},
.
outputs
=
(
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
.
name
=
NULL
}},
.
inputs
=
colormatrix_inputs
,
.
outputs
=
colormatrix_outputs
,
};
libavfilter/vf_decimate.c
View file @
2d9d4440
...
...
@@ -235,6 +235,29 @@ static int request_frame(AVFilterLink *outlink)
return
ret
;
}
static
const
AVFilterPad
decimate_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
config_props
=
config_input
,
.
start_frame
=
start_frame
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
NULL
}
};
static
const
AVFilterPad
decimate_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_vf_decimate
=
{
.
name
=
"decimate"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Remove near-duplicate frames."
),
...
...
@@ -243,26 +266,6 @@ AVFilter avfilter_vf_decimate = {
.
priv_size
=
sizeof
(
DecimateContext
),
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
config_props
=
config_input
,
.
start_frame
=
start_frame
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
},
{
.
name
=
NULL
}
},
.
inputs
=
decimate_inputs
,
.
outputs
=
decimate_outputs
,
};
libavfilter/vf_deshake.c
View file @
2d9d4440
...
...
@@ -538,6 +538,26 @@ static int draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
return
0
;
}
static
const
AVFilterPad
deshake_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
.
config_props
=
config_props
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
NULL
}
};
static
const
AVFilterPad
deshake_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
NULL
}
};
AVFilter
avfilter_vf_deshake
=
{
.
name
=
"deshake"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Stabilize shaky video."
),
...
...
@@ -547,16 +567,6 @@ AVFilter avfilter_vf_deshake = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
.
config_props
=
config_props
,
.
min_perms
=
AV_PERM_READ
|
AV_PERM_PRESERVE
,
},
{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
.
name
=
NULL
}},
.
inputs
=
deshake_inputs
,
.
outputs
=
deshake_outputs
,
};
libavfilter/vf_edgedetect.c
View file @
2d9d4440
...
...
@@ -299,6 +299,25 @@ static av_cold void uninit(AVFilterContext *ctx)
av_freep
(
&
edgedetect
->
directions
);
}
static
const
AVFilterPad
edgedetect_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_props
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
edgedetect_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
NULL
}
};
AVFilter
avfilter_vf_edgedetect
=
{
.
name
=
"edgedetect"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Detect and draw edge."
),
...
...
@@ -306,22 +325,6 @@ AVFilter avfilter_vf_edgedetect = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_props
,
.
filter_frame
=
filter_frame
,
.
min_perms
=
AV_PERM_READ
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
.
name
=
NULL
}
},
.
inputs
=
edgedetect_inputs
,
.
outputs
=
edgedetect_outputs
,
};
libavfilter/vf_framestep.c
View file @
2d9d4440
...
...
@@ -111,30 +111,33 @@ static int request_frame(AVFilterLink *outlink)
return
ret
;
}
static
const
AVFilterPad
framestep_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
start_frame
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
},
{
NULL
}
};
static
const
AVFilterPad
framestep_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_output_props
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_vf_framestep
=
{
.
name
=
"framestep"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Select one frame every N frames."
),
.
init
=
init
,
.
priv_size
=
sizeof
(
FrameStepContext
),
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
start_frame
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_output_props
,
.
request_frame
=
request_frame
,
},
{
.
name
=
NULL
}
},
.
inputs
=
framestep_inputs
,
.
outputs
=
framestep_outputs
,
};
libavfilter/vf_hue.c
View file @
2d9d4440
...
...
@@ -396,6 +396,26 @@ static int process_command(AVFilterContext *ctx, const char *cmd, const char *ar
return
AVERROR
(
ENOSYS
);
}
static
const
AVFilterPad
hue_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
start_frame
=
start_frame
,
.
draw_slice
=
draw_slice
,
.
config_props
=
config_props
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
hue_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
NULL
}
};
AVFilter
avfilter_vf_hue
=
{
.
name
=
"hue"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Adjust the hue and saturation of the input video."
),
...
...
@@ -406,24 +426,7 @@ AVFilter avfilter_vf_hue = {
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
process_command
=
process_command
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
start_frame
=
start_frame
,
.
draw_slice
=
draw_slice
,
.
config_props
=
config_props
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
hue_class
,
.
inputs
=
hue_inputs
,
.
outputs
=
hue_outputs
,
.
priv_class
=
&
hue_class
,
};
libavfilter/vf_idet.c
View file @
2d9d4440
...
...
@@ -310,6 +310,29 @@ static av_cold int init(AVFilterContext *ctx, const char *args)
static
int
null_draw_slice
(
AVFilterLink
*
link
,
int
y
,
int
h
,
int
slice_dir
)
{
return
0
;
}
static
const
AVFilterPad
idet_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
start_frame
=
start_frame
,
.
draw_slice
=
null_draw_slice
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_PRESERVE
,
},
{
NULL
}
};
static
const
AVFilterPad
idet_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
rej_perms
=
AV_PERM_WRITE
,
.
poll_frame
=
poll_frame
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_vf_idet
=
{
.
name
=
"idet"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Interlace detect Filter."
),
...
...
@@ -318,19 +341,6 @@ AVFilter avfilter_vf_idet = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
start_frame
=
start_frame
,
.
draw_slice
=
null_draw_slice
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_PRESERVE
},
{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
rej_perms
=
AV_PERM_WRITE
,
.
poll_frame
=
poll_frame
,
.
request_frame
=
request_frame
,
},
{
.
name
=
NULL
}},
.
inputs
=
idet_inputs
,
.
outputs
=
idet_outputs
,
};
libavfilter/vf_mp.c
View file @
2d9d4440
...
...
@@ -863,6 +863,29 @@ static int end_frame(AVFilterLink *inlink)
return
0
;
}
static
const
AVFilterPad
mp_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
start_frame
=
start_frame
,
.
draw_slice
=
null_draw_slice
,
.
end_frame
=
end_frame
,
.
config_props
=
config_inprops
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
mp_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_outprops
,
},
{
NULL
}
};
AVFilter
avfilter_vf_mp
=
{
.
name
=
"mp"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Apply a libmpcodecs filter to the input video."
),
...
...
@@ -870,18 +893,6 @@ AVFilter avfilter_vf_mp = {
.
uninit
=
uninit
,
.
priv_size
=
sizeof
(
MPContext
),
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
start_frame
=
start_frame
,
.
draw_slice
=
null_draw_slice
,
.
end_frame
=
end_frame
,
.
config_props
=
config_inprops
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_outprops
,
},
{
.
name
=
NULL
}},
.
inputs
=
mp_inputs
,
.
outputs
=
mp_outputs
,
};
libavfilter/vf_removelogo.c
View file @
2d9d4440
...
...
@@ -535,6 +535,28 @@ static void uninit(AVFilterContext *ctx)
static
int
null_draw_slice
(
AVFilterLink
*
link
,
int
y
,
int
h
,
int
slice_dir
)
{
return
0
;
}
static
const
AVFilterPad
removelogo_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
config_props
=
config_props_input
,
.
draw_slice
=
null_draw_slice
,
.
start_frame
=
start_frame
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_WRITE
|
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
removelogo_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
NULL
}
};
AVFilter
avfilter_vf_removelogo
=
{
.
name
=
"removelogo"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Remove a TV logo based on a mask image."
),
...
...
@@ -542,21 +564,6 @@ AVFilter avfilter_vf_removelogo = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
config_props
=
config_props_input
,
.
draw_slice
=
null_draw_slice
,
.
start_frame
=
start_frame
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_WRITE
|
AV_PERM_READ
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
.
name
=
NULL
}
},
.
inputs
=
removelogo_inputs
,
.
outputs
=
removelogo_outputs
,
};
libavfilter/vf_setfield.c
View file @
2d9d4440
...
...
@@ -83,23 +83,30 @@ static int start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
return
ff_start_frame
(
inlink
->
dst
->
outputs
[
0
],
outpicref
);
}
static
const
AVFilterPad
setfield_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
start_frame
,
},
{
NULL
}
};
static
const
AVFilterPad
setfield_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
NULL
}
};
AVFilter
avfilter_vf_setfield
=
{
.
name
=
"setfield"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Force field for the output video frame."
),
.
init
=
init
,
.
priv_size
=
sizeof
(
SetFieldContext
),
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
start_frame
=
start_frame
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
.
name
=
NULL
}
},
.
inputs
=
setfield_inputs
,
.
outputs
=
setfield_outputs
,
};
libavfilter/vf_smartblur.c
View file @
2d9d4440
...
...
@@ -277,6 +277,25 @@ static int end_frame(AVFilterLink *inlink)
return
ff_end_frame
(
outlink
);
}
static
const
AVFilterPad
smartblur_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
end_frame
=
end_frame
,
.
config_props
=
config_props
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
smartblur_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
NULL
}
};
AVFilter
avfilter_vf_smartblur
=
{
.
name
=
"smartblur"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Blur the input video without impacting the outlines."
),
...
...
@@ -286,22 +305,6 @@ AVFilter avfilter_vf_smartblur = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
end_frame
=
end_frame
,
.
config_props
=
config_props
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
.
name
=
NULL
}
}
.
inputs
=
smartblur_inputs
,
.
outputs
=
smartblur_outputs
,
};
libavfilter/vf_super2xsai.c
View file @
2d9d4440
...
...
@@ -318,25 +318,32 @@ static int end_frame(AVFilterLink *inlink)
return
ff_end_frame
(
outlink
);
}
static
const
AVFilterPad
super2xsai_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_input
,
.
draw_slice
=
null_draw_slice
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
super2xsai_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_output
,
},
{
NULL
}
};
AVFilter
avfilter_vf_super2xsai
=
{
.
name
=
"super2xsai"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Scale the input by 2x using the Super2xSaI pixel art algorithm."
),
.
priv_size
=
sizeof
(
Super2xSaIContext
),
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_input
,
.
draw_slice
=
null_draw_slice
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_output
},
{
.
name
=
NULL
}
},
.
inputs
=
super2xsai_inputs
,
.
outputs
=
super2xsai_outputs
,
};
libavfilter/vf_swapuv.c
View file @
2d9d4440
...
...
@@ -74,22 +74,29 @@ static int query_formats(AVFilterContext *ctx)
return
0
;
}
static
const
AVFilterPad
swapuv_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
get_video_buffer
,
.
start_frame
=
start_frame
,
},
{
NULL
}
};
static
const
AVFilterPad
swapuv_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
NULL
}
};
AVFilter
avfilter_vf_swapuv
=
{
.
name
=
"swapuv"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Swap U and V components."
),
.
priv_size
=
0
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
get_video_buffer
,
.
start_frame
=
start_frame
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
},
{
.
name
=
NULL
}
},
.
inputs
=
swapuv_inputs
,
.
outputs
=
swapuv_outputs
,
};
libavfilter/vf_thumbnail.c
View file @
2d9d4440
...
...
@@ -219,6 +219,29 @@ static int query_formats(AVFilterContext *ctx)
return
0
;
}
static
const
AVFilterPad
thumbnail_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
min_perms
=
AV_PERM_PRESERVE
,
.
start_frame
=
null_start_frame
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
},
{
NULL
}
};
static
const
AVFilterPad
thumbnail_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
poll_frame
=
poll_frame
,
},
{
NULL
}
};
AVFilter
avfilter_vf_thumbnail
=
{
.
name
=
"thumbnail"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Select the most representative frame in a given sequence of consecutive frames."
),
...
...
@@ -226,21 +249,6 @@ AVFilter avfilter_vf_thumbnail = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
min_perms
=
AV_PERM_PRESERVE
,
.
start_frame
=
null_start_frame
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
},{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
poll_frame
=
poll_frame
,
},{
.
name
=
NULL
}
},
.
inputs
=
thumbnail_inputs
,
.
outputs
=
thumbnail_outputs
,
};
libavfilter/vf_tile.c
View file @
2d9d4440
...
...
@@ -240,6 +240,27 @@ static int request_frame(AVFilterLink *outlink)
return
0
;
}
static
const
AVFilterPad
tile_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
start_frame
=
start_frame
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
NULL
}
};
static
const
AVFilterPad
tile_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_props
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_vf_tile
=
{
.
name
=
"tile"
,
...
...
@@ -247,21 +268,7 @@ AVFilter avfilter_vf_tile = {
.
init
=
init
,
.
query_formats
=
query_formats
,
.
priv_size
=
sizeof
(
TileContext
),
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
start_frame
=
start_frame
,
.
draw_slice
=
draw_slice
,
.
end_frame
=
end_frame
,
.
min_perms
=
AV_PERM_READ
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_props
,
.
request_frame
=
request_frame
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
tile_class
,
.
inputs
=
tile_inputs
,
.
outputs
=
tile_outputs
,
.
priv_class
=
&
tile_class
,
};
libavfilter/vf_tinterlace.c
View file @
2d9d4440
...
...
@@ -351,6 +351,27 @@ static int request_frame(AVFilterLink *outlink)
static
int
null_draw_slice
(
AVFilterLink
*
link
,
int
y
,
int
h
,
int
slice_dir
)
{
return
0
;
}
static
const
AVFilterPad
tinterlace_inputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
start_frame
=
start_frame
,
.
draw_slice
=
null_draw_slice
,
.
end_frame
=
end_frame
,
},
{
NULL
}
};
static
const
AVFilterPad
tinterlace_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_out_props
,
.
request_frame
=
request_frame
,
},
{
NULL
}
};
AVFilter
avfilter_vf_tinterlace
=
{
.
name
=
"tinterlace"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Perform temporal field interlacing."
),
...
...
@@ -358,20 +379,6 @@ AVFilter avfilter_vf_tinterlace = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
start_frame
=
start_frame
,
.
draw_slice
=
null_draw_slice
,
.
end_frame
=
end_frame
,
},
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_out_props
,
.
request_frame
=
request_frame
},
{
.
name
=
NULL
}
},
.
inputs
=
tinterlace_inputs
,
.
outputs
=
tinterlace_outputs
,
};
libavfilter/vsrc_cellauto.c
View file @
2d9d4440
...
...
@@ -335,6 +335,16 @@ static int query_formats(AVFilterContext *ctx)
return
0
;
}
static
const
AVFilterPad
cellauto_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_props
,
},
{
NULL
}
};
AVFilter
avfilter_vsrc_cellauto
=
{
.
name
=
"cellauto"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Create pattern generated by an elementary cellular automaton."
),
...
...
@@ -342,16 +352,7 @@ AVFilter avfilter_vsrc_cellauto = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_props
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
cellauto_class
,
.
inputs
=
NULL
,
.
outputs
=
cellauto_outputs
,
.
priv_class
=
&
cellauto_class
,
};
libavfilter/vsrc_life.c
View file @
2d9d4440
...
...
@@ -464,6 +464,16 @@ static int query_formats(AVFilterContext *ctx)
return
0
;
}
static
const
AVFilterPad
life_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_props
,
},
{
NULL
}
};
AVFilter
avfilter_vsrc_life
=
{
.
name
=
"life"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Create life."
),
...
...
@@ -471,16 +481,7 @@ AVFilter avfilter_vsrc_life = {
.
init
=
init
,
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_props
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
life_class
,
.
inputs
=
NULL
,
.
outputs
=
life_outputs
,
.
priv_class
=
&
life_class
,
};
libavfilter/vsrc_mandelbrot.c
View file @
2d9d4440
...
...
@@ -396,6 +396,16 @@ static int request_frame(AVFilterLink *link)
return
0
;
}
static
const
AVFilterPad
mandelbrot_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_props
,
},
{
NULL
},
};
AVFilter
avfilter_vsrc_mandelbrot
=
{
.
name
=
"mandelbrot"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Render a Mandelbrot fractal."
),
...
...
@@ -405,12 +415,6 @@ AVFilter avfilter_vsrc_mandelbrot = {
.
uninit
=
uninit
,
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_props
},
{
.
name
=
NULL
}},
.
inputs
=
NULL
,
.
outputs
=
mandelbrot_outputs
,
};
libavfilter/vsrc_mptestsrc.c
View file @
2d9d4440
...
...
@@ -364,6 +364,16 @@ static int request_frame(AVFilterLink *outlink)
return
0
;
}
static
const
AVFilterPad
mptestsrc_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_props
,
},
{
NULL
}
};
AVFilter
avfilter_vsrc_mptestsrc
=
{
.
name
=
"mptestsrc"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Generate various test pattern."
),
...
...
@@ -372,11 +382,6 @@ AVFilter avfilter_vsrc_mptestsrc = {
.
query_formats
=
query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_props
,
},
{
.
name
=
NULL
}},
.
inputs
=
NULL
,
.
outputs
=
mptestsrc_outputs
,
};
libavfilter/vsrc_testsrc.c
View file @
2d9d4440
...
...
@@ -256,6 +256,16 @@ static int color_config_props(AVFilterLink *inlink)
return
0
;
}
static
const
AVFilterPad
color_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
color_config_props
,
},
{
NULL
}
};
AVFilter
avfilter_vsrc_color
=
{
.
name
=
"color"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Provide an uniformly colored input."
),
...
...
@@ -265,22 +275,9 @@ AVFilter avfilter_vsrc_color = {
.
uninit
=
uninit
,
.
query_formats
=
color_query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
color_config_props
,
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
color_class
,
.
inputs
=
NULL
,
.
outputs
=
color_outputs
,
.
priv_class
=
&
color_class
,
};
#endif
/* CONFIG_COLOR_FILTER */
...
...
@@ -301,19 +298,24 @@ static av_cold int nullsrc_init(AVFilterContext *ctx, const char *args)
return
init
(
ctx
,
args
);
}
static
const
AVFilterPad
nullsrc_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_props
,
},
{
NULL
},
};
AVFilter
avfilter_vsrc_nullsrc
=
{
.
name
=
"nullsrc"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Null video source, return unprocessed video frames."
),
.
init
=
nullsrc_init
,
.
uninit
=
uninit
,
.
priv_size
=
sizeof
(
TestSourceContext
),
.
inputs
=
(
const
AVFilterPad
[])
{{
.
name
=
NULL
}},
.
outputs
=
(
const
AVFilterPad
[])
{{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
config_props
,
},
{
.
name
=
NULL
}},
.
inputs
=
NULL
,
.
outputs
=
nullsrc_outputs
,
.
priv_class
=
&
nullsrc_class
,
};
...
...
@@ -767,6 +769,16 @@ static int smptebars_config_props(AVFilterLink *outlink)
return
config_props
(
outlink
);
}
static
const
AVFilterPad
smptebars_outputs
[]
=
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
smptebars_config_props
,
},
{
NULL
}
};
AVFilter
avfilter_vsrc_smptebars
=
{
.
name
=
"smptebars"
,
.
description
=
NULL_IF_CONFIG_SMALL
(
"Generate SMPTE color bars."
),
...
...
@@ -775,22 +787,9 @@ AVFilter avfilter_vsrc_smptebars = {
.
uninit
=
uninit
,
.
query_formats
=
smptebars_query_formats
,
.
inputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
NULL
}
},
.
outputs
=
(
const
AVFilterPad
[])
{
{
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
request_frame
=
request_frame
,
.
config_props
=
smptebars_config_props
,
},
{
.
name
=
NULL
}
},
.
priv_class
=
&
smptebars_class
,
.
inputs
=
NULL
,
.
outputs
=
smptebars_outputs
,
.
priv_class
=
&
smptebars_class
,
};
#endif
/* CONFIG_SMPTEBARS_FILTER */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment