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
759e7938
Commit
759e7938
authored
Jun 14, 2014
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avcodec/vc1dec: Fix support for small widths/linesizes
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
4411928c
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
10 deletions
+12
-10
vc1dec.c
libavcodec/vc1dec.c
+12
-10
No files found.
libavcodec/vc1dec.c
View file @
759e7938
...
@@ -439,7 +439,8 @@ static void vc1_mc_1mv(VC1Context *v, int dir)
...
@@ -439,7 +439,8 @@ static void vc1_mc_1mv(VC1Context *v, int dir)
||
s
->
h_edge_pos
<
22
||
v_edge_pos
<
22
||
s
->
h_edge_pos
<
22
||
v_edge_pos
<
22
||
(
unsigned
)(
src_x
-
s
->
mspel
)
>
s
->
h_edge_pos
-
(
mx
&
3
)
-
16
-
s
->
mspel
*
3
||
(
unsigned
)(
src_x
-
s
->
mspel
)
>
s
->
h_edge_pos
-
(
mx
&
3
)
-
16
-
s
->
mspel
*
3
||
(
unsigned
)(
src_y
-
1
)
>
v_edge_pos
-
(
my
&
3
)
-
16
-
3
)
{
||
(
unsigned
)(
src_y
-
1
)
>
v_edge_pos
-
(
my
&
3
)
-
16
-
3
)
{
uint8_t
*
uvbuf
=
s
->
edge_emu_buffer
+
19
*
s
->
linesize
;
uint8_t
*
ubuf
=
s
->
edge_emu_buffer
+
19
*
s
->
linesize
;
uint8_t
*
vbuf
=
ubuf
+
9
*
s
->
uvlinesize
;
srcY
-=
s
->
mspel
*
(
1
+
s
->
linesize
);
srcY
-=
s
->
mspel
*
(
1
+
s
->
linesize
);
s
->
vdsp
.
emulated_edge_mc
(
s
->
edge_emu_buffer
,
srcY
,
s
->
vdsp
.
emulated_edge_mc
(
s
->
edge_emu_buffer
,
srcY
,
...
@@ -448,18 +449,18 @@ static void vc1_mc_1mv(VC1Context *v, int dir)
...
@@ -448,18 +449,18 @@ static void vc1_mc_1mv(VC1Context *v, int dir)
src_x
-
s
->
mspel
,
src_y
-
s
->
mspel
,
src_x
-
s
->
mspel
,
src_y
-
s
->
mspel
,
s
->
h_edge_pos
,
v_edge_pos
);
s
->
h_edge_pos
,
v_edge_pos
);
srcY
=
s
->
edge_emu_buffer
;
srcY
=
s
->
edge_emu_buffer
;
s
->
vdsp
.
emulated_edge_mc
(
u
v
buf
,
srcU
,
s
->
vdsp
.
emulated_edge_mc
(
ubuf
,
srcU
,
s
->
uvlinesize
,
s
->
uvlinesize
,
s
->
uvlinesize
,
s
->
uvlinesize
,
8
+
1
,
8
+
1
,
8
+
1
,
8
+
1
,
uvsrc_x
,
uvsrc_y
,
uvsrc_x
,
uvsrc_y
,
s
->
h_edge_pos
>>
1
,
v_edge_pos
>>
1
);
s
->
h_edge_pos
>>
1
,
v_edge_pos
>>
1
);
s
->
vdsp
.
emulated_edge_mc
(
uvbuf
+
16
,
srcV
,
s
->
vdsp
.
emulated_edge_mc
(
vbuf
,
srcV
,
s
->
uvlinesize
,
s
->
uvlinesize
,
s
->
uvlinesize
,
s
->
uvlinesize
,
8
+
1
,
8
+
1
,
8
+
1
,
8
+
1
,
uvsrc_x
,
uvsrc_y
,
uvsrc_x
,
uvsrc_y
,
s
->
h_edge_pos
>>
1
,
v_edge_pos
>>
1
);
s
->
h_edge_pos
>>
1
,
v_edge_pos
>>
1
);
srcU
=
u
v
buf
;
srcU
=
ubuf
;
srcV
=
uvbuf
+
16
;
srcV
=
vbuf
;
/* if we deal with range reduction we need to scale source blocks */
/* if we deal with range reduction we need to scale source blocks */
if
(
v
->
rangeredfrm
)
{
if
(
v
->
rangeredfrm
)
{
int
i
,
j
;
int
i
,
j
;
...
@@ -1959,7 +1960,8 @@ static void vc1_interp_mc(VC1Context *v)
...
@@ -1959,7 +1960,8 @@ static void vc1_interp_mc(VC1Context *v)
if
(
v
->
rangeredfrm
||
s
->
h_edge_pos
<
22
||
v_edge_pos
<
22
||
use_ic
if
(
v
->
rangeredfrm
||
s
->
h_edge_pos
<
22
||
v_edge_pos
<
22
||
use_ic
||
(
unsigned
)(
src_x
-
1
)
>
s
->
h_edge_pos
-
(
mx
&
3
)
-
16
-
3
||
(
unsigned
)(
src_x
-
1
)
>
s
->
h_edge_pos
-
(
mx
&
3
)
-
16
-
3
||
(
unsigned
)(
src_y
-
1
)
>
v_edge_pos
-
(
my
&
3
)
-
16
-
3
)
{
||
(
unsigned
)(
src_y
-
1
)
>
v_edge_pos
-
(
my
&
3
)
-
16
-
3
)
{
uint8_t
*
uvbuf
=
s
->
edge_emu_buffer
+
19
*
s
->
linesize
;
uint8_t
*
ubuf
=
s
->
edge_emu_buffer
+
19
*
s
->
linesize
;
uint8_t
*
vbuf
=
ubuf
+
9
*
s
->
uvlinesize
;
srcY
-=
s
->
mspel
*
(
1
+
s
->
linesize
);
srcY
-=
s
->
mspel
*
(
1
+
s
->
linesize
);
s
->
vdsp
.
emulated_edge_mc
(
s
->
edge_emu_buffer
,
srcY
,
s
->
vdsp
.
emulated_edge_mc
(
s
->
edge_emu_buffer
,
srcY
,
...
@@ -1968,18 +1970,18 @@ static void vc1_interp_mc(VC1Context *v)
...
@@ -1968,18 +1970,18 @@ static void vc1_interp_mc(VC1Context *v)
src_x
-
s
->
mspel
,
src_y
-
s
->
mspel
,
src_x
-
s
->
mspel
,
src_y
-
s
->
mspel
,
s
->
h_edge_pos
,
v_edge_pos
);
s
->
h_edge_pos
,
v_edge_pos
);
srcY
=
s
->
edge_emu_buffer
;
srcY
=
s
->
edge_emu_buffer
;
s
->
vdsp
.
emulated_edge_mc
(
u
v
buf
,
srcU
,
s
->
vdsp
.
emulated_edge_mc
(
ubuf
,
srcU
,
s
->
uvlinesize
,
s
->
uvlinesize
,
s
->
uvlinesize
,
s
->
uvlinesize
,
8
+
1
,
8
+
1
,
8
+
1
,
8
+
1
,
uvsrc_x
,
uvsrc_y
,
uvsrc_x
,
uvsrc_y
,
s
->
h_edge_pos
>>
1
,
v_edge_pos
>>
1
);
s
->
h_edge_pos
>>
1
,
v_edge_pos
>>
1
);
s
->
vdsp
.
emulated_edge_mc
(
uvbuf
+
16
,
srcV
,
s
->
vdsp
.
emulated_edge_mc
(
vbuf
,
srcV
,
s
->
uvlinesize
,
s
->
uvlinesize
,
s
->
uvlinesize
,
s
->
uvlinesize
,
8
+
1
,
8
+
1
,
8
+
1
,
8
+
1
,
uvsrc_x
,
uvsrc_y
,
uvsrc_x
,
uvsrc_y
,
s
->
h_edge_pos
>>
1
,
v_edge_pos
>>
1
);
s
->
h_edge_pos
>>
1
,
v_edge_pos
>>
1
);
srcU
=
u
v
buf
;
srcU
=
ubuf
;
srcV
=
uvbuf
+
16
;
srcV
=
vbuf
;
/* if we deal with range reduction we need to scale source blocks */
/* if we deal with range reduction we need to scale source blocks */
if
(
v
->
rangeredfrm
)
{
if
(
v
->
rangeredfrm
)
{
int
i
,
j
;
int
i
,
j
;
...
...
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