{
  "id": "hls/abr-ladder.m3u8",
  "layer": 1,
  "files": [
    "abr-ladder.m3u8",
    "abr-ladder_0.m3u8",
    "abr-ladder_0_000.m4s",
    "abr-ladder_0_001.m4s",
    "abr-ladder_0_002.m4s",
    "abr-ladder_0_init.mp4",
    "abr-ladder_1.m3u8",
    "abr-ladder_1_000.m4s",
    "abr-ladder_1_001.m4s",
    "abr-ladder_1_002.m4s",
    "abr-ladder_1_init.mp4",
    "abr-ladder_2.m3u8",
    "abr-ladder_2_000.m4s",
    "abr-ladder_2_001.m4s",
    "abr-ladder_2_002.m4s",
    "abr-ladder_2_init.mp4"
  ],
  "size_bytes": 8054964,
  "container": {
    "format": "hls",
    "duration_s": 6,
    "bit_rate": 558
  },
  "video": {
    "codec": "h264",
    "profile": "High",
    "pix_fmt": "yuv420p",
    "width": 640,
    "height": 360,
    "sample_aspect_ratio": "1:1",
    "display_aspect_ratio": "16:9",
    "fps": "30",
    "frames": 180,
    "field_order": "progressive",
    "color": {
      "range": "tv",
      "space": "bt709",
      "transfer": "bt709",
      "primaries": "bt709"
    },
    "keyframes_s": [
      0.066,
      2.066,
      4.066
    ],
    "renditions": [
      "640x360",
      "1280x720",
      "1920x1080"
    ]
  },
  "content": {
    "frame_code": "layout v1: patch row + 2 code rows in the bottom 3/18 of the picture",
    "frame_number": "burned in, top left",
    "timecode": "burned in, under the frame number",
    "flash": "white square, top right, first 3 frames of every second",
    "beep": "carrier with a 4x beep for 40 ms at the start of every second"
  },
  "audio": [
    {
      "codec": "aac",
      "profile": "LC",
      "sample_rate": 48000,
      "channels": 2,
      "channel_layout": "stereo",
      "language": "und"
    },
    {
      "codec": "aac",
      "profile": "LC",
      "sample_rate": 48000,
      "channels": 2,
      "channel_layout": "stereo",
      "language": "und"
    },
    {
      "codec": "aac",
      "profile": "LC",
      "sample_rate": 48000,
      "channels": 2,
      "channel_layout": "stereo",
      "language": "und"
    }
  ],
  "expect": {
    "outcome": "must-play",
    "duration_s": 6,
    "duration_tol_s": 0.15,
    "frames": 180,
    "first_code": 0,
    "fps": 30,
    "display_aspect": "16:9",
    "orientation": "none",
    "colour": {
      "matrix": "bt709",
      "range": "limited",
      "tol": 8
    },
    "max_log_errors": 0,
    "exact_seek": false,
    "beep_every_frames": 30,
    "av_offset_ms": 0,
    "av_tol_ms": 20
  },
  "sha256": {
    "abr-ladder.m3u8": "894abbb3a330de5a9e7c1eb0f0cdd5bcfd93ca8dc8a4d8288ad06faec3631be8",
    "abr-ladder_0.m3u8": "250b93c5a6f59fecd14c348e65fb5eb6785668ecfa8bca5b1d3c6a528d461a47",
    "abr-ladder_0_000.m4s": "44092077de9f74a5ac37e50d1c561cabb3567554fd5e76432f7eca801204b7be",
    "abr-ladder_0_001.m4s": "7597261b058154ada7311133dbc8e372f957ed2382515f73cdd0ae110af69894",
    "abr-ladder_0_002.m4s": "6da65e816d7ab0b23fab87eb17b5d79406ffd2d51adde003123d5c03fa095623",
    "abr-ladder_0_init.mp4": "193eb27ea64a80b90fc2db59d7a1ceb018d11c5b939a7e8472ceeb8401f1c692",
    "abr-ladder_1.m3u8": "1497e69bf7e463c0f0523a82811b81ffeb76647f4b5f2fe31ae72e844b618321",
    "abr-ladder_1_000.m4s": "7760eee093c0329e80f16286947cbe7e21a653be2772990e1341b406201e5f90",
    "abr-ladder_1_001.m4s": "e1d563319facfcfb22e78cb53d9ac9b97c7e545068e5f3a27be0361a536e2f32",
    "abr-ladder_1_002.m4s": "51fd3ce88bf2ba91944fa08f0c30cff39c25f3d77c2865db1ef801a07df54916",
    "abr-ladder_1_init.mp4": "c217bbab2417f255af5889643ad3ed6ebf030601f73ef539e129d4db6ff31029",
    "abr-ladder_2.m3u8": "9084891876fcfe38b5d65f59d8e417fb273c89b4cf7e570e6bc405ade255c089",
    "abr-ladder_2_000.m4s": "d49510c4784aa57e2613cdd8e7c8744689473db4e01aa95c174c9e199956c896",
    "abr-ladder_2_001.m4s": "0a4b453ead4c6cc708e33f7e9748f627c29e677164d14b065b2d1f3fab8ab2f6",
    "abr-ladder_2_002.m4s": "6c5f97ca6b9378cd6d672163df770e444592fdd56e92761fba0ef0e94945e62c",
    "abr-ladder_2_init.mp4": "2b0cbbedc56a345de744e2ed5518dc8c2623e4a48c91143b25716be69472240b"
  },
  "verified_by": [
    "size",
    "fps",
    "pix_fmt",
    "frame count",
    "sample rate",
    "channels",
    "audio tracks",
    "duration",
    "ffmpeg decode",
    "gstreamer decode",
    "check run",
    "check log",
    "check duration",
    "check frames",
    "check orientation",
    "check aspect",
    "check timestamps",
    "check colour",
    "check a/v sync"
  ],
  "recipe": {
    "duration_s": 6,
    "video": {
      "codec": "h264",
      "width": 1920,
      "height": 1080,
      "fps": "30",
      "pix_fmt": "yuv420p",
      "matrix": "bt709",
      "primaries": "bt709",
      "transfer": "bt709",
      "range": "limited",
      "gop_s": 2
    },
    "audio": {
      "codec": "aac",
      "channels": 2,
      "rate": 48000
    },
    "container": {
      "segments": "fmp4",
      "ladder": [
        360,
        720,
        1080
      ]
    }
  }
}