summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/i965_jpeg_encode_test.cpp26
-rw-r--r--test/i965_jpeg_test_data.cpp25
-rw-r--r--test/i965_jpeg_test_data.h1
3 files changed, 28 insertions, 24 deletions
diff --git a/test/i965_jpeg_encode_test.cpp b/test/i965_jpeg_encode_test.cpp
index 2530288..b454484 100644
--- a/test/i965_jpeg_encode_test.cpp
+++ b/test/i965_jpeg_encode_test.cpp
@@ -82,27 +82,6 @@ TEST_F(JPEGEncodeTest, Entrypoint)
}
}
-const TestInput::Shared NV12toI420(const TestInput::SharedConst& nv12)
-{
- TestInput::Shared i420(
- TestInput::create(VA_FOURCC_I420, nv12->width(), nv12->height()));
-
- i420->bytes = nv12->bytes;
-
- size_t i(0);
- auto predicate = [&i](const ByteData::value_type&) {
- bool isu = ((i % 2) == 0) or (i == 0);
- ++i;
- return isu;
- };
-
- std::stable_partition(
- i420->bytes.begin() + i420->offsets[1],
- i420->bytes.end(), predicate);
-
- return i420;
-}
-
class JPEGEncodeInputTest
: public JPEGEncodeTest
, public ::testing::WithParamInterface<
@@ -372,9 +351,8 @@ protected:
{
// VerifyOutput only supports VA_FOURCC_IMC3 output, currently
ASSERT_EQ(unsigned(VA_FOURCC_IMC3), input->fourcc_output);
- TestInput::SharedConst expect = input;
- if (input->fourcc == VA_FOURCC_NV12)
- expect = NV12toI420(input);
+ TestInput::SharedConst expect = input->toOutputFourcc();
+ ASSERT_PTR(expect.get());
::JPEG::Decode::PictureData::SharedConst pd =
::JPEG::Decode::PictureData::make(
diff --git a/test/i965_jpeg_test_data.cpp b/test/i965_jpeg_test_data.cpp
index 0cf3d23..0b0258a 100644
--- a/test/i965_jpeg_test_data.cpp
+++ b/test/i965_jpeg_test_data.cpp
@@ -839,6 +839,31 @@ namespace Encode {
return bytes.data() + offsets[i];
}
+ const TestInput::SharedConst TestInput::toOutputFourcc() const
+ {
+ TestInput::Shared result;
+ if (fourcc_output == VA_FOURCC_IMC3) {
+ if (fourcc == VA_FOURCC_I420) {
+ return shared_from_this();
+ } else if (fourcc == VA_FOURCC_NV12) {
+ result = create(VA_FOURCC_I420, width(), height());
+ std::copy(
+ std::begin(bytes), std::end(bytes),
+ std::back_inserter(result->bytes));
+ size_t i(0);
+ auto predicate = [&i](const ByteData::value_type&) {
+ bool isu = ((i % 2) == 0) or (i == 0);
+ ++i;
+ return isu;
+ };
+ std::stable_partition(
+ std::begin(result->bytes) + result->offsets[1],
+ std::end(result->bytes), predicate);
+ }
+ }
+ return result;
+ }
+
::std::ostream& operator<<(::std::ostream& os, const TestInput& t)
{
return os
diff --git a/test/i965_jpeg_test_data.h b/test/i965_jpeg_test_data.h
index 698385a..520c7f5 100644
--- a/test/i965_jpeg_test_data.h
+++ b/test/i965_jpeg_test_data.h
@@ -403,6 +403,7 @@ namespace Encode {
const unsigned width() const;
const unsigned height() const;
const uint8_t* plane(const size_t) const;
+ const SharedConst toOutputFourcc() const;
friend ::std::ostream& operator<<(::std::ostream&, const TestInput&);
friend ::std::ostream& operator<<(::std::ostream&, const Shared&);