| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2014 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2014 The WebM project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 #include <climits> | 10 #include <climits> |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 InitializeConfig(); | 31 InitializeConfig(); |
| 32 SetMode(GET_PARAM(1)); | 32 SetMode(GET_PARAM(1)); |
| 33 cpu_used_ = GET_PARAM(2); | 33 cpu_used_ = GET_PARAM(2); |
| 34 } | 34 } |
| 35 | 35 |
| 36 virtual void PreEncodeFrameHook(::libvpx_test::VideoSource *video, | 36 virtual void PreEncodeFrameHook(::libvpx_test::VideoSource *video, |
| 37 ::libvpx_test::Encoder *encoder) { | 37 ::libvpx_test::Encoder *encoder) { |
| 38 if (video->frame() == 1) { | 38 if (video->frame() == 1) { |
| 39 encoder->Control(VP8E_SET_CPUUSED, cpu_used_); | 39 encoder->Control(VP8E_SET_CPUUSED, cpu_used_); |
| 40 } else if (video->frame() == 3) { | 40 } else if (video->frame() == 3) { |
| 41 vpx_active_map_t map = {0}; | 41 vpx_active_map_t map = vpx_active_map_t(); |
| 42 uint8_t active_map[9 * 13] = { | 42 uint8_t active_map[9 * 13] = { |
| 43 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, | 43 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, |
| 44 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, | 44 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, |
| 45 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, | 45 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, |
| 46 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, | 46 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, |
| 47 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, | 47 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, |
| 48 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, | 48 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, |
| 49 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, | 49 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, |
| 50 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, | 50 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, |
| 51 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, | 51 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, |
| 52 }; | 52 }; |
| 53 map.cols = (kWidth + 15) / 16; | 53 map.cols = (kWidth + 15) / 16; |
| 54 map.rows = (kHeight + 15) / 16; | 54 map.rows = (kHeight + 15) / 16; |
| 55 ASSERT_EQ(map.cols, 13u); | 55 ASSERT_EQ(map.cols, 13u); |
| 56 ASSERT_EQ(map.rows, 9u); | 56 ASSERT_EQ(map.rows, 9u); |
| 57 map.active_map = active_map; | 57 map.active_map = active_map; |
| 58 encoder->Control(VP8E_SET_ACTIVEMAP, &map); | 58 encoder->Control(VP8E_SET_ACTIVEMAP, &map); |
| 59 } else if (video->frame() == 15) { | 59 } else if (video->frame() == 15) { |
| 60 vpx_active_map_t map = {0}; | 60 vpx_active_map_t map = vpx_active_map_t(); |
| 61 map.cols = (kWidth + 15) / 16; | 61 map.cols = (kWidth + 15) / 16; |
| 62 map.rows = (kHeight + 15) / 16; | 62 map.rows = (kHeight + 15) / 16; |
| 63 map.active_map = NULL; | 63 map.active_map = NULL; |
| 64 encoder->Control(VP8E_SET_ACTIVEMAP, &map); | 64 encoder->Control(VP8E_SET_ACTIVEMAP, &map); |
| 65 } | 65 } |
| 66 } | 66 } |
| 67 | 67 |
| 68 int cpu_used_; | 68 int cpu_used_; |
| 69 }; | 69 }; |
| 70 | 70 |
| 71 TEST_P(ActiveMapTest, Test) { | 71 TEST_P(ActiveMapTest, Test) { |
| 72 // Validate that this non multiple of 64 wide clip encodes | 72 // Validate that this non multiple of 64 wide clip encodes |
| 73 cfg_.g_lag_in_frames = 0; | 73 cfg_.g_lag_in_frames = 0; |
| 74 cfg_.rc_target_bitrate = 400; | 74 cfg_.rc_target_bitrate = 400; |
| 75 cfg_.rc_resize_allowed = 0; | 75 cfg_.rc_resize_allowed = 0; |
| 76 cfg_.g_pass = VPX_RC_ONE_PASS; | 76 cfg_.g_pass = VPX_RC_ONE_PASS; |
| 77 cfg_.rc_end_usage = VPX_CBR; | 77 cfg_.rc_end_usage = VPX_CBR; |
| 78 cfg_.kf_max_dist = 90000; | 78 cfg_.kf_max_dist = 90000; |
| 79 | 79 |
| 80 ::libvpx_test::I420VideoSource video("hantro_odd.yuv", kWidth, kHeight, 30, | 80 ::libvpx_test::I420VideoSource video("hantro_odd.yuv", kWidth, kHeight, 30, |
| 81 1, 0, 20); | 81 1, 0, 20); |
| 82 | 82 |
| 83 ASSERT_NO_FATAL_FAILURE(RunLoop(&video)); | 83 ASSERT_NO_FATAL_FAILURE(RunLoop(&video)); |
| 84 } | 84 } |
| 85 | 85 |
| 86 VP9_INSTANTIATE_TEST_CASE(ActiveMapTest, | 86 VP9_INSTANTIATE_TEST_CASE(ActiveMapTest, |
| 87 ::testing::Values(::libvpx_test::kRealTime), | 87 ::testing::Values(::libvpx_test::kRealTime), |
| 88 ::testing::Range(0, 6)); | 88 ::testing::Range(0, 6)); |
| 89 } // namespace | 89 } // namespace |
| OLD | NEW |