Opened 12 months ago

Closed 12 months ago

Last modified 12 months ago

#8006 closed defect (invalid)

VAAPI: fails to transcode HEVC 10bit on AMD RAVEN APU

Reported by: tvsht Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: vaapi
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

vaapi accelerated transcoding from hevc 10bit to h264_vaapi fails

command:

"ffmpeg -threads 1 -loglevel debug \
-init_hw_device vaapi=amd:/dev/dri/renderD128 -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_device amd -filter_hw_device amd \
-i trk.mkv  \
-vf "scale_vaapi=format=nv12" \
-c:v h264_vaapi \
-c:a copy  -c:s copy -bf 0 \
-y plop.mkv

vainfo:

libva info: VA-API version 1.4.1
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/va/drivers/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_4
ATTENTION: default value of option allow_rgb10_configs overridden by environment.
ATTENTION: option value of option allow_rgb10_configs ignored.
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.4 (libva 2.4.0)
vainfo: Driver version: Mesa Gallium driver 19.2.0-devel for AMD RAVEN (DRM 3.30.0, 5.1.16-gentoo, LLVM 8.0.0)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc

ffmpeg debug log:

ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9.1.0 (Gentoo 9.1.0)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/share/doc/ffmpeg-4.1.3/html --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags='-O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fno-semantic-interposition -fipa-pta -fuse-linker-plugin -O3 -march=native -pipe -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu' --disable-static --enable-avfilter --enable-avresample --disable-stripping --disable-optimizations --disable-libcelt --enable-lto --enable-nonfree --disable-indev=v4l2 --disable-outdev=v4l2 --disable-indev=oss --disable-indev=jack --disable-outdev=oss --enable-bzlib --disable-runtime-cpudetect --disable-debug --disable-gcrypt --disable-gnutls --disable-gmp --enable-gpl --enable-hardcoded-tables --enable-iconv --disable-libtls --disable-libxml2 --disable-lzma --enable-network --disable-opencl --enable-openssl --enable-postproc --disable-libsmbclient --enable-ffplay --enable-sdl2 --enable-vaapi --disable-vdpau --enable-xlib --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --enable-zlib --disable-libcdio --disable-libiec61883 --disable-libdc1394 --disable-libcaca --disable-openal --enable-opengl --disable-libv4l2 --enable-libpulse --enable-libdrm --disable-libjack --disable-libopencore-amrwb --disable-libopencore-amrnb --disable-libcodec2 --disable-libfdk-aac --disable-libopenjpeg --enable-libbluray --disable-libgme --disable-libgsm --disable-mmal --disable-libmodplug --disable-libopus --disable-libilbc --disable-librtmp --disable-libssh --disable-libspeex --enable-libsrt --disable-librsvg --disable-ffnvcodec --enable-libvorbis --enable-libvpx --disable-libzvbi --disable-appkit --disable-libbs2b --disable-chromaprint --disable-libflite --disable-frei0r --disable-libfribidi --disable-fontconfig --disable-ladspa --enable-libass --disable-lv2 --enable-libfreetype --disable-librubberband --disable-libzmq --disable-libzimg --enable-libsoxr --enable-pthreads --disable-libvo-amrwbenc --disable-libmp3lame --disable-libkvazaar --disable-libaom --disable-libopenh264 --disable-libsnappy --disable-libtheora --disable-libtwolame --disable-libwavpack --enable-libwebp --disable-libx264 --disable-libx265 --disable-libxvid --disable-gnutls --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-neon --disable-vfp --disable-vfpv3 --disable-armv8 --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable-altivec --disable-amd3dnow --disable-amd3dnowext --disable-fma4 --disable-xop --cpu=host --disable-doc --disable-htmlpages --enable-manpages
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Splitting the commandline.
Reading option '-threads' ... matched as AVOption 'threads' with argument '1'.                                         
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.                 
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'vaapi=amd:/dev/dri/renderD128'.                                                                                           
Reading option '-hwaccel' ... matched as option 'hwaccel' (use HW accelerated decoding) with argument 'vaapi'.         
Reading option '-hwaccel_output_format' ... matched as option 'hwaccel_output_format' (select output format used with HW accelerated decoding) with argument 'vaapi'.                                                                         
Reading option '-hwaccel_device' ... matched as option 'hwaccel_device' (select a device for HW acceleration) with argument 'amd'.                                                                                                            
Reading option '-filter_hw_device' ... matched as option 'filter_hw_device' (set hardware device used when filtering) with argument 'amd'.                                                                                                    
Reading option '-i' ... matched as input url with argument 'trk.mkv'.                                                  
Reading option '-vf' ... matched as option 'vf' (set video filters) with argument 'scale_vaapi=format=nv12'.           
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'h264_vaapi'.                               
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'copy'.                                     
Reading option '-c:s' ... matched as option 'c' (codec name) with argument 'copy'.                                     
Reading option '-bf' ... matched as AVOption 'bf' with argument '0'.                                                   
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.                              
Reading option 'plop.mkv' ... matched as output url.                                                                   
Finished splitting the commandline.                                                                                    
Parsing a group of options: global .                                                                                   
Applying option loglevel (set logging level) with argument debug.                                                      
Applying option init_hw_device (initialise hardware device) with argument vaapi=amd:/dev/dri/renderD128.               
[AVHWDeviceContext @ 0x482440] Opened VA display via DRM device /dev/dri/renderD128.
[AVHWDeviceContext @ 0x482440] libva: VA-API version 1.4.1                                                             
[AVHWDeviceContext @ 0x482440] libva: va_getDriverName() returns 0                                                     
[AVHWDeviceContext @ 0x482440] libva: Trying to open /usr/lib64/va/drivers/radeonsi_drv_video.so                       
[AVHWDeviceContext @ 0x482440] libva: Found init function __vaDriverInit_1_4                                           
ATTENTION: default value of option allow_rgb10_configs overridden by environment.
ATTENTION: option value of option allow_rgb10_configs ignored.
[AVHWDeviceContext @ 0x482440] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x482440] Initialised VAAPI connection: version 1.4                                               
[AVHWDeviceContext @ 0x482440] Format 0x3231564e -> nv12.
[AVHWDeviceContext @ 0x482440] Format 0x30313050 -> p010le.                                                            
[AVHWDeviceContext @ 0x482440] Format 0x36313050 -> unknown.                                                           
[AVHWDeviceContext @ 0x482440] Format 0x32315659 -> yuv420p.                                                           
[AVHWDeviceContext @ 0x482440] Format 0x56595559 -> unknown.                                                           
[AVHWDeviceContext @ 0x482440] Format 0x59565955 -> uyvy422.                                                           
[AVHWDeviceContext @ 0x482440] Format 0x41524742 -> bgra.                                                              
[AVHWDeviceContext @ 0x482440] Format 0x41424752 -> rgba.                                                              
[AVHWDeviceContext @ 0x482440] Format 0x58524742 -> bgr0.                                                              
[AVHWDeviceContext @ 0x482440] Format 0x58424752 -> rgb0.                                                              
[AVHWDeviceContext @ 0x482440] VAAPI driver: Mesa Gallium driver 19.2.0-devel for AMD RAVEN (DRM 3.30.0, 5.1.16-gentoo, LLVM 8.0.0).                                                                                                          
[AVHWDeviceContext @ 0x482440] Driver not found in known nonstandard list, using standard behaviour.                   
Applying option filter_hw_device (set hardware device used when filtering) with argument amd.
Applying option y (overwrite output files) with argument 1.                                                            
Successfully parsed a group of options.                                                                                
Parsing a group of options: input url trk.mkv.                                                                         
Applying option hwaccel (use HW accelerated decoding) with argument vaapi.                                             
Applying option hwaccel_output_format (select output format used with HW accelerated decoding) with argument vaapi.    
Applying option hwaccel_device (select a device for HW acceleration) with argument amd.                                
Successfully parsed a group of options.                                                                                
Opening an input file: trk.mkv.                                                                                        
[NULL @ 0x723240] Opening 'trk.mkv' for reading                                                                        
[file @ 0x723d40] Setting default whitelist 'file,crypto'                                                              
[matroska,webm @ 0x723240] Format matroska,webm probed with size=2048 and score=100                                    
st:0 removing common factor 1000000 from timebase                                                                      
st:1 removing common factor 1000000 from timebase                                                                      
st:2 removing common factor 1000000 from timebase                                                                      
st:3 removing common factor 1000000 from timebase                                                                      
st:4 removing common factor 1000000 from timebase                                                                      
st:5 removing common factor 1000000 from timebase                                                                      
st:6 removing common factor 1000000 from timebase                                                                      
st:7 removing common factor 1000000 from timebase                                                                      
st:8 removing common factor 1000000 from timebase                                                                      
st:9 removing common factor 1000000 from timebase                                                                      
st:10 removing common factor 1000000 from timebase                                                                     
st:11 removing common factor 1000000 from timebase                                                                     
st:12 removing common factor 1000000 from timebase                                                                     
[matroska,webm @ 0x723240] Before avformat_find_stream_info() pos: 12838 bytes read:37824 seeks:2 nb_streams:13        
[hevc @ 0x74d000] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0                                              
[hevc @ 0x74d000] Decoding VPS                                                                                         
[hevc @ 0x74d000] Main 10 profile bitstream                                                                            
[hevc @ 0x74d000] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0                                              
[hevc @ 0x74d000] Decoding SPS                                                                                         
[hevc @ 0x74d000] Main 10 profile bitstream                                                                            
[hevc @ 0x74d000] Decoding VUI                                                                                         
[hevc @ 0x74d000] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0                                              
[hevc @ 0x74d000] Decoding PPS                                                                                         
[hevc @ 0x74d000] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0                                       
[hevc @ 0x74d000] Decoding SEI                                                                                         
[hevc @ 0x74d000] Skipped PREFIX SEI 5                                                                                 
[dvdsub @ 0x74fcc0] palette: 0x000000 0xf0f0f0 0xcccccc 0x999999 0x3333fa 0x1111bb 0xfa3333 0xbb1111 0x33fa33 0x11bb11 0xfafa33 0xbbbb11 0xfa33fa 0xbb11bb 0x33fafa 0x11bbbb                                                                  
[dvdsub @ 0x750d00] palette: 0x000000 0xf0f0f0 0xcccccc 0x999999 0x3333fa 0x1111bb 0xfa3333 0xbb1111 0x33fa33 0x11bb11 0xfafa33 0xbbbb11 0xfa33fa 0xbb11bb 0x33fafa 0x11bbbb                                                                  
[dvdsub @ 0x751e00] palette: 0x000000 0xf0f0f0 0xcccccc 0x999999 0x3333fa 0x1111bb 0xfa3333 0xbb1111 0x33fa33 0x11bb11 0xfafa33 0xbbbb11 0xfa33fa 0xbb11bb 0x33fafa 0x11bbbb                                                                  
[dvdsub @ 0x752f00] palette: 0x000000 0xf0f0f0 0xcccccc 0x999999 0x3333fa 0x1111bb 0xfa3333 0xbb1111 0x33fa33 0x11bb11 0xfafa33 0xbbbb11 0xfa33fa 0xbb11bb 0x33fafa 0x11bbbb                                                                  
[dvdsub @ 0x754000] palette: 0x000000 0xf0f0f0 0xcccccc 0x999999 0x3333fa 0x1111bb 0xfa3333 0xbb1111 0x33fa33 0x11bb11 0xfafa33 0xbbbb11 0xfa33fa 0xbb11bb 0x33fafa 0x11bbbb                                                                  
[dvdsub @ 0x755100] palette: 0x000000 0xf0f0f0 0xcccccc 0x999999 0x3333fa 0x1111bb 0xfa3333 0xbb1111 0x33fa33 0x11bb11 0xfafa33 0xbbbb11 0xfa33fa 0xbb11bb 0x33fafa 0x11bbbb                                                                  
[dvdsub @ 0x756200] palette: 0x000000 0xf0f0f0 0xcccccc 0x999999 0x3333fa 0x1111bb 0xfa3333 0xbb1111 0x33fa33 0x11bb11 0xfafa33 0xbbbb11 0xfa33fa 0xbb11bb 0x33fafa 0x11bbbb                                                                  
[dvdsub @ 0x757300] palette: 0x000000 0xf0f0f0 0xcccccc 0x999999 0x3333fa 0x1111bb 0xfa3333 0xbb1111 0x33fa33 0x11bb11 0xfafa33 0xbbbb11 0xfa33fa 0xbb11bb 0x33fafa 0x11bbbb                                                                  
[dvdsub @ 0x758400] palette: 0x000000 0xf0f0f0 0xcccccc 0x999999 0x3333fa 0x1111bb 0xfa3333 0xbb1111 0x33fa33 0x11bb11 0xfafa33 0xbbbb11 0xfa33fa 0xbb11bb 0x33fafa 0x11bbbb                                                                  
[dvdsub @ 0x759500] palette: 0x000000 0xf0f0f0 0xcccccc 0x999999 0x3333fa 0x1111bb 0xfa3333 0xbb1111 0x33fa33 0x11bb11 0xfafa33 0xbbbb11 0xfa33fa 0xbb11bb 0x33fafa 0x11bbbb                                                                  
[dvdsub @ 0x75a600] palette: 0x000000 0xf0f0f0 0xcccccc 0x999999 0x3333fa 0x1111bb 0xfa3333 0xbb1111 0x33fa33 0x11bb11 0xfafa33 0xbbbb11 0xfa33fa 0xbb11bb 0x33fafa 0x11bbbb                                                                  
[matroska,webm @ 0x723240] All info found                                                                              
[matroska,webm @ 0x723240] After avformat_find_stream_info() pos: 16151 bytes read:70592 seeks:2 frames:11             
Input #0, matroska,webm, from 'trk.mkv':
  Metadata:
    encoder         : libebml v1.3.6 + libmatroska v1.4.9
    creation_time   : 2018-08-21T19:22:09.000000Z
    Writing frontend: StaxRip v1.8.2.0
  Duration: 00:23:46.13, start: 0.000000, bitrate: 937 kb/s
    Stream #0:0, 3, 1/1000: Video: hevc (Main 10), 1 reference frame, yuv420p10le(tv), 1920x1072, 0/1, SAR 1:1 DAR 120:67, 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)
...[cut_subtitles_loading]...
uccessfully opened the file.
Parsing a group of options: output url plop.mkv.                                                                       
Applying option vf (set video filters) with argument scale_vaapi=format=nv12.                                          
Applying option c:v (codec name) with argument h264_vaapi.                                                             
Applying option c:a (codec name) with argument copy.                                                                   
Applying option c:s (codec name) with argument copy.                                                                   
Successfully parsed a group of options.                                                                                
Opening an output file: plop.mkv.                                                                                      
[file @ 0x7db800] Setting default whitelist 'file,crypto'                                                              
Successfully opened the file.                                                                                          
[hevc @ 0x845300] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0                                              
[hevc @ 0x845300] Decoding VPS                                                                                         
[hevc @ 0x845300] Main 10 profile bitstream                                                                            
[hevc @ 0x845300] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0                                              
[hevc @ 0x845300] Decoding SPS                                                                                         
[hevc @ 0x845300] Main 10 profile bitstream                                                                            
[hevc @ 0x845300] Decoding VUI                                                                                         
[hevc @ 0x845300] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0                                              
[hevc @ 0x845300] Decoding PPS                                                                                         
[hevc @ 0x845300] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0                                       
[hevc @ 0x845300] Decoding SEI                                                                                         
[hevc @ 0x845300] Skipped PREFIX SEI 5                                                                                 
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> h264 (h264_vaapi))
  Stream #0:1 -> #0:1 (copy)
  Stream #0:2 -> #0:2 (copy)
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[hevc @ 0x845300] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0                                              
[hevc @ 0x845300] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0                                              
[hevc @ 0x845300] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0                                              
[hevc @ 0x845300] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0                                       
[hevc @ 0x845300] nal_unit_type: 20(IDR_N_LP), nuh_layer_id: 0, temporal_id: 0                                         
[hevc @ 0x845300] Decoding VPS                                                                                         
[hevc @ 0x845300] Main 10 profile bitstream                                                                            
[hevc @ 0x845300] Decoding SPS                                                                                         
[hevc @ 0x845300] Main 10 profile bitstream                                                                            
[hevc @ 0x845300] Decoding VUI                                                                                         
[hevc @ 0x845300] Decoding PPS                                                                                         
[hevc @ 0x845300] Decoding SEI                                                                                         
[hevc @ 0x845300] Skipped PREFIX SEI 5                                                                                 
[hevc @ 0x845300] Format vaapi_vld chosen by get_format().                                                             
[hevc @ 0x845300] Format vaapi_vld requires hwaccel initialisation.                                                    
[hevc @ 0x845300] Considering format 0x3231564e -> nv12.                                                               
[hevc @ 0x845300] Considering format 0x30313050 -> p010le.                                                             
[hevc @ 0x845300] Ignoring unknown format 0x36313050.                                                                  
[hevc @ 0x845300] Picked p010le (0x30313050) as best match for yuv420p10le.                                            
[AVHWFramesContext @ 0x482000] Created surface 0x1.                                                                    
[AVHWFramesContext @ 0x482000] Direct mapping disabled: deriving image does not work: 1 (operation failed).            
[AVHWFramesContext @ 0x482000] Created surface 0x2.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0x3.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0x4.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0x5.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0x6.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0x7.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0x8.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0x9.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0xa.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0xb.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0xc.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0xd.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0xe.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0xf.                                                                    
[AVHWFramesContext @ 0x482000] Created surface 0x10.                                                                   
[AVHWFramesContext @ 0x482000] Created surface 0x11.                                                                   
[AVHWFramesContext @ 0x482000] Created surface 0x12.                                                                   
[AVHWFramesContext @ 0x482000] Created surface 0x13.                                                                   
[AVHWFramesContext @ 0x482000] Created surface 0x14.                                                                   
[hevc @ 0x845300] Considering format 0x3231564e -> nv12.                                                               
[hevc @ 0x845300] Considering format 0x30313050 -> p010le.                                                             
[hevc @ 0x845300] Ignoring unknown format 0x36313050.                                                                  
[hevc @ 0x845300] Picked p010le (0x30313050) as best match for yuv420p10le.                                            
[hevc @ 0x845300] Decode context initialised: 0x15/0x16.                                                               
[hevc @ 0x845300] Param buffer (type 0, 604 bytes) is 0x17.                                                            
[hevc @ 0x845300] Slice 0 param buffer (264 bytes) is 0x18.                                                            
[hevc @ 0x845300] Slice 0 data buffer (562 bytes) is 0x19.                                                             
[hevc @ 0x845300] Decode to surface 0x14.                                                                              
cur_dts is invalid (this is harmless if it occurs once at the start per stream)                                        
    Last message repeated 8 times
[hevc @ 0x845300] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 0x845300] Param buffer (type 0, 604 bytes) is 0x17.                                                            
[hevc @ 0x845300] Slice 0 param buffer (264 bytes) is 0x18.                                                            
[hevc @ 0x845300] Slice 0 data buffer (122 bytes) is 0x19.                                                             
[hevc @ 0x845300] Decode to surface 0x13.                                                                              
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[hevc @ 0x845300] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 0x845300] Output frame with POC 0.
[hevc @ 0x845300] Param buffer (type 0, 604 bytes) is 0x17.
[hevc @ 0x845300] Slice 0 param buffer (264 bytes) is 0x18.
[hevc @ 0x845300] Slice 0 data buffer (104 bytes) is 0x19.
[hevc @ 0x845300] Decode to surface 0x12.
detected 4 logical cores
[Parsed_scale_vaapi_0 @ 0xa14100] Setting 'format' to value 'nv12'
[graph 0 input from stream 0:0 @ 0xae9400] Setting 'video_size' to value '1920x1072'
[graph 0 input from stream 0:0 @ 0xae9400] Setting 'pix_fmt' to value '46'
[graph 0 input from stream 0:0 @ 0xae9400] Setting 'time_base' to value '1/1000'
[graph 0 input from stream 0:0 @ 0xae9400] Setting 'pixel_aspect' to value '1/1'
[graph 0 input from stream 0:0 @ 0xae9400] Setting 'sws_param' to value 'flags=2'
[graph 0 input from stream 0:0 @ 0xae9400] Setting 'frame_rate' to value '24000/1001'
[graph 0 input from stream 0:0 @ 0xae9400] w:1920 h:1072 pixfmt:vaapi_vld tb:1/1000 fr:24000/1001 sar:1/1 sws_param:flags=2
[format @ 0xae92c0] Setting 'pix_fmts' to value 'vaapi_vld'
[AVFilterGraph @ 0xa133c0] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed
[AVHWFramesContext @ 0xa134c0] Created surface 0x18.
[AVHWFramesContext @ 0xa134c0] Direct mapping disabled: deriving image does not work: 1 (operation failed).
[AVHWFramesContext @ 0xa134c0] Created surface 0x19.
[AVHWFramesContext @ 0xa134c0] Created surface 0x1a.
[AVHWFramesContext @ 0xa134c0] Created surface 0x1b.
[AVHWFramesContext @ 0xa134c0] Created surface 0x1c.
[AVHWFramesContext @ 0xa134c0] Created surface 0x1d.
[AVHWFramesContext @ 0xa134c0] Created surface 0x1e.
[AVHWFramesContext @ 0xa134c0] Created surface 0x1f.
[AVHWFramesContext @ 0xa134c0] Created surface 0x20.
[AVHWFramesContext @ 0xa134c0] Created surface 0x21.
[Parsed_scale_vaapi_0 @ 0xa14100] Filter input: vaapi_vld, 1920x1072 (0).
[Parsed_scale_vaapi_0 @ 0xa14100] Using surface 0x14 for scale input.
[Parsed_scale_vaapi_0 @ 0xa14100] Using surface 0x21 for scale output.
[Parsed_scale_vaapi_0 @ 0xa14100] Pipeline parameter buffer is 0x23.
[Parsed_scale_vaapi_0 @ 0xa14100] Failed to render parameter buffer: 6 (invalid VASurfaceID).
Error while filtering: Input/output error
Failed to inject frame into filter network: Input/output error
Error while processing the decoded data for stream #0:0
[AVIOContext @ 0x85e880] Statistics: 0 seeks, 0 writeouts
[AVIOContext @ 0x72c000] Statistics: 70592 bytes read, 2 seeks
Conversion failed!

Change History (3)

comment:1 follow-up: Changed 12 months ago by jkqxz

This is the separated fields of surfaces in the Mesa driver biting you - you can't apply any postprocessing to the output of the H.265 decoder because you'll always fail a test like <https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/state_trackers/va/postproc.c#n131>.

It works fine if you build Mesa with separated fields disabled, e.g. by:

diff --git a/src/gallium/state_trackers/va/surface.c b/src/gallium/state_trackers/va/surface.c
index 86daf0f7988..be72561df30 100644
--- a/src/gallium/state_trackers/va/surface.c
+++ b/src/gallium/state_trackers/va/surface.c
@@ -768,6 +768,7 @@ vlVaCreateSurfaces2(VADriverContextP ctx, unsigned int format,
       PIPE_VIDEO_ENTRYPOINT_BITSTREAM,
       PIPE_VIDEO_CAP_PREFERS_INTERLACED
    );
+   templat.interlaced = false;
 
    if (expected_fourcc) {
       enum pipe_format expected_format = VaFourccToPipeFormat(expected_fourcc);

comment:2 Changed 12 months ago by cehoyos

  • Keywords vaapi added
  • Resolution set to invalid
  • Status changed from new to closed

comment:3 in reply to: ↑ 1 Changed 12 months ago by tvsht

Replying to jkqxz:

This is the separated fields of surfaces in the Mesa driver biting you - you can't apply any postprocessing to the output of the H.265 decoder because you'll always fail a test like <https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/state_trackers/va/postproc.c#n131>.

It works fine if you build Mesa with separated fields disabled, e.g. by:

diff --git a/src/gallium/state_trackers/va/surface.c b/src/gallium/state_trackers/va/surface.c
index 86daf0f7988..be72561df30 100644
--- a/src/gallium/state_trackers/va/surface.c
+++ b/src/gallium/state_trackers/va/surface.c
@@ -768,6 +768,7 @@ vlVaCreateSurfaces2(VADriverContextP ctx, unsigned int format,
       PIPE_VIDEO_ENTRYPOINT_BITSTREAM,
       PIPE_VIDEO_CAP_PREFERS_INTERLACED
    );
+   templat.interlaced = false;
 
    if (expected_fourcc) {
       enum pipe_format expected_format = VaFourccToPipeFormat(expected_fourcc);

Thank you, with this patch hw transcoding "works" above-mentioned bug is gone, but the resulting files are half green, I'm assuming I should report it to mesa's bugtracker? Could you link me to where this patch came from?

Note: See TracTickets for help on using tickets.