# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

AUTHOR = 'Chrome OS Team, chromeos-video@google.com'
NAME = 'video_HangoutHardwarePerf.power.vp8'
PURPOSE = """
Monitor the performance of running VDA and VEA concurrently in a Hangout
like scenario.
"""
CRITERIA = """
The test fails if the vda_unittest or the vea_unittest fails or crashes.
"""
TIME = 'SHORT'
TEST_CATEGORY = 'Performance'
TEST_CLASS = 'video'
TEST_TYPE = 'client'
# Reboot in the lab after the test ends.
DEPENDENCIES = 'cleanup-reboot'
BUG_TEMPLATE = {
    'labels': ['OS-Chrome', 'VideoTestFailure'],
}

DOC = """
This test utilizes the vda_unittest and vea_unittest to measure the
performance of using the hardware Video Decode/Encode Accelerator
concurrently.
This test is redundant with respect to calls made within server test
video_PowerConsumption.
This control file is to measure those power consumptions locally.
"""

# Used resources. They will be downloaded in the beginning of the test.
resources = [
    'crowd/crowd720-41e9a3e6a6b1644ebdb3f5723fce96e5.vp8',
    'crowd/crowd180-bde69ca71393033d9187a2833720c9f8.vp8',
    'crowd/crowd720-3cfe7b096f765742b4aa79e55fe7c994.yuv',
    'crowd/crowd360-e84aac15c05b9b19250f3fc97722e0f6.yuv',
    'crowd/crowd180-6d71fa96da062037482619df31830a97.yuv']

# The videos to be decoded. Each entry consists of the following parts:
#   [vidoe_name, width, height, frame_num, fragment_num, profile]
decode_videos  = [['crowd720.vp8', 1280, 720, 500, 502, 11]]
decode_videos += [['crowd180.vp8', 320, 180, 500, 502, 11]] * 4

# The videos to be encoded.
#   [video_name, width, height, profile, bit_rate]
encode_videos = [
    ['crowd720.yuv', 1280, 720, 11, 1200000],
    ['crowd360.yuv', 640, 360, 11, 500000],
    ['crowd180.yuv', 320, 180, 11, 100000]]

job.run_test('video_HangoutHardwarePerf',
    resources=resources,
    decode_videos=decode_videos,
    encode_videos=encode_videos,
    measurement='power',
    capabilities=['hw_dec_vp8_1080_30', 'hw_enc_vp8_1080_30'])
