// Copyright (c) 2011 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.

bear-320x240.webm - WebM encode of bear.1280x720.mp4 resized to 320x240.
bear-vp9.webm - VP9 video only WebM file.
bear-vp9-opus.webm - VP9 Video with Opus Audio.
bear-vp8-webvtt.webm - WebM VP8 video with WebVTT subtitle track.
bear-vp8a.webm - WebM VP8 video with alpha channel.
bear-vp8a-odd-dimensions.webm - WebM VP8 video with alpha channel and odd dimensions.
bear-opus.webm - Opus Audio only WebM file.
bear-opus-end-trimming.webm - File to test end trimming. It has one byte 
                              artificially added so that there is maximum 
                              padding at the end. It is an Opus Audio only WebM 
                              file.
no_streams.webm - Header, Info, & Tracks element from bear-320x240.webm slightly corrupted so it looks 
                  like there are no tracks.
nonzero-start-time.webm - Has the same headers as bear-320x240.webm but the first cluster of this file 
                          is the second cluster of bear-320x240.webm. This creates the situation where
                          the media data doesn't start at time 0.
bear-320x240-live.webm - bear-320x240.webm remuxed w/o a duration and using clusters with unknown sizes.
                         ffmpeg -i bear-320x240.webm -acodec copy -vcodec copy -f webm pipe:1 > bear-320x240-live.webm
vp8-I-frame-160x240 - The first I frame of a 160x240 reencode of bear-320x240.webm.
vp8-I-frame-320x120 - The first I frame of a 320x120 reencode of bear-320x240.webm.
vp8-I-frame-320x240 - The first I frame of bear-320x240.webm.
vp8-I-frame-320x480 - The first I frame of a 320x480 reencode of bear-320x240.webm.
vp8-I-frame-640x240 - The first I frame of a 640x240 reencode of bear-320x240.webm.
vp8-corrupt-I-frame - A copy of vp8-I-frame-320x240 w/ all bytes XORed w/ 0xA5.

Vorbis test data from bear.ogv (44100 Hz, 16 bits, stereo)
vorbis-extradata - Vorbis extradata section
vorbis-packet-0  - timestamp: 0ms, duration: 0ms
vorbis-packet-1  - timestamp: 0ms, duration: 0ms
vorbis-packet-2  - timestamp: 0ms, duration: 0ms
vorbis-packet-3  - timestamp: 2902ms, duration: 0ms

// Encrypted Files
bear-1280x720-a_frag-cenc.mp4 - A fragmented MP4 version of the audio track of bear-1280x720.mp4 encrypted (ISO CENC) using key ID [1] and key [2].
bear-1280x720-a_frag-cenc-key_rotation.mp4 - A fragmented MP4 version of the audio track of bear-1280x720.mp4 encrypted (ISO CENC) using key ID [1] and key [2] with key rotation [3].
bear-1280x720-a_frag-cenc_clear-all.mp4 - Same as bear-1280x720-a_frag-cenc.mp4 but no fragments are encrypted.
bear-1280x720-v_frag-cenc.mp4 - A fragmented MP4 version of the video track of bear-1280x720.mp4 encrypted (ISO CENC) using key ID [1] and key [2].
bear-1280x720-v_frag-cenc-key_rotation.mp4 - A fragmented MP4 version of the video track of bear-1280x720.mp4 encrypted (ISO CENC) using key ID [1] and key [2] with key rotation [3].
bear-1280x720-v_frag-cenc_clear-all.mp4 - Same as bear-1280x720-v_frag-cenc.mp4 but no fragments are encrypted.
bear-1280x720-a_frag-cenc_missing-saiz-saio.mp4 - An invalid file similar to bear-1280x720-a_frag-cenc.mp4 but has no saiz and saio boxes. To save space, it has only one encrypted sample.
bear-320x240-16x9-aspect-av_enc-av.webm - bear-320x240-16x9-aspect.webm with audio & video encrypted using key ID [1] and key [2]
bear-320x240-av_enc-av.webm - bear-320x240.webm with audio & video encrypted using key ID [1] and key [2].
bear-320x240-av_enc-av_clear-1s.webm - Same as bear-320x240-av_enc-av.webm but with no frames in the first second encrypted.
bear-320x240-av_enc-av_clear-all.webm - Same as bear-320x240-av_enc-av.webm but with no frames encrypted.
bear-640x360-av_enc-av.webm - bear-640x360.webm with audio & video encrypted using key ID [1] and key [2].
bear-640x360-a_frag-cenc.mp4 - A fragmented MP4 version of the audio track of bear-640x360.mp4 encrypted (ISO CENC) using key ID [1] and key [2].
bear-640x360-a_frag-cenc-key_rotation.mp4 - A fragmented MP4 version of the audio track of bear-640x360.mp4 encrypted (ISO CENC) using key ID [1] and key [2] with key rotation [3].
bear-640x360-v_frag-cenc.mp4 - A fragmented MP4 version of the video track of bear-640x360.mp4 encrypted (ISO CENC) using key ID [1] and key [2].
bear-640x360-v_frag-cenc-key_rotation.mp4 - A fragmented MP4 version of the video track of bear-640x360.mp4 encrypted (ISO CENC) using key ID [1] and key [2] with key rotation [3].

[1] 30313233343536373839303132333435
[2] ebdd62f16814d27b68ef122afce4ae3c
[3] KeyIds and Keys are created by left rotating key ID [1] and key [2] using
    std::rotate for every new crypto period. This is only for testing. The
    actual key rotation algorithm is often much more complicated.

// Container Tests (additional containers derived from bear.ogv)
bear.ac3    -- created using "avconv -i bear.ogv -f ac3 -b 192k bear.ac3".
bear.adts   -- created using "avconv -i bear.ogv -f adts -strict experimental bear.adts".
bear.aiff   -- created using "avconv -i bear.ogv -f aiff bear.aiff".
bear.asf    -- created using "avconv -i bear.ogv -f asf bear.asf".
bear.avi    -- created using "avconv -i bear.ogv -f avi -b 192k bear.avi".
bear.eac3   -- created using "avconv -i bear.ogv -f eac3 bear.eac3".
bear.flac   -- created using "avconv -i bear.ogv -f flac bear.flac".
bear.flv    -- created using "avconv -i bear.ogv -f flv bear.flv".
bear.h261   -- created using "avconv -i bear.ogv -f h261 -s:0 cif bear.h261".
bear.h263   -- created using "avconv -i bear.ogv -f h263 -s:0 cif bear.h263".
bear.m2ts   -- created using "avconv -i bear.ogv -f mpegts bear.m2ts".
bear.mjpeg  -- created using "avconv -i bear.ogv -f mjpeg bear.mjpeg".
bear.mpeg   -- created using "avconv -i bear.ogv -f mpeg bear.mpeg".
bear.rm     -- created using "avconv -i bear.ogv -f rm -b 192k bear.rm".
bear.swf    -- created using "avconv -i bear.ogv -f swf -an bear.swf".

// VDA test files: test-25fps
test-25fps.h264:
  Using ffmpeg SVN-r0.5.9-4:0.5.9-0ubuntu0.10.04.1 @ WebKit r122718, generated
  with:
  ffmpeg -i third_party/WebKit/LayoutTests/media/content/test-25fps.mp4 \
      -vcodec copy -vbsf h264_mp4toannexb -an test-25fps.h264

test-25fps.h264.md5:
  MD5s of RGB thumbnail rendered version of test-25fps.h264 decoded with Intel
  VAAPI on Haswell, Ivy Bridge, Sandy Bridge and V4L2VDA on Exynos.
  Written out by video_decode_accelerator_unittest.
  These differ between implementations because color space-converted frames are
  not specified to the last bit and GLES shader/texture filtering
  precision varies.

test-25fps.vp8:
  ffmpeg git-2012-07-19-a8d8e86, libvpx ToT 7/19, chromium r147247,
  mkvextract v5.0.1
  ffmpeg -i test-25fps.h264 -vcodec libvpx -an test-25fps.webm && \
      mkvextract tracks test-25fps.webm 1:test-25fps.vp8 && rm test-25fps.webm

test-25fps.vp8.md5:
  MD5 of RGB thumbnail rendered version of test-25fps.vp8 decoded with V4L2VDA
  on Exynos. Written out by video_decode_accelerator_unittest.

// VDA test files: bear
bear.h264:
  Using ffmpeg version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, generated with
  bear.mp4 (https://chromiumcodereview.appspot.com/10805089):
  ffmpeg -i bear.mp4 -vcodec copy -vbsf h264_mp4toannexb \
      -an bear.h264

bear.h264.md5:
  MD5s of RGB thumbnail rendered version of bear.h264 decoded with Intel
  VAAPI on Ivy Bridge and Sandy Bridge and V4L2VDA on Exynos.
  Written out by video_decode_accelerator_unittest.
  These differ between implementations because color space-converted frames are
  not specified to the last bit and GLES shader/texture filtering
  precision varies.

// VDA test files: npot-video
npot-video.h264:
  Using ffmpeg version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, generated with
  npot-video.mp4 (https://codereview.chromium.org/8342021):
  ffmpeg -i npot-video.mp4 -vcodec copy -vbsf h264_mp4toannexb \
      -an npot-video.h264

npot-video.h264.md5:
  MD5s of RGB thumbnail rendered version of npot-video.h264 decoded with Intel
  VAAPI on Ivy Bridge and Sandy Bridge and V4L2VDA on Exynos.
  Written out by video_decode_accelerator_unittest.
  These differ between implementations because color space-converted frames are
  not specified to the last bit and GLES shader/texture filtering
  precision varies.

// VDA test files: red-green
red-green.h264:
  Using ffmpeg version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, generated with
  red-green.mp4 (https://codereview.chromium.org/8342021):
  ffmpeg -i red-green.mp4 -vcodec copy -vbsf h264_mp4toannexb \
      -an red-green.h264

red-green.h264.md5:
  MD5s of RGB thumbnail rendered version of red-green.h264 decoded with Intel
  VAAPI on Ivy Bridge and Sandy Bridge and V4L2VDA on Exynos.
  Written out by video_decode_accelerator_unittest.
  These differ between implementations because color space-converted frames are
  not specified to the last bit and GLES shader/texture filtering
  precision varies.

// VEA test files:
bear_320x192_40frames.yuv
  First 40 raw i420 frames of bear-1280x720.mp4 scaled down to 320x192 for
  video_encode_accelerator_unittest.
