Commit c62f017a authored by Wei Lee's avatar Wei Lee Committed by Commit Bot

Test with aligned images except for some specific test cases in JEA

unittest

This CL change to test most of the test cases in JEA unittest using
aligned images so that they won't be ignored when testing with V4L2 JEA.

Bug: b/140471190
Test: jpeg_encode_accelerator_unittest
Change-Id: Ibccc48678dc1d6fd204ef77b3aa52d428225fafd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1782281Reviewed-by: default avatarRicky Liang <jcliang@chromium.org>
Commit-Queue: Wei Lee <wtlee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#693080}
parent e3d2a2ec
...@@ -310,9 +310,9 @@ class JpegClient : public JpegEncodeAccelerator::Client { ...@@ -310,9 +310,9 @@ class JpegClient : public JpegEncodeAccelerator::Client {
// support them. // support them.
const std::vector<TestImage*>& test_aligned_images_; const std::vector<TestImage*>& test_aligned_images_;
// JpegClient doesn't own |test_images_|. // JpegClient doesn't own |test_unaligned_images_|.
// The resolutions of these images may be unaligned. // The resolutions of these images may be unaligned.
const std::vector<TestImage*>& test_images_; const std::vector<TestImage*>& test_unaligned_images_;
// A map that stores HW encoding start timestamp for each output buffer id. // A map that stores HW encoding start timestamp for each output buffer id.
std::map<int, base::TimeTicks> buffer_id_to_start_time_; std::map<int, base::TimeTicks> buffer_id_to_start_time_;
...@@ -349,7 +349,7 @@ JpegClient::JpegClient(const std::vector<TestImage*>& test_aligned_images, ...@@ -349,7 +349,7 @@ JpegClient::JpegClient(const std::vector<TestImage*>& test_aligned_images,
const std::vector<TestImage*>& test_images, const std::vector<TestImage*>& test_images,
media::test::ClientStateNotification<ClientState>* note) media::test::ClientStateNotification<ClientState>* note)
: test_aligned_images_(test_aligned_images), : test_aligned_images_(test_aligned_images),
test_images_(test_images), test_unaligned_images_(test_images),
state_(ClientState::CREATED), state_(ClientState::CREATED),
note_(note), note_(note),
gpu_memory_buffer_manager_(new media::LocalGpuMemoryBufferManager()) {} gpu_memory_buffer_manager_(new media::LocalGpuMemoryBufferManager()) {}
...@@ -399,7 +399,8 @@ void JpegClient::VideoFrameReady(int32_t buffer_id, size_t hw_encoded_size) { ...@@ -399,7 +399,8 @@ void JpegClient::VideoFrameReady(int32_t buffer_id, size_t hw_encoded_size) {
if (buffer_id < static_cast<int32_t>(test_aligned_images_.size())) { if (buffer_id < static_cast<int32_t>(test_aligned_images_.size())) {
test_image = test_aligned_images_[buffer_id]; test_image = test_aligned_images_[buffer_id];
} else { } else {
test_image = test_images_[buffer_id - test_aligned_images_.size()]; test_image =
test_unaligned_images_[buffer_id - test_aligned_images_.size()];
} }
if (hw_out_frame_ && !hw_out_frame_->IsMappable()) { if (hw_out_frame_ && !hw_out_frame_->IsMappable()) {
...@@ -530,13 +531,13 @@ void JpegClient::NotifyError(int32_t buffer_id, ...@@ -530,13 +531,13 @@ void JpegClient::NotifyError(int32_t buffer_id,
TestImage* JpegClient::GetTestImage(int32_t bitstream_buffer_id) { TestImage* JpegClient::GetTestImage(int32_t bitstream_buffer_id) {
DCHECK_LT(static_cast<size_t>(bitstream_buffer_id), DCHECK_LT(static_cast<size_t>(bitstream_buffer_id),
test_aligned_images_.size() + test_images_.size()); test_aligned_images_.size() + test_unaligned_images_.size());
TestImage* image_file; TestImage* image_file;
if (bitstream_buffer_id < static_cast<int32_t>(test_aligned_images_.size())) { if (bitstream_buffer_id < static_cast<int32_t>(test_aligned_images_.size())) {
image_file = test_aligned_images_[bitstream_buffer_id]; image_file = test_aligned_images_[bitstream_buffer_id];
} else { } else {
image_file = image_file = test_unaligned_images_[bitstream_buffer_id -
test_images_[bitstream_buffer_id - test_aligned_images_.size()]; test_aligned_images_.size()];
} }
return image_file; return image_file;
...@@ -682,10 +683,10 @@ class JpegEncodeAcceleratorTest : public ::testing::Test { ...@@ -682,10 +683,10 @@ class JpegEncodeAcceleratorTest : public ::testing::Test {
// JpegEncodeAccelerator implementations. // JpegEncodeAccelerator implementations.
base::test::TaskEnvironment task_environment_; base::test::TaskEnvironment task_environment_;
// The elements of |test_aligned_images_| and |test_images_| are // The elements of |test_aligned_images_| and |test_unaligned_images_| are
// owned by JpegEncodeAcceleratorTestEnvironment. // owned by JpegEncodeAcceleratorTestEnvironment.
std::vector<TestImage*> test_aligned_images_; std::vector<TestImage*> test_aligned_images_;
std::vector<TestImage*> test_images_; std::vector<TestImage*> test_unaligned_images_;
protected: protected:
DISALLOW_COPY_AND_ASSIGN(JpegEncodeAcceleratorTest); DISALLOW_COPY_AND_ASSIGN(JpegEncodeAcceleratorTest);
...@@ -706,7 +707,7 @@ void JpegEncodeAcceleratorTest::TestEncode(size_t num_concurrent_encoders, ...@@ -706,7 +707,7 @@ void JpegEncodeAcceleratorTest::TestEncode(size_t num_concurrent_encoders,
notes.push_back( notes.push_back(
std::make_unique<media::test::ClientStateNotification<ClientState>>()); std::make_unique<media::test::ClientStateNotification<ClientState>>());
clients.push_back(std::make_unique<JpegClient>( clients.push_back(std::make_unique<JpegClient>(
test_aligned_images_, test_images_, notes.back().get())); test_aligned_images_, test_unaligned_images_, notes.back().get()));
encoder_thread.task_runner()->PostTask( encoder_thread.task_runner()->PostTask(
FROM_HERE, base::BindOnce(&JpegClient::CreateJpegEncoder, FROM_HERE, base::BindOnce(&JpegClient::CreateJpegEncoder,
base::Unretained(clients.back().get()))); base::Unretained(clients.back().get())));
...@@ -750,12 +751,12 @@ void JpegEncodeAcceleratorTest::TestEncode(size_t num_concurrent_encoders, ...@@ -750,12 +751,12 @@ void JpegEncodeAcceleratorTest::TestEncode(size_t num_concurrent_encoders,
// For unaligned images, V4L2 may not be able to encode them so skip for V4L2 // For unaligned images, V4L2 may not be able to encode them so skip for V4L2
// cases. // cases.
#else #else
for (size_t index = 0; index < test_images_.size(); index++) { for (size_t index = 0; index < test_unaligned_images_.size(); index++) {
int buffer_id = index + test_aligned_images_.size(); int buffer_id = index + test_aligned_images_.size();
VLOG(3) << buffer_id VLOG(3) << buffer_id
<< ",width:" << test_images_[index]->visible_size.width(); << ",width:" << test_unaligned_images_[index]->visible_size.width();
VLOG(3) << buffer_id VLOG(3) << buffer_id << ",height:"
<< ",height:" << test_images_[index]->visible_size.height(); << test_unaligned_images_[index]->visible_size.height();
if (!is_dma) { if (!is_dma) {
for (size_t i = 0; i < num_concurrent_encoders; i++) { for (size_t i = 0; i < num_concurrent_encoders; i++) {
...@@ -794,7 +795,7 @@ void JpegEncodeAcceleratorTest::TestEncode(size_t num_concurrent_encoders, ...@@ -794,7 +795,7 @@ void JpegEncodeAcceleratorTest::TestEncode(size_t num_concurrent_encoders,
TEST_F(JpegEncodeAcceleratorTest, SimpleEncode) { TEST_F(JpegEncodeAcceleratorTest, SimpleEncode) {
for (size_t i = 0; i < g_env->repeat_; i++) { for (size_t i = 0; i < g_env->repeat_; i++) {
for (auto& image : g_env->image_data_user_) { for (auto& image : g_env->image_data_user_) {
test_images_.push_back(image.get()); test_aligned_images_.push_back(image.get());
} }
} }
TestEncode(1, false); TestEncode(1, false);
...@@ -802,14 +803,13 @@ TEST_F(JpegEncodeAcceleratorTest, SimpleEncode) { ...@@ -802,14 +803,13 @@ TEST_F(JpegEncodeAcceleratorTest, SimpleEncode) {
TEST_F(JpegEncodeAcceleratorTest, MultipleEncoders) { TEST_F(JpegEncodeAcceleratorTest, MultipleEncoders) {
for (auto& image : g_env->image_data_user_) { for (auto& image : g_env->image_data_user_) {
test_images_.push_back(image.get()); test_aligned_images_.push_back(image.get());
} }
TestEncode(3, false); TestEncode(3, false);
} }
TEST_F(JpegEncodeAcceleratorTest, ResolutionChange) { TEST_F(JpegEncodeAcceleratorTest, ResolutionChange) {
test_images_.push_back(g_env->image_data_640x368_black_.get()); test_aligned_images_.push_back(g_env->image_data_640x368_black_.get());
test_images_.push_back(g_env->image_data_640x360_black_.get());
test_aligned_images_.push_back(g_env->image_data_1280x720_white_.get()); test_aligned_images_.push_back(g_env->image_data_1280x720_white_.get());
TestEncode(1, false); TestEncode(1, false);
} }
...@@ -822,14 +822,14 @@ TEST_F(JpegEncodeAcceleratorTest, AlignedSizes) { ...@@ -822,14 +822,14 @@ TEST_F(JpegEncodeAcceleratorTest, AlignedSizes) {
} }
TEST_F(JpegEncodeAcceleratorTest, CodedSizeAlignment) { TEST_F(JpegEncodeAcceleratorTest, CodedSizeAlignment) {
test_images_.push_back(g_env->image_data_640x360_black_.get()); test_unaligned_images_.push_back(g_env->image_data_640x360_black_.get());
TestEncode(1, false); TestEncode(1, false);
} }
TEST_F(JpegEncodeAcceleratorTest, SimpleDmaEncode) { TEST_F(JpegEncodeAcceleratorTest, SimpleDmaEncode) {
for (size_t i = 0; i < g_env->repeat_; i++) { for (size_t i = 0; i < g_env->repeat_; i++) {
for (auto& image : g_env->image_data_user_) { for (auto& image : g_env->image_data_user_) {
test_images_.push_back(image.get()); test_aligned_images_.push_back(image.get());
} }
} }
TestEncode(1, true); TestEncode(1, true);
...@@ -837,14 +837,13 @@ TEST_F(JpegEncodeAcceleratorTest, SimpleDmaEncode) { ...@@ -837,14 +837,13 @@ TEST_F(JpegEncodeAcceleratorTest, SimpleDmaEncode) {
TEST_F(JpegEncodeAcceleratorTest, MultipleDmaEncoders) { TEST_F(JpegEncodeAcceleratorTest, MultipleDmaEncoders) {
for (auto& image : g_env->image_data_user_) { for (auto& image : g_env->image_data_user_) {
test_images_.push_back(image.get()); test_aligned_images_.push_back(image.get());
} }
TestEncode(3, true); TestEncode(3, true);
} }
TEST_F(JpegEncodeAcceleratorTest, ResolutionChangeDma) { TEST_F(JpegEncodeAcceleratorTest, ResolutionChangeDma) {
test_images_.push_back(g_env->image_data_640x368_black_.get()); test_aligned_images_.push_back(g_env->image_data_640x368_black_.get());
test_images_.push_back(g_env->image_data_640x360_black_.get());
test_aligned_images_.push_back(g_env->image_data_1280x720_white_.get()); test_aligned_images_.push_back(g_env->image_data_1280x720_white_.get());
TestEncode(1, true); TestEncode(1, true);
} }
...@@ -857,7 +856,7 @@ TEST_F(JpegEncodeAcceleratorTest, AlignedSizesDma) { ...@@ -857,7 +856,7 @@ TEST_F(JpegEncodeAcceleratorTest, AlignedSizesDma) {
} }
TEST_F(JpegEncodeAcceleratorTest, CodedSizeAlignmentDma) { TEST_F(JpegEncodeAcceleratorTest, CodedSizeAlignmentDma) {
test_images_.push_back(g_env->image_data_640x360_black_.get()); test_unaligned_images_.push_back(g_env->image_data_640x360_black_.get());
TestEncode(1, true); TestEncode(1, true);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment