# Copyright (c) 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_VideoEncodeAccelerator.vp8.bvt"
PURPOSE = "Verify Chromium hardware Video Encode Acceleration works."
CRITERIA = """
This test will fail if any of the tests in video_encode_accelerator_unittest
fails. Running video_encode_accelerator_unittest is skipped on machines that are
known not to support video encode.
"""
ATTRIBUTES = "suite:bvt-perbuild"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "video"
TEST_TYPE = "client"
BUG_TEMPLATE = {
    'labels': ['OS-Chrome', 'VideoTestFailure'],
    'cc': ['chromeos-video-test-failures@google.com'],
}

DOC = """
This is a wrapper test for Chrome video_encode_accelerator_unittest.
"""

# Format of each stream:
#   (path, width, height, requested_bit_rate, requested_frame_rate,
#    requested_subsequent_bit_rate, requested_subsequent_frame_rate,
#    pixel_format)
# requested_frame_rate, requested_subsequent_bit_rate and
# requested_subsequent_frame_rate may be None, which means to set the default
# value.
streams = [('media/test/data/bear_320x192_40frames.yuv',
            320, 192, 200000, None, None, None, 1),
            ('media/test/data/bear_320x192_40frames.nv12.yuv',
            320, 192, 200000, None, None, None, 6)]

job.run_test('video_VideoEncodeAccelerator', in_cloud=False, streams=streams,
        profile=11, tag='vp8', capability='hw_enc_vp8_1080_30')
