summaryrefslogtreecommitdiff
path: root/libavcodec/hapenc.c
Commit message (Collapse)AuthorAge
* avcodec: Make init-threadsafety the defaultAndreas Rheinhardt2022-07-18
| | | | | | | | | | | and remove FF_CODEC_CAP_INIT_THREADSAFE All our native codecs are already init-threadsafe (only wrappers for external libraries and hwaccels are typically not marked as init-threadsafe yet), so it is only natural for this to also be the default state. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/hapenc: use the common texturedsp encode functionMarton Balint2022-04-10
| | | | | | And add slice thread capabilities. Signed-off-by: Marton Balint <cus@passwd.hu>
* 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/internal: Move FF_CODEC_CAP_* to a new header codec_internal.hAndreas Rheinhardt2022-03-21
| | | | | | | | | | Also move FF_CODEC_TAGS_END as well as struct AVCodecDefault. This reduces the amount of files that have to include internal.h (which comes with quite a lot of indirect inclusions), as e.g. most encoders don't need it. It is furthemore in preparation for moving the private part of AVCodec out of the public codec.h. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/encoders: Remove redundant setting of AV_PKT_FLAG_KEYAndreas Rheinhardt2021-09-28
| | | | | | | It is now set generically for all those encoders whose corresponding AVCodecDescriptor has the AV_CODEC_PROP_INTRA_ONLY. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/encode: Always use intermediate buffer in ff_alloc_packet2()Andreas Rheinhardt2021-06-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | Up until now, ff_alloc_packet2() has a min_size parameter: It is supposed to be a lower bound on the final size of the packet to allocate. If it is not too far from the upper bound (namely, if it is at least half the upper bound), then ff_alloc_packet2() already allocates the final, already refcounted packet; if it is not, then the packet is not refcounted and its data only points to a buffer owned by the AVCodecContext (in this case, the packet will be made refcounted in encode_simple_internal() in libavcodec/encode.c). The goal of this was to avoid data copies and intermediate buffers if one has a precise lower bound. Yet those encoders for which precise lower bounds exist have recently been switched to ff_get_encode_buffer() (which automatically allocates final buffers), leaving only two encoders to actually set the min_size to something else than zero (namely aliaspixenc and hapenc). Both of these encoders use a very low lower bound that is not helpful in any nontrivial case. This commit therefore removes the min_size parameter as well as the codepath in ff_alloc_packet2() for the allocation of final buffers. Furthermore, the function has been renamed to ff_alloc_packet() and moved to encode.h alongside ff_get_encode_buffer(). 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>
* avcodec/hap: add "compressor" option to Hap encoder to disable secondary ↵Tom Butterworth2016-11-10
| | | | | | | | | | | | | compression The secondary compression in Hap is optional, this change exposes that option to the user as some use-cases favour higher bitrate files to reduce workload decoding. Adds "none" or "snappy" as options for "compressor". Selecting "none" disregards "chunks" option: chunking is only of benefit decompressing Snappy. Reviewed-by: Martin Vignali <martin.vignali@gmail.com> Signed-off-by: Tom Butterworth <bangnoise@gmail.com>
* avcodec/hap: pass texture-compression destination as argument, not in contextTom Butterworth2016-11-08
| | | | | | | This allows a subsequent change to compress directly into the output packet when possible. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Tom Butterworth <bangnoise@gmail.com>
* avcodec/hap: consistent name for codecTom Butterworth2016-11-04
| | | | | | | "Vidvox Hap", not "Vidvox Hap encoder" or "Vidvox Hap decoder". Fixes bad name in "ffmpeg -codecs", matches other codec naming. Signed-off-by: Paul B Mahol <onemda@gmail.com>
* lavc/hapenc: Use the correct printf length modifier for size_t arguments.Carl Eugen Hoyos2016-11-02
| | | | | | | Fixes the following warning: libavcodec/hapenc.c:122:20: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘size_t’ [-Wformat] Based on a patch by Diego Biurrun.
* avcodec/hap: set bits_per_coded_sampleTom Butterworth2015-10-23
| | | | | | fixes issue where alpha is ignored in some players Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hapenc: Remove use of deprecated ff_alloc_packet()Michael Niedermayer2015-08-05
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hap: (trivial) rename enum values and document their meaningTom Butterworth2015-07-23
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hap: (trivial) clarify commentTom Butterworth2015-07-23
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Support the Hap chunked frame formatTom Butterworth2015-07-22
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Merge commit '7ca3e5203f133eb41a0b5c3a1d753a7427ba72e7'Michael Niedermayer2015-06-22
| | | | | | | | | | | | | | * commit '7ca3e5203f133eb41a0b5c3a1d753a7427ba72e7': Hap decoder and encoder Conflicts: Changelog configure doc/general.texi libavcodec/allcodecs.c libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
* Hap decoder and encoderVittorio Giovara2015-06-22
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>