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
25e6310a
Commit
25e6310a
authored
May 29, 2014
by
Christophe Gisquet
Committed by
Michael Niedermayer
May 29, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
huffyuv: change left prediction access in BGRA
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
c609f803
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
21 deletions
+20
-21
huffyuvdec.c
libavcodec/huffyuvdec.c
+12
-12
huffyuvdsp.c
libavcodec/huffyuvdsp.c
+7
-7
huffyuvdsp.h
libavcodec/huffyuvdsp.h
+1
-2
No files found.
libavcodec/huffyuvdec.c
View file @
25e6310a
...
...
@@ -1028,19 +1028,19 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
}
}
else
{
int
y
;
int
leftr
,
leftg
,
leftb
,
lefta
;
uint8_t
left
[
4
]
;
const
int
last_line
=
(
height
-
1
)
*
p
->
linesize
[
0
];
if
(
s
->
bitstream_bpp
==
32
)
{
left
a
=
p
->
data
[
0
][
last_line
+
A
]
=
get_bits
(
&
s
->
gb
,
8
);
left
r
=
p
->
data
[
0
][
last_line
+
R
]
=
get_bits
(
&
s
->
gb
,
8
);
left
g
=
p
->
data
[
0
][
last_line
+
G
]
=
get_bits
(
&
s
->
gb
,
8
);
left
b
=
p
->
data
[
0
][
last_line
+
B
]
=
get_bits
(
&
s
->
gb
,
8
);
left
[
A
]
=
p
->
data
[
0
][
last_line
+
A
]
=
get_bits
(
&
s
->
gb
,
8
);
left
[
R
]
=
p
->
data
[
0
][
last_line
+
R
]
=
get_bits
(
&
s
->
gb
,
8
);
left
[
G
]
=
p
->
data
[
0
][
last_line
+
G
]
=
get_bits
(
&
s
->
gb
,
8
);
left
[
B
]
=
p
->
data
[
0
][
last_line
+
B
]
=
get_bits
(
&
s
->
gb
,
8
);
}
else
{
left
r
=
p
->
data
[
0
][
last_line
+
R
]
=
get_bits
(
&
s
->
gb
,
8
);
left
g
=
p
->
data
[
0
][
last_line
+
G
]
=
get_bits
(
&
s
->
gb
,
8
);
left
b
=
p
->
data
[
0
][
last_line
+
B
]
=
get_bits
(
&
s
->
gb
,
8
);
left
a
=
p
->
data
[
0
][
last_line
+
A
]
=
255
;
left
[
R
]
=
p
->
data
[
0
][
last_line
+
R
]
=
get_bits
(
&
s
->
gb
,
8
);
left
[
G
]
=
p
->
data
[
0
][
last_line
+
G
]
=
get_bits
(
&
s
->
gb
,
8
);
left
[
B
]
=
p
->
data
[
0
][
last_line
+
B
]
=
get_bits
(
&
s
->
gb
,
8
);
left
[
A
]
=
p
->
data
[
0
][
last_line
+
A
]
=
255
;
skip_bits
(
&
s
->
gb
,
8
);
}
...
...
@@ -1049,14 +1049,14 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
case
LEFT
:
case
PLANE
:
decode_bgr_bitstream
(
s
,
width
-
1
);
s
->
hdsp
.
add_hfyu_left_pred_bgr32
(
p
->
data
[
0
]
+
last_line
+
4
,
s
->
temp
[
0
],
width
-
1
,
&
leftr
,
&
leftg
,
&
leftb
,
&
lefta
);
s
->
hdsp
.
add_hfyu_left_pred_bgr32
(
p
->
data
[
0
]
+
last_line
+
4
,
s
->
temp
[
0
],
width
-
1
,
left
);
for
(
y
=
s
->
height
-
2
;
y
>=
0
;
y
--
)
{
//Yes it is stored upside down.
decode_bgr_bitstream
(
s
,
width
);
s
->
hdsp
.
add_hfyu_left_pred_bgr32
(
p
->
data
[
0
]
+
p
->
linesize
[
0
]
*
y
,
s
->
temp
[
0
],
width
,
&
leftr
,
&
leftg
,
&
leftb
,
&
lefta
);
s
->
hdsp
.
add_hfyu_left_pred_bgr32
(
p
->
data
[
0
]
+
p
->
linesize
[
0
]
*
y
,
s
->
temp
[
0
],
width
,
left
);
if
(
s
->
predictor
==
PLANE
)
{
if
(
s
->
bitstream_bpp
!=
32
)
left
a
=
0
;
if
(
s
->
bitstream_bpp
!=
32
)
left
[
A
]
=
0
;
if
((
y
&
s
->
interlaced
)
==
0
&&
y
<
s
->
height
-
1
-
s
->
interlaced
)
{
s
->
hdsp
.
add_bytes
(
p
->
data
[
0
]
+
p
->
linesize
[
0
]
*
y
,
...
...
libavcodec/huffyuvdsp.c
View file @
25e6310a
...
...
@@ -82,10 +82,10 @@ static int add_hfyu_left_pred_c(uint8_t *dst, const uint8_t *src, int w,
}
static
void
add_hfyu_left_pred_bgr32_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
w
,
int
*
red
,
int
*
green
,
int
*
blue
,
int
*
alpha
)
intptr_t
w
,
uint8_t
*
left
)
{
int
i
,
r
=
*
red
,
g
=
*
green
,
b
=
*
blue
,
a
=
*
alpha
;
int
i
;
uint8_t
r
=
left
[
R
],
g
=
left
[
G
],
b
=
left
[
B
],
a
=
left
[
A
];
for
(
i
=
0
;
i
<
w
;
i
++
)
{
b
+=
src
[
4
*
i
+
B
];
...
...
@@ -99,10 +99,10 @@ static void add_hfyu_left_pred_bgr32_c(uint8_t *dst, const uint8_t *src,
dst
[
4
*
i
+
A
]
=
a
;
}
*
red
=
r
;
*
green
=
g
;
*
blue
=
b
;
*
alpha
=
a
;
left
[
B
]
=
b
;
left
[
G
]
=
g
;
left
[
R
]
=
r
;
left
[
A
]
=
a
;
}
av_cold
void
ff_huffyuvdsp_init
(
HuffYUVDSPContext
*
c
)
...
...
libavcodec/huffyuvdsp.h
View file @
25e6310a
...
...
@@ -42,8 +42,7 @@ typedef struct HuffYUVDSPContext {
int
(
*
add_hfyu_left_pred
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
w
,
int
left
);
void
(
*
add_hfyu_left_pred_bgr32
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
w
,
int
*
red
,
int
*
green
,
int
*
blue
,
int
*
alpha
);
intptr_t
w
,
uint8_t
*
left
);
}
HuffYUVDSPContext
;
void
ff_huffyuvdsp_init
(
HuffYUVDSPContext
*
c
);
...
...
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