[FFmpeg-devel] [PATCH] Select cubic and lanczos as alternative where super-sampling is not supported

Sven C. Dack sven.c.dack at sky.com
Fri Sep 9 12:55:15 EEST 2016


CUDA/NPP doesn't allow super-sampling in some cases and the module then prints 
an error message "NPP resize error: -23".

Example:
$ ffmpeg -f lavfi -i testsrc=duration=1:size=hd1080:rate=1 -pix_fmt nv12 -vf 
hwupload_cuda,scale_npp=w=1920:h=720:interp_algo=super:format=nv12,hwdownload -f 
null -
ffmpeg version N-81609-g7b3bc36 Copyright (c) 2000-2016 the FFmpeg developers
   built with gcc 6.2.0 (GCC)
   configuration: --prefix=/home/sven/av --enable-gpl --enable-version3 
--enable-nonfree --arch=x86_64 --cpu=native --enable-debug --disable-shared 
--enable-static --enable-libvorbis --enable-libopus --enable-libx264 
--enable-libx265 --enable-opengl --enable-opencl --enable-vaapi --enable-vdpau 
--enable-cuda --enable-cuvid --enable-nvenc --enable-libnpp 
--extra-cflags='-I/home/sven/av/include -I/usr/local/cuda/include 
-I/usr/local/Video_Codec_SDK_7.0.1/Samples/common/inc' 
--extra-ldflags='-L/home/sven/av/lib -L/usr/local/cuda/lib64' --ar=gcc-ar 
--nm=gcc-nm --ranlib=true
   libavutil      55. 29.100 / 55. 29.100
   libavcodec     57. 55.101 / 57. 55.101
   libavformat    57. 48.103 / 57. 48.103
   libavdevice    57.  0.102 / 57.  0.102
   libavfilter     6. 61.100 /  6. 61.100
   libswscale      4.  1.100 /  4.  1.100
   libswresample   2.  1.100 /  2.  1.100
   libpostproc    54.  0.100 / 54.  0.100
Input #0, lavfi, from 'testsrc=duration=1:size=hd1080:rate=1':
   Duration: N/A, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 1920x1080 [SAR 
1:1 DAR 16:9], 1 tbr, 1 tbn, 1 tbc
[null @ 0x36aa440] Using AVStream.codec to pass codec parameters to muxers is 
deprecated, use AVStream.codecpar instead.
Output #0, null, to 'pipe:':
   Metadata:
     encoder         : Lavf57.48.103
     Stream #0:0: Video: wrapped_avframe, nv12, 1920x720 [SAR 2:3 DAR 16:9], 
q=2-31, 200 kb/s, 1 fps, 1 tbn, 1 tbc
     Metadata:
       encoder         : Lavc57.55.101 wrapped_avframe
Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
[Parsed_scale_npp_1 @ 0x3ae8fa0] NPP resize error: -23
Failed to inject frame into filter network: Unknown error occurred
Conversion failed!

Super-sampling is currently only supported by CUDA/NPP when the output 
dimensions are both smaller than the input dimensions. The patch lets ffmpeg 
select an alternative algorithm and prints a warning in such cases.

Sven


-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Select-cubic-and-lanczos-as-alternative-where-super-.patch
Type: text/x-patch
Size: 1570 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160909/89849b18/attachment.bin>


More information about the ffmpeg-devel mailing list