Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
aom-rav1e
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Yushin Cho
aom-rav1e
Commits
1a01194a
Commit
1a01194a
authored
Jul 17, 2014
by
Jim Bankoski
Committed by
Gerrit Code Review
Jul 17, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fail allocation of buffers if size_t < frame_size
Change-Id: I25c595e8c197ab0a9955d2373f1a74d42fbd1638
parent
93960c86
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
11 deletions
+21
-11
vpx_scale/generic/yv12config.c
vpx_scale/generic/yv12config.c
+21
-11
No files found.
vpx_scale/generic/yv12config.c
View file @
1a01194a
...
...
@@ -142,34 +142,39 @@ int vp9_realloc_frame_buffer(YV12_BUFFER_CONFIG *ybf,
const
int
aligned_width
=
(
width
+
7
)
&
~
7
;
const
int
aligned_height
=
(
height
+
7
)
&
~
7
;
const
int
y_stride
=
((
aligned_width
+
2
*
border
)
+
31
)
&
~
31
;
const
int
yplane_size
=
(
aligned_height
+
2
*
border
)
*
y_stride
;
const
uint64_t
yplane_size
=
(
aligned_height
+
2
*
border
)
*
(
uint64_t
)
y_stride
;
const
int
uv_width
=
aligned_width
>>
ss_x
;
const
int
uv_height
=
aligned_height
>>
ss_y
;
const
int
uv_stride
=
y_stride
>>
ss_x
;
const
int
uv_border_w
=
border
>>
ss_x
;
const
int
uv_border_h
=
border
>>
ss_y
;
const
int
uvplane_size
=
(
uv_height
+
2
*
uv_border_h
)
*
uv_stride
;
const
uint64_t
uvplane_size
=
(
uv_height
+
2
*
uv_border_h
)
*
(
uint64_t
)
uv_stride
;
#if CONFIG_ALPHA
const
int
alpha_width
=
aligned_width
;
const
int
alpha_height
=
aligned_height
;
const
int
alpha_stride
=
y_stride
;
const
int
alpha_border_w
=
border
;
const
int
alpha_border_h
=
border
;
const
in
t
alpha_plane_size
=
(
alpha_height
+
2
*
alpha_border_h
)
*
alpha_stride
;
const
in
t
frame_size
=
yplane_size
+
2
*
uvplane_size
+
alpha_plane_size
;
const
uint64_
t
alpha_plane_size
=
(
alpha_height
+
2
*
alpha_border_h
)
*
(
uint64_t
)
alpha_stride
;
const
uint64_
t
frame_size
=
yplane_size
+
2
*
uvplane_size
+
alpha_plane_size
;
#else
const
in
t
frame_size
=
yplane_size
+
2
*
uvplane_size
;
const
uint64_
t
frame_size
=
yplane_size
+
2
*
uvplane_size
;
#endif
if
(
cb
!=
NULL
)
{
const
int
align_addr_extra_size
=
31
;
const
size
_t
external_frame_size
=
frame_size
+
align_addr_extra_size
;
const
uint64
_t
external_frame_size
=
frame_size
+
align_addr_extra_size
;
assert
(
fb
!=
NULL
);
if
(
external_frame_size
!=
(
size_t
)
external_frame_size
)
return
-
1
;
// Allocation to hold larger frame, or first allocation.
if
(
cb
(
cb_priv
,
external_frame_size
,
fb
)
<
0
)
if
(
cb
(
cb_priv
,
(
size_t
)
external_frame_size
,
fb
)
<
0
)
return
-
1
;
if
(
fb
->
data
==
NULL
||
fb
->
size
<
external_frame_size
)
...
...
@@ -181,10 +186,15 @@ int vp9_realloc_frame_buffer(YV12_BUFFER_CONFIG *ybf,
vpx_memset
(
fb
->
data
,
0
,
fb
->
size
);
ybf
->
buffer_alloc
=
(
uint8_t
*
)
yv12_align_addr
(
fb
->
data
,
32
);
}
else
if
(
frame_size
>
ybf
->
buffer_alloc_sz
)
{
}
else
if
(
frame_size
>
(
size_t
)
ybf
->
buffer_alloc_sz
)
{
// Allocation to hold larger frame, or first allocation.
vpx_free
(
ybf
->
buffer_alloc
);
ybf
->
buffer_alloc
=
(
uint8_t
*
)
vpx_memalign
(
32
,
frame_size
);
ybf
->
buffer_alloc
=
NULL
;
if
(
frame_size
!=
(
size_t
)
frame_size
)
return
-
1
;
ybf
->
buffer_alloc
=
(
uint8_t
*
)
vpx_memalign
(
32
,
(
size_t
)
frame_size
);
if
(
!
ybf
->
buffer_alloc
)
return
-
1
;
...
...
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