1# H.264 Test Data 2 3This document lists the test data used by the H.264 decoder. 4 5Unless otherwise noted, the CRCs were computed using GStreamer's VA-API decoder in 6`gst-plugins-bad`. 7 8## 16x16-I.h264 9 10A 16x16 progressive byte-stream encoded I-frame to make it easier to spot errors on the libva trace. 11Encoded with the following GStreamer pipeline: 12 13``` 14gst-launch-1.0 videotestsrc num-buffers=1 ! video/x-raw,format=I420,width=16,height=16 ! \ 15x264enc ! video/x-h264,profile=constrained-baseline,stream-format=byte-stream ! \ 16filesink location="/tmp/16x16-I.h264" 17``` 18 19## 16x16-I-P.h264 20 21A 16x16 progressive byte-stream encoded I-frame and P-frame to make it easier to spot errors on the 22libva trace. Encoded with the following GStreamer pipeline: 23 24``` 25gst-launch-1.0 videotestsrc num-buffers=2 ! video/x-raw,format=I420,width=16,height=16 ! \ 26x264enc b-adapt=false ! video/x-h264,profile=constrained-baseline,stream-format=byte-stream ! \ 27filesink location="/tmp/16x16-I-P.h264" 28``` 29 30## 16x16-I-P-B-P.h264 31 32A 16x16 progressive byte-stream encoded I-P-B-P sequence to make it easier to it easier to spot 33errors on the libva trace. Encoded with the following GStreamer pipeline: 34 35``` 36gst-launch-1.0 videotestsrc num-buffers=3 ! video/x-raw,format=I420,width=16,height=16 ! \ 37x264enc b-adapt=false bframes=1 ! video/x-h264,profile=constrained-baseline,stream-format=byte-stream ! \ 38filesink location="/tmp/16x16-I-B-P.h264" 39``` 40 41## 16x16-I-P-B-P-high.h264 42 43A 16x16 progressive byte-stream encoded I-P-B-P sequence to make it easier to it easier to spot 44errors on the libva trace. Also tests whether the decoder supports the high profile. Encoded with 45the following GStreamer pipeline: 46 47``` 48gst-launch-1.0 videotestsrc num-buffers=3 ! video/x-raw,format=I420,width=16,height=16 ! \ 49x264enc b-adapt=false bframes=1 ! video/x-h264,profile=high,stream-format=byte-stream ! \ 50filesink location="/tmp/16x16-I-B-P-high.h264" 51``` 52 53## test-25fps.h264 54 55Same as Chromium's `test-25fps.h264`. The slice data in `test-25fps-h264-slice-data-*.bin` was 56manually extracted from GStreamer using GDB. 57 58## test-25fps-interlaced.h264 59 60Adapted from Chromium's `test-25fps.h264`. Same file as above, but encoded as interlaced instead 61using the following ffmpeg command: 62 63``` 64ffmpeg -i \ 65src/third_party/blink/web_tests/media/content/test-25fps.mp4 \ 66-flags +ilme+ildct -vbsf h264_mp4toannexb -an test-25fps.h264 67``` 68 69This test makes sure that the interlaced logic in the decoder actually works, specially that "frame 70splitting" works, as the fields here were encoded as frames. 71