summaryrefslogtreecommitdiff
path: root/libavcodec
Commit message (Collapse)AuthorAge
* Merge commit '2ec9fa5ec60dcd10e1cb10d8b4e4437e634ea428'James Almer2017-03-21
|\ | | | | | | | | | | | | * commit '2ec9fa5ec60dcd10e1cb10d8b4e4437e634ea428': idct: Change type of array stride parameters to ptrdiff_t Merged-by: James Almer <jamrial@gmail.com>
| * idct: Change type of array stride parameters to ptrdiff_tDiego Biurrun2016-09-29
| | | | | | | | ptrdiff_t is the correct type for array strides and similar.
* | aacsbr: Turnoff in the event of over read.Alex Converse2017-03-21
| | | | | | | | | | | | | | | | | | | | Aliased compressed AAC bytes are almost certainly not meaningful SBR data. In the wild this causes harsh artifacts switching HE-AAC streams that don't have SBR headers aligned with segment boundaries. Turning off SBR falls back to a default set of upsampling parameters that can function as a sort of error concealment. This is consistent with how the decoder handles other sorts of errors.
* | Merge commit 'b2939a75270bc7e971462648168aa3a2a48c1c8c'Clément Bœsch2017-03-21
|\| | | | | | | | | | | | | * commit 'b2939a75270bc7e971462648168aa3a2a48c1c8c': blockdsp: Change type of array stride parameters to ptrdiff_t Merged-by: Clément Bœsch <u@pkh.me>
| * blockdsp: Change type of array stride parameters to ptrdiff_tDiego Biurrun2016-09-29
| | | | | | | | ptrdiff_t is the correct type for array strides and similar.
* | Merge commit '3281d823cdc7601c4900eb103958c05f59f65555'Clément Bœsch2017-03-21
|\| | | | | | | | | | | | | * commit '3281d823cdc7601c4900eb103958c05f59f65555': intrax8: Change type of array stride parameters to ptrdiff_t Merged-by: Clément Bœsch <u@pkh.me>
| * intrax8: Change type of array stride parameters to ptrdiff_tDiego Biurrun2016-09-29
| | | | | | | | | | | | ptrdiff_t is the correct type for array strides and similar. Also rename all such parameters to "stride" for consistency.
* | Merge commit '92c5755a185086067fe49e7e64c23a8e7011be31'Clément Bœsch2017-03-21
|\| | | | | | | | | | | | | * commit '92c5755a185086067fe49e7e64c23a8e7011be31': hpeldsp: arm: Update comments left behind in 25841dfe806a13de526ae09c11149ab1f83555a8 Merged-by: Clément Bœsch <u@pkh.me>
| * hpeldsp: arm: Update comments left behind in ↵Diego Biurrun2016-09-29
| | | | | | | | 25841dfe806a13de526ae09c11149ab1f83555a8
* | Merge commit '009adfd4fbdd78a890a4a65d6f141c467bb027fa'Clément Bœsch2017-03-21
|\| | | | | | | | | | | | | * commit '009adfd4fbdd78a890a4a65d6f141c467bb027fa': x86: fpel: Remove unnecessary sign extend Merged-by: Clément Bœsch <u@pkh.me>
| * x86: fpel: Remove unnecessary sign extendDiego Biurrun2016-09-29
| |
| * vaapi_h264: Set max_num_ref_frames to 1 when not using B framesMark Thompson2016-09-28
| |
| * vaapi_encode: Sync to input surface rather than outputMark Thompson2016-09-28
| | | | | | | | | | | | | | | | | | While outwardly bizarre, this change makes the behaviour consistent with other VAAPI encoders which sync to the encode /input/ picture in order to wait for /output/ from the encoder. It is not harmful on i965 (because synchronisation already happens in vaRenderPicture(), so it has no effect there), and it allows the encoder to work on mesa/gallium which assumes this behaviour.
| * vaapi_encode: Check packed header capabilitiesMark Thompson2016-09-28
| | | | | | | | | | This improves behaviour with drivers which do not support packed headers, such as AMD VCE on mesa/gallium.
| * vaapi_encode: Refactor initialisationMark Thompson2016-09-28
| | | | | | | | | | | | | | | | This allows better checking of capabilities and will make it easier to add more functionality later. It also commonises some duplicated code around rate control setup and adds more comments explaining the internals.
* | Merge commit '7bf8db4db61eb09fac00eb665d8ec58de8817da6'Clément Bœsch2017-03-21
|\| | | | | | | | | | | | | * commit '7bf8db4db61eb09fac00eb665d8ec58de8817da6': tdsc: use the new decoding API Merged-by: Clément Bœsch <u@pkh.me>
| * tdsc: use the new decoding APIAnton Khirnov2016-09-28
| |
* | Merge commit 'de2ae3c1fae5a2eb539b9abd7bc2a9ca8c286ff0'Clément Bœsch2017-03-21
|\| | | | | | | | | | | | | | | | | * commit 'de2ae3c1fae5a2eb539b9abd7bc2a9ca8c286ff0': lavc: add clobber tests for the new encoding/decoding API The merge only re-order what we already have. Merged-by: Clément Bœsch <u@pkh.me>
| * lavc: add clobber tests for the new encoding/decoding APIAnton Khirnov2016-09-28
| |
* | Merge commit '68811a41c70f019bde6df2a4f289674228c48958'Clément Bœsch2017-03-21
|\| | | | | | | | | | | | | * commit '68811a41c70f019bde6df2a4f289674228c48958': mpegvideo_enc: use the new encoding API for b_strategy=2 Merged-by: Clément Bœsch <u@pkh.me>
| * mpegvideo_enc: use the new encoding API for b_strategy=2Anton Khirnov2016-09-28
| |
* | Merge commit 'f03f78bc1c99b1e29624418e2f7315b8a47981e9'Clément Bœsch2017-03-21
|\| | | | | | | | | | | | | * commit 'f03f78bc1c99b1e29624418e2f7315b8a47981e9': mpegvideo_enc: handle encoding errors with b_strategy=2 Merged-by: Clément Bœsch <u@pkh.me>
| * mpegvideo_enc: handle encoding errors with b_strategy=2Anton Khirnov2016-09-28
| |
* | Merge commit '6f733ecab6faff2a16534f2ce7d2ffd41c07846b'Clément Bœsch2017-03-21
|\| | | | | | | | | | | | | * commit '6f733ecab6faff2a16534f2ce7d2ffd41c07846b': mpegvideo_enc: add const to the AVCodec instance Merged-by: Clément Bœsch <u@pkh.me>
| * mpegvideo_enc: add const to the AVCodec instanceAnton Khirnov2016-09-28
| |
| * nvenc: Extended rate-control support as provided by SDK 7Yogender Gupta2016-09-24
| | | | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org> Signed-off-by: Diego Biurrun <diego@biurrun.de>
| * nvenc: Add support for high bitdepthYogender Gupta2016-09-24
| | | | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org> Signed-off-by: Diego Biurrun <diego@biurrun.de>
| * nvenc: Add some easier to understand presets that match x264 terminologyYogender Gupta2016-09-24
| | | | | | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org> Signed-off-by: Diego Biurrun <diego@biurrun.de> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * nvenc: Make sure that enum and array index matchLuca Barbato2016-09-24
| | | | | | | | | | | | | | | | And use a macro to reduce the boilerplate. Signed-off-by: Luca Barbato <lu_zero@gentoo.org> Signed-off-by: Diego Biurrun <diego@biurrun.de> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | lavc/hwaccel: fix header copyrightClément Bœsch2017-03-21
| | | | | | | | | | | | | | | | | | It was done on a whim because of the FATE header check and was actually meant to be removed before pushing. Also, nobody in review spotted it. Reviewed-by: wm4
* | avcodec/fmvc: small refactoring in decode_type1()Diego Biurrun2017-03-21
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | avcodec: remove warning against using frame threading with hwaccelswm42017-03-21
| | | | | | | | | | | | | | libavcodec now automatically serializes decoding for hwaccels which are not thread-safe. This means API users, which rely on the libavcodec native software fallback mechanism, can now simply enable threading without running into problems.
* | pthread_frame: remove some dead codewm42017-03-21
| | | | | | | | Whatever it was supposed to do.
* | pthread_frame: do not run hwaccel decoding asynchronously unless it's safeAnton Khirnov2017-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Certain hardware decoding APIs are not guaranteed to be thread-safe, so having the user access decoded hardware surfaces while the decoder is running in another thread can cause failures (this is mainly known to happen with DXVA2). For such hwaccels, only allow the decoding thread to run while the user is inside a lavc decode call (avcodec_send_packet/receive_frame). Merges Libav commit d4a91e65. Signed-off-by: wm4 <nfxjfg@googlemail.com> Tested-by: Michael Niedermayer <michael@niedermayer.cc>
* | pthread_frame: ensure the threads don't run simultaneously with hwaccelAnton Khirnov2017-03-21
| | | | | | | | | | | | Merges Libav commit 8dfba25c. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | pthread_frame: use better memory orders for frame progressWan-Teh Chang2017-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This improves commit 59c70227405c214b29971e6272f3a3ff6fcce3d0. In ff_thread_report_progress(), the fast code path can load progress[field] with the relaxed memory order, and the slow code path can store progress[field] with the release memory order. These changes are mainly intended to avoid confusion when one inspects the source code. They are unlikely to have measurable performance improvement. ff_thread_report_progress() and ff_thread_await_progress() form a pair. ff_thread_await_progress() reads progress[field] with the acquire memory order (in the fast code path). Therefore, one expects to see ff_thread_report_progress() write progress[field] with the matching release memory order. In the fast code path in ff_thread_report_progress(), the atomic load of progress[field] doesn't need the acquire memory order because the calling thread is trying to make the data it just decoded visible to the other threads, rather than trying to read the data decoded by other threads. In ff_thread_get_buffer(), initialize progress[0] and progress[1] using atomic_init(). Signed-off-by: Wan-Teh Chang <wtc@google.com> Signed-off-by: Anton Khirnov <anton@khirnov.net> Merges Libav commit 343e2833. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | pthread_frame: Unreference hw_frames_ctx on per-thread codec contextsMark Thompson2017-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When decoding with threads enabled, the get_format callback will be called with one of the per-thread codec contexts rather than with the outer context. If a hwaccel is in use too, this will add a reference to the hardware frames context on that codec context, which will then propagate to all of the other per-thread contexts for decoding. Once the decoder finishes, however, the per-thread contexts are not freed normally, so these references leak. Merges Libav commit fd0fae60. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | pthread_frame: properly propagate the hw frame context across frame threadsAnton Khirnov2017-03-21
| | | | | | | | | | | | Merges Libav commit 84f22568. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | pthread_frame: use atomics for frame progressAnton Khirnov2017-03-21
| | | | | | | | | | | | Merges Libav commit 59c70227. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | pthread_frame: use atomics for PerThreadContext.stateAnton Khirnov2017-03-21
| | | | | | | | | | | | Merges Libav commit 64a31b28. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | avcodec, avformat: deprecate anything related to side data mergingwm42017-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | lavc/nvenc: misc cosmetics to reduce diff with LibavClément Bœsch2017-03-20
| |
* | Merge commit '12004a9a7f20e44f4da2ee6c372d5e1794c8d6c5'Clément Bœsch2017-03-20
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '12004a9a7f20e44f4da2ee6c372d5e1794c8d6c5': audiodsp/x86: yasmify vector_clipf_sse audiodsp: reorder arguments for vector_clipf Merged the version from Libav after a discussion with James Almer on IRC: 19:22 <ubitux> jamrial: opinion on 12004a9a7f20e44f4da2ee6c372d5e1794c8d6c5? 19:23 <ubitux> it was apparently yasmified differently 19:23 <ubitux> (it depends on the previous commit arg shuffle) 19:24 <ubitux> i don't see the magic movsxdifnidn in your port btw 19:24 <ubitux> it's a port from 1d36defe94c7d7ebf995d4dbb4f878d06272f9c6 19:25 <jamrial> seems better thanks to said arg shuffle 19:25 <jamrial> the loop is the same, but init is simpler 19:25 <jamrial> probably worth merging 19:25 <ubitux> OK 19:25 <ubitux> thanks 19:26 <jamrial> curious they didn't make len ptrdiff_t after the previous bunch of commits, heh 19:26 <ubitux> yeah indeed Both commits are merged at the same time to prevent a conflict with our existing yasmified ff_vector_clipf_sse. Merged-by: Clément Bœsch <u@pkh.me>
| * audiodsp/x86: yasmify vector_clipf_sseAnton Khirnov2016-09-22
| |
| * audiodsp: reorder arguments for vector_clipfAnton Khirnov2016-09-22
| | | | | | | | | | | | | | This will make the x86 asm simpler. ARM conversion by Martin Storsjö <martin@martin.st> and Janne Grunau <janne-libav@jannau.net>
* | Merge commit 'bf58545aace7d14522ce4fa680c7b3ff62109a3a'Clément Bœsch2017-03-20
|\| | | | | | | | | | | | | * commit 'bf58545aace7d14522ce4fa680c7b3ff62109a3a': audiodsp: fix vector_clipf documentation Merged-by: Clément Bœsch <u@pkh.me>
| * audiodsp: fix vector_clipf documentationAnton Khirnov2016-09-22
| | | | | | | | | | The x86 version processes 16 floats per iteration, so len must be a multiple of 16.
| * blockdsp: drop the high_bit_depth parameterAnton Khirnov2016-09-22
| | | | | | | | | | It has no effect, since the code is supposed to operate the same way for any bit depth.
* | lavc/arm: fix indent in blockdsp_init_neonClément Bœsch2017-03-20
| |
* | Merge commit '75d98e30afab61542faab3c0f11880834653bd6b'Clément Bœsch2017-03-20
|\| | | | | | | | | | | | | * commit '75d98e30afab61542faab3c0f11880834653bd6b': audiodsp/x86: clear the high bits of the order parameter on 64bit Merged-by: Clément Bœsch <u@pkh.me>