summaryrefslogtreecommitdiff
path: root/libavcodec/mpegvideo.h
Commit message (Collapse)AuthorAge
* h264: wait for initial complete frame before outputing framesJohn Stebbins2013-10-31
| | | | | | | | This can be optionally disabled whith the "output_corrupt" flags option. When in "output_corrupt" mode, incomplete frames are signalled through AVFrame.flags FRAME_FLAG_INCOMPLETE_FRAME. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavc: Convert some remaining strides to ptrdiff_tRonald S. Bultje2013-10-15
|
* Fix references to deleted avcodec_encode_video() functionVittorio Giovara2013-09-16
|
* ppc: More consistent arch initializationDiego Biurrun2013-04-30
|
* mpegvideo: Use hpeldsp instead of dsputil for half-pel functionsRonald S. Bultje2013-04-19
| | | | | | This also converts vc1, since that is mpegvideo-based. Signed-off-by: Martin Storsjö <martin@martin.st>
* h261: Move function declarations to h261.hDiego Biurrun2013-04-05
|
* mpeg12: Move some ff_mpeg1_* function declarations to a more suitable placeDiego Biurrun2013-03-27
|
* lavc: Rename avpriv_mpv_find_start_code after moving out from mpegvideoMartin Storsjö2013-03-26
| | | | | | | Also move the declaration to internal.h, and add restrict qualifiers to the declaration (as in the implementation). Signed-off-by: Martin Storsjö <martin@martin.st>
* mpegvideo: remove FMT_H264Anton Khirnov2013-03-11
|
* mpegvideo: drop vismv codeAnton Khirnov2013-03-08
| | | | | It has been broken for over a year without anyone complaining or noticing, thus proving that nobody ever uses it.
* lavc decoders: work with refcounted frames.Anton Khirnov2013-03-08
|
* lavc: move AVFrame.hwaccel_picture_private to Picture.Anton Khirnov2013-03-08
| | | | | This field is private and should not be present in a public struct. It is only used in DXVA with mpegvideo-based decoders currently.
* lavc: Split out ff_hwaccel_pixfmt_list_420[] over individual codecsRonald S. Bultje2013-03-06
| | | | | | | | | Not all hwaccels implement all codecs, so using one single list for multiple such codecs means some codecs will be represented in the list, even though they don't actually handle that codec. Copying specific lists in each codec fixes that. Signed-off-by: Martin Storsjö <martin@martin.st>
* 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.
* error_resilience: decouple ER from MpegEncContextAnton Khirnov2013-02-15
|
* dsputil: Move ff_block_permute to mpegvideo_encDiego Biurrun2013-02-07
|
* 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>