Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
9d0bfc50
Commit
9d0bfc50
authored
Jun 12, 2012
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lavfi: make AVFilterPad opaque after two major bumps.
It will allow adding new fields to it without ABI breaks.
parent
84b9fbe0
Hide whitespace changes
Inline
Side-by-side
Showing
39 changed files
with
179 additions
and
6 deletions
+179
-6
avconv.c
avconv.c
+8
-6
af_anull.c
libavfilter/af_anull.c
+1
-0
asink_anullsink.c
libavfilter/asink_anullsink.c
+1
-0
asrc_anullsrc.c
libavfilter/asrc_anullsrc.c
+1
-0
avfilter.h
libavfilter/avfilter.h
+7
-0
buffersrc.c
libavfilter/buffersrc.c
+1
-0
internal.h
libavfilter/internal.h
+126
-0
version.h
libavfilter/version.h
+3
-0
vf_aspect.c
libavfilter/vf_aspect.c
+1
-0
vf_blackframe.c
libavfilter/vf_blackframe.c
+1
-0
vf_boxblur.c
libavfilter/vf_boxblur.c
+1
-0
vf_copy.c
libavfilter/vf_copy.c
+1
-0
vf_crop.c
libavfilter/vf_crop.c
+1
-0
vf_cropdetect.c
libavfilter/vf_cropdetect.c
+1
-0
vf_delogo.c
libavfilter/vf_delogo.c
+1
-0
vf_drawbox.c
libavfilter/vf_drawbox.c
+1
-0
vf_drawtext.c
libavfilter/vf_drawtext.c
+1
-0
vf_fade.c
libavfilter/vf_fade.c
+1
-0
vf_fieldorder.c
libavfilter/vf_fieldorder.c
+1
-0
vf_format.c
libavfilter/vf_format.c
+1
-0
vf_frei0r.c
libavfilter/vf_frei0r.c
+1
-0
vf_gradfun.c
libavfilter/vf_gradfun.c
+1
-0
vf_hflip.c
libavfilter/vf_hflip.c
+1
-0
vf_hqdn3d.c
libavfilter/vf_hqdn3d.c
+1
-0
vf_null.c
libavfilter/vf_null.c
+1
-0
vf_pad.c
libavfilter/vf_pad.c
+1
-0
vf_pixdesctest.c
libavfilter/vf_pixdesctest.c
+1
-0
vf_scale.c
libavfilter/vf_scale.c
+1
-0
vf_setpts.c
libavfilter/vf_setpts.c
+1
-0
vf_showinfo.c
libavfilter/vf_showinfo.c
+1
-0
vf_slicify.c
libavfilter/vf_slicify.c
+1
-0
vf_transpose.c
libavfilter/vf_transpose.c
+1
-0
vf_unsharp.c
libavfilter/vf_unsharp.c
+1
-0
vf_vflip.c
libavfilter/vf_vflip.c
+1
-0
vsink_nullsink.c
libavfilter/vsink_nullsink.c
+1
-0
vsrc_color.c
libavfilter/vsrc_color.c
+1
-0
vsrc_movie.c
libavfilter/vsrc_movie.c
+1
-0
vsrc_nullsrc.c
libavfilter/vsrc_nullsrc.c
+1
-0
vsrc_testsrc.c
libavfilter/vsrc_testsrc.c
+1
-0
No files found.
avconv.c
View file @
9d0bfc50
...
...
@@ -548,7 +548,7 @@ static FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost)
static
void
init_input_filter
(
FilterGraph
*
fg
,
AVFilterInOut
*
in
)
{
InputStream
*
ist
;
enum
AVMediaType
type
=
in
->
filter_ctx
->
input_pads
[
in
->
pad_idx
].
type
;
enum
AVMediaType
type
=
avfilter_pad_get_type
(
in
->
filter_ctx
->
input_pads
,
in
->
pad_idx
)
;
int
i
;
// TODO: support other filter types
...
...
@@ -789,7 +789,7 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter,
\
avio_printf(pb, "%s", ctx->filter->name); \
if (nb_pads > 1) \
avio_printf(pb, ":%s",
pads[inout->pad_idx].name);
\
avio_printf(pb, ":%s",
avfilter_pad_get_name(pads, inout->pad_idx));
\
avio_w8(pb, 0); \
avio_close_dyn_buf(pb, &f->name); \
}
...
...
@@ -799,7 +799,7 @@ static int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFil
av_freep
(
&
ofilter
->
name
);
DESCRIBE_FILTER_LINK
(
ofilter
,
out
,
0
);
switch
(
out
->
filter_ctx
->
output_pads
[
out
->
pad_idx
].
type
)
{
switch
(
avfilter_pad_get_type
(
out
->
filter_ctx
->
output_pads
,
out
->
pad_idx
)
)
{
case
AVMEDIA_TYPE_VIDEO
:
return
configure_output_video_filter
(
fg
,
ofilter
,
out
);
case
AVMEDIA_TYPE_AUDIO
:
return
configure_output_audio_filter
(
fg
,
ofilter
,
out
);
default
:
av_assert0
(
0
);
...
...
@@ -913,7 +913,7 @@ static int configure_input_filter(FilterGraph *fg, InputFilter *ifilter,
av_freep
(
&
ifilter
->
name
);
DESCRIBE_FILTER_LINK
(
ifilter
,
in
,
1
);
switch
(
in
->
filter_ctx
->
input_pads
[
in
->
pad_idx
].
type
)
{
switch
(
avfilter_pad_get_type
(
in
->
filter_ctx
->
input_pads
,
in
->
pad_idx
)
)
{
case
AVMEDIA_TYPE_VIDEO
:
return
configure_input_video_filter
(
fg
,
ifilter
,
in
);
case
AVMEDIA_TYPE_AUDIO
:
return
configure_input_audio_filter
(
fg
,
ifilter
,
in
);
default
:
av_assert0
(
0
);
...
...
@@ -4112,7 +4112,8 @@ static void init_output_filter(OutputFilter *ofilter, OptionsContext *o,
{
OutputStream
*
ost
;
switch
(
ofilter
->
out_tmp
->
filter_ctx
->
output_pads
[
ofilter
->
out_tmp
->
pad_idx
].
type
)
{
switch
(
avfilter_pad_get_type
(
ofilter
->
out_tmp
->
filter_ctx
->
output_pads
,
ofilter
->
out_tmp
->
pad_idx
))
{
case
AVMEDIA_TYPE_VIDEO
:
ost
=
new_video_stream
(
o
,
oc
);
break
;
case
AVMEDIA_TYPE_AUDIO
:
ost
=
new_audio_stream
(
o
,
oc
);
break
;
default:
...
...
@@ -4191,7 +4192,8 @@ static void opt_output_file(void *optctx, const char *filename)
if
(
!
ofilter
->
out_tmp
||
ofilter
->
out_tmp
->
name
)
continue
;
switch
(
ofilter
->
out_tmp
->
filter_ctx
->
output_pads
[
ofilter
->
out_tmp
->
pad_idx
].
type
)
{
switch
(
avfilter_pad_get_type
(
ofilter
->
out_tmp
->
filter_ctx
->
output_pads
,
ofilter
->
out_tmp
->
pad_idx
))
{
case
AVMEDIA_TYPE_VIDEO
:
o
->
video_disable
=
1
;
break
;
case
AVMEDIA_TYPE_AUDIO
:
o
->
audio_disable
=
1
;
break
;
case
AVMEDIA_TYPE_SUBTITLE
:
o
->
subtitle_disable
=
1
;
break
;
...
...
libavfilter/af_anull.c
View file @
9d0bfc50
...
...
@@ -23,6 +23,7 @@
#include "audio.h"
#include "avfilter.h"
#include "internal.h"
AVFilter
avfilter_af_anull
=
{
.
name
=
"anull"
,
...
...
libavfilter/asink_anullsink.c
View file @
9d0bfc50
...
...
@@ -17,6 +17,7 @@
*/
#include "avfilter.h"
#include "internal.h"
static
void
null_filter_samples
(
AVFilterLink
*
link
,
AVFilterBufferRef
*
samplesref
)
{
}
...
...
libavfilter/asrc_anullsrc.c
View file @
9d0bfc50
...
...
@@ -22,6 +22,7 @@
*/
#include "avfilter.h"
#include "internal.h"
#include "libavutil/audioconvert.h"
typedef
struct
{
...
...
libavfilter/avfilter.h
View file @
9d0bfc50
...
...
@@ -235,8 +235,14 @@ void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats)
*/
#endif
#if FF_API_AVFILTERPAD_PUBLIC
/**
* A filter pad used for either input or output.
*
* @warning this struct will be removed from public API.
* users should call avfilter_pad_get_name() and avfilter_pad_get_type()
* to access the name and type fields; there should be no need to access
* any other fields from outside of libavfilter.
*/
struct
AVFilterPad
{
/**
...
...
@@ -358,6 +364,7 @@ struct AVFilterPad {
*/
int
(
*
config_props
)(
AVFilterLink
*
link
);
};
#endif
/**
* Get the name of an AVFilterPad.
...
...
libavfilter/buffersrc.c
View file @
9d0bfc50
...
...
@@ -27,6 +27,7 @@
#include "avfilter.h"
#include "buffersrc.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
#include "vsrc_buffer.h"
...
...
libavfilter/internal.h
View file @
9d0bfc50
...
...
@@ -26,6 +26,132 @@
#include "avfilter.h"
#if !FF_API_AVFILTERPAD_PUBLIC
/**
* A filter pad used for either input or output.
*/
struct
AVFilterPad
{
/**
* Pad name. The name is unique among inputs and among outputs, but an
* input may have the same name as an output. This may be NULL if this
* pad has no need to ever be referenced by name.
*/
const
char
*
name
;
/**
* AVFilterPad type.
*/
enum
AVMediaType
type
;
/**
* Minimum required permissions on incoming buffers. Any buffer with
* insufficient permissions will be automatically copied by the filter
* system to a new buffer which provides the needed access permissions.
*
* Input pads only.
*/
int
min_perms
;
/**
* Permissions which are not accepted on incoming buffers. Any buffer
* which has any of these permissions set will be automatically copied
* by the filter system to a new buffer which does not have those
* permissions. This can be used to easily disallow buffers with
* AV_PERM_REUSE.
*
* Input pads only.
*/
int
rej_perms
;
/**
* Callback called before passing the first slice of a new frame. If
* NULL, the filter layer will default to storing a reference to the
* picture inside the link structure.
*
* Input video pads only.
*/
void
(
*
start_frame
)(
AVFilterLink
*
link
,
AVFilterBufferRef
*
picref
);
/**
* Callback function to get a video buffer. If NULL, the filter system will
* use avfilter_default_get_video_buffer().
*
* Input video pads only.
*/
AVFilterBufferRef
*
(
*
get_video_buffer
)(
AVFilterLink
*
link
,
int
perms
,
int
w
,
int
h
);
/**
* Callback function to get an audio buffer. If NULL, the filter system will
* use avfilter_default_get_audio_buffer().
*
* Input audio pads only.
*/
AVFilterBufferRef
*
(
*
get_audio_buffer
)(
AVFilterLink
*
link
,
int
perms
,
int
nb_samples
);
/**
* Callback called after the slices of a frame are completely sent. If
* NULL, the filter layer will default to releasing the reference stored
* in the link structure during start_frame().
*
* Input video pads only.
*/
void
(
*
end_frame
)(
AVFilterLink
*
link
);
/**
* Slice drawing callback. This is where a filter receives video data
* and should do its processing.
*
* Input video pads only.
*/
void
(
*
draw_slice
)(
AVFilterLink
*
link
,
int
y
,
int
height
,
int
slice_dir
);
/**
* Samples filtering callback. This is where a filter receives audio data
* and should do its processing.
*
* Input audio pads only.
*/
void
(
*
filter_samples
)(
AVFilterLink
*
link
,
AVFilterBufferRef
*
samplesref
);
/**
* Frame poll callback. This returns the number of immediately available
* samples. It should return a positive value if the next request_frame()
* is guaranteed to return one frame (with no delay).
*
* Defaults to just calling the source poll_frame() method.
*
* Output pads only.
*/
int
(
*
poll_frame
)(
AVFilterLink
*
link
);
/**
* Frame request callback. A call to this should result in at least one
* frame being output over the given link. This should return zero on
* success, and another value on error.
*
* Output pads only.
*/
int
(
*
request_frame
)(
AVFilterLink
*
link
);
/**
* Link configuration callback.
*
* For output pads, this should set the link properties such as
* width/height. This should NOT set the format property - that is
* negotiated between filters by the filter system using the
* query_formats() callback before this function is called.
*
* For input pads, this should check the properties of the link, and update
* the filter's internal state as necessary.
*
* For both input and output filters, this should return zero on success,
* and another value on error.
*/
int
(
*
config_props
)(
AVFilterLink
*
link
);
};
#endif
/** default handler for freeing audio/video buffer when there are no references left */
void
ff_avfilter_default_free_buffer
(
AVFilterBuffer
*
buf
);
...
...
libavfilter/version.h
View file @
9d0bfc50
...
...
@@ -59,5 +59,8 @@
#ifndef FF_API_FILTERS_PUBLIC
#define FF_API_FILTERS_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 3)
#endif
#ifndef FF_API_AVFILTERPAD_PUBLIC
#define FF_API_AVFILTERPAD_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 4)
#endif
#endif // AVFILTER_VERSION_H
libavfilter/vf_aspect.c
View file @
9d0bfc50
...
...
@@ -25,6 +25,7 @@
#include "libavutil/mathematics.h"
#include "avfilter.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
...
...
libavfilter/vf_blackframe.c
View file @
9d0bfc50
...
...
@@ -29,6 +29,7 @@
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
...
...
libavfilter/vf_boxblur.c
View file @
9d0bfc50
...
...
@@ -30,6 +30,7 @@
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
static
const
char
*
const
var_names
[]
=
{
...
...
libavfilter/vf_copy.c
View file @
9d0bfc50
...
...
@@ -22,6 +22,7 @@
*/
#include "avfilter.h"
#include "internal.h"
#include "video.h"
AVFilter
avfilter_vf_copy
=
{
...
...
libavfilter/vf_crop.c
View file @
9d0bfc50
...
...
@@ -27,6 +27,7 @@
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
#include "libavutil/eval.h"
#include "libavutil/avstring.h"
...
...
libavfilter/vf_cropdetect.c
View file @
9d0bfc50
...
...
@@ -26,6 +26,7 @@
#include "libavutil/imgutils.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
...
...
libavfilter/vf_delogo.c
View file @
9d0bfc50
...
...
@@ -30,6 +30,7 @@
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
/**
...
...
libavfilter/vf_drawbox.c
View file @
9d0bfc50
...
...
@@ -29,6 +29,7 @@
#include "libavutil/parseutils.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
enum
{
Y
,
U
,
V
,
A
};
...
...
libavfilter/vf_drawtext.c
View file @
9d0bfc50
...
...
@@ -42,6 +42,7 @@
#include "avfilter.h"
#include "drawutils.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
#undef time
...
...
libavfilter/vf_fade.c
View file @
9d0bfc50
...
...
@@ -28,6 +28,7 @@
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
...
...
libavfilter/vf_fieldorder.c
View file @
9d0bfc50
...
...
@@ -29,6 +29,7 @@
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
typedef
struct
...
...
libavfilter/vf_format.c
View file @
9d0bfc50
...
...
@@ -26,6 +26,7 @@
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
...
...
libavfilter/vf_frei0r.c
View file @
9d0bfc50
...
...
@@ -32,6 +32,7 @@
#include "libavutil/parseutils.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
typedef
f0r_instance_t
(
*
f0r_construct_f
)(
unsigned
int
width
,
unsigned
int
height
);
...
...
libavfilter/vf_gradfun.c
View file @
9d0bfc50
...
...
@@ -38,6 +38,7 @@
#include "avfilter.h"
#include "formats.h"
#include "gradfun.h"
#include "internal.h"
#include "video.h"
DECLARE_ALIGNED
(
16
,
static
const
uint16_t
,
dither
)[
8
][
8
]
=
{
...
...
libavfilter/vf_hflip.c
View file @
9d0bfc50
...
...
@@ -26,6 +26,7 @@
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
#include "libavutil/pixdesc.h"
#include "libavutil/intreadwrite.h"
...
...
libavfilter/vf_hqdn3d.c
View file @
9d0bfc50
...
...
@@ -28,6 +28,7 @@
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
...
...
libavfilter/vf_null.c
View file @
9d0bfc50
...
...
@@ -22,6 +22,7 @@
*/
#include "avfilter.h"
#include "internal.h"
#include "video.h"
AVFilter
avfilter_vf_null
=
{
...
...
libavfilter/vf_pad.c
View file @
9d0bfc50
...
...
@@ -26,6 +26,7 @@
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
#include "libavutil/avstring.h"
#include "libavutil/eval.h"
...
...
libavfilter/vf_pixdesctest.c
View file @
9d0bfc50
...
...
@@ -25,6 +25,7 @@
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
...
...
libavfilter/vf_scale.c
View file @
9d0bfc50
...
...
@@ -25,6 +25,7 @@
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
#include "libavutil/avstring.h"
#include "libavutil/eval.h"
...
...
libavfilter/vf_setpts.c
View file @
9d0bfc50
...
...
@@ -29,6 +29,7 @@
#include "libavutil/eval.h"
#include "libavutil/mathematics.h"
#include "avfilter.h"
#include "internal.h"
#include "video.h"
static
const
char
*
const
var_names
[]
=
{
...
...
libavfilter/vf_showinfo.c
View file @
9d0bfc50
...
...
@@ -26,6 +26,7 @@
#include "libavutil/imgutils.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
...
...
libavfilter/vf_slicify.c
View file @
9d0bfc50
...
...
@@ -24,6 +24,7 @@
*/
#include "avfilter.h"
#include "internal.h"
#include "video.h"
#include "libavutil/pixdesc.h"
...
...
libavfilter/vf_transpose.c
View file @
9d0bfc50
...
...
@@ -30,6 +30,7 @@
#include "libavutil/imgutils.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
...
...
libavfilter/vf_unsharp.c
View file @
9d0bfc50
...
...
@@ -38,6 +38,7 @@
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
#include "libavutil/common.h"
#include "libavutil/mem.h"
...
...
libavfilter/vf_vflip.c
View file @
9d0bfc50
...
...
@@ -25,6 +25,7 @@
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
...
...
libavfilter/vsink_nullsink.c
View file @
9d0bfc50
...
...
@@ -17,6 +17,7 @@
*/
#include "avfilter.h"
#include "internal.h"
static
void
start_frame
(
AVFilterLink
*
link
,
AVFilterBufferRef
*
picref
)
{
...
...
libavfilter/vsrc_color.c
View file @
9d0bfc50
...
...
@@ -25,6 +25,7 @@
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
#include "libavutil/pixdesc.h"
#include "libavutil/colorspace.h"
...
...
libavfilter/vsrc_movie.c
View file @
9d0bfc50
...
...
@@ -37,6 +37,7 @@
#include "libavformat/avformat.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
...
...
libavfilter/vsrc_nullsrc.c
View file @
9d0bfc50
...
...
@@ -27,6 +27,7 @@
#include "libavutil/parseutils.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
static
const
char
*
const
var_names
[]
=
{
"E"
,
...
...
libavfilter/vsrc_testsrc.c
View file @
9d0bfc50
...
...
@@ -38,6 +38,7 @@
#include "libavutil/parseutils.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
...
...
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