1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-03 05:10:03 +02:00
Go to file
Aaron Levinson 3d040513a1 avutil/hwcontext_dxva2: Don't improperly free IDirect3DSurface9 objects
Add dxva2_pool_release_dummy() and use it in call to
av_buffer_create() in dxva2_pool_alloc().

Prior to this change, av_buffer_create() was called with NULL for the
third argument, which indicates that av_buffer_default_free() should
be used to free the buffer's data.  Eventually, it gets to
buffer_pool_free() and calls buf->free() on a surface object (which is
av_buffer_default_free()).

This can result in a crash when the debug version of the C-runtime is
used on Windows.  While it doesn't appear to result in a crash when
the release version of the C-runtime is used on Windows, it likely
results in memory corruption, since av_free() is being called on
memory that was allocated using
IDirectXVideoAccelerationService::CreateSurface().

Signed-off-by: Aaron Levinson <alevinsn@aracnet.com>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Reviewed-by: Steven Liu <lingjiujianke@gmail.com>
Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2017-05-20 09:41:45 +02:00
avbuild build: Generalize yasm/nasm-related variable names 2017-03-01 10:18:15 +01:00
avtools avconv: Flush output BSFs when stream copy reaches EOF 2017-05-16 22:23:14 +01:00
compat compat/atomics: add typecasts in atomic_compare_exchange_strong() 2016-12-08 15:53:58 -05:00
doc doc: Document hwupload, hwdownload and hwmap filters 2017-05-16 22:23:09 +01:00
libavcodec decode: fix the code reducing cropping to preserve alignment 2017-05-20 09:41:30 +02:00
libavdevice avfoundation: update to use AVCodecParameters 2017-04-26 11:47:31 -04:00
libavfilter vf_hwmap: Add reverse mapping for hardware frames 2017-04-30 17:33:18 +01:00
libavformat movenc-test: Add tests for negative cts offsets 2017-05-15 14:08:53 +03:00
libavresample Bump major versions of all libraries 2017-03-23 09:56:20 +01:00
libavutil avutil/hwcontext_dxva2: Don't improperly free IDirect3DSurface9 objects 2017-05-20 09:41:45 +02:00
libswscale swscale-test: const correctness 2017-04-24 16:10:05 +02:00
presets
tests movenc-test: Add tests for negative cts offsets 2017-05-15 14:08:53 +03:00
tools build: Move entries related to building TOOLS to a subdirectory Makefile 2016-12-07 11:02:31 +01:00
.gitattributes
.gitignore build: Ignore generated .version files 2017-02-03 11:37:53 +01:00
.travis.yml travis: Exclude gcc for the macOS target 2017-04-20 12:53:08 +02:00
Changelog Add ClearVideo decoder 2017-04-25 15:39:10 +02:00
configure arm: Avoid using .dn register aliases 2017-05-15 09:52:18 +03:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
INSTALL
LICENSE Remove the legacy X11 screen grabber 2016-07-29 19:03:10 +02:00
Makefile build: Allow generating dependencies as a side-effect of assembling 2017-03-01 10:18:15 +01:00
README
README.md doc: Add travis badge 2015-09-14 00:19:08 +02:00
RELEASE Make the RELEASE file match with the most recent tag 2016-10-14 13:52:51 -04:00

Libav

Build Status

Libav is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides a mean to alter decoded Audio and Video through chain of filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libavresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • avconv is a command line toolbox to manipulate, convert and stream multimedia content.
  • avplay is a minimalistic multimedia player.
  • avprobe is a simple analisys tool to inspect multimedia content.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Conding examples are available in the doc/example directory.

License

Libav codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.