summaryrefslogtreecommitdiff
path: root/libavfilter
Commit message (Collapse)AuthorAge
* vf_hwupload/hwmap: Support setting a fixed pool sizeMark Thompson2018-02-11
| | | | | | | | | | | | These filters do not directly know whether the API they are using will support dynamic frame pools, so this is somewhat tricky. If the user sets extra_hw_frames, we assume that they are aware of the problem and set a fixed size based on that. If not, most cases use dynamic sizing just like they did previously. The hardware-reverse-mapping case for hwmap previously had a large fixed size (64) here, primarily as a hack for QSV use - this is removed and extra_hw_frames will need to be set for QSV to work since it requires fixed-size pools (as the other cases do, and which didn't work before).
* vf_scale_qsv: Support increasing hardware frame pool sizeMark Thompson2018-02-11
| | | | | The deinterlacer does not change, because it does not allocate any new frames (for output it uses the same pool as the input).
* vf_*_vaapi: Support increasing hardware frame pool sizeMark Thompson2018-02-11
| | | | | Defaults to 10 frames to preserve compatibility, but can allocate fewer if extra_hw_frames is set explicitly.
* lavfi: Add support for increasing hardware frame pool sizesMark Thompson2018-02-11
| | | | | AVFilterContext.extra_hw_frames functions identically to the field of the same name in AVCodecContext.
* stereo3d: Support view type for frame sequence typeVittorio Giovara2017-11-28
| | | | | | Implement detection in h264 and hevc and insertion in framepack filter. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* vaapi: Always free parameter buffers after vaEndPicture() with libva2Mark Thompson2017-10-25
| | | | | | This is an ABI change in libva2: previously the Intel driver had this behaviour and it was implemented as a driver quirk, but now it is part of the specification so all drivers must do it.
* qsv: Join the derived session to the parentLuca Barbato2017-09-27
| | | | | Should improve the performance on multiple transcoding from a single source.
* libavfilter/overlay_qsv: Add QSV overlay vpp filterHuang, Zhengxu2017-09-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The filter supports two inputs and (implicitly) scaling the second input during composition, unlike the software overlay. The code has been separated into common interface and qsv overlay implementation. The common part mainly creates the qsv session and manages the surface which is nearly the same for all qsv filters. So the qsvvpp.c/qsvvpp.h API can be used by other QSV vpp filters to reduce code redundancy. Usage: -hwaccel qsv -c:v mpeg2_qsv -r 25 -i in.m2v -hwaccel qsv -c:v h264_qsv -i in.h264 -filter_complex "overlay_qsv=eof_action=repeat:x=(W-w)/2:y=(H-h)/2" -b 2M -maxrate 3M -c:v h264_qsv -y out.h264 Two inputs should have different sizes otherwise one will be completely covered or you need to scale the second input as follows: -hwaccel qsv -c:v mpeg2_qsv -r 25 -i in.m2v -hwaccel qsv -c:v h264_qsv -i in.h264 -filter_complex "overlay_qsv=w=720:h=576:x=(W-w)/2:y=(H-h)/2" -b 2M -maxrate 3M -c:v h264_qsv -y out.h264 Signed-off-by: ChaoX A Liu <chaox.a.liu@gmail.com> Signed-off-by: Zhengxu Huang <zhengxu.maxwell@gmail.com> Signed-off-by: Andrew Zhang <huazh407@gmail.com> Change-Id: I5c381febb0af6e2f9622c54ba00490ab99d48297 Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* libavfilter/vf_vpp: Add common filters of the qsv vppHuang, Zhengxu2017-09-17
| | | | | | | | | | | | | | | | | | | | | | | Add common filters of the qsv vpp features including scale,denosie, deinterlace,frc,crop and procAmp. Performance will be significantly reduced in the test if using cascade mode just like qsv framerate + qsv scale + qsv deinterlace + qsv denoise in separated way no matter in system or video memmory cases. And the code is so redundant because so much the same just as session and surface's creation and management. So we add a common qsv filter. Usage: -hwaccel qsv -c:v h264_qsv -r 25 -i in -vf vpp_qsv=w=iw/2:h=400:deinterlace=1:framerate=60:detail=50:denoise=50 -b 2M -maxrate 3M -c:v h264_qsv -y out.h264 Signed-off-by: ChaoX A Liu <chaox.a.liu@gmail.com> Signed-off-by: Zhengxu Huang <zhengxu.maxwell@gmail.com> Signed-off-by: Andrew Zhang <huazh407@gmail.com> Change-Id: I130392ce722138c209ab658c5f03f0009b6e8024 Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* yadif: Account for the buffer alignment while processing the frame edgesMichael Niedermayer2017-08-22
| | | | | | | | Avoid out of bound reads. Bug-Id: 1031 CC: libav-stable@libav.org Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* lavf/vf_deinterlace_qsv: Enable the qsv deinterlace vppHuang, Zhengxu2017-07-25
| | | | | | | | | | | | | | The current qsv deinterlace module does not work at all because MSDK needs user to pass extra parameters to enable hint functions,such as denoise,deinterlace,composition and so on. Usage:-hwaccel qsv -r 25 -c:v h264_qsv -i in -vf deinterlace_qsv=bob -b 2M -maxrate 3M -c:v h264_qsv -y out.h264 Signed-off-by: ChaoX A Liu <chaox.a.liu@gmail.com> Signed-off-by: Zhengxu Huang <zhengxu.maxwell@gmail.com> Signed-off-by: Andrew Zhang <huazh407@gmail.com> Change-Id: I9e7ddcf884f2788c2820f6c98affacfb9d8f3287 Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* af_bs2b: Add missing casts to complex pointer assignmentsDiego Biurrun2017-06-21
| | | | | Fixes several warnings of the type: libavfilter/af_bs2b.c:171:22: warning: assignment from incompatible pointer type
* vf_hwmap: Properly free a locally derived deviceMark Thompson2017-06-18
|
* vf_hwmap: Add missing error codeMark Thompson2017-06-18
|
* Convert all AVClass struct declarations to designated initializers.Diego Biurrun2017-06-12
|
* vf_hwmap: Add reverse mapping for hardware framesMark Thompson2017-04-30
| | | | | | | | | This is something of a hack. It allocates a new hwframe context for the target format, then maps it back to the source link and overwrites the input link hw_frames_ctx so that the previous filter will receive the frames we want from ff_get_video_buffer(). It may fail if the previous filter imposes any additional constraints on the frames it wants to use as output.
* vf_hwmap: Add device derivationMark Thompson2017-04-30
| | | | | Also refactor a little and improve error messages to make failure cases easier to understand.
* filtfmts-test: Mark filter as constVittorio Giovara2017-04-10
| | | | | | | libavfilter/tests/filtfmts.c:57:18: warning: assigning to 'AVFilter *' (aka 'struct AVFilter *') from 'const AVFilter *' (aka 'const struct AVFilter *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
* lavfi: Drop unused and empty header fileVittorio Giovara2017-04-10
| | | | This header was public but deprecated on 2013-04-11 (lavfi 3.8.0).
* vf_deinterlace_vaapi: Add support for field rate outputMark Thompson2017-04-02
| | | | | | | In order to work correctly with the i965 driver, this also fixes the direction of forward/backward references - forward references are intended to be those from the past to the current frame, not from the current frame to the future.
* vf_showinfo: Display spherical propertiesVittorio Giovara2017-03-23
|
* vf_showinfo: Simplify reporting stereo3d informationVittorio Giovara2017-03-23
|
* lavfi: Drop deprecated non-const filter retrievalVittorio Giovara2017-03-23
| | | | Deprecated in 10/2013.
* lavfi: Drop deprecated filter registrationVittorio Giovara2017-03-23
| | | | Deprecated in 04/2013.
* lavfi: Drop deprecated filter initializationVittorio Giovara2017-03-23
| | | | Deprecated in 03/2013.
* lavfi: Drop deprecated functions to open a filter or a filterchainVittorio Giovara2017-03-23
| | | | Deprecated in 03/2013.
* lavfi: Drop deprecated way of passing options for a few filtersVittorio Giovara2017-03-23
| | | | Deprecated in 02/2013.
* Bump major versions of all librariesVittorio Giovara2017-03-23
| | | | | | | | | This disables everything that was deprecated at least 18 months ago. Readjust the minimum API version as needed, postponing any API-incompatible changes until the next bump. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* build: Generalize yasm/nasm-related variable namesDiego Biurrun2017-03-01
| | | | None of them are specific to the YASM assembler.
* vf_deinterlace_vaapi: Create filter buffer after contextMark Thompson2017-02-17
| | | | | | The Intel proprietary VAAPI driver enforces the restriction that a buffer must be created inside an existing context, so just ensure this is always true.
* vf_fade: Make sure to not miss the last lines of a frameMartin Storsjö2017-02-16
| | | | | | | | | | | | | | | | | | | | | When slice_h is rounded up due to chroma subsampling, there's a risk that jobnr * slice_h exceeds frame->height. Prior to a638e9184d63, this wasn't an issue for the last slice of a frame, since slice_end was set to frame->height for the last slice. a638e9184d63 tried to fix the case where other slices than the last one would exceed frame->height (which can happen where the number of slices/threads is very large compared to the frame height). However, the fix in a638e9184d63 instead broke other cases, where slice_h * nb_threads < frame->height. Therefore, make sure the last slice always ends at frame->height. CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* scale_npp: explicitly set the output frames context for passthrough modeAnton Khirnov2017-02-11
| | | | | This is no longer done automatically for filters marked as hwframe-aware.
* Mark some arrays that never change as const.Anton Khirnov2017-02-01
|
* build: Generate pkg-config files from Make and not from configureDiego Biurrun2016-12-22
| | | | | | | | This moves work from the configure to the Make stage where it can be parallelized and ensures that pkgconfig files are updated when library versions change. Bug-Id: 449
* lavfi: Add VAAPI deinterlacerMark Thompson2016-12-10
|
* vf_hwupload_cuda: Add min/max limits for device optionRuta Gadkari2016-12-08
|
* configure: Add missing asyncts filter, movie filter, and output example depsDiego Biurrun2016-11-25
| | | | Also add a missing avcodec.h #include in the movie filter.
* af_asyncts: Use llabs instead of labs for 64-bit variableDiego Biurrun2016-11-15
| | | | libavfilter/af_asyncts.c:212:9: warning: absolute value function 'labs' given an argument of type 'int64_t' (aka 'long long') but has parameter of type 'long' which may cause truncation of value [-Wabsolute-value]
* vf_drawtext: Drop wrong void* castDiego Biurrun2016-11-12
| | | | libavfilter/vf_drawtext.c:844:49: warning: ISO C forbids conversion of function pointer to object pointer type [-Wpedantic]
* lavfi: Hardware map filterMark Thompson2016-11-03
| | | | | | | | | | | | Takes a frame associated with a hardware context as input and maps it to something else (another hardware frame or normal memory) for other processing. If the frame to map was originally in the target format (but mapped to something else), the original frame is output. Also supports mapping backwards, where only the output has a hardware context. The link immediately before will be supplied with mapped hardware frames which it can write directly into, and this filter then unmaps them back to the actual hardware frames.
* vf_hwupload_cuda: Fix build errorMark Thompson2016-11-03
| | | | | | Broken by e3fb74f7f9a8f1895381355f40c92cac3c1023d9. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* lavfi: Always propagate hw_frames_ctx through linksMark Thompson2016-11-02
| | | | | | | | | | | | | | | Also adds a new flag to mark filters which are aware of hwframes and will perform this task themselves, and marks all appropriate filters with this flag. This is required to allow software-mapped hardware frames to work, because we need to have the frames context available for any later mapping operation in the filter graph. The output from the filter graph should only propagate further to an encoder if the hardware format actually matches the visible format (mapped frames are valid here and have an hw_frames_ctx, but this should not be given to the encoder as its hardware context).
* lavfi: Use ff_get_video_buffer in all filters using hwframesMark Thompson2016-11-02
|
* lavfi: Make default get_video_buffer work with hardware framesMark Thompson2016-11-02
|
* vf_drawtext: Move static keyword to beginning of variable declarationDiego Biurrun2016-11-02
| | | | libavfilter/vf_drawtext.c:226:1: warning: ‘static’ is not at beginning of declaration [-Wold-style-declaration]
* scale_npp: fix passthrough modeYogender Gupta2016-10-25
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* x86: Add missing colons after assembly labelsDiego Biurrun2016-10-17
| | | | | This fixes many warnings of the sort warning: label alone on a line without a colon might be in error
* vf_scale_vaapi: Crop input surface to active regionMark Thompson2016-09-14
| | | | | | If the input has been decoded from a stream which uses edge cropping then the whole surface need not be valid. This defines an input region for the scaler so we only use the active area of the frame.
* High Definition Compatible Digital (HDCD) decoder filter, using libhdcdBurt P2016-08-29
| | | | | | Signed-off-by: Burt P <pburt0@gmail.com> Signed-off-by: Diego Biurrun <diego@biurrun.de> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* lavfi: add a QSV deinterlacing filterAnton Khirnov2016-07-22
|