Open sungn opened 6 years ago
The frame_crc_write_packet function in the framecrcenc.c file has a problem with the calculation of the value of crc.
The frame_crc_write_packet function in the framecrcenc.c file has a problem with the calculation of the value of crc. The reason for the problem is that when hw is decoded, data acquisition is required through the syncsurface operation. At present, the data after surface synchronization has a problem at the 12th frame.
The buff data retrieved by the function DdiMedia_GetBufferFromVABufferID is empty. Under normol circumstances the buffer data is not empty.
command
./ffmpeg -nostdin -nostats -cpuflags all -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -hwaccel_flags allow_profile_mismatch -threads 1 -thread_type frame+slice -i ./fate-suite//h264/nondeterministic_cut.h264 -pix_fmt yuv420p -flags +bitexact -fflags +bitexact -f framecrc -
backtrace
--- ./tests/ref/fate/h264-missing-frame 2018-06-07 14:32:26.688501113 +0800 +++ tests/data/fate/h264-missing-frame 2018-07-10 16:40:34.184786145 +0800 @@ -15,21 +15,21 @@ 0, 9, 9, 1, 2332800, 0x6037fb4d 0, 10, 10, 1, 2332800, 0x887ffae2 0, 11, 11, 1, 2332800, 0x887ffae2 -0, 12, 12, 1, 2332800, 0x887ffae2 -0, 13, 13, 1, 2332800, 0x887ffae2 -0, 14, 14, 1, 2332800, 0x887ffae2 -0, 15, 15, 1, 2332800, 0x887ffae2 -0, 16, 16, 1, 2332800, 0x887ffae2 -0, 17, 17, 1, 2332800, 0x887ffae2 -0, 18, 18, 1, 2332800, 0x887ffae2 -0, 19, 19, 1, 2332800, 0x887ffae2 -0, 20, 20, 1, 2332800, 0x887ffae2 -0, 21, 21, 1, 2332800, 0x887ffae2 -0, 22, 22, 1, 2332800, 0x887ffae2 -0, 23, 23, 1, 2332800, 0x887ffae2 -0, 24, 24, 1, 2332800, 0x887ffae2 -0, 25, 25, 1, 2332800, 0x887ffae2 -0, 26, 26, 1, 2332800, 0x887ffae2 -0, 27, 27, 1, 2332800, 0x887ffae2 -0, 28, 28, 1, 2332800, 0x887ffae2 +0, 12, 12, 1, 2332800, 0x6037fb4d +0, 13, 13, 1, 2332800, 0x6037fb4d +0, 14, 14, 1, 2332800, 0x6037fb4d +0, 15, 15, 1, 2332800, 0x6037fb4d +0, 16, 16, 1, 2332800, 0x6037fb4d +0, 17, 17, 1, 2332800, 0x6037fb4d +0, 18, 18, 1, 2332800, 0x6037fb4d +0, 19, 19, 1, 2332800, 0x6037fb4d +0, 20, 20, 1, 2332800, 0x6037fb4d +0, 21, 21, 1, 2332800, 0x6037fb4d +0, 22, 22, 1, 2332800, 0x6037fb4d +0, 23, 23, 1, 2332800, 0x6037fb4d +0, 24, 24, 1, 2332800, 0x6037fb4d +0, 25, 25, 1, 2332800, 0x6037fb4d +0, 26, 26, 1, 2332800, 0x6037fb4d +0, 27, 27, 1, 2332800, 0x6037fb4d +0, 28, 28, 1, 2332800, 0x6037fb4d 0, 29, 29, 1, 2332800, 0x824bb91b Test h264-missing-frame failed. Look at tests/data/fate/h264-missing-frame.err for details. ffmpeg version N-91236-ge4006a474f Copyright (c) 2000-2018 the FFmpeg developers built with gcc 7 (Ubuntu 7.2.0-8ubuntu3.2) configuration: --enable-libx264 --enable-gpl --enable-libx265 --disable-doc --disable-stripping --disable-optimizations --enable-libvpx --samples=fate-suite libavutil 56. 18.102 / 56. 18.102 libavcodec 58. 19.105 / 58. 19.105 libavformat 58. 17.100 / 58. 17.100 libavdevice 58. 4.100 / 58. 4.100 libavfilter 7. 25.100 / 7. 25.100 libswscale 5. 2.100 / 5. 2.100 libswresample 3. 2.100 / 3. 2.100 libpostproc 55. 2.100 / 55. 2.100 Input #0, h264, from '/home/intel/sungn/0607/FFmpeg/fate-suite//h264/nondeterministic_cut.h264': Duration: N/A, bitrate: N/A Stream #0:0: Video: h264 (Constrained Baseline), yuv420p(progressive), 1440x1080 [SAR 1:1 DAR 4:3], 30 fps, 30 tbr, 1200k tbn, 60 tbc Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native)) Output #0, framecrc, to 'pipe:': Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1440x1080 [SAR 1:1 DAR 4:3], q=2-31, 559872 kb/s, 30 fps, 30 tbn, 30 tbc Metadata: encoder : Lavc rawvideo frame= 30 fps=0.0 q=-0.0 Lsize= 2kB time=00:00:01.00 bitrate= 14.7kbits/s speed=2.18x
video:68344kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown tests/Makefile:225: recipe for target 'fate-h264-missing-frame' failed