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
7c79ec66
Commit
7c79ec66
authored
Apr 11, 2013
by
Paul B Mahol
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lavfi/framestep: remove request_frame hack
Signed-off-by:
Paul B Mahol
<
onemda@gmail.com
>
parent
f77db729
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
2 additions
and
19 deletions
+2
-19
vf_framestep.c
libavfilter/vf_framestep.c
+2
-19
No files found.
libavfilter/vf_framestep.c
View file @
7c79ec66
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
typedef
struct
{
typedef
struct
{
const
AVClass
*
class
;
const
AVClass
*
class
;
int
frame_step
,
frame_count
,
frame_selected
;
int
frame_step
,
frame_count
;
}
FrameStepContext
;
}
FrameStepContext
;
#define OFFSET(x) offsetof(FrameStepContext, x)
#define OFFSET(x) offsetof(FrameStepContext, x)
...
@@ -49,6 +49,7 @@ static int config_output_props(AVFilterLink *outlink)
...
@@ -49,6 +49,7 @@ static int config_output_props(AVFilterLink *outlink)
FrameStepContext
*
framestep
=
ctx
->
priv
;
FrameStepContext
*
framestep
=
ctx
->
priv
;
AVFilterLink
*
inlink
=
ctx
->
inputs
[
0
];
AVFilterLink
*
inlink
=
ctx
->
inputs
[
0
];
outlink
->
flags
|=
FF_LINK_FLAG_REQUEST_LOOP
;
outlink
->
frame_rate
=
outlink
->
frame_rate
=
av_div_q
(
inlink
->
frame_rate
,
(
AVRational
){
framestep
->
frame_step
,
1
});
av_div_q
(
inlink
->
frame_rate
,
(
AVRational
){
framestep
->
frame_step
,
1
});
...
@@ -64,34 +65,17 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *ref)
...
@@ -64,34 +65,17 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *ref)
FrameStepContext
*
framestep
=
inlink
->
dst
->
priv
;
FrameStepContext
*
framestep
=
inlink
->
dst
->
priv
;
if
(
!
(
framestep
->
frame_count
++
%
framestep
->
frame_step
))
{
if
(
!
(
framestep
->
frame_count
++
%
framestep
->
frame_step
))
{
framestep
->
frame_selected
=
1
;
return
ff_filter_frame
(
inlink
->
dst
->
outputs
[
0
],
ref
);
return
ff_filter_frame
(
inlink
->
dst
->
outputs
[
0
],
ref
);
}
else
{
}
else
{
framestep
->
frame_selected
=
0
;
av_frame_free
(
&
ref
);
av_frame_free
(
&
ref
);
return
0
;
return
0
;
}
}
}
}
static
int
request_frame
(
AVFilterLink
*
outlink
)
{
FrameStepContext
*
framestep
=
outlink
->
src
->
priv
;
AVFilterLink
*
inlink
=
outlink
->
src
->
inputs
[
0
];
int
ret
;
framestep
->
frame_selected
=
0
;
do
{
ret
=
ff_request_frame
(
inlink
);
}
while
(
!
framestep
->
frame_selected
&&
ret
>=
0
);
return
ret
;
}
static
const
AVFilterPad
framestep_inputs
[]
=
{
static
const
AVFilterPad
framestep_inputs
[]
=
{
{
{
.
name
=
"default"
,
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
get_video_buffer
=
ff_null_get_video_buffer
,
.
filter_frame
=
filter_frame
,
.
filter_frame
=
filter_frame
,
},
},
{
NULL
}
{
NULL
}
...
@@ -102,7 +86,6 @@ static const AVFilterPad framestep_outputs[] = {
...
@@ -102,7 +86,6 @@ static const AVFilterPad framestep_outputs[] = {
.
name
=
"default"
,
.
name
=
"default"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
config_props
=
config_output_props
,
.
config_props
=
config_output_props
,
.
request_frame
=
request_frame
,
},
},
{
NULL
}
{
NULL
}
};
};
...
...
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