summaryrefslogtreecommitdiff
path: root/libavcodec/svq3.c
Commit message (Collapse)AuthorAge
* mpegvideo: drop support for real (non-emulated) edgesAnton Khirnov2014-01-09
| | | | | | | Several decoders disable those anyway and they are not measurably faster on x86. They might be somewhat faster on other platforms due to missing emu edge SIMD, but the gain is not large enough (and those decoders relevant enough) to justify the added complexity.
* lavc: Edge emulation with dst/src linesizeRonald S. Bultje2013-11-15
| | | | | | Allow supporting files for which the image stride is smaller than the maximum block size + number of subpel mc taps, e.g. a 64x64 VP9 file or a 16x16 VP8 file with -fflags +emu_edge.
* cosmetics: Group .name and .long_name together in codec/format declarationsDiego Biurrun2013-10-03
|
* svq3: Avoid a division by zeroMartin Storsjö2013-09-19
| | | | | | | | | | If the height is zero, the decompression will probably end up failing due to not fitting into the allocated buffer later anyway, so this doesn't need any more elaborate check. Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* svq3: Check for any negative return value from ff_h264_check_intra_pred_modeMartin Storsjö2013-09-17
| | | | | | | | Also pass on any returned error code. Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* h264data: Move some tables to the only place they are usedDiego Biurrun2013-08-20
|
* vdpau: remove old-style decodersRémi Denis-Courmont2013-08-05
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec: Add av_cold attributes to end functions missing themDiego Biurrun2013-05-05
|
* svq3: Use hpeldsp instead of dsputil for half-pel functionsRonald S. Bultje2013-04-19
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* h264: Integrate clear_blocks calls with IDCTRonald S. Bultje2013-04-10
| | | | | | | | | The non-intra-pcm branch in hl_decode_mb (simple, 8bpp) goes from 700 to 672 cycles, and the complete loop of decode_mb_cabac and hl_decode_mb (in the decode_slice loop) goes from 1759 to 1733 cycles on the clip tested (cathedral), i.e. almost 30 cycles per mb faster. Signed-off-by: Martin Storsjö <martin@martin.st>
* lavc: stop setting AVFrame.motion_subsample_log2Anton Khirnov2013-03-08
| | | | | It is not used inside lavc anywhere and now it makes no sense to export it.
* lavc decoders: work with refcounted frames.Anton Khirnov2013-03-08
|
* Remove unnecessary dsputil.h #includesDiego Biurrun2013-02-26
|
* h264/svq3: Stop using draw_edgesRonald S. Bultje2013-02-19
| | | | | | | | | | | Instead, only extend edges on-demand when the motion vector actually crosses the visible decoded area using ff_emulated_edge_mc(). This changes decoding time for cathedral from 8.722sec to 8.706sec, i.e. 0.2% faster overall. More generally (VP8 uses this also), low-motion content gets significant speed improvements, whereas high-motion content tends to decode in approximately the same time. Signed-off-by: Martin Storsjö <martin@martin.st>
* svq3: unbreak decodingMatti Hamalainen2013-02-18
| | | | a7d2861d36756b913e85681b86ed3385274e8ced removed necessary braces.
* h264: deMpegEncContextizeAnton Khirnov2013-02-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the changes are just trivial are just trivial replacements of fields from MpegEncContext with equivalent fields in H264Context. Everything in h264* other than h264.c are those trivial changes. The nontrivial parts are: 1) extracting a simplified version of the frame management code from mpegvideo.c. We don't need last/next_picture anymore, since h264 uses its own more complex system already and those were set only to appease the mpegvideo parts. 2) some tables that need to be allocated/freed in appropriate places. 3) hwaccels -- mostly trivial replacements. for dxva, the draw_horiz_band() call is moved from ff_dxva2_common_end_frame() to per-codec end_frame() callbacks, because it's now different for h264 and MpegEncContext-based decoders. 4) svq3 -- it does not use h264 complex reference system, so I just added some very simplistic frame management instead and dropped the use of ff_h264_frame_start(). Because of this I also had to move some initialization code to svq3. Additional fixes for chroma format and bit depth changes by Janne Grunau <janne-libav@jannau.net> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* mpegvideo: split ff_draw_horiz_band().Anton Khirnov2013-02-15
| | | | Split out dependency on MpegEncContext.
* svq3: remove a pointless if()Anton Khirnov2013-02-15
| | | | The H264 context is always uninitialized at this point.
* dsputil: Move ff_svq3 function declarations to a separate headerDiego Biurrun2013-02-07
|
* Drop DCTELEM typedefDiego Biurrun2013-01-22
| | | | | | It does not help as an abstraction and adds dsputil dependencies. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* lavc: introduce VideoDSPContextRonald S. Bultje2012-12-20
| | | | | | | | Move some functions from dsputil. The idea is that videodsp contains functions that are useful for a large and varied set of video decoders. Currently, it contains emulated_edge_mc() and prefetch(). Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* svq3: make slice type value unsigned to match svq3_get_ue_golomb return typeJanne Grunau2012-12-09
|
* golomb: use unsigned arithmetics in svq3_get_ue_golomb()Janne Grunau2012-12-08
| | | | | | | | | | This prevents undefined behaviour of signed left shift if the coded value is larger than 2^31. Large values are most likely invalid and caused errors or by feeding random. Validate every use of svq3_get_ue_golomb() and changed the place there the return value was compared with negative numbers. dirac.c was clean, fixed rv30 and svq3.
* lavc: fix decode_frame() third parameter semantics for video decodersAnton Khirnov2012-12-04
| | | | It's got_frame, not data size
* svq3: cosmetics: Drop useless parenthesesDiego Biurrun2012-10-20
|
* svq3: K&R formatting cosmeticsDiego Biurrun2012-10-20
|
* svq3: fix pointer type warningMans Rullgard2012-10-11
| | | | | | | | Fixes: libavcodec/svq3.c:661:9: warning: passing argument 2 of 'svq3_decode_block' from incompatible pointer type libavcodec/svq3.c:208:19: note: expected 'DCTELEM *' but argument is of type 'DCTELEM (*)[32]' Signed-off-by: Mans Rullgard <mans@mansr.com>
* svq3: replace unsafe pointer casting with intreadwrite macrosMans Rullgard2012-10-11
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormatAnton Khirnov2012-10-08
|
* Replace all CODEC_ID_* with AV_CODEC_ID_*Anton Khirnov2012-08-07
|
* cosmetics: Align codec declarationsMartin Storsjö2012-04-06
| | | | | | | Also break some long lines, remove codec function placeholder comments and add spaces in sample/pixel format lists. Signed-off-by: Martin Storsjö <martin@martin.st>
* svq3: protect against negative quantizers.Ronald S. Bultje2012-03-06
| | | | | Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* Don't use ff_cropTbl[] for IDCT.Ronald S. Bultje2012-03-06
| | | | | | | | Results of IDCT can by far outreach the range of ff_cropTbl[], leading to overreads and potentially crashes. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* Replace AVFrame pointer type punning by proper struct member assignments.Diego Biurrun2012-03-01
|
* mpegvideo: Add ff_ prefix to nonstatic functionsMartin Storsjö2012-02-15
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* svq3: Prevent illegal reads while parsing extradata.Alex Converse2012-02-10
| | | | Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
* h264: disallow constrained intra prediction modes for luma.Ronald S. Bultje2012-02-09
| | | | | | | | | | | Conversion of the luma intra prediction mode to one of the constrained ("alzheimer") ones can happen by crafting special bitstreams, causing a crash because we'll call a NULL function pointer for 16x16 block intra prediction, since constrained intra prediction functions are only implemented for chroma (8x8 blocks). Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* svq3: propagate codec memory allocation failure in context initDustin Brody2011-08-15
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavc: use designated initialisers for all codecs.Anton Khirnov2011-07-29
| | | | It's more readable and less prone to breakage.
* Eliminate FF_COMMON_FRAME macro.Diego Biurrun2011-07-11
| | | | | FF_COMMON_FRAME holds the contents of the AVFrame structure and is also copied to struct Picture. Replace by an embedded AVFrame structure in struct Picture.
* H.264: faster write_back_*Jason Garrett-Glaser2011-07-03
| | | | Avoid aliasing, unroll loops, and inline more functions.
* Fix SVQ3 after adding 4:4:4 H.264 supportJason Garrett-Glaser2011-06-13
|
* Roll back 4:4:4 H.264 for nowJason Garrett-Glaser2011-06-13
| | | | Needs some ARM/PPC asm modifications.
* Fix SVQ3 after adding 4:4:4 H.264 supportJason Garrett-Glaser2011-06-13
|
* svq3: Check negative mb_type to fix potential crash.Baptiste Coudurier2011-06-03
| | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Diego Biurrun <diego@biurrun.de>
* svq3: Move svq3-specific fields to their own context.Baptiste Coudurier2011-06-03
| | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Diego Biurrun <diego@biurrun.de>
* svq3: Do initialization after parsing the extradataRonald S. Bultje2011-05-21
| | | | | | | | If done before, some parameters aren't known yet. With svq3/rtp, initializing before some parameters are known can lead to calling av_malloc(0), which on OS X currently returns broken pointers.
* Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.Stefano Sabatini2011-05-02
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* Replace deprecated av_get_pict_type_char() with av_get_picture_type_char().Stefano Sabatini2011-05-02
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* lavc: remove FF_API_HURRY_UP cruftAnton Khirnov2011-04-26
|