Skip to content
GitLab
Menu
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
96727b95
Commit
96727b95
authored
Jun 23, 2014
by
Jim Bankoski
Browse files
Add Check for Peek Stream validity to decoder test.
Change-Id: I9b745670a9f842582c47e6001dc77480b31fb6a1
parent
9be46e45
Changes
2
Hide whitespace changes
Inline
Side-by-side
test/decode_test_driver.cc
View file @
96727b95
...
@@ -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 @
96727b95
...
@@ -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
Supports
Markdown
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