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
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
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 @@
...
@@ -26,16 +26,6 @@
#include "libavcodec/x86/dirac_dwt.h"
#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
,
static
void
vertical_compose53iL0
(
IDWTELEM
*
b0
,
IDWTELEM
*
b1
,
IDWTELEM
*
b2
,
int
width
)
int
width
)
{
{
...
@@ -307,8 +297,8 @@ static void spatial_compose_dirac53i_dy(DWTContext *d, int level, int width, int
...
@@ -307,8 +297,8 @@ static void spatial_compose_dirac53i_dy(DWTContext *d, int level, int width, int
int
y
=
cs
->
y
;
int
y
=
cs
->
y
;
IDWTELEM
*
b
[
4
]
=
{
cs
->
b
[
0
],
cs
->
b
[
1
]
};
IDWTELEM
*
b
[
4
]
=
{
cs
->
b
[
0
],
cs
->
b
[
1
]
};
b
[
2
]
=
d
->
buffer
+
mirror
(
y
+
1
,
height
-
1
)
*
stride
;
b
[
2
]
=
d
->
buffer
+
avpriv_
mirror
(
y
+
1
,
height
-
1
)
*
stride
;
b
[
3
]
=
d
->
buffer
+
mirror
(
y
+
2
,
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
+
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
);
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
...
@@ -400,8 +390,8 @@ static void spatial_compose_daub97i_dy(DWTContext *d, int level, int width, int
IDWTELEM
*
b
[
6
];
IDWTELEM
*
b
[
6
];
for
(
i
=
0
;
i
<
4
;
i
++
)
for
(
i
=
0
;
i
<
4
;
i
++
)
b
[
i
]
=
cs
->
b
[
i
];
b
[
i
]
=
cs
->
b
[
i
];
b
[
4
]
=
d
->
buffer
+
mirror
(
y
+
3
,
height
-
1
)
*
stride
;
b
[
4
]
=
d
->
buffer
+
avpriv_
mirror
(
y
+
3
,
height
-
1
)
*
stride
;
b
[
5
]
=
d
->
buffer
+
mirror
(
y
+
4
,
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
+
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
);
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
...
@@ -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
)
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
[
0
]
=
buffer
+
avpriv_
mirror
(
-
3
-
1
,
height
-
1
)
*
stride
;
cs
->
b
[
1
]
=
buffer
+
mirror
(
-
3
,
height
-
1
)
*
stride
;
cs
->
b
[
1
]
=
buffer
+
avpriv_
mirror
(
-
3
,
height
-
1
)
*
stride
;
cs
->
b
[
2
]
=
buffer
+
mirror
(
-
3
+
1
,
height
-
1
)
*
stride
;
cs
->
b
[
2
]
=
buffer
+
avpriv_
mirror
(
-
3
+
1
,
height
-
1
)
*
stride
;
cs
->
b
[
3
]
=
buffer
+
mirror
(
-
3
+
2
,
height
-
1
)
*
stride
;
cs
->
b
[
3
]
=
buffer
+
avpriv_
mirror
(
-
3
+
2
,
height
-
1
)
*
stride
;
cs
->
y
=
-
3
;
cs
->
y
=
-
3
;
}
}
static
void
spatial_compose53i_init2
(
DWTCompose
*
cs
,
IDWTELEM
*
buffer
,
int
height
,
int
stride
)
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
[
0
]
=
buffer
+
avpriv_
mirror
(
-
1
-
1
,
height
-
1
)
*
stride
;
cs
->
b
[
1
]
=
buffer
+
mirror
(
-
1
,
height
-
1
)
*
stride
;
cs
->
b
[
1
]
=
buffer
+
avpriv_
mirror
(
-
1
,
height
-
1
)
*
stride
;
cs
->
y
=
-
1
;
cs
->
y
=
-
1
;
}
}
...
...
libavcodec/snow_dwt.c
View file @
0f931b29
...
@@ -112,16 +112,6 @@ void ff_slice_buffer_destroy(slice_buffer *buf)
...
@@ -112,16 +112,6 @@ void ff_slice_buffer_destroy(slice_buffer *buf)
av_freep
(
&
buf
->
line
);
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
,
static
av_always_inline
void
lift
(
DWTELEM
*
dst
,
DWTELEM
*
src
,
DWTELEM
*
ref
,
int
dst_step
,
int
src_step
,
int
ref_step
,
int
dst_step
,
int
src_step
,
int
ref_step
,
int
width
,
int
mul
,
int
add
,
int
shift
,
int
width
,
int
mul
,
int
add
,
int
shift
,
...
@@ -223,12 +213,12 @@ static void spatial_decompose53i(DWTELEM *buffer, DWTELEM *temp,
...
@@ -223,12 +213,12 @@ static void spatial_decompose53i(DWTELEM *buffer, DWTELEM *temp,
int
width
,
int
height
,
int
stride
)
int
width
,
int
height
,
int
stride
)
{
{
int
y
;
int
y
;
DWTELEM
*
b0
=
buffer
+
mirror
(
-
2
-
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b0
=
buffer
+
avpriv_
mirror
(
-
2
-
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b1
=
buffer
+
mirror
(
-
2
,
height
-
1
)
*
stride
;
DWTELEM
*
b1
=
buffer
+
avpriv_
mirror
(
-
2
,
height
-
1
)
*
stride
;
for
(
y
=
-
2
;
y
<
height
;
y
+=
2
)
{
for
(
y
=
-
2
;
y
<
height
;
y
+=
2
)
{
DWTELEM
*
b2
=
buffer
+
mirror
(
y
+
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b2
=
buffer
+
avpriv_
mirror
(
y
+
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b3
=
buffer
+
mirror
(
y
+
2
,
height
-
1
)
*
stride
;
DWTELEM
*
b3
=
buffer
+
avpriv_
mirror
(
y
+
2
,
height
-
1
)
*
stride
;
if
(
y
+
1
<
(
unsigned
)
height
)
if
(
y
+
1
<
(
unsigned
)
height
)
horizontal_decompose53i
(
b2
,
temp
,
width
);
horizontal_decompose53i
(
b2
,
temp
,
width
);
...
@@ -296,14 +286,14 @@ static void spatial_decompose97i(DWTELEM *buffer, DWTELEM *temp,
...
@@ -296,14 +286,14 @@ static void spatial_decompose97i(DWTELEM *buffer, DWTELEM *temp,
int
width
,
int
height
,
int
stride
)
int
width
,
int
height
,
int
stride
)
{
{
int
y
;
int
y
;
DWTELEM
*
b0
=
buffer
+
mirror
(
-
4
-
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b0
=
buffer
+
avpriv_
mirror
(
-
4
-
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b1
=
buffer
+
mirror
(
-
4
,
height
-
1
)
*
stride
;
DWTELEM
*
b1
=
buffer
+
avpriv_
mirror
(
-
4
,
height
-
1
)
*
stride
;
DWTELEM
*
b2
=
buffer
+
mirror
(
-
4
+
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b2
=
buffer
+
avpriv_
mirror
(
-
4
+
1
,
height
-
1
)
*
stride
;
DWTELEM
*
b3
=
buffer
+
mirror
(
-
4
+
2
,
height
-
1
)
*
stride
;
DWTELEM
*
b3
=
buffer
+
avpriv_
mirror
(
-
4
+
2
,
height
-
1
)
*
stride
;
for
(
y
=
-
4
;
y
<
height
;
y
+=
2
)
{
for
(
y
=
-
4
;
y
<
height
;
y
+=
2
)
{
DWTELEM
*
b4
=
buffer
+
mirror
(
y
+
3
,
height
-
1
)
*
stride
;
DWTELEM
*
b4
=
buffer
+
avpriv_
mirror
(
y
+
3
,
height
-
1
)
*
stride
;
DWTELEM
*
b5
=
buffer
+
mirror
(
y
+
4
,
height
-
1
)
*
stride
;
DWTELEM
*
b5
=
buffer
+
avpriv_
mirror
(
y
+
4
,
height
-
1
)
*
stride
;
if
(
y
+
3
<
(
unsigned
)
height
)
if
(
y
+
3
<
(
unsigned
)
height
)
horizontal_decompose97i
(
b4
,
temp
,
width
);
horizontal_decompose97i
(
b4
,
temp
,
width
);
...
@@ -394,16 +384,16 @@ static void spatial_compose53i_buffered_init(DWTCompose *cs, slice_buffer *sb,
...
@@ -394,16 +384,16 @@ static void spatial_compose53i_buffered_init(DWTCompose *cs, slice_buffer *sb,
int
height
,
int
stride_line
)
int
height
,
int
stride_line
)
{
{
cs
->
b0
=
slice_buffer_get_line
(
sb
,
cs
->
b0
=
slice_buffer_get_line
(
sb
,
mirror
(
-
1
-
1
,
height
-
1
)
*
stride_line
);
avpriv_
mirror
(
-
1
-
1
,
height
-
1
)
*
stride_line
);
cs
->
b1
=
slice_buffer_get_line
(
sb
,
mirror
(
-
1
,
height
-
1
)
*
stride_line
);
cs
->
b1
=
slice_buffer_get_line
(
sb
,
avpriv_
mirror
(
-
1
,
height
-
1
)
*
stride_line
);
cs
->
y
=
-
1
;
cs
->
y
=
-
1
;
}
}
static
void
spatial_compose53i_init
(
DWTCompose
*
cs
,
IDWTELEM
*
buffer
,
static
void
spatial_compose53i_init
(
DWTCompose
*
cs
,
IDWTELEM
*
buffer
,
int
height
,
int
stride
)
int
height
,
int
stride
)
{
{
cs
->
b0
=
buffer
+
mirror
(
-
1
-
1
,
height
-
1
)
*
stride
;
cs
->
b0
=
buffer
+
avpriv_
mirror
(
-
1
-
1
,
height
-
1
)
*
stride
;
cs
->
b1
=
buffer
+
mirror
(
-
1
,
height
-
1
)
*
stride
;
cs
->
b1
=
buffer
+
avpriv_
mirror
(
-
1
,
height
-
1
)
*
stride
;
cs
->
y
=
-
1
;
cs
->
y
=
-
1
;
}
}
...
@@ -417,10 +407,10 @@ static void spatial_compose53i_dy_buffered(DWTCompose *cs, slice_buffer *sb,
...
@@ -417,10 +407,10 @@ static void spatial_compose53i_dy_buffered(DWTCompose *cs, slice_buffer *sb,
IDWTELEM
*
b0
=
cs
->
b0
;
IDWTELEM
*
b0
=
cs
->
b0
;
IDWTELEM
*
b1
=
cs
->
b1
;
IDWTELEM
*
b1
=
cs
->
b1
;
IDWTELEM
*
b2
=
slice_buffer_get_line
(
sb
,
IDWTELEM
*
b2
=
slice_buffer_get_line
(
sb
,
mirror
(
y
+
1
,
height
-
1
)
*
avpriv_
mirror
(
y
+
1
,
height
-
1
)
*
stride_line
);
stride_line
);
IDWTELEM
*
b3
=
slice_buffer_get_line
(
sb
,
IDWTELEM
*
b3
=
slice_buffer_get_line
(
sb
,
mirror
(
y
+
2
,
height
-
1
)
*
avpriv_
mirror
(
y
+
2
,
height
-
1
)
*
stride_line
);
stride_line
);
if
(
y
+
1
<
(
unsigned
)
height
&&
y
<
(
unsigned
)
height
)
{
if
(
y
+
1
<
(
unsigned
)
height
&&
y
<
(
unsigned
)
height
)
{
...
@@ -454,8 +444,8 @@ static void spatial_compose53i_dy(DWTCompose *cs, IDWTELEM *buffer,
...
@@ -454,8 +444,8 @@ static void spatial_compose53i_dy(DWTCompose *cs, IDWTELEM *buffer,
int
y
=
cs
->
y
;
int
y
=
cs
->
y
;
IDWTELEM
*
b0
=
cs
->
b0
;
IDWTELEM
*
b0
=
cs
->
b0
;
IDWTELEM
*
b1
=
cs
->
b1
;
IDWTELEM
*
b1
=
cs
->
b1
;
IDWTELEM
*
b2
=
buffer
+
mirror
(
y
+
1
,
height
-
1
)
*
stride
;
IDWTELEM
*
b2
=
buffer
+
avpriv_
mirror
(
y
+
1
,
height
-
1
)
*
stride
;
IDWTELEM
*
b3
=
buffer
+
mirror
(
y
+
2
,
height
-
1
)
*
stride
;
IDWTELEM
*
b3
=
buffer
+
avpriv_
mirror
(
y
+
2
,
height
-
1
)
*
stride
;
if
(
y
+
1
<
(
unsigned
)
height
)
if
(
y
+
1
<
(
unsigned
)
height
)
vertical_compose53iL0
(
b1
,
b2
,
b3
,
width
);
vertical_compose53iL0
(
b1
,
b2
,
b3
,
width
);
...
@@ -553,20 +543,20 @@ void ff_snow_vertical_compose97i(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2,
...
@@ -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
,
static
void
spatial_compose97i_buffered_init
(
DWTCompose
*
cs
,
slice_buffer
*
sb
,
int
height
,
int
stride_line
)
int
height
,
int
stride_line
)
{
{
cs
->
b0
=
slice_buffer_get_line
(
sb
,
mirror
(
-
3
-
1
,
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
,
mirror
(
-
3
,
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
,
mirror
(
-
3
+
1
,
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
,
mirror
(
-
3
+
2
,
height
-
1
)
*
stride_line
);
cs
->
b3
=
slice_buffer_get_line
(
sb
,
avpriv_
mirror
(
-
3
+
2
,
height
-
1
)
*
stride_line
);
cs
->
y
=
-
3
;
cs
->
y
=
-
3
;
}
}
static
void
spatial_compose97i_init
(
DWTCompose
*
cs
,
IDWTELEM
*
buffer
,
int
height
,
static
void
spatial_compose97i_init
(
DWTCompose
*
cs
,
IDWTELEM
*
buffer
,
int
height
,
int
stride
)
int
stride
)
{
{
cs
->
b0
=
buffer
+
mirror
(
-
3
-
1
,
height
-
1
)
*
stride
;
cs
->
b0
=
buffer
+
avpriv_
mirror
(
-
3
-
1
,
height
-
1
)
*
stride
;
cs
->
b1
=
buffer
+
mirror
(
-
3
,
height
-
1
)
*
stride
;
cs
->
b1
=
buffer
+
avpriv_
mirror
(
-
3
,
height
-
1
)
*
stride
;
cs
->
b2
=
buffer
+
mirror
(
-
3
+
1
,
height
-
1
)
*
stride
;
cs
->
b2
=
buffer
+
avpriv_
mirror
(
-
3
+
1
,
height
-
1
)
*
stride
;
cs
->
b3
=
buffer
+
mirror
(
-
3
+
2
,
height
-
1
)
*
stride
;
cs
->
b3
=
buffer
+
avpriv_
mirror
(
-
3
+
2
,
height
-
1
)
*
stride
;
cs
->
y
=
-
3
;
cs
->
y
=
-
3
;
}
}
...
@@ -582,10 +572,10 @@ static void spatial_compose97i_dy_buffered(SnowDWTContext *dsp, DWTCompose *cs,
...
@@ -582,10 +572,10 @@ static void spatial_compose97i_dy_buffered(SnowDWTContext *dsp, DWTCompose *cs,
IDWTELEM
*
b2
=
cs
->
b2
;
IDWTELEM
*
b2
=
cs
->
b2
;
IDWTELEM
*
b3
=
cs
->
b3
;
IDWTELEM
*
b3
=
cs
->
b3
;
IDWTELEM
*
b4
=
slice_buffer_get_line
(
sb
,
IDWTELEM
*
b4
=
slice_buffer_get_line
(
sb
,
mirror
(
y
+
3
,
height
-
1
)
*
avpriv_
mirror
(
y
+
3
,
height
-
1
)
*
stride_line
);
stride_line
);
IDWTELEM
*
b5
=
slice_buffer_get_line
(
sb
,
IDWTELEM
*
b5
=
slice_buffer_get_line
(
sb
,
mirror
(
y
+
4
,
height
-
1
)
*
avpriv_
mirror
(
y
+
4
,
height
-
1
)
*
stride_line
);
stride_line
);
if
(
y
>
0
&&
y
+
4
<
height
)
{
if
(
y
>
0
&&
y
+
4
<
height
)
{
...
@@ -622,8 +612,8 @@ static void spatial_compose97i_dy(DWTCompose *cs, IDWTELEM *buffer,
...
@@ -622,8 +612,8 @@ static void spatial_compose97i_dy(DWTCompose *cs, IDWTELEM *buffer,
IDWTELEM
*
b1
=
cs
->
b1
;
IDWTELEM
*
b1
=
cs
->
b1
;
IDWTELEM
*
b2
=
cs
->
b2
;
IDWTELEM
*
b2
=
cs
->
b2
;
IDWTELEM
*
b3
=
cs
->
b3
;
IDWTELEM
*
b3
=
cs
->
b3
;
IDWTELEM
*
b4
=
buffer
+
mirror
(
y
+
3
,
height
-
1
)
*
stride
;
IDWTELEM
*
b4
=
buffer
+
avpriv_
mirror
(
y
+
3
,
height
-
1
)
*
stride
;
IDWTELEM
*
b5
=
buffer
+
mirror
(
y
+
4
,
height
-
1
)
*
stride
;
IDWTELEM
*
b5
=
buffer
+
avpriv_
mirror
(
y
+
4
,
height
-
1
)
*
stride
;
if
(
y
+
3
<
(
unsigned
)
height
)
if
(
y
+
3
<
(
unsigned
)
height
)
vertical_compose97iL1
(
b3
,
b4
,
b5
,
width
);
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)
...
@@ -136,16 +136,6 @@ void avfilter_mul_matrix(const float *m1, float scalar, float *result)
result
[
i
]
=
m1
[
i
]
*
scalar
;
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
avfilter_transform
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_stride
,
int
dst_stride
,
int
src_stride
,
int
dst_stride
,
int
width
,
int
height
,
const
float
*
matrix
,
int
width
,
int
height
,
const
float
*
matrix
,
...
@@ -186,8 +176,8 @@ int avfilter_transform(const uint8_t *src, uint8_t *dst,
...
@@ -186,8 +176,8 @@ int avfilter_transform(const uint8_t *src, uint8_t *dst,
def
=
src
[(
int
)
y_s
*
src_stride
+
(
int
)
x_s
];
def
=
src
[(
int
)
y_s
*
src_stride
+
(
int
)
x_s
];
break
;
break
;
case
FILL_MIRROR
:
case
FILL_MIRROR
:
x_s
=
mirror
(
x_s
,
width
-
1
);
x_s
=
avpriv_
mirror
(
x_s
,
width
-
1
);
y_s
=
mirror
(
y_s
,
height
-
1
);
y_s
=
avpriv_
mirror
(
y_s
,
height
-
1
);
av_assert2
(
x_s
>=
0
&&
y_s
>=
0
);
av_assert2
(
x_s
>=
0
&&
y_s
>=
0
);
av_assert2
(
x_s
<
width
&&
y_s
<
height
);
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] = {
...
@@ -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
,
static
inline
void
decompose
(
float
*
dst_l
,
float
*
dst_h
,
const
float
*
src
,
int
linesize
,
int
w
)
int
linesize
,
int
w
)
...
@@ -116,8 +107,8 @@ static inline void decompose(float *dst_l, float *dst_h, const float *src,
...
@@ -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_l
=
src
[
x
*
linesize
]
*
coeff
[
0
][
0
];
double
sum_h
=
src
[
x
*
linesize
]
*
coeff
[
1
][
0
];
double
sum_h
=
src
[
x
*
linesize
]
*
coeff
[
1
][
0
];
for
(
i
=
1
;
i
<=
4
;
i
++
)
{
for
(
i
=
1
;
i
<=
4
;
i
++
)
{
const
double
s
=
src
[
mirror
(
x
-
i
,
w
-
1
)
*
linesize
]
const
double
s
=
src
[
avpriv_
mirror
(
x
-
i
,
w
-
1
)
*
linesize
]
+
src
[
mirror
(
x
+
i
,
w
-
1
)
*
linesize
];
+
src
[
avpriv_
mirror
(
x
+
i
,
w
-
1
)
*
linesize
];
sum_l
+=
coeff
[
0
][
i
]
*
s
;
sum_l
+=
coeff
[
0
][
i
]
*
s
;
sum_h
+=
coeff
[
1
][
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,
...
@@ -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_l
=
src_l
[
x
*
linesize
]
*
icoeff
[
0
][
0
];
double
sum_h
=
src_h
[
x
*
linesize
]
*
icoeff
[
1
][
0
];
double
sum_h
=
src_h
[
x
*
linesize
]
*
icoeff
[
1
][
0
];
for
(
i
=
1
;
i
<=
4
;
i
++
)
{
for
(
i
=
1
;
i
<=
4
;
i
++
)
{
const
int
x0
=
mirror
(
x
-
i
,
w
-
1
)
*
linesize
;
const
int
x0
=
avpriv_
mirror
(
x
-
i
,
w
-
1
)
*
linesize
;
const
int
x1
=
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_l
+=
icoeff
[
0
][
i
]
*
(
src_l
[
x0
]
+
src_l
[
x1
]);
sum_h
+=
icoeff
[
1
][
i
]
*
(
src_h
[
x0
]
+
src_h
[
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)
...
@@ -220,19 +220,6 @@ static int config_props(AVFilterLink *inlink)
#define NB_PLANES 4
#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
,
static
void
blur
(
uint8_t
*
dst
,
const
int
dst_linesize
,
const
uint8_t
*
src
,
const
int
src_linesize
,
const
uint8_t
*
src
,
const
int
src_linesize
,
const
int
w
,
const
int
h
,
FilterParam
*
fp
)
const
int
w
,
const
int
h
,
FilterParam
*
fp
)
...
@@ -266,7 +253,7 @@ static void blur(uint8_t *dst, const int dst_linesize,
...
@@ -266,7 +253,7 @@ static void blur(uint8_t *dst, const int dst_linesize,
for
(
dy
=
0
;
dy
<
radius
*
2
+
1
;
dy
++
)
{
for
(
dy
=
0
;
dy
<
radius
*
2
+
1
;
dy
++
)
{
int
dx
;
int
dx
;
int
iy
=
y
+
dy
-
radius
;
int
iy
=
y
+
dy
-
radius
;
iy
=
mirror
(
iy
,
h
-
1
);
iy
=
avpriv_
mirror
(
iy
,
h
-
1
);
for
(
dx
=
0
;
dx
<
radius
*
2
+
1
;
dx
++
)
{
for
(
dx
=
0
;
dx
<
radius
*
2
+
1
;
dx
++
)
{
const
int
ix
=
x
+
dx
-
radius
;
const
int
ix
=
x
+
dx
-
radius
;
...
@@ -277,11 +264,11 @@ static void blur(uint8_t *dst, const int dst_linesize,
...
@@ -277,11 +264,11 @@ static void blur(uint8_t *dst, const int dst_linesize,
for
(
dy
=
0
;
dy
<
radius
*
2
+
1
;
dy
++
)
{
for
(
dy
=
0
;
dy
<
radius
*
2
+
1
;
dy
++
)
{
int
dx
;
int
dx
;
int
iy
=
y
+
dy
-
radius
;
int
iy
=
y
+
dy
-
radius
;
iy
=
mirror
(
iy
,
h
-
1
);
iy
=
avpriv_
mirror
(
iy
,
h
-
1
);
for
(
dx
=
0
;
dx
<
radius
*
2
+
1
;
dx
++
)
{
for
(
dx
=
0
;
dx
<
radius
*
2
+
1
;
dx
++
)
{
int
ix
=
x
+
dx
-
radius
;
int
ix
=
x
+
dx
-
radius
;
ix
=
mirror
(
ix
,
w
-
1
);
ix
=
avpriv_
mirror
(
ix
,
w
-
1
);
UPDATE_FACTOR
;
UPDATE_FACTOR
;
}
}
}
}
...
...
libavutil/internal.h
View file @
0f931b29
...
@@ -256,6 +256,19 @@ int avpriv_open(const char *filename, int flags, ...);
...
@@ -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
);
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
#if FF_API_GET_CHANNEL_LAYOUT_COMPAT
uint64_t
ff_get_channel_layout
(
const
char
*
name
,
int
compat
);
uint64_t
ff_get_channel_layout
(
const
char
*
name
,
int
compat
);
#endif
#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