summaryrefslogtreecommitdiff
path: root/libavcodec/rkmppdec.c
Commit message (Collapse)AuthorAge
* avcodec: Add FF_CODEC_CAP_NOT_INIT_THREADSAFEAndreas Rheinhardt2022-07-18
| | | | | | | This is in preparation of switching the default init-thread-safety to a codec being init-thread-safe. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/codec_internal: Use union for FFCodec decode/encode callbacksAndreas Rheinhardt2022-04-05
| | | | | | | | | | | This is possible, because every given FFCodec has to implement exactly one of these. Doing so decreases sizeof(FFCodec) and therefore decreases the size of the binary. Notice that in case of position-independent code the decrease is in .data.rel.ro, so that this translates to decreased memory consumption. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/codec_internal: Add FFCodec, hide internal part of AVCodecAndreas Rheinhardt2022-03-21
| | | | | | | | | | | | | | | | Up until now, codec.h contains both public and private parts of AVCodec. This exposes the internals of AVCodec to users and leads them into the temptation of actually using them and forces us to forward-declare structures and types that users can't use at all. This commit changes this by adding a new structure FFCodec to codec_internal.h that extends AVCodec, i.e. contains the public AVCodec as first member; the private fields of AVCodec are moved to this structure, leaving codec.h clean. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec: Constify AVCodecsAndreas Rheinhardt2021-04-27
| | | | | | | | | | Given that the AVCodec.next pointer has now been removed, most of the AVCodecs are not modified at all any more and can therefore be made const (as this patch does); the only exceptions are the very few codecs for external libraries that have a init_static_data callback. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* lavc: Mark hw_config pointer arrays as constMark Thompson2020-11-08
| | | | They are read-only just like the HWConfig structures they point to.
* lavc: Rename hwaccel.h to hwconfig.hMark Thompson2020-04-26
| | | | | This already applied to decoders as well as hwaccels, and adding encoder support was going to make the name even more inaccurate.
* avcodec/rkmpp : remove stream start retries before first frame.LongChair2018-01-06
| | | | | | | | | those were needed because of some odd mpp behavior that seems to have been fixed. Makes the code cleaner. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* avcodec/rkmpp : Fix broken build due to missing control operationLongChair2018-01-06
| | | | | | | | | | | | | | This patch is taking care of https://trac.ffmpeg.org/ticket/6834. It seems that one of the control operations that was available to get the free decoders input slots was removed. There is another control operation to retrieve the used slots. Given that the input slot count is hardcoded to 4 in mpp at this point, replacing the old control operation by the other one. This was tested on Rockchip ROCK64. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* rkmppdec: move AV_CODEC_CAP_AVOID_PROBING to the correct fieldwm42017-12-21
| | | | | | AVCodec.caps_internal doesn't hold this field. (Untested.)
* avcodec: add metadata to identify wrappers and hardware decoderswm42017-12-14
| | | | | | | | | | | | | | | | | | | | | Explicitly identify decoder/encoder wrappers with a common name. This saves API users from guessing by the name suffix. For example, they don't have to guess that "h264_qsv" is the h264 QSV implementation, and instead they can just check the AVCodec .codec and .wrapper_name fields. Explicitly mark AVCodec entries that are hardware decoders or most likely hardware decoders with new AV_CODEC_CAPs. The purpose is allowing API users listing hardware decoders in a more generic way. The proposed AVCodecHWConfig does not provide this information fully, because it's concerned with decoder configuration, not information about the fact whether the hardware is used or not. AV_CODEC_CAP_HYBRID exists specifically for QSV, which can have software implementations in case the hardware is not capable. Based on a patch by Philip Langdale <philipl@overt.org>. Merges Libav commit 47687a2f8aca3f65b6fdd117b1cb66a7409a7fd1.
* rkmpp: Add hardware config informationMark Thompson2017-12-04
| | | | | This is not strictly required here because the rkmpp decoder does not call ff_get_format(), but it may be helpful metadata for users.
* avcodec/rkmppdec: check wether typoMichael Niedermayer2017-10-11
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavc: Add support for RockChip Media Process PlatformLionel CHAZALLON2017-09-27
This adds hardware decoding for H.264 / HEVC / VP8 / VP9 using the MPP Rockchip API. It returns frames holding an AVDRMFrameDescriptor struct in buf[0] that allows drm / dmabuf usage. Tested on RK3288 (TinkerBoard) and RK3328. Signed-off-by: Mark Thompson <sw@jkqxz.net>