summaryrefslogtreecommitdiff
path: root/libavcodec/ffv1.h
Commit message (Collapse)AuthorAgeFilesLines
* avcodec/ffv1: use 64-bit frame counterMarton Balint2023-01-261-1/+1
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec/ffv1: Move ffv1_template.c inclusion to dec/enc templatesAndreas Rheinhardt2022-10-201-12/+0
| | | | | | | | | | | | | | | | | | | Both the FFV1 decoder and encoder use a template of their own to generate code multiple times. They also use a common template, used by both decoder and encoder templates which is currently instantiated in ffv1.h (and therefore also in ffv1.c, which doesn't need it at all). All these templates have the prerequisite that two macros are defined, namely RENAME() and TYPE. The codec-specific templates call the functions generated via the common template via the RENAME() macro and therefore the macros used for the common template must coincide with the macros used for the codec-specific templates. But then it is better to not instantiate the common template in ffv1.h, but in the codec specific templates. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/ffv1enc: Don't create and keep unnecessary referenceAndreas Rheinhardt2022-08-181-0/+1
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/thread: Don't use ThreadFrame when unnecessaryAndreas Rheinhardt2022-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | The majority of frame-threaded decoders (mainly the intra-only) need exactly one part of ThreadFrame: The AVFrame. They don't need the owners nor the progress, yet they had to use it because ff_thread_(get|release)_buffer() requires it. This commit changes this and makes these functions work with ordinary AVFrames; the decoders that need the extra fields for progress use ff_thread_(get|release)_ext_buffer() which work exactly as ff_thread_(get|release)_buffer() used to do. This also avoids some unnecessary allocations of progress AVBuffers, namely for H.264 and HEVC film grain frames: These frames are not used for synchronization and therefore don't need a ThreadFrame. Also move the ThreadFrame structure as well as ff_thread_ref_frame() to threadframe.h, the header for frame-threaded decoders with inter-frame dependencies. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* all: Remove unnecessary libavcodec/internal.h inclusionsAndreas Rheinhardt2022-02-081-4/+0
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/ffv1, ffv1dec: Add const where appropriateAndreas Rheinhardt2021-12-191-2/+2
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* Remove unnecessary avassert.h inclusionsAndreas Rheinhardt2021-07-221-1/+0
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* libavcodec, libpostproc: Remove outcommented START/STOP_TIMERAndreas Rheinhardt2020-03-141-1/+0
| | | | | | | as well as includes of libavutil/timer.h. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1: Simplify update_vlc_state()Michael Niedermayer2019-01-311-10/+4
| | | | | | About 0.5% faster Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1: Simplify fold()Michael Niedermayer2019-01-311-3/+1
| | | | | | | No speed difference, or slightly faster (the difference is too small so it may be noise that this appears faster) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1: Increase the maximum number of slices to 1024Michael Niedermayer2017-06-261-1/+1
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1: add AV_PIX_FMT_GBRP16 supportMichael Niedermayer2016-08-081-0/+9
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1: template functions to allow data types different from int16_tMichael Niedermayer2016-08-081-31/+6
| | | | | | | This is required for >= 16bit RGB support I tried it without templates but its too much duplicated code Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Merge commit '96c373c7704aeb1cc1d2c275fbb5d71777665589'Derek Buitenhuis2016-01-281-0/+1
|\ | | | | | | | | | | | | * commit '96c373c7704aeb1cc1d2c275fbb5d71777665589': lavc: Move context_model to codec private options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavc: Move context_model to codec private optionsVittorio Giovara2016-01-211-0/+1
| | | | | | | | | | | | | | | | This option is only used by ffv1 and ffvhuff. It is a very codec-specific option, so deprecate the global variant. Improve documentation a little. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | avcodec/ffv1enc: unbreak -coder optionMichael Niedermayer2015-12-181-0/+1
| | | | | | | | | | | | This fixes a segfault caused by moving the coder option and changing its semantics Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '4bb1070c154e49d35805fbcdac9c9e92f702ef96'Derek Buitenhuis2015-11-221-0/+4
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit '4bb1070c154e49d35805fbcdac9c9e92f702ef96': ffv1: Explicitly name the coder type Conflicts: libavcodec/ffv1.h libavcodec/ffv1dec.c libavcodec/ffv1enc.c Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * ffv1: Explicitly name the coder typeVittorio Giovara2015-11-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FFv1 uses two types of coders, golomb and range with two different tables. This is exposed this in a rather convoluted way, for example mentioning to set coder type 1 while initializing the variable 'ac' to 2, because encoder does not use range coder with default table. Appropriate internal coder type values have been added and used in any check rather than using raw numbers. Initialization of avctx.coder_type in ffv1dec is removed because this field is encoder only. An unneeded validation check in the encoder is dropped too. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | avcodec/ffv1: seperate slice_count from max_slice_countMichael Niedermayer2015-09-241-0/+1
| | | | | | | | | | | | | | Fix segfault with too large slice_count Fixes Ticket4879 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | ffv1: Add missing ff_ prefixesTimothy Gu2015-08-221-7/+7
| |
* | Merge commit '10a9149de242c7bbc4e130d3d7c593b89e20f80e'Michael Niedermayer2015-07-201-0/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit '10a9149de242c7bbc4e130d3d7c593b89e20f80e': ffv1enc: Keep coded_frame.key_frame a write-only variable Conflicts: libavcodec/ffv1.h libavcodec/ffv1enc.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * ffv1enc: Keep coded_frame.key_frame a write-only variableVittorio Giovara2015-07-201-0/+1
| |
| * ffv1enc: Add const attribute to input frameVittorio Giovara2015-05-011-1/+1
| | | | | | | | | | | | warning: assigning to 'AVFrame *' (aka 'struct AVFrame *') from 'const AVFrame *' (aka 'const struct AVFrame *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
* | avcodec: use av_mod_uintp2() where usefulJames Almer2015-04-211-1/+1
| | | | | | | | | | Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: James Almer <jamrial@gmail.com>
* | Merge commit 'cd832f032f945a57a1f1dd385942c2fadc7ce4e5'Michael Niedermayer2014-03-131-3/+0
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit 'cd832f032f945a57a1f1dd385942c2fadc7ce4e5': ffv1: Drop bogus dependency on dsputil Conflicts: configure libavcodec/ffv1.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ffv1: Drop bogus dependency on dsputilDiego Biurrun2014-03-131-3/+0
| | | | | | | | ffv1 does not use any part of the dsputil framework.
| * ffv1: use the AVFrame API properly.Anton Khirnov2013-11-161-1/+2
| |
* | Define ff_log2_run[] in libavcodec/internal.h.Carl Eugen Hoyos2014-03-101-2/+0
| | | | | | | | | | This avoids defining the array with different sizes in different source files.
* | ffv1.4: use 2 coefficients for calculating the Y plane in the RCTMichael Niedermayer2013-12-101-1/+2
| | | | | | | | | | | | 0-0.7% improved compression Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/ffv1: support adjusting the g vs r + b coefficient in the RCTMichael Niedermayer2013-12-091-0/+1
| | | | | | | | | | | | about 1% better compression Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/ffv1dec: Support decoding planes as raw PCM in 1.4Michael Niedermayer2013-09-091-0/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | ffv1: rename minor to micro versionMichael Niedermayer2013-08-201-1/+1
| | | | | | | | | | | | the version is 1.3.4 which makes 4 micro and not minor Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | ffv1dec: Support frame threading with gop > 1Michael Niedermayer2013-05-111-0/+1
| | | | | | | | | | | | This is about 20-30% faster than slice threading Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | ffv1: Switch to ThreadFrameMichael Niedermayer2013-05-111-1/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | ffv1: Store a flag in the global header that indicates if all frames are ↵Michael Niedermayer2013-04-271-0/+1
| | | | | | | | | | | | keyframes Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '759001c534287a96dc96d1e274665feb7059145d'Michael Niedermayer2013-03-121-2/+3
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '759001c534287a96dc96d1e274665feb7059145d': lavc decoders: work with refcounted frames. Anton Khirnov (1): lavc decoders: work with refcounted frames. Clément Bœsch (47): lavc/ansi: reset file lavc/ansi: re-do refcounted frame changes from Anton fraps: reset file lavc/fraps: switch to refcounted frames gifdec: reset file lavc/gifdec: switch to refcounted frames dsicinav: resolve conflicts smc: resolve conflicts zmbv: resolve conflicts rpza: resolve conflicts vble: resolve conflicts xxan: resolve conflicts targa: resolve conflicts vmnc: resolve conflicts utvideodec: resolve conflicts tscc: resolve conflicts ulti: resolve conflicts ffv1dec: resolve conflicts dnxhddec: resolve conflicts v210dec: resolve conflicts vp3: resolve conflicts vcr1: resolve conflicts v210x: resolve conflicts wavpack: resolve conflicts pngdec: fix compilation roqvideodec: resolve conflicts pictordec: resolve conflicts mdec: resolve conflicts tiertexseqv: resolve conflicts smacker: resolve conflicts vb: resolve conflicts vqavideo: resolve conflicts xl: resolve conflicts tmv: resolve conflicts vmdav: resolve conflicts truemotion1: resolve conflicts truemotion2: resolve conflicts lcldec: fix compilation libcelt_dec: fix compilation qdrw: fix compilation r210dec: fix compilation rl2: fix compilation wnv1: fix compilation yop: fix compilation tiff: resolve conflicts interplayvideo: fix compilation qpeg: resolve conflicts (FIXME/TESTME). Hendrik Leppkes (33): 012v: convert to refcounted frames 8bps: fix compilation 8svx: resolve conflicts 4xm: resolve conflicts aasc: resolve conflicts bfi: fix compilation aura: fix compilation alsdec: resolve conflicts avrndec: convert to refcounted frames avuidec: convert to refcounted frames bintext: convert to refcounted frames cavsdec: resolve conflicts brender_pix: convert to refcounted frames cinepak: resolve conflicts cinepak: avoid using AVFrame struct directly in private context cljr: fix compilation cpia: convert to refcounted frames cscd: resolve conflicts iff: resolve conflicts and do proper conversion to refcounted frames 4xm: fix reference frame handling cyuv: fix compilation dxa: fix compilation eacmv: fix compilation eamad: fix compilation eatgv: fix compilation escape124: remove unused variable. escape130: convert to refcounted frames evrcdec: convert to refcounted frames exr: convert to refcounted frames mvcdec: convert to refcounted frames paf: properly free the frame data on decode close sgirle: convert to refcounted frames lavfi/moviesrc: use refcounted frames Michael Niedermayer (56): Merge commit '759001c534287a96dc96d1e274665feb7059145d' resolve conflicts in headers motion_est: resolve conflict mpeg4videodec: fix conflicts dpcm conflict fix dpx: fix conflicts indeo3: resolve confilcts kmvc: resolve conflicts kmvc: resolve conflicts h264: resolve conflicts utils: resolve conflicts rawdec: resolve conflcits mpegvideo: resolve conflicts svq1enc: resolve conflicts mpegvideo: dont clear data, fix assertion failure on fate vsynth1 with threads pthreads: resolve conflicts frame_thread_encoder: simple compilefix not yet tested snow: update to buffer refs crytsalhd: fix compile dirac: switch to new API sonic: update to new API svq1: resolve conflict, update to new API ffwavesynth: update to new buffer API g729: update to new API indeo5: fix compile j2kdec: update to new buffer API linopencore-amr: fix compile libvorbisdec: update to new API loco: fix compile paf: update to new API proresdec: update to new API vp56: update to new api / resolve conflicts xface: convert to refcounted frames xan: fix compile&fate v408: update to ref counted buffers v308: update to ref counted buffers yuv4dec: update to ref counted buffers y41p: update to ref counted frames xbm: update to refcounted frames targa_y216: update to refcounted buffers qpeg: fix fate/crash cdxl: fix fate tscc: fix reget buffer useage targa_y216dec: fix style msmpeg4: fix fate h264: ref_picture() copy fields that have been lost too update_frame_pool: use channel field h264: Put code that prevents deadlocks back mpegvideo: dont allow last == current wmalossless: fix buffer ref messup ff_alloc_picture: free tables in case of dimension mismatches h264: fix null pointer dereference and assertion failure frame_thread_encoder: update to bufrefs ec: fix used arrays snowdec: fix off by 1 error in dimensions check h264: disallow single unpaired fields as references of frames Paul B Mahol (2): lavc/vima: convert to refcounted frames sanm: convert to refcounted frames Conflicts: libavcodec/4xm.c libavcodec/8bps.c libavcodec/8svx.c libavcodec/aasc.c libavcodec/alsdec.c libavcodec/anm.c libavcodec/ansi.c libavcodec/avs.c libavcodec/bethsoftvideo.c libavcodec/bfi.c libavcodec/c93.c libavcodec/cavsdec.c libavcodec/cdgraphics.c libavcodec/cinepak.c libavcodec/cljr.c libavcodec/cscd.c libavcodec/dnxhddec.c libavcodec/dpcm.c libavcodec/dpx.c libavcodec/dsicinav.c libavcodec/dvdec.c libavcodec/dxa.c libavcodec/eacmv.c libavcodec/eamad.c libavcodec/eatgq.c libavcodec/eatgv.c libavcodec/eatqi.c libavcodec/error_resilience.c libavcodec/escape124.c libavcodec/ffv1.h libavcodec/ffv1dec.c libavcodec/flicvideo.c libavcodec/fraps.c libavcodec/frwu.c libavcodec/g723_1.c libavcodec/gifdec.c libavcodec/h264.c libavcodec/h264.h libavcodec/h264_direct.c libavcodec/h264_loopfilter.c libavcodec/h264_refs.c libavcodec/huffyuvdec.c libavcodec/idcinvideo.c libavcodec/iff.c libavcodec/indeo2.c libavcodec/indeo3.c libavcodec/internal.h libavcodec/interplayvideo.c libavcodec/ivi_common.c libavcodec/jvdec.c libavcodec/kgv1dec.c libavcodec/kmvc.c libavcodec/lagarith.c libavcodec/libopenjpegdec.c libavcodec/mdec.c libavcodec/mimic.c libavcodec/mjpegbdec.c libavcodec/mjpegdec.c libavcodec/mmvideo.c libavcodec/motion_est.c libavcodec/motionpixels.c libavcodec/mpc7.c libavcodec/mpeg12.c libavcodec/mpeg4videodec.c libavcodec/mpegvideo.c libavcodec/mpegvideo.h libavcodec/msrle.c libavcodec/msvideo1.c libavcodec/nuv.c libavcodec/options_table.h libavcodec/pcx.c libavcodec/pictordec.c libavcodec/pngdec.c libavcodec/pnmdec.c libavcodec/pthread.c libavcodec/qpeg.c libavcodec/qtrle.c libavcodec/r210dec.c libavcodec/rawdec.c libavcodec/roqvideodec.c libavcodec/rpza.c libavcodec/smacker.c libavcodec/smc.c libavcodec/svq1dec.c libavcodec/svq1enc.c libavcodec/targa.c libavcodec/tiertexseqv.c libavcodec/tiff.c libavcodec/tmv.c libavcodec/truemotion1.c libavcodec/truemotion2.c libavcodec/tscc.c libavcodec/ulti.c libavcodec/utils.c libavcodec/utvideodec.c libavcodec/v210dec.c libavcodec/v210x.c libavcodec/vb.c libavcodec/vble.c libavcodec/vcr1.c libavcodec/vmdav.c libavcodec/vmnc.c libavcodec/vp3.c libavcodec/vp56.c libavcodec/vp56.h libavcodec/vp6.c libavcodec/vqavideo.c libavcodec/wavpack.c libavcodec/xl.c libavcodec/xxan.c libavcodec/zmbv.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lavc decoders: work with refcounted frames.Anton Khirnov2013-03-081-0/+2
| |
* | Merge commit 'a7d2861d36756b913e85681b86ed3385274e8ced'Michael Niedermayer2012-10-211-3/+4
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | * commit 'a7d2861d36756b913e85681b86ed3385274e8ced': svq3: K&R formatting cosmetics fate: Introduce ENCMUX macro for tests that require encoders and a muxer ffv1: Add missing #includes to header file Conflicts: libavcodec/ffv1.h libavcodec/svq3.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ffv1: Add missing #includes to header fileDiego Biurrun2012-10-201-0/+7
| |
* | Merge commit '2d09b36c0379fcda8f984bc8ad8816c8326fd7bd'Michael Niedermayer2012-10-211-4/+6
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '2d09b36c0379fcda8f984bc8ad8816c8326fd7bd': doc/platform: Add info on shared builds with MSVC doc/platform: Move a caveat down to the notes section ARM: reinstate optimised intmath.h ffv1: update to ffv1 version 3 Conflicts: doc/platform.texi libavcodec/ffv1.c libavcodec/ffv1.h libavcodec/ffv1dec.c libavcodec/ffv1enc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ffv1: update to ffv1 version 3Luca Barbato2012-10-201-5/+17
| | | | | | | | Based on code from Carl Eugen Hoyos, Michael Niedermayer and Paul B Mahol.
* | Merge commit '71f7b22dba60524b2285643ae0b49d8f64977129'Michael Niedermayer2012-10-211-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | * commit '71f7b22dba60524b2285643ae0b49d8f64977129': ffv1: split decoder and encoder Conflicts: libavcodec/Makefile libavcodec/ffv1.c libavcodec/ffv1.h libavcodec/ffv1dec.c libavcodec/ffv1enc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ffv1: split decoder and encoderLuca Barbato2012-10-201-0/+184
|
* ffv1: split decoder and encoderMichael Niedermayer2012-10-211-0/+212
This is not based on lucas work due to code divergence (its less work this way than trying to merge from a split based on 2 years outdated code) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>