blob: c6a705c5fed747da408b6ba7d9bf3cd37e707b3d [file] [log] [blame]
# 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.
import logging
import os
import unittest
from telemetry.core import platform
from telemetry.core import util
from telemetry import decorators
from telemetry.internal.image_processing import video
from telemetry.util import image_util
class VideoTest(unittest.TestCase):
@decorators.Disabled('all')
def testFramesFromMp4(self):
host_platform = platform.GetHostPlatform()
try:
host_platform.InstallApplication('avconv')
finally:
if not host_platform.CanLaunchApplication('avconv'):
logging.warning('Test not supported on this platform')
return # pylint: disable=lost-exception
vid = os.path.join(util.GetUnittestDataDir(), 'vid.mp4')
expected_timestamps = [
0,
763,
783,
940,
1715,
1732,
1842,
1926,
]
video_obj = video.Video(vid)
# Calling _FramesFromMp4 should return all frames.
# pylint: disable=protected-access
for i, timestamp_bitmap in enumerate(video_obj._FramesFromMp4(vid)):
timestamp, bmp = timestamp_bitmap
self.assertEquals(timestamp, expected_timestamps[i])
expected_bitmap = image_util.FromPngFile(os.path.join(
util.GetUnittestDataDir(), 'frame%d.png' % i))
self.assertTrue(image_util.AreEqual(expected_bitmap, bmp))