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
58e57c30
Commit
58e57c30
authored
Jul 01, 2012
by
Mans Rullgard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
snow: remove VLA in mc_block()
Signed-off-by:
Mans Rullgard
<
mans@mansr.com
>
parent
ff8f8dfb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
16 deletions
+25
-16
snow.c
libavcodec/snow.c
+25
-16
No files found.
libavcodec/snow.c
View file @
58e57c30
...
...
@@ -143,7 +143,7 @@ static void mc_block(Plane *p, uint8_t *dst, const uint8_t *src, int stride, int
int
x
,
y
,
b
,
r
,
l
;
int16_t
tmpIt
[
64
*
(
32
+
HTAPS_MAX
)];
uint8_t
tmp2t
[
3
][
stride
*
(
32
+
HTAPS_MAX
)];
uint8_t
tmp2t
[
3
][
64
*
(
32
+
HTAPS_MAX
)];
int16_t
*
tmpI
=
tmpIt
;
uint8_t
*
tmp2
=
tmp2t
[
0
];
const
uint8_t
*
hpel
[
11
];
...
...
@@ -181,7 +181,7 @@ static void mc_block(Plane *p, uint8_t *dst, const uint8_t *src, int stride, int
tmp2
[
x
]
=
am
;
}
tmpI
+=
64
;
tmp2
+=
stride
;
tmp2
+=
64
;
src
+=
stride
;
}
src
-=
stride
*
y
;
...
...
@@ -210,7 +210,7 @@ static void mc_block(Plane *p, uint8_t *dst, const uint8_t *src, int stride, int
tmp2
[
x
]
=
am
;
}
src
+=
stride
;
tmp2
+=
stride
;
tmp2
+=
64
;
}
src
-=
stride
*
y
;
}
...
...
@@ -237,12 +237,12 @@ static void mc_block(Plane *p, uint8_t *dst, const uint8_t *src, int stride, int
tmp2
[
x
]
=
am
;
}
tmpI
+=
64
;
tmp2
+=
stride
;
tmp2
+=
64
;
}
}
hpel
[
0
]
=
src
;
hpel
[
1
]
=
tmp2t
[
0
]
+
stride
*
(
HTAPS_MAX
/
2
-
1
);
hpel
[
1
]
=
tmp2t
[
0
]
+
64
*
(
HTAPS_MAX
/
2
-
1
);
hpel
[
2
]
=
src
+
1
;
hpel
[
4
]
=
tmp2t
[
1
];
...
...
@@ -250,14 +250,21 @@ static void mc_block(Plane *p, uint8_t *dst, const uint8_t *src, int stride, int
hpel
[
6
]
=
tmp2t
[
1
]
+
1
;
hpel
[
8
]
=
src
+
stride
;
hpel
[
9
]
=
hpel
[
1
]
+
stride
;
hpel
[
9
]
=
hpel
[
1
]
+
64
;
hpel
[
10
]
=
hpel
[
8
]
+
1
;
#define MC_STRIDE(x) (needs[x] ? 64 : stride)
if
(
b
==
15
){
const
uint8_t
*
src1
=
hpel
[
dx
/
8
+
dy
/
8
*
4
];
const
uint8_t
*
src2
=
hpel
[
dx
/
8
+
dy
/
8
*
4
+
1
];
const
uint8_t
*
src3
=
hpel
[
dx
/
8
+
dy
/
8
*
4
+
4
];
const
uint8_t
*
src4
=
hpel
[
dx
/
8
+
dy
/
8
*
4
+
5
];
int
dxy
=
dx
/
8
+
dy
/
8
*
4
;
const
uint8_t
*
src1
=
hpel
[
dxy
];
const
uint8_t
*
src2
=
hpel
[
dxy
+
1
];
const
uint8_t
*
src3
=
hpel
[
dxy
+
4
];
const
uint8_t
*
src4
=
hpel
[
dxy
+
5
];
int
stride1
=
MC_STRIDE
(
dxy
);
int
stride2
=
MC_STRIDE
(
dxy
+
1
);
int
stride3
=
MC_STRIDE
(
dxy
+
4
);
int
stride4
=
MC_STRIDE
(
dxy
+
5
);
dx
&=
7
;
dy
&=
7
;
for
(
y
=
0
;
y
<
b_h
;
y
++
){
...
...
@@ -265,23 +272,25 @@ static void mc_block(Plane *p, uint8_t *dst, const uint8_t *src, int stride, int
dst
[
x
]
=
((
8
-
dx
)
*
(
8
-
dy
)
*
src1
[
x
]
+
dx
*
(
8
-
dy
)
*
src2
[
x
]
+
(
8
-
dx
)
*
dy
*
src3
[
x
]
+
dx
*
dy
*
src4
[
x
]
+
32
)
>>
6
;
}
src1
+=
stride
;
src2
+=
stride
;
src3
+=
stride
;
src4
+=
stride
;
src1
+=
stride
1
;
src2
+=
stride
2
;
src3
+=
stride
3
;
src4
+=
stride
4
;
dst
+=
stride
;
}
}
else
{
const
uint8_t
*
src1
=
hpel
[
l
];
const
uint8_t
*
src2
=
hpel
[
r
];
int
stride1
=
MC_STRIDE
(
l
);
int
stride2
=
MC_STRIDE
(
r
);
int
a
=
weight
[((
dx
&
7
)
+
(
8
*
(
dy
&
7
)))];
int
b
=
8
-
a
;
for
(
y
=
0
;
y
<
b_h
;
y
++
){
for
(
x
=
0
;
x
<
b_w
;
x
++
){
dst
[
x
]
=
(
a
*
src1
[
x
]
+
b
*
src2
[
x
]
+
4
)
>>
3
;
}
src1
+=
stride
;
src2
+=
stride
;
src1
+=
stride
1
;
src2
+=
stride
2
;
dst
+=
stride
;
}
}
...
...
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