summaryrefslogtreecommitdiff
path: root/libavcodec/mpegvideo.h
Commit message (Collapse)AuthorAge
* mpegvideo: simplify REBASE_PICTUREAnton Khirnov2013-02-04
| | | | | | | | | | | Always evaluate to NULL when the source Picture is not located in the MpegEncContext.picture array. That will only happen for next/last_picture_ptr when updating the thread context during h264 frame threaded decoding, where they will point to elements of ref_list. Since ref_list is not copied during updating the context and is invalid until it is constructed for the current slice, there is no point in doing anything complicated with next/last_picture_ptr, as they will get updated when the ref_list is filled.
* mpegvideo: Do REBASE_PICTURE with byte pointersMartin Storsjö2013-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | REBASE_PICTURE (more specifically, this half of it) takes a Picture pointer that points into one larger struct, finds the offset of that Picture within the struct and finds the corresponding field within another instance of a similar struct. The pointer difference "pic - (Picture*)old_ctx" is a value given in sizeof(Picture) units, and when applied back on (Picture*)new_ctx gets multiplied back with sizeof(Picture). Many compilers seem to optimize out this division/multiplication, but not all do. GCC 4.2 on OS X doesn't seem to remove the division/multiplication, therefore the new pointer didn't turn out to point to exactly the right place in the new struct since it only had sizeof(Picture) granularity (and the Picture is not aligned on a sizeof(Picture) boundary within the encompassing struct). This bug has been present before 47318953d as well - with H264, pointers to h->ref_list[0][0] pointed to 88 bytes before h->ref_list[0][0] after the rebase. After shrinking Picture, the difference ended up even larger, making writes via such a Picture pointer overwrite other fields at random in H264Context, ending up in crashes later. This fixes H264 multithreaded decoding on OS X with GCC 4.2. Signed-off-by: Martin Storsjö <martin@martin.st>
* mpegvideo: remove some unused variables from Picture.Anton Khirnov2013-01-29
|
* 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>
* mpegvideo: allocate scratch buffers after linesize is knownJanne Grunau2012-12-18
| | | | | | | | | | | Since we can't know which stride a custom get_buffer() implementation is going to use we have to allocate this scratch buffers after the linesize is known. It was pretty safe for 8 bit per pixel pixel formats since we always allocated memory for up to 16 bits per pixel. It broke hoever with cmdutis.c's alloc_buffer() and high pixel bit depth since it allocated larger edges than mpegvideo expected. Fixes fuzzed sample nasa-8s2.ts_s244342.
* mpegvideo: treat delayed pictures as usedJanne Grunau2012-12-13
| | | | | | This requires to move the avcodec_default_free_buffers() call to ff_MPV_common_end() since otherwise delayed pictures would get freed during a size change.
* cosmetics: Fix dropable --> droppable typoDiego Biurrun2012-12-09
|
* avcodec: Remove broken MMI optimizationsDiego Biurrun2012-10-12
| | | | The code fails to compile and is broken beyond repair.
* Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormatAnton Khirnov2012-10-08
|
* mpeg4: support frame parameter changes with frame-mtJanne Grunau2012-09-19
| | | | | | | Adds a flag context_reinit to MpegEncContext to relieable keep track of frame parameter changes which require a context reinitialization. This is required for broken inputs which change the frame size but error out before the context can be reinitialized.
* mpegvideo: add reinit function for frame parameter changesJanne Grunau2012-09-19
| | | | | | This is mainly required for frame parameter changes during frame based multithreading but single threaded usage profits too from avoiding ff_MPV_common_end()/ff_MPV_common_init() cycles.
* avopt: Store defaults for AV_OPT_TYPE_INT in the i64 union memberMartin Storsjö2012-09-04
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* avopt: Store defaults for AV_OPT_TYPE_FLAGS in the i64 union memberMartin Storsjö2012-09-04
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* avopt: Store defaults for AV_OPT_TYPE_CONST in the i64 union memberMartin Storsjö2012-09-04
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* x86: mpegvideo: more sensible names for optimization file and init functionDiego Biurrun2012-08-24
|
* x86: mpegvideoenc: Split optimizations off into a separate fileDiego Biurrun2012-08-24
|
* mpegvideo: convert mpegvideo_common.h to a .c fileMans Rullgard2012-08-09
| | | | | | | | | | This file defines a single, huge function, MPV_motion(), which although being declared inline is not actually inlined by the compiler (for good reason). There is thus no sense in defining this function in a header file, resulting in multiple copies of it in the final library. Signed-off-by: Mans Rullgard <mans@mansr.com>
* Replace all CODEC_ID_* with AV_CODEC_ID_*Anton Khirnov2012-08-07
|
* mpegvideo: remove VLAsRonald S. Bultje2012-07-04
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* Remove lowres video decodingMans Rullgard2012-04-21
| | | | | | | This feature is complex, of questionable utility, and slows down normal decoding. Signed-off-by: Mans Rullgard <mans@mansr.com>
* h264: increase reference poc list from 16 to 32.Ronald S. Bultje2012-03-14
| | | | | | | | Interlaced images can have 32 references (16 per field), so limiting the array size to 16 leads to invalid writes. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* h263enc: Add an option for outputting info about MBs as side dataMartin Storsjö2012-03-01
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* mpegvideo_enc: add quantizer_noise_shaping private option.Anton Khirnov2012-02-29
| | | | Deprecate corresponding AVCodecContext field.
* mpegvideo_enc: add chroma/luma_elim_threshold private options.Anton Khirnov2012-02-29
| | | | Deprecate corresponding AVCodecContext fields.
* mpegvideo_enc: add cbp_rd flag to mpv_flags.Anton Khirnov2012-02-29
| | | | Deprecate CODEC_FLAG_CBP_RD.
* mpegvideo_enc: add qp_rd flag to mpv_flags.Anton Khirnov2012-02-29
| | | | Deprecate CODEC_FLAG_QP_RD.
* mpegvideo_enc: add strict_gop flag to mpv_flags.Anton Khirnov2012-02-29
| | | | Deprecate CODEC_FLAG2_STRICT_GOP.
* lavc: add -mpv_flags to mpegvideo_enc-based encoders.Anton Khirnov2012-02-29
| | | | | Deprecate CODEC_FLAG2_SKIP_RD in favor of the corresponding mpv_flags flag.
* mpegvideo_enc: switch to encode2().Anton Khirnov2012-02-19
|
* mpegvideo: Add ff_ prefix to nonstatic functionsMartin Storsjö2012-02-15
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* rv: Add ff_ prefix to nonstatic symbolsMartin Storsjö2012-02-15
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* msmpeg4: Add ff_ prefix to nonstatic symbolsMartin Storsjö2012-02-15
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* mpeg12: Add ff_ prefix to nonstatic symbolsMartin Storsjö2012-02-15
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* Remove Sun medialib glue code.Diego Biurrun2012-02-08
| | | | | It is obscure, most likely unused and not bit-exact compared to libavcodec due to a different IDCT transform algorithm.
* mpegenc: use avctx->slices as number of slicesJanne Grunau2012-01-02
| | | | | | Adds a new member to MpegEncContext to hold the number of used slice contexts. Fixes segfaults with '-threads 17 -thread_type slice' and fate-vsynth{1,2}-mpeg{2,4}thread{,_ilace} with --disable-pthreads.
* avcodec: deprecate AVFrame.ageMans Rullgard2011-12-18
| | | | | | | | This was intended as an optimisation for skipped blocks in MPEG2 P-frames and never used elsewhere. Removing this "optimisation" speeds up MPEG2 decoding by 1-2% (ARM Cortex-A9). Signed-off-by: Mans Rullgard <mans@mansr.com>
* lavc: introduce ER_MB_END and ER_MB_ERRORLuca Barbato2011-12-13
| | | | | | Simplify a little error resilience calls Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* error_resilience: use the ER_ namespaceLuca Barbato2011-12-13
| | | | | | Add the namespace to {AC_,DC_,MV_}{END,ERROR} macros Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* doxygen: misc consistency, spelling and wording fixesDiego Biurrun2011-12-12
|
* lavc: convert error_recognition to err_recognition.Dustin Brody2011-12-12
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* Fix a bunch of common typos.Diego Biurrun2011-12-11
|
* Revert "mpeg12: move full_pel from MpegEncContext to Mpeg1Context"Janne Grunau2011-10-24
| | | | | | | | This reverts commit da22ba7df461c13bf0b0eabc953303803a285d91 since it broke slice threading. Slice threading just duplicates MpegEncContext so every value used during mpeg_decode_slice has to be in it. A second patch will fix the illusion that Mpeg1Context is available in mpeg_decode_slice.
* mpeg12: move closed_gop from MpegEncContext to Mpeg1ContextAnton Khirnov2011-10-23
| | | | It's MPEG-1/2 specific.
* mpeg12: move full_pel from MpegEncContext to Mpeg1ContextAnton Khirnov2011-10-23
| | | | It's MPEG-1 specific.
* mpegvideo: remove some unused variables from MpegEncContext.Anton Khirnov2011-10-23
|
* lavc: rename ff_find_start_code to avpriv_mpv_find_start_codeAnton Khirnov2011-10-20
| | | | It's used in lavf.
* motion_est: make MotionExtContext.map_generation unsignedMans Rullgard2011-10-11
| | | | | | | | The way this value is used, it should be an unsigned type. While the numerical value has no meaning, unsigned wraparound is relied upon. Signed-off-by: Mans Rullgard <mans@mansr.com>
* mpegvideo: set correct offset for edge emulation buffer.Ronald S. Bultje2011-10-05
| | | | | Using the old code, half of it was unused and the other half was too small for e.g. >8bpp interlaced data, causing random buffer overruns.
* mpeg12: add 'scan_offset' private option.Anton Khirnov2011-08-31
| | | | Deprecate CODEC_FLAG_SVCD_SCAN_OFFSET