summaryrefslogtreecommitdiff
path: root/libavcodec/mediacodec_wrapper.c
Commit message (Collapse)AuthorAge
* libavcodec, libavdevice: Remove unnecessary includes of version.hMartin Storsjö2022-02-24
| | | | | | | | | | | | | | | xvmc.h used FF_API_* macros before, but they were removed in 1c63aed232febf4404659bf006237ee4f7f17c9c, leaving the include unused. The ones in android_camera.c and mediacodec_wrapper.c have been added due to a misunderstanding, fixed in c0bce367e4932f0fb09195e6978ac1a5a60480a4 and 13b77af2f0b56d6c87bb147947337981c21f4245. The one in mediacodec.c seems to never have been used at all. Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec/mediacodec_wrapper: use MediaCodecInfo.isSoftwareOnly() when availablesfan52021-03-10
| | | | | Added in Android 10 it provides a reliable way of filtering out software decoders, unlike existing string-based checks.
* avcodec/mediacodec_wrapper: check if codec is software earliersfan52021-03-10
|
* avcodec/mediacodec_wrapper: fix {input,output}_buffers global reference leakMatthieu Bouron2020-04-15
| | | | | | Fixes ticket #8607. Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
* avcodec/mediacodec_wrapper: remove unused local variables in ↵Matthieu Bouron2019-07-22
| | | | ff_AMediaCodec_getCodecNameByType()
* avcodec/mediacodec_wrapper: fix a potential local reference leak in ↵Matthieu Bouron2019-07-22
| | | | ff_AMediaCodec_getCodecNameByType()
* avcodec/mediacodec_wrapper: fix a local reference leak in ↵Matthieu Bouron2019-07-22
| | | | ff_AMediaCodec_getName()
* avcodec/mediacodec: add av_mediacodec_render_buffer_at_time()Aman Gupta2018-10-11
| | | | | | | | | | The existing av_mediacodec_release_buffer allows the user to render or discard the Surface-backed frame. This new method allows the user to control exactly when the frame will be rendered to its SurfaceView. Available since Android API 21. Signed-off-by: Aman Gupta <aman@tmm1.net>
* avcodec/mediacodec_wrapper: add helper to fetch SDK_INTAman Gupta2018-05-04
| | | | | Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com> Signed-off-by: Aman Gupta <aman@tmm1.net>
* avcodec: Fix AVClass .versionMichael Niedermayer2018-04-19
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mediacodec_wrapper: fix false positives in swdec blacklistStefan _2018-03-07
| | | | | 'OMX.SEC.avc.dec' is a valid hardware decoder, while the decoders we seek to blacklist all match 'OMX.SEC.*.sw.dec'.
* avcodec/mediacodec_wrapper: blacklist more software decodersStefan _2018-03-06
| | | | | | | | Additionally blacklist ffmpeg, Samsung and Qualcomm software implementations offered through MediaCodec. Signed-off-by: Aman Gupta <aman@tmm1.net> Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
* avcodec/mediacodec_wrapper: load and use MediaFormat.constainsKey()Matthieu Bouron2018-03-03
| | | | | Avoids triggering an exception in MediaFormat getter functions if the key does not exist.
* lavc/mediacodec_wrapper: allocate MediaCodec.BufferInfo onceMatthieu Bouron2018-01-06
|
* lavc/mediacodec_wrapper: fix potential jni global reference leakMatthieu Bouron2017-12-16
|
* lavc/mediacodec_wrapper: factorize MediaCodec creation functionsMatthieu Bouron2017-12-16
|
* lavc/mediacodec_wrapper: fix jni vaargs typesMatthieu Bouron2017-09-15
| | | | Fixes decoding on 32-bit devices with Android NDK >= 15.
* lavc/mediacodec_wrapper: do not declare ↵Matthieu Bouron2017-05-23
| | | | JNIAMedia{Codec,CodecList,Format}Fields on the stack
* lavc/mediacodec_wrapper: fix local reference leaksMatthieu Bouron2017-05-23
|
* lavc/mediacodec_wrapper: fix local reference leaksMatthieu Bouron2017-05-11
| | | | Reviewed-by: Clément Bœsch <u@pkh.me>
* lavc/mediacodec_wrapper: do not discard codecs reporting they do not support ↵Matthieu Bouron2016-10-19
| | | | | | | any profile Depending on the device, some (VP8/VP9/...) decoders report that they do not support any profiles.
* lavc: add hevc mediacodec decoderMatthieu Bouron2016-09-15
|
* lavc/ffjni: replace ff_jni_{attach,detach} with ff_jni_get_envMatthieu Bouron2016-07-27
| | | | | | | | | | | | | | If a JNI environment is not already attached to the thread where the MediaCodec calls are made the current implementation will attach / detach an environment for each MediaCodec call wasting some CPU time. ff_jni_get_env replaces ff_jni_{attach,detach} by permanently attaching an environment (if it is not already the case) to the current thread. The environment will be automatically detached at the thread destruction using a pthread_key callback. Saves around 5% of CPU time (out of 20%) while decoding a stream with MediaCodec.
* lavc: add mediacodec hwaccel supportMatthieu Bouron2016-07-08
|
* lavc/mediacodec: re-indent after previous commitMatthieu Bouron2016-06-15
|
* lavc/mediacodec: refactor ff_AMediaCodecList_getCodecByTypeMatthieu Bouron2016-06-15
| | | | | | | | | | | | | Allows to select a codec (encoder or decoder) only if it supports a specific profile. Adds ff_AMediaCodecProfile_getProfileFromAVCodecContext to convert an AVCodecContext profile to a MediaCodec profile. It only supports H264 for now. The codepath using MediaCodecList.findDecoderForFormat() (Android >= 5.0) has been dropped as this method does not allow to select a decoder compatible with a specific profile.
* lavc/mediacodec: bypass width/height restrictions when looking for a decoderMatthieu Bouron2016-06-07
| | | | | | | | | Codec width/height restrictions seem hardcoded at the OMX level and seem arbitrary. Bypassing those restrictions allows a device to decode streams at higher resolutions. For example it allows a Nexus 5 to decode h264 streams with a resolution higher than 1920x1080.
* lavc/mediacodec: rename MediaFormat field clazz to mediaformat_class for ↵Matthieu Bouron2016-06-07
| | | | consistency
* lavc/mediacodec: move struct declarations at the beginMatthieu Bouron2016-06-07
|
* lavc/mediacodec: rename jfields_mapping to jni_amediacodeclist_mappingMatthieu Bouron2016-06-07
|
* lavc/mediacodec: do not delete a local reference twice in case of errorMatthieu Bouron2016-06-07
|
* lavc/mediacodec: add missing MediaCodec.Get{Input,Output}Buffer() checksMatthieu Bouron2016-05-25
|
* lavc/mediacodec: factorize static fields initializationMatthieu Bouron2016-05-25
|
* lavc/mediacodec: remove stray empty linesMatthieu Bouron2016-03-15
|
* lavc: add h264 mediacodec decoderMatthieu Bouron2016-03-07