Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Releases
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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Stefan Westerfeld
ffmpeg
Commits
0f931b29
Commit
0f931b29
authored
Jan 04, 2015
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Factorize avpriv_mirror() out
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
9bff052b
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
62 additions
and
101 deletions
+62
-101
dirac_dwt.c
libavcodec/dirac_dwt.c
+10
-20
snow_dwt.c
libavcodec/snow_dwt.c
+30
-40
transform.c
libavfilter/transform.c
+2
-12
vf_owdenoise.c
libavfilter/vf_owdenoise.c
+4
-13
vf_sab.c
libavfilter/vf_sab.c
+3
-16
internal.h
libavutil/internal.h
+13
-0
No files found.
libavcodec/dirac_dwt.c
View file @
0f931b29
...
...
@@ -26,16 +26,6 @@
#include "libavcodec/x86/dirac_dwt.h"
static
inline
int
mirror
(
int
v
,
int
m
)
{
while
((
unsigned
)
v
>
(
unsigned
)
m
)
{
v
=
-
v
;
if
(
v
<
0
)
v
+=
2
*
m
;
}
return
v
;
}
static
void
vertical_compose53iL0
(
IDWTELEM
*
b0
,
IDWTELEM
*
b1
,
IDWTELEM
*
b2
,
int
width
)
{
...
...
@@ -307,8 +297,8 @@ static void spatial_compose_dirac53i_dy(DWTContext *d, int level, int width, int
int
y
=
cs
->
y
;
IDWTELEM
*
b
[
4
]
=
{
cs
->
b
[
0
],
cs
->
b
[
1
]
};
b
[
2
]
=
d
->
buffer
+
mirror
(
y
+
1
,
height
-
1
)
*
stride
;
b
[
3
]
=
d
->
buffer
+
mirror
(
y
+
2
,
height
-
1
)
*
stride
;
b
[
2
]
=
d
->
buffer
+
avpriv_
mirror
(
y
+
1
,
height
-
1
)
*
stride
;
b
[
3
]
=
d
->
buffer
+
avpriv_
mirror
(
y
+
2
,
height
-
1
)
*
stride
;
if
(
y
+
1
<
(
unsigned
)
height
)
vertical_compose_l0
(
b
[
1
],
b
[
2
],
b
[
3
],
width
);
if
(
y
+
0
<
(
unsigned
)
height
)
vertical_compose_h0
(
b
[
0
],
b
[
1
],
b
[
2
],
width
);
...
...
@@ -400,8 +390,8 @@ static void spatial_compose_daub97i_dy(DWTContext *d, int level, int width, int
IDWTELEM
*
b
[
6
];
for
(
i
=
0
;
i
<
4
;
i
++
)
b
[
i
]
=
cs
->
b
[
i
];
b
[
4
]
=
d
->
buffer
+
mirror
(
y
+
3
,
height
-
1
)
*
stride
;
b
[
5
]
=
d
->
buffer
+
mirror
(
y
+
4
,
height
-
1
)
*
stride
;
b
[
4
]
=
d
->
buffer
+
avpriv_
mirror
(
y
+
3
,
height
-
1
)
*
stride
;
b
[
5
]
=
d
->
buffer
+
avpriv_
mirror
(
y
+
4
,
height
-
1
)
*
stride
;
if
(
y
+
3
<
(
unsigned
)
height
)
vertical_compose_l1
(
b
[
3
],
b
[
4
],
b
[
5
],
width
);
if
(
y
+
2
<
(
unsigned
)
height
)
vertical_compose_h1
(
b
[
2
],
b
[
3
],
b
[
4
],
width
);
...
...
@@ -419,17 +409,17 @@ static void spatial_compose_daub97i_dy(DWTContext *d, int level, int width, int
static
void
spatial_compose97i_init2
(
DWTCompose
*
cs
,
IDWTELEM
*
buffer
,
int
height
,
int
stride
)
{
cs
->
b
[
0
]
=
buffer
+
mirror
(
-
3
-
1
,
height
-
1
)
*
stride
;
cs
->
b
[
1
]
=
buffer
+
mirror
(
-
3
,
height
-
1
)
*
stride
;
cs
->
b
[
2
]
=
buffer
+
mirror
(
-
3
+
1
,
height
-
1
)
*
stride
;
cs
->
b
[
3
]
=
buffer
+
mirror
(
-
3
+
2
,
height
-
1
)
*
stride
;
cs
->
b
[
0
]
=
buffer
+
avpriv_
mirror
(
-
3
-
1
,
height
-
1
)
*
stride
;
cs
->
b
[
1
]
=
buffer
+
avpriv_
mirror
(
-
3
,
height
-
1
)
*
stride
;
cs
->
b
[
2
]
=
buffer
+
avpriv_
mirror
(
-
3
+
1
,
height
-
1
)
*
stride
;
cs
->
b
[
3
]
=
buffer
+
avpriv_
mirror
(
-
3
+
2
,
height
-
1
)
*
stride
;
cs
->
y
=
-
3
;
}
static
void
spatial_compose53i_init2
(
DWTCompose
*
cs
,
IDWTELEM
*
buffer
,
int
height
,
int
stride
)
{
cs
->
b
[
0
]
=
buffer
+
mirror
(
-
1
-
1
,
height
-
1
)
*
stride
;
cs
->
b
[
1
]
=
buffer
+
mirror
(
-
1
,
height
-
1
)
*
stride
;
cs
->
b
[
0
]
=
buffer
+
avpriv_
mirror
(
-
1
-
1
,
height
-
1
)
*
stride
;
cs
->
b
[
1
]
=
buffer
+
avpriv_
mirror
(
-
1
,
height
-
1
)
*
stride
;
cs
->
y
=
-
1
;
}
...
...
libavcodec/snow_dwt.c
View file @
0f931b29
...
...
@@ -112,16 +112,6 @@ void ff_slice_buffer_destroy(slice_buffer *buf)
av_freep
(
&
buf
->
line
);
}
static
inline
int
mirror
(
int
v
,
int
m
)
{
while
((
unsigned
)
v
>
(
unsigned
)
m
)
{
v
=
-
v
;
if
(
v
<
0
)
v
+=
2
*
m
;
}
return
v
;
}
static
av_always_inline
void
lift
(
DWTELEM
*
dst
,
DWTELEM
*
src
,
DWTELEM
*
ref
,
int
dst_step
,
int
src_step
,
int
ref_step
,
int
width
,
int
mul
,
int
add
,
int
shift
,
...
...
@@ -223,12 +213,12 @@ static void spatial_decompose53i(DWTELEM *buffer, DWTELEM *temp,
int
width
,
int
height
,
int
stride
)
{
int
y
;
DWTELEM
*
b0
=
buffer
+
mirror
(
-
2
-
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b1
=
buffer
+
mirror
(
-
2
,
height
-
1
)
*
stride
;
DWTELEM
*
b0
=
buffer
+
avpriv_
mirror
(
-
2
-
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b1
=
buffer
+
avpriv_
mirror
(
-
2
,
height
-
1
)
*
stride
;
for
(
y
=
-
2
;
y
<
height
;
y
+=
2
)
{
DWTELEM
*
b2
=
buffer
+
mirror
(
y
+
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b3
=
buffer
+
mirror
(
y
+
2
,
height
-
1
)
*
stride
;
DWTELEM
*
b2
=
buffer
+
avpriv_
mirror
(
y
+
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b3
=
buffer
+
avpriv_
mirror
(
y
+
2
,
height
-
1
)
*
stride
;
if
(
y
+
1
<
(
unsigned
)
height
)
horizontal_decompose53i
(
b2
,
temp
,
width
);
...
...
@@ -296,14 +286,14 @@ static void spatial_decompose97i(DWTELEM *buffer, DWTELEM *temp,
int
width
,
int
height
,
int
stride
)
{
int
y
;
DWTELEM
*
b0
=
buffer
+
mirror
(
-
4
-
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b1
=
buffer
+
mirror
(
-
4
,
height
-
1
)
*
stride
;
DWTELEM
*
b2
=
buffer
+
mirror
(
-
4
+
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b3
=
buffer
+
mirror
(
-
4
+
2
,
height
-
1
)
*
stride
;
DWTELEM
*
b0
=
buffer
+
avpriv_
mirror
(
-
4
-
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b1
=
buffer
+
avpriv_
mirror
(
-
4
,
height
-
1
)
*
stride
;
DWTELEM
*
b2
=
buffer
+
avpriv_
mirror
(
-
4
+
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b3
=
buffer
+
avpriv_
mirror
(
-
4
+
2
,
height
-
1
)
*
stride
;
for
(
y
=
-
4
;
y
<
height
;
y
+=
2
)
{
DWTELEM
*
b4
=
buffer
+
mirror
(
y
+
3
,
height
-
1
)
*
stride
;
DWTELEM
*
b5
=
buffer
+
mirror
(
y
+
4
,
height
-
1
)
*
stride
;
DWTELEM
*
b4
=
buffer
+
avpriv_
mirror
(
y
+
3
,
height
-
1
)
*
stride
;
DWTELEM
*
b5
=
buffer
+
avpriv_
mirror
(
y
+
4
,
height
-
1
)
*
stride
;
if
(
y
+
3
<
(
unsigned
)
height
)
horizontal_decompose97i
(
b4
,
temp
,
width
);
...
...
@@ -394,16 +384,16 @@ static void spatial_compose53i_buffered_init(DWTCompose *cs, slice_buffer *sb,
int
height
,
int
stride_line
)
{
cs
->
b0
=
slice_buffer_get_line
(
sb
,
mirror
(
-
1
-
1
,
height
-
1
)
*
stride_line
);
cs
->
b1
=
slice_buffer_get_line
(
sb
,
mirror
(
-
1
,
height
-
1
)
*
stride_line
);
avpriv_
mirror
(
-
1
-
1
,
height
-
1
)
*
stride_line
);
cs
->
b1
=
slice_buffer_get_line
(
sb
,
avpriv_
mirror
(
-
1
,
height
-
1
)
*
stride_line
);
cs
->
y
=
-
1
;
}
static
void
spatial_compose53i_init
(
DWTCompose
*
cs
,
IDWTELEM
*
buffer
,
int
height
,
int
stride
)
{
cs
->
b0
=
buffer
+
mirror
(
-
1
-
1
,
height
-
1
)
*
stride
;
cs
->
b1
=
buffer
+
mirror
(
-
1
,
height
-
1
)
*
stride
;
cs
->
b0
=
buffer
+
avpriv_
mirror
(
-
1
-
1
,
height
-
1
)
*
stride
;
cs
->
b1
=
buffer
+
avpriv_
mirror
(
-
1
,
height
-
1
)
*
stride
;
cs
->
y
=
-
1
;
}
...
...
@@ -417,10 +407,10 @@ static void spatial_compose53i_dy_buffered(DWTCompose *cs, slice_buffer *sb,
IDWTELEM
*
b0
=
cs
->
b0
;
IDWTELEM
*
b1
=
cs
->
b1
;
IDWTELEM
*
b2
=
slice_buffer_get_line
(
sb
,
mirror
(
y
+
1
,
height
-
1
)
*
avpriv_
mirror
(
y
+
1
,
height
-
1
)
*
stride_line
);
IDWTELEM
*
b3
=
slice_buffer_get_line
(
sb
,
mirror
(
y
+
2
,
height
-
1
)
*
avpriv_
mirror
(
y
+
2
,
height
-
1
)
*
stride_line
);
if
(
y
+
1
<
(
unsigned
)
height
&&
y
<
(
unsigned
)
height
)
{
...
...
@@ -454,8 +444,8 @@ static void spatial_compose53i_dy(DWTCompose *cs, IDWTELEM *buffer,
int
y
=
cs
->
y
;
IDWTELEM
*
b0
=
cs
->
b0
;
IDWTELEM
*
b1
=
cs
->
b1
;
IDWTELEM
*
b2
=
buffer
+
mirror
(
y
+
1
,
height
-
1
)
*
stride
;
IDWTELEM
*
b3
=
buffer
+
mirror
(
y
+
2
,
height
-
1
)
*
stride
;
IDWTELEM
*
b2
=
buffer
+
avpriv_
mirror
(
y
+
1
,
height
-
1
)
*
stride
;
IDWTELEM
*
b3
=
buffer
+
avpriv_
mirror
(
y
+
2
,
height
-
1
)
*
stride
;
if
(
y
+
1
<
(
unsigned
)
height
)
vertical_compose53iL0
(
b1
,
b2
,
b3
,
width
);
...
...
@@ -553,20 +543,20 @@ void ff_snow_vertical_compose97i(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2,
static
void
spatial_compose97i_buffered_init
(
DWTCompose
*
cs
,
slice_buffer
*
sb
,
int
height
,
int
stride_line
)
{
cs
->
b0
=
slice_buffer_get_line
(
sb
,
mirror
(
-
3
-
1
,
height
-
1
)
*
stride_line
);
cs
->
b1
=
slice_buffer_get_line
(
sb
,
mirror
(
-
3
,
height
-
1
)
*
stride_line
);
cs
->
b2
=
slice_buffer_get_line
(
sb
,
mirror
(
-
3
+
1
,
height
-
1
)
*
stride_line
);
cs
->
b3
=
slice_buffer_get_line
(
sb
,
mirror
(
-
3
+
2
,
height
-
1
)
*
stride_line
);
cs
->
b0
=
slice_buffer_get_line
(
sb
,
avpriv_
mirror
(
-
3
-
1
,
height
-
1
)
*
stride_line
);
cs
->
b1
=
slice_buffer_get_line
(
sb
,
avpriv_
mirror
(
-
3
,
height
-
1
)
*
stride_line
);
cs
->
b2
=
slice_buffer_get_line
(
sb
,
avpriv_
mirror
(
-
3
+
1
,
height
-
1
)
*
stride_line
);
cs
->
b3
=
slice_buffer_get_line
(
sb
,
avpriv_
mirror
(
-
3
+
2
,
height
-
1
)
*
stride_line
);
cs
->
y
=
-
3
;
}
static
void
spatial_compose97i_init
(
DWTCompose
*
cs
,
IDWTELEM
*
buffer
,
int
height
,
int
stride
)
{
cs
->
b0
=
buffer
+
mirror
(
-
3
-
1
,
height
-
1
)
*
stride
;
cs
->
b1
=
buffer
+
mirror
(
-
3
,
height
-
1
)
*
stride
;
cs
->
b2
=
buffer
+
mirror
(
-
3
+
1
,
height
-
1
)
*
stride
;
cs
->
b3
=
buffer
+
mirror
(
-
3
+
2
,
height
-
1
)
*
stride
;
cs
->
b0
=
buffer
+
avpriv_
mirror
(
-
3
-
1
,
height
-
1
)
*
stride
;
cs
->
b1
=
buffer
+
avpriv_
mirror
(
-
3
,
height
-
1
)
*
stride
;
cs
->
b2
=
buffer
+
avpriv_
mirror
(
-
3
+
1
,
height
-
1
)
*
stride
;
cs
->
b3
=
buffer
+
avpriv_
mirror
(
-
3
+
2
,
height
-
1
)
*
stride
;
cs
->
y
=
-
3
;
}
...
...
@@ -582,10 +572,10 @@ static void spatial_compose97i_dy_buffered(SnowDWTContext *dsp, DWTCompose *cs,
IDWTELEM
*
b2
=
cs
->
b2
;
IDWTELEM
*
b3
=
cs
->
b3
;
IDWTELEM
*
b4
=
slice_buffer_get_line
(
sb
,
mirror
(
y
+
3
,
height
-
1
)
*
avpriv_
mirror
(
y
+
3
,
height
-
1
)
*
stride_line
);
IDWTELEM
*
b5
=
slice_buffer_get_line
(
sb
,
mirror
(
y
+
4
,
height
-
1
)
*
avpriv_
mirror
(
y
+
4
,
height
-
1
)
*
stride_line
);
if
(
y
>
0
&&
y
+
4
<
height
)
{
...
...
@@ -622,8 +612,8 @@ static void spatial_compose97i_dy(DWTCompose *cs, IDWTELEM *buffer,
IDWTELEM
*
b1
=
cs
->
b1
;
IDWTELEM
*
b2
=
cs
->
b2
;
IDWTELEM
*
b3
=
cs
->
b3
;
IDWTELEM
*
b4
=
buffer
+
mirror
(
y
+
3
,
height
-
1
)
*
stride
;
IDWTELEM
*
b5
=
buffer
+
mirror
(
y
+
4
,
height
-
1
)
*
stride
;
IDWTELEM
*
b4
=
buffer
+
avpriv_
mirror
(
y
+
3
,
height
-
1
)
*
stride
;
IDWTELEM
*
b5
=
buffer
+
avpriv_
mirror
(
y
+
4
,
height
-
1
)
*
stride
;
if
(
y
+
3
<
(
unsigned
)
height
)
vertical_compose97iL1
(
b3
,
b4
,
b5
,
width
);
...
...
libavfilter/transform.c
View file @
0f931b29
...
...
@@ -136,16 +136,6 @@ void avfilter_mul_matrix(const float *m1, float scalar, float *result)
result
[
i
]
=
m1
[
i
]
*
scalar
;
}
static
inline
int
mirror
(
int
v
,
int
m
)
{
while
((
unsigned
)
v
>
(
unsigned
)
m
)
{
v
=
-
v
;
if
(
v
<
0
)
v
+=
2
*
m
;
}
return
v
;
}
int
avfilter_transform
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_stride
,
int
dst_stride
,
int
width
,
int
height
,
const
float
*
matrix
,
...
...
@@ -186,8 +176,8 @@ int avfilter_transform(const uint8_t *src, uint8_t *dst,
def
=
src
[(
int
)
y_s
*
src_stride
+
(
int
)
x_s
];
break
;
case
FILL_MIRROR
:
x_s
=
mirror
(
x_s
,
width
-
1
);
y_s
=
mirror
(
y_s
,
height
-
1
);
x_s
=
avpriv_
mirror
(
x_s
,
width
-
1
);
y_s
=
avpriv_
mirror
(
y_s
,
height
-
1
);
av_assert2
(
x_s
>=
0
&&
y_s
>=
0
);
av_assert2
(
x_s
<
width
&&
y_s
<
height
);
...
...
libavfilter/vf_owdenoise.c
View file @
0f931b29
...
...
@@ -98,15 +98,6 @@ static const double icoeff[2][5] = {
}
};
static
inline
int
mirror
(
int
x
,
int
w
)
{
while
((
unsigned
)
x
>
(
unsigned
)
w
)
{
x
=
-
x
;
if
(
x
<
0
)
x
+=
2
*
w
;
}
return
x
;
}
static
inline
void
decompose
(
float
*
dst_l
,
float
*
dst_h
,
const
float
*
src
,
int
linesize
,
int
w
)
...
...
@@ -116,8 +107,8 @@ static inline void decompose(float *dst_l, float *dst_h, const float *src,
double
sum_l
=
src
[
x
*
linesize
]
*
coeff
[
0
][
0
];
double
sum_h
=
src
[
x
*
linesize
]
*
coeff
[
1
][
0
];
for
(
i
=
1
;
i
<=
4
;
i
++
)
{
const
double
s
=
src
[
mirror
(
x
-
i
,
w
-
1
)
*
linesize
]
+
src
[
mirror
(
x
+
i
,
w
-
1
)
*
linesize
];
const
double
s
=
src
[
avpriv_
mirror
(
x
-
i
,
w
-
1
)
*
linesize
]
+
src
[
avpriv_
mirror
(
x
+
i
,
w
-
1
)
*
linesize
];
sum_l
+=
coeff
[
0
][
i
]
*
s
;
sum_h
+=
coeff
[
1
][
i
]
*
s
;
...
...
@@ -135,8 +126,8 @@ static inline void compose(float *dst, const float *src_l, const float *src_h,
double
sum_l
=
src_l
[
x
*
linesize
]
*
icoeff
[
0
][
0
];
double
sum_h
=
src_h
[
x
*
linesize
]
*
icoeff
[
1
][
0
];
for
(
i
=
1
;
i
<=
4
;
i
++
)
{
const
int
x0
=
mirror
(
x
-
i
,
w
-
1
)
*
linesize
;
const
int
x1
=
mirror
(
x
+
i
,
w
-
1
)
*
linesize
;
const
int
x0
=
avpriv_
mirror
(
x
-
i
,
w
-
1
)
*
linesize
;
const
int
x1
=
avpriv_
mirror
(
x
+
i
,
w
-
1
)
*
linesize
;
sum_l
+=
icoeff
[
0
][
i
]
*
(
src_l
[
x0
]
+
src_l
[
x1
]);
sum_h
+=
icoeff
[
1
][
i
]
*
(
src_h
[
x0
]
+
src_h
[
x1
]);
...
...
libavfilter/vf_sab.c
View file @
0f931b29
...
...
@@ -220,19 +220,6 @@ static int config_props(AVFilterLink *inlink)
#define NB_PLANES 4
static
inline
int
mirror
(
int
x
,
int
w
)
{
if
(
!
w
)
return
0
;
while
((
unsigned
)
x
>
(
unsigned
)
w
)
{
x
=
-
x
;
if
(
x
<
0
)
x
+=
2
*
w
;
}
return
x
;
}
static
void
blur
(
uint8_t
*
dst
,
const
int
dst_linesize
,
const
uint8_t
*
src
,
const
int
src_linesize
,
const
int
w
,
const
int
h
,
FilterParam
*
fp
)
...
...
@@ -266,7 +253,7 @@ static void blur(uint8_t *dst, const int dst_linesize,
for
(
dy
=
0
;
dy
<
radius
*
2
+
1
;
dy
++
)
{
int
dx
;
int
iy
=
y
+
dy
-
radius
;
iy
=
mirror
(
iy
,
h
-
1
);
iy
=
avpriv_
mirror
(
iy
,
h
-
1
);
for
(
dx
=
0
;
dx
<
radius
*
2
+
1
;
dx
++
)
{
const
int
ix
=
x
+
dx
-
radius
;
...
...
@@ -277,11 +264,11 @@ static void blur(uint8_t *dst, const int dst_linesize,
for
(
dy
=
0
;
dy
<
radius
*
2
+
1
;
dy
++
)
{
int
dx
;
int
iy
=
y
+
dy
-
radius
;
iy
=
mirror
(
iy
,
h
-
1
);
iy
=
avpriv_
mirror
(
iy
,
h
-
1
);
for
(
dx
=
0
;
dx
<
radius
*
2
+
1
;
dx
++
)
{
int
ix
=
x
+
dx
-
radius
;
ix
=
mirror
(
ix
,
w
-
1
);
ix
=
avpriv_
mirror
(
ix
,
w
-
1
);
UPDATE_FACTOR
;
}
}
...
...
libavutil/internal.h
View file @
0f931b29
...
...
@@ -256,6 +256,19 @@ int avpriv_open(const char *filename, int flags, ...);
int
avpriv_set_systematic_pal2
(
uint32_t
pal
[
256
],
enum
AVPixelFormat
pix_fmt
);
static
av_always_inline
av_const
int
avpriv_mirror
(
int
x
,
int
w
)
{
if
(
!
w
)
return
0
;
while
((
unsigned
)
x
>
(
unsigned
)
w
)
{
x
=
-
x
;
if
(
x
<
0
)
x
+=
2
*
w
;
}
return
x
;
}
#if FF_API_GET_CHANNEL_LAYOUT_COMPAT
uint64_t
ff_get_channel_layout
(
const
char
*
name
,
int
compat
);
#endif
...
...
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