Commit 90ba1765 authored by Roman Arzumanyan's avatar Roman Arzumanyan Committed by Timo Rothenpieler

avfilter: add nvidia NPP based transpose filter

Signed-off-by: 's avatarTimo Rothenpieler <timo@rothenpieler.org>
parent 404d21f4
...@@ -25,6 +25,7 @@ version <next>: ...@@ -25,6 +25,7 @@ version <next>:
- RemotelyAnywhere Screen Capture decoder - RemotelyAnywhere Screen Capture decoder
- cue and acue filters - cue and acue filters
- support for AV1 in MP4 - support for AV1 in MP4
- transpose_npp filter
version 4.0: version 4.0:
......
...@@ -2926,6 +2926,7 @@ hwupload_cuda_filter_deps="ffnvcodec" ...@@ -2926,6 +2926,7 @@ hwupload_cuda_filter_deps="ffnvcodec"
scale_npp_filter_deps="ffnvcodec libnpp" scale_npp_filter_deps="ffnvcodec libnpp"
scale_cuda_filter_deps="cuda_sdk" scale_cuda_filter_deps="cuda_sdk"
thumbnail_cuda_filter_deps="cuda_sdk" thumbnail_cuda_filter_deps="cuda_sdk"
transpose_npp_filter_deps="ffnvcodec libnpp"
amf_deps_any="libdl LoadLibrary" amf_deps_any="libdl LoadLibrary"
nvenc_deps="ffnvcodec" nvenc_deps="ffnvcodec"
...@@ -6087,8 +6088,8 @@ enabled libmodplug && require_pkg_config libmodplug libmodplug libmodplug ...@@ -6087,8 +6088,8 @@ enabled libmodplug && require_pkg_config libmodplug libmodplug libmodplug
enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame $libm_extralibs enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame $libm_extralibs
enabled libmysofa && { check_pkg_config libmysofa libmysofa mysofa.h mysofa_load || enabled libmysofa && { check_pkg_config libmysofa libmysofa mysofa.h mysofa_load ||
require libmysofa mysofa.h mysofa_load -lmysofa $zlib_extralibs; } require libmysofa mysofa.h mysofa_load -lmysofa $zlib_extralibs; }
enabled libnpp && { check_lib libnpp npp.h nppGetLibVersion -lnppig -lnppicc -lnppc || enabled libnpp && { check_lib libnpp npp.h nppGetLibVersion -lnppig -lnppicc -lnppc -lnppidei ||
check_lib libnpp npp.h nppGetLibVersion -lnppi -lnppc || check_lib libnpp npp.h nppGetLibVersion -lnppi -lnppc -lnppidei ||
die "ERROR: libnpp not found"; } die "ERROR: libnpp not found"; }
enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb
enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb
......
...@@ -16241,6 +16241,7 @@ embedded peak information in display metadata is not reliable or when tone ...@@ -16241,6 +16241,7 @@ embedded peak information in display metadata is not reliable or when tone
mapping from a lower range to a higher range. mapping from a lower range to a higher range.
@end table @end table
@anchor{transpose}
@section transpose @section transpose
Transpose rows with columns in the input video and optionally flip it. Transpose rows with columns in the input video and optionally flip it.
...@@ -16320,6 +16321,47 @@ The command above can also be specified as: ...@@ -16320,6 +16321,47 @@ The command above can also be specified as:
transpose=1:portrait transpose=1:portrait
@end example @end example
@section transpose_npp
Transpose rows with columns in the input video and optionally flip it.
For more in depth examples see the @ref{transpose} video filter, which shares mostly the same options.
It accepts the following parameters:
@table @option
@item dir
Specify the transposition direction.
Can assume the following values:
@table @samp
@item cclock_flip
Rotate by 90 degrees counterclockwise and vertically flip. (default)
@item clock
Rotate by 90 degrees clockwise.
@item cclock
Rotate by 90 degrees counterclockwise.
@item clock_flip
Rotate by 90 degrees clockwise and vertically flip.
@end table
@item passthrough
Do not apply the transposition if the input geometry matches the one
specified by the specified value. It accepts the following values:
@table @samp
@item none
Always apply transposition. (default)
@item portrait
Preserve portrait geometry (when @var{height} >= @var{width}).
@item landscape
Preserve landscape geometry (when @var{width} >= @var{height}).
@end table
@end table
@section trim @section trim
Trim the input so that the output contains one continuous subpart of the input. Trim the input so that the output contains one continuous subpart of the input.
......
...@@ -376,6 +376,7 @@ OBJS-$(CONFIG_TONEMAP_FILTER) += vf_tonemap.o colorspace.o ...@@ -376,6 +376,7 @@ OBJS-$(CONFIG_TONEMAP_FILTER) += vf_tonemap.o colorspace.o
OBJS-$(CONFIG_TONEMAP_OPENCL_FILTER) += vf_tonemap_opencl.o colorspace.o opencl.o \ OBJS-$(CONFIG_TONEMAP_OPENCL_FILTER) += vf_tonemap_opencl.o colorspace.o opencl.o \
opencl/tonemap.o opencl/colorspace_common.o opencl/tonemap.o opencl/colorspace_common.o
OBJS-$(CONFIG_TRANSPOSE_FILTER) += vf_transpose.o OBJS-$(CONFIG_TRANSPOSE_FILTER) += vf_transpose.o
OBJS-$(CONFIG_TRANSPOSE_NPP_FILTER) += vf_transpose_npp.o
OBJS-$(CONFIG_TRIM_FILTER) += trim.o OBJS-$(CONFIG_TRIM_FILTER) += trim.o
OBJS-$(CONFIG_UNPREMULTIPLY_FILTER) += vf_premultiply.o framesync.o OBJS-$(CONFIG_UNPREMULTIPLY_FILTER) += vf_premultiply.o framesync.o
OBJS-$(CONFIG_UNSHARP_FILTER) += vf_unsharp.o OBJS-$(CONFIG_UNSHARP_FILTER) += vf_unsharp.o
......
...@@ -358,6 +358,7 @@ extern AVFilter ff_vf_tmix; ...@@ -358,6 +358,7 @@ extern AVFilter ff_vf_tmix;
extern AVFilter ff_vf_tonemap; extern AVFilter ff_vf_tonemap;
extern AVFilter ff_vf_tonemap_opencl; extern AVFilter ff_vf_tonemap_opencl;
extern AVFilter ff_vf_transpose; extern AVFilter ff_vf_transpose;
extern AVFilter ff_vf_transpose_npp;
extern AVFilter ff_vf_trim; extern AVFilter ff_vf_trim;
extern AVFilter ff_vf_unpremultiply; extern AVFilter ff_vf_unpremultiply;
extern AVFilter ff_vf_unsharp; extern AVFilter ff_vf_unsharp;
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#include "libavutil/version.h" #include "libavutil/version.h"
#define LIBAVFILTER_VERSION_MAJOR 7 #define LIBAVFILTER_VERSION_MAJOR 7
#define LIBAVFILTER_VERSION_MINOR 28 #define LIBAVFILTER_VERSION_MINOR 29
#define LIBAVFILTER_VERSION_MICRO 100 #define LIBAVFILTER_VERSION_MICRO 100
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment