Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
6a0dcc13
Commit
6a0dcc13
authored
May 30, 2014
by
hkuang
Committed by
Gerrit Code Review
May 30, 2014
Browse files
Merge "Refactor the vp9_get_frame code for frame parallel."
parents
2dc7f506
6f5aba06
Changes
1
Hide whitespace changes
Inline
Side-by-side
vp9/vp9_dx_iface.c
View file @
6a0dcc13
...
...
@@ -38,7 +38,6 @@ struct vpx_codec_alg_priv {
vpx_decrypt_cb
decrypt_cb
;
void
*
decrypt_state
;
vpx_image_t
img
;
int
img_avail
;
int
invert_tile_order
;
// External frame buffer info to save for VP9 common.
...
...
@@ -245,15 +244,11 @@ static void init_decoder(vpx_codec_alg_priv_t *ctx) {
static
vpx_codec_err_t
decode_one
(
vpx_codec_alg_priv_t
*
ctx
,
const
uint8_t
**
data
,
unsigned
int
data_sz
,
void
*
user_priv
,
int64_t
deadline
)
{
YV12_BUFFER_CONFIG
sd
;
vp9_ppflags_t
flags
=
{
0
,
0
,
0
};
vp9_ppflags_t
flags
=
{
0
};
VP9_COMMON
*
cm
=
NULL
;
(
void
)
deadline
;
vp9_zero
(
sd
);
ctx
->
img_avail
=
0
;
// Determine the stream parameters. Note that we rely on peek_si to
// validate that we have a buffer that does not wrap around the top
// of the heap.
...
...
@@ -288,13 +283,6 @@ static vpx_codec_err_t decode_one(vpx_codec_alg_priv_t *ctx,
if
(
ctx
->
base
.
init_flags
&
VPX_CODEC_USE_POSTPROC
)
set_ppflags
(
ctx
,
&
flags
);
if
(
vp9_get_raw_frame
(
ctx
->
pbi
,
&
sd
,
&
flags
))
return
update_error_state
(
ctx
,
&
cm
->
error
);
yuvconfig2image
(
&
ctx
->
img
,
&
sd
,
user_priv
);
ctx
->
img
.
fb_priv
=
cm
->
frame_bufs
[
cm
->
new_fb_idx
].
raw_frame_buffer
.
priv
;
ctx
->
img_avail
=
1
;
return
VPX_CODEC_OK
;
}
...
...
@@ -423,15 +411,20 @@ static vpx_image_t *decoder_get_frame(vpx_codec_alg_priv_t *ctx,
vpx_codec_iter_t
*
iter
)
{
vpx_image_t
*
img
=
NULL
;
if
(
ctx
->
img_avail
)
{
// iter acts as a flip flop, so an image is only returned on the first
// call to get_frame.
if
(
!
(
*
iter
))
{
// iter acts as a flip flop, so an image is only returned on the first
// call to get_frame.
if
(
*
iter
==
NULL
&&
ctx
->
pbi
!=
NULL
)
{
YV12_BUFFER_CONFIG
sd
;
vp9_ppflags_t
flags
=
{
0
,
0
,
0
};
if
(
vp9_get_raw_frame
(
ctx
->
pbi
,
&
sd
,
&
flags
)
==
0
)
{
VP9_COMMON
*
cm
=
&
ctx
->
pbi
->
common
;
yuvconfig2image
(
&
ctx
->
img
,
&
sd
,
NULL
);
ctx
->
img
.
fb_priv
=
cm
->
frame_bufs
[
cm
->
new_fb_idx
].
raw_frame_buffer
.
priv
;
img
=
&
ctx
->
img
;
*
iter
=
img
;
}
}
ctx
->
img_avail
=
0
;
return
img
;
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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