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
e3c6b612
Commit
e3c6b612
authored
May 17, 2012
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
af_aresample: support all swresample parameters.
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
47c2e52b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
6 deletions
+24
-6
af_aresample.c
libavfilter/af_aresample.c
+24
-6
No files found.
libavfilter/af_aresample.c
View file @
e3c6b612
...
...
@@ -24,6 +24,8 @@
* resampling audio filter
*/
#include "libavutil/avstring.h"
#include "libavutil/opt.h"
#include "libswresample/swresample.h"
#include "avfilter.h"
#include "audio.h"
...
...
@@ -38,16 +40,33 @@ typedef struct {
static
av_cold
int
init
(
AVFilterContext
*
ctx
,
const
char
*
args
,
void
*
opaque
)
{
AResampleContext
*
aresample
=
ctx
->
priv
;
int
ret
;
int
ret
=
0
;
char
*
argd
=
av_strdup
(
args
);
aresample
->
swr
=
swr_alloc
();
if
(
!
aresample
->
swr
)
return
AVERROR
(
ENOMEM
);
if
(
args
)
{
if
((
ret
=
ff_parse_sample_rate
(
&
aresample
->
out_rate
,
args
,
ctx
))
<
0
)
return
ret
;
char
*
ptr
=
argd
,
*
token
;
while
(
token
=
av_strtok
(
ptr
,
":"
,
&
ptr
))
{
char
*
value
;
av_strtok
(
token
,
"="
,
&
value
);
if
(
value
)
{
if
((
ret
=
av_opt_set
(
aresample
->
swr
,
token
,
value
,
0
))
<
0
)
goto
end
;
}
else
if
((
ret
=
ff_parse_sample_rate
(
&
aresample
->
out_rate
,
token
,
ctx
))
<
0
)
goto
end
;
}
}
else
{
aresample
->
out_rate
=
-
1
;
}
return
0
;
end:
av_free
(
argd
);
return
ret
;
}
static
av_cold
void
uninit
(
AVFilterContext
*
ctx
)
...
...
@@ -105,7 +124,6 @@ static int config_output(AVFilterLink *outlink)
outlink
->
sample_rate
=
aresample
->
out_rate
;
outlink
->
time_base
=
(
AVRational
)
{
1
,
aresample
->
out_rate
};
//TODO: make the resampling parameters (filter size, phrase shift, linear, cutoff) configurable
aresample
->
swr
=
swr_alloc_set_opts
(
aresample
->
swr
,
outlink
->
channel_layout
,
outlink
->
format
,
outlink
->
sample_rate
,
inlink
->
channel_layout
,
inlink
->
format
,
inlink
->
sample_rate
,
...
...
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