- 27 Jul, 2017 1 commit
-
-
James Almer authored
-
- 27 Jun, 2017 2 commits
-
-
wm4 authored
This also adds support to avconv (which is trivial due to the new hwaccel API being generic enough). The new decoder setup code in dxva2.c is significantly based on work by Steve Lhomme <robux4@gmail.com>, but with heavy changes/rewrites. Merges Libav commit f9e7a2f9. Also adds untested VP9 support. The check for DXVA2 COBJs is removed. Just update your MinGW to something newer than a 5 year old release. Signed-off-by:
Diego Biurrun <diego@biurrun.de>
-
wm4 authored
To be used with the new d3d11 hwaccel decode API. With the new hwaccel API, we don't want surfaces to depend on the decoder (other than the required dimension and format). The old D3D11VA pixfmt uses ID3D11VideoDecoderOutputView pointers, which include the decoder configuration, and thus is incompatible with the new hwaccel API. This patch introduces AV_PIX_FMT_D3D11, which uses ID3D11Texture2D and an index. It's simpler and compatible with the new hwaccel API. The introduced hwcontext supports only the new pixfmt. Frame upload code untested. Significantly based on work by Steve Lhomme <robux4@gmail.com>, but with heavy changes/rewrites. Merges Libav commit fff90422. Signed-off-by:
Diego Biurrun <diego@biurrun.de>
-
- 24 Jun, 2017 1 commit
-
-
Marton Balint authored
Reviewed-by:
Michael Niedermayer <michael@niedermayer.cc> Signed-off-by:
Marton Balint <cus@passwd.hu>
-
- 14 Jun, 2017 4 commits
-
-
Mark Thompson authored
Use the flags argument of av_hwframe_ctx_create_derived() to pass the mapping flags which will be used on allocation. Also, set the format and hardware context on the allocated frame automatically - the user should not be required to do this themselves. (cherry picked from commit c5714b51)
-
Mark Thompson authored
(cherry picked from commit 64a5260c)
-
Mark Thompson authored
Adds functions to convert to/from strings and a function to iterate over all supported device types. Also adds a new invalid type AV_HWDEVICE_TYPE_NONE, which acts as a sentinel value. (cherry picked from commit b7487f4f)
-
Mark Thompson authored
Creates a new device context from another of a different type which refers to the same underlying hardware. (cherry picked from commit b266ad56)
-
- 15 May, 2017 1 commit
-
-
wm4 authored
This adds tons of code for no other benefit than making VideoToolbox support conform with the new hwaccel API (using hw_device_ctx and hw_frames_ctx). Since VideoToolbox decoding does not actually require the user to allocate frames, the new code does mostly nothing. One benefit is that ffmpeg_videotoolbox.c can be dropped once generic hwaccel support for ffmpeg.c is merged from Libav. Does not consider VDA or VideoToolbox encoding. Fun fact: the frame transfer functions are copied from vaapi, as the mapping makes copying generic boilerplate. Mapping itself is not exported by the VT code, because I don't know how to test.
-
- 05 May, 2017 1 commit
-
-
Clément Bœsch authored
-
- 04 May, 2017 1 commit
-
-
wm4 authored
This is a newer API that is intended for decoders like the cuvid wrapper. Until now, the wrapper required to set an awkward "incomplete" hw_frames_ctx to set the device. Now the device can be set directly, and the user can get AV_PIX_FMT_CUDA output for a specific device simply by setting hw_device_ctx. This still does a dummy ff_get_format() call at init time, and should be fully backward compatible.
-
- 12 Apr, 2017 1 commit
-
-
Michael Niedermayer authored
Signed-off-by:
Michael Niedermayer <michael@niedermayer.cc>
-
- 11 Apr, 2017 1 commit
-
-
Steven Liu authored
Add av_strireplace() into APIChanges Reviewed-by:
James Almer <jamrial@gmail.com> Signed-off-by:
Steven Liu <lq@chinaffmpeg.org>
-
- 06 Apr, 2017 2 commits
-
-
Steve Lhomme authored
These data are necessary when transmitting HDR over HDMI. Signed-off-by:
James Almer <jamrial@gmail.com>
-
Steve Lhomme authored
As found in HEVC. Signed-off-by:
James Almer <jamrial@gmail.com>
-
- 31 Mar, 2017 2 commits
-
-
James Almer authored
Reviewed-by:
Benoit Fouet <benoit.fouet@free.fr> Reviewed-by:
Vittorio Giovara <vittorio.giovara@gmail.com> Signed-off-by:
James Almer <jamrial@gmail.com>
-
Michael Niedermayer authored
-
- 29 Mar, 2017 1 commit
-
-
Clément Bœsch authored
-
- 27 Mar, 2017 1 commit
-
-
wm4 authored
The old "API" that signaled rotation as a metadata value has been replaced by DISPLAYMATRIX side data quite a while ago. There is no reason to make muxers/demuxers/API users support both. In addition, the metadata API is dangerous, as user tags could "leak" into it, creating unintended features or bugs. ffmpeg CLI has to be updated to use the new API. In particular, we must not allow to leak the "rotate" tag into the muxer. Some muxers will catch this properly (like mov), but others (like mkv) can add it as generic tag. Note applications, which use libavformat and assume the old rotate API, will interpret such "rotate" user tags as rotate metadata (which it is not), and incorrectly rotate the video. The ffmpeg/ffplay tools drop the use of the old API for muxing and demuxing, as all muxers/demuxers support the new API. This will mean that the tools will not mistakenly interpret per-track "rotate" user tags as rotate metadata. It will _not_ be treated as regression. Unfortunately, hacks have been added, that allow the user to override rotation by setting metadata explicitly, e.g. via -metadata:s:v:0 rotate=0 See references to trac #4560. fate-filter-meta-4560-rotate0 tests this. It's easier to adjust the hack for supporting it than arguing for its removal, so ffmpeg CLI now explicitly catches this case, and essentially replaces the "rotate" value with a display matrix side data. (It would be easier for both user and implementation to create an explicit option for rotation.) When the code under FF_API_OLD_ROTATE_API is disabled, one FATE reference file has to be updated (because "rotate" is not exported anymore). Tested-by:
Michael Niedermayer <michael@niedermayer.cc> Reviewed-by:
Michael Niedermayer <michael@niedermayer.cc>
-
- 23 Mar, 2017 2 commits
-
-
wm4 authored
This supports retrieving the device from a provided hw_frames_ctx, and automatically creating a hw_frames_ctx if hw_device_ctx is set. The old API is not deprecated yet. The user can still use av_vdpau_bind_context() (with or without setting hw_frames_ctx), or use the API before that by allocating and setting hwaccel_context manually. Cherry-picked from Libav commit 1a7ddba5. (Adds missing APIchanges entry to the Libav version.) Reviewed-by:
Mark Thompson <sw@jkqxz.net>
-
wm4 authored
This "reuses" the flags introduced for the av_vdpau_bind_context() API function, and makes them available to all hwaccels. This does not affect the current vdpau API, as av_vdpau_bind_context() should obviously override the AVCodecContext.hwaccel_flags flags for the sake of compatibility. Cherry-picked from Libav commit 16a163b5. Reviewed-by:
Mark Thompson <sw@jkqxz.net>
-
- 21 Mar, 2017 1 commit
-
-
wm4 authored
This patch deprecates anything that has to do with merging/splitting side data. Automatic side data merging (and splitting), as well as all API symbols involved in it, are removed completely. Two FF_API_ defines are dedicated to deprecating API symbols related to this: FF_API_MERGE_SD_API removes av_packet_split/merge_side_data in libavcodec, and FF_API_LAVF_KEEPSIDE_FLAG deprecates AVFMT_FLAG_KEEP_SIDE_DATA in libavformat. Since it was claimed that changing the default from merging side data to not doing it is an ABI change, there are two additional FF_API_ defines, which stop using the side data merging/splitting by default (and remove any code in avformat/avcodec doing this): FF_API_MERGE_SD in libavcodec, and FF_API_LAVF_MERGE_SD in libavformat. It is very much intended that FF_API_MERGE_SD and FF_API_LAVF_MERGE_SD are quickly defined to 0 in the next ABI bump, while the API symbols are retained for a longer time for the sake of compatibility. AVFMT_FLAG_KEEP_SIDE_DATA will (very much intentionally) do nothing for most of the time it will still be defined. Keep in mind that no code exists that actually tries to unset this flag for any reason, nor does such code need to exist. Code setting this flag explicitly will work as before. Thus it's ok for AVFMT_FLAG_KEEP_SIDE_DATA to do nothing once side data merging has been removed from libavformat. In order to avoid that anyone in the future does this incorrectly, here is a small guide how to update the internal code on bumps: - next ABI bump (probably soon): - define FF_API_LAVF_MERGE_SD to 0, and remove all code covered by it - define FF_API_MERGE_SD to 0, and remove all code covered by it - next API bump (typically two years in the future or so): - define FF_API_LAVF_KEEPSIDE_FLAG to 0, and remove all code covered by it - define FF_API_MERGE_SD_API to 0, and remove all code covered by it This forces anyone who actually wants packet side data to temporarily use deprecated API to get it all. If you ask me, this is batshit fucked up crazy, but it's how we roll. Making AVFMT_FLAG_KEEP_SIDE_DATA to be set by default was rejected as an ABI change, so I'm going all the way to get rid of this once and for all. Reviewed-by:
James Almer <jamrial@gmail.com> Reviewed-by:
Rostislav Pehlivanov <atomnuker@gmail.com> Reviewed-by:
Michael Niedermayer <michael@niedermayer.cc>
-
- 20 Mar, 2017 2 commits
-
-
Clément Bœsch authored
-
Clément Bœsch authored
-
- 18 Mar, 2017 1 commit
-
-
Rostislav Pehlivanov authored
Not used by anything at all since we don't auto insert lavr filters. Reviewed-by:
wm4 <nfxjfg@googlemail.com> Signed-off-by:
Rostislav Pehlivanov <atomnuker@gmail.com>
-
- 07 Mar, 2017 1 commit
-
-
Vittorio Giovara authored
Signed-off-by:
Vittorio Giovara <vittorio.giovara@gmail.com>
-
- 02 Mar, 2017 2 commits
-
-
wm4 authored
If AVVideotoolboxContext.cv_pix_fmt_type is set to 0, don't set the kCVPixelBufferPixelFormatTypeKey value on the VT decoder. This makes VT output its native format, which can be much faster on some hardware iterations (if the native format does not match with the requested format, it will be converted, which is slow). The default is still forcing nv12.
-
wm4 authored
Allow all struct fields to be accessed directly, as long as they're public. Before this change, many fields were "public", but could be accessed via AVOption only. This meant they were effectively not public, but were present for documentation purposes, which was incredibly confusing at best.
-
- 13 Feb, 2017 2 commits
-
-
Mark Thompson authored
For use by codec implementations which can allocate frames internally.
-
wm4 authored
This is an extended version of the AVFrame.opaque field, which can be used to attach arbitrary user information to an AVFrame. The usefulness of the opaque field is rather limited, because it can store only up to 32 bits of information (or 64 bit on 64 bit systems). It's not possible to set this field to a memory allocation, because there is no way to deallocate it correctly. The opaque_ref field circumvents this by letting the user set an AVBuffer, which makes the user data refcounted. Signed-off-by:
Anton Khirnov <anton@khirnov.net> Merges Libav commit 04f3bd34.
-
- 24 Jan, 2017 1 commit
-
-
Marton Balint authored
Return a channel layout and the number of channels based on the specified name. This function is similar to av_get_channel_layout(), but can also parse unknown channel layout specifications. Unknown channel layout specifications are a decimal number and a capital 'C' suffix, in order to not break compatibility with the lowercase 'c' suffix, which is used for a guessed channel layout with the specified number of channels. Signed-off-by:
Marton Balint <cus@passwd.hu>
-
- 22 Jan, 2017 1 commit
-
-
Jonathan Campbell authored
seeds an AVLFG from binary data. Signed-off-by:
Michael Niedermayer <michael@niedermayer.cc>
-
- 17 Jan, 2017 1 commit
-
-
Mark Thompson authored
Deprecates struct vaapi_context and the installed header vaapi.h, to be removed at the next version bump. (cherry picked from commit 851960f6)
-
- 12 Jan, 2017 3 commits
-
-
Anton Khirnov authored
Also, add generic code for handling cropping, so the decoders can export just the cropping size and not bother with the rest.
-
Anton Khirnov authored
Extend the width/height doxy to clarify that it should store coded values.
-
Nicolas George authored
av_buffersink_get_frame_rate() did already exist; its argument becomes const.
-
- 09 Jan, 2017 1 commit
-
-
Diego Biurrun authored
size_t is the correct type to use for sizes.
-
- 07 Jan, 2017 1 commit
-
-
softworkz authored
This commit adds the avio_get_dyn_buf function which allows accessing the content of a DynBuffer without destroying it. This is required in matroskaenc for preliminary writing (correct) mkv headers. Context for this change is fixing regression bug #5977. Signed-off-by:
Michael Niedermayer <michael@niedermayer.cc>
-
- 10 Dec, 2016 1 commit
-
-
Michael Niedermayer authored
Signed-off-by:
Michael Niedermayer <michael@niedermayer.cc>
-
- 08 Dec, 2016 1 commit
-
-
Vittorio Giovara authored
Signed-off-by:
Vittorio Giovara <vittorio.giovara@gmail.com>
-