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
Xiph.Org
aom-rav1e
Commits
97d0cb58
Commit
97d0cb58
authored
Jun 23, 2014
by
Jim Bankoski
Committed by
Gerrit Code Review
Jun 23, 2014
Browse files
Options
Browse Files
Download
Plain Diff
Merge "Add Check for Peek Stream validity to decoder test."
parents
6118dcfe
96727b95
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
0 deletions
+37
-0
test/decode_test_driver.cc
test/decode_test_driver.cc
+30
-0
test/decode_test_driver.h
test/decode_test_driver.h
+7
-0
No files found.
test/decode_test_driver.cc
View file @
97d0cb58
...
@@ -15,6 +15,14 @@
...
@@ -15,6 +15,14 @@
namespace
libvpx_test
{
namespace
libvpx_test
{
const
char
kVP8Name
[]
=
"WebM Project VP8"
;
vpx_codec_err_t
Decoder
::
PeekStream
(
const
uint8_t
*
cxdata
,
size_t
size
,
vpx_codec_stream_info_t
*
stream_info
)
{
return
vpx_codec_peek_stream_info
(
CodecInterface
(),
cxdata
,
size
,
stream_info
);
}
vpx_codec_err_t
Decoder
::
DecodeFrame
(
const
uint8_t
*
cxdata
,
size_t
size
)
{
vpx_codec_err_t
Decoder
::
DecodeFrame
(
const
uint8_t
*
cxdata
,
size_t
size
)
{
vpx_codec_err_t
res_dec
;
vpx_codec_err_t
res_dec
;
InitOnce
();
InitOnce
();
...
@@ -29,10 +37,32 @@ void DecoderTest::RunLoop(CompressedVideoSource *video) {
...
@@ -29,10 +37,32 @@ void DecoderTest::RunLoop(CompressedVideoSource *video) {
vpx_codec_dec_cfg_t
dec_cfg
=
{
0
};
vpx_codec_dec_cfg_t
dec_cfg
=
{
0
};
Decoder
*
const
decoder
=
codec_
->
CreateDecoder
(
dec_cfg
,
0
);
Decoder
*
const
decoder
=
codec_
->
CreateDecoder
(
dec_cfg
,
0
);
ASSERT_TRUE
(
decoder
!=
NULL
);
ASSERT_TRUE
(
decoder
!=
NULL
);
const
char
*
codec_name
=
decoder
->
GetDecoderName
();
const
bool
is_vp8
=
strncmp
(
kVP8Name
,
codec_name
,
sizeof
(
kVP8Name
)
-
1
)
==
0
;
// Decode frames.
// Decode frames.
for
(
video
->
Begin
();
video
->
cxdata
();
video
->
Next
())
{
for
(
video
->
Begin
();
video
->
cxdata
();
video
->
Next
())
{
PreDecodeFrameHook
(
*
video
,
decoder
);
PreDecodeFrameHook
(
*
video
,
decoder
);
vpx_codec_stream_info_t
stream_info
;
stream_info
.
sz
=
sizeof
(
stream_info
);
const
vpx_codec_err_t
res_peek
=
decoder
->
PeekStream
(
video
->
cxdata
(),
video
->
frame_size
(),
&
stream_info
);
if
(
is_vp8
)
{
/* Vp8's implementation of PeekStream returns an error if the frame you
* pass it is not a keyframe, so we only expect VPX_CODEC_OK on the first
* frame, which must be a keyframe. */
if
(
video
->
frame_number
()
==
0
)
ASSERT_EQ
(
VPX_CODEC_OK
,
res_peek
)
<<
"Peek return failed: "
<<
vpx_codec_err_to_string
(
res_peek
);
}
else
{
/* The Vp9 implementation of PeekStream returns an error only if the
* data passed to it isn't a valid Vp9 chunk. */
ASSERT_EQ
(
VPX_CODEC_OK
,
res_peek
)
<<
"Peek return failed: "
<<
vpx_codec_err_to_string
(
res_peek
);
}
vpx_codec_err_t
res_dec
=
decoder
->
DecodeFrame
(
video
->
cxdata
(),
vpx_codec_err_t
res_dec
=
decoder
->
DecodeFrame
(
video
->
cxdata
(),
video
->
frame_size
());
video
->
frame_size
());
if
(
!
HandleDecodeResult
(
res_dec
,
*
video
,
decoder
))
if
(
!
HandleDecodeResult
(
res_dec
,
*
video
,
decoder
))
...
...
test/decode_test_driver.h
View file @
97d0cb58
...
@@ -49,6 +49,9 @@ class Decoder {
...
@@ -49,6 +49,9 @@ class Decoder {
vpx_codec_destroy
(
&
decoder_
);
vpx_codec_destroy
(
&
decoder_
);
}
}
vpx_codec_err_t
PeekStream
(
const
uint8_t
*
cxdata
,
size_t
size
,
vpx_codec_stream_info_t
*
stream_info
);
vpx_codec_err_t
DecodeFrame
(
const
uint8_t
*
cxdata
,
size_t
size
);
vpx_codec_err_t
DecodeFrame
(
const
uint8_t
*
cxdata
,
size_t
size
);
DxDataIterator
GetDxData
()
{
DxDataIterator
GetDxData
()
{
...
@@ -85,6 +88,10 @@ class Decoder {
...
@@ -85,6 +88,10 @@ class Decoder {
&
decoder_
,
cb_get
,
cb_release
,
user_priv
);
&
decoder_
,
cb_get
,
cb_release
,
user_priv
);
}
}
const
char
*
GetDecoderName
()
{
return
vpx_codec_iface_name
(
CodecInterface
());
}
protected:
protected:
virtual
vpx_codec_iface_t
*
CodecInterface
()
const
=
0
;
virtual
vpx_codec_iface_t
*
CodecInterface
()
const
=
0
;
...
...
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