These functions are intended for use with side_data which comes in an
AVPacket.
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Reviewed-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This type is intended to be used to allow codecs to pass updated
metadata to applications.
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Reviewed-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '6f1ec8edf2416441e2348f3a0915c9fee179d7da':
avcodec.h: include version.h before using version macro
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b6094811f9fca66cdf853420696e96fdc3e4987a':
lavc: move MB_TYPE_* macros from avcodec.h to mpegvideo.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b45c87083de67969c1598cfef41e7c947b137922':
lavc: schedule unused FF_QSCALE_TYPE_* for removal on next bump
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '8941971a8f2e24b9a84fe29f128d13ceb89c0a65':
lavc: make error_rate a private option of mpegvideo encoders
Conflicts:
libavcodec/options_table.h
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'c7f7bfc9e3a3150ba72bc34366c13fb2210c66ac':
Remove all Alpha architecture optimizations
Conflicts:
libavcodec/alpha/asm.h
libavcodec/alpha/dsputil_alpha.c
libavcodec/alpha/dsputil_alpha.h
libavcodec/alpha/dsputil_alpha_asm.S
libavcodec/alpha/hpeldsp_alpha.c
libavcodec/alpha/hpeldsp_alpha.h
libavcodec/alpha/hpeldsp_alpha_asm.S
libavcodec/alpha/motion_est_alpha.c
libavcodec/alpha/motion_est_mvi_asm.S
libavcodec/alpha/mpegvideo_alpha.c
libavcodec/alpha/regdef.h
libavcodec/alpha/simple_idct_alpha.c
We have a qemu based fate alpha client. And various failures
on alpha have previously pointed to issues in generic C code.
Thus IMHO it makes sense to keep alpha code as long as someone
is willing to do the little bit of maintaince it needs
Merged-by: Michael Niedermayer <michaelni@gmx.at>
XvMC has long ago been superseded by newer acceleration APIs, such as
VDPAU, and few downstreams still support it. Furthermore XvMC is not
implemented within the hwaccel framework, but requires its own specific
code in the MPEG-1/2 decoder, which is a maintenance burden.
* commit '38ecc3702dabbea09230f6d6333f59e74f5d1c12':
pthread: store thread contexts in AVCodecInternal instead of AVCodecContext
Conflicts:
libavcodec/internal.h
libavcodec/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '28240a60c1b5ce276e947ba013271ec009adc078':
lavc: move FF_ASPECT_EXTENDED from avcodec.h to h263.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '0300962b76644f145b773439989a5cdf1667e162':
lavc: schedule FF_BUG_AC_VLC for removal on the next major bump.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f8b2bcd2adab65658ffd45f9f13b032af6600bf8':
lavc: deprecate FF_DEBUG_VIS_*
leave the AVOptions as they work fine
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This maintains ABI compatibility
also add a note that debug_mv must be accessed through AVOptions (for ABI)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'a1504eee41b39f62dbfe0a0ca6b96c2716bf7577':
lavc: deprecate AVCodecContext.debug_mv
Conflicts:
libavcodec/options_table.h
Not merged, debug_mv works fine
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ccc71298456d97f64f539e303c771d04dcb33c53':
lavc: deprecate FF_DEBUG_MV and remove all traces of its use
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '28096e0a806e57376541e6222d315619906e3c55':
h264: wait for initial complete frame before outputing frames
Conflicts:
doc/APIchanges
libavcodec/h264.c
libavcodec/mpegvideo.h
libavutil/frame.h
libavutil/version.h
See: a64b028aeb (as well as various later commits)
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Initially written by Guillaume Martres <smarter@ubuntu.com> as a GSoC
project. Further contributions by the OpenHEVC project and other
developers, namely:
Mickaël Raulet <mraulet@insa-rennes.fr>
Seppo Tomperi <seppo.tomperi@vtt.fi>
Gildas Cocherel <gildas.cocherel@laposte.net>
Khaled Jerbi <khaled_jerbi@yahoo.fr>
Wassim Hamidouche <wassim.hamidouche@insa-rennes.fr>
Vittorio Giovara <vittorio.giovara@gmail.com>
Jan Ekström <jeebjp@gmail.com>
Anton Khirnov <anton@khirnov.net>
Martin Storsjö <martin@martin.st>
Luca Barbato <lu_zero@gentoo.org>
Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Diego Biurrun <diego@biurrun.de>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
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>
* commit '23a211cbba0b7c9ee694040031b2e5da1be54a00':
lavc: change all decoders to behave consistently with AV_EF_CRCCHECK.
Conflicts:
libavcodec/avcodec.h
libavcodec/tta.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This patch adds CODEC_CAP_DELAY support to avcodec_decode_subtitle2.
For DVB teletext decoding, a single teletext packet can contain multiple
teletext pages. In order to support that, the teletext decoder may buffer
some pages.
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
seek_preroll field is added to the AVCodecContext struct. It indicates
the number of samples to be discarded whenever there is a discontinuity.
The minor version is bumped accordingly.
Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Somehow 2 different identifiers have come into existence which makes supporting
both until the next major version bump required
I did not investigate how exactly that did happen.
wm4, j-b and smarter prefer hevc.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
lavc: mark deprecated AVCodec.max_lowres for removal on next bump
Conflicts:
libavcodec/avcodec.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
For codecs where decoding of a whole plane can simply
be skipped, we should offer applications to not decode
alpha for better performance (ca. 30% less CPU usage
and 40% reduced memory bandwidth).
It also means applications do not need to implement support
(even if it is rather simple) for YUVA formats in order to be
able to play these files.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* commit 'c4bfa098072ba338d83555d6e2199f7e1e64ffff':
Add a WebP decoder
Conflicts:
Changelog
doc/general.texi
libavcodec/Makefile
libavcodec/avcodec.h
libavcodec/version.h
libavformat/img2.c
The previously existing webp decoder is disabled as the new
one supports lossless mode and alpha while the previous does not.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
avcodec_find_best_pix_fmt2 does not modify its first argument so may be
marked const. This avoids a warning when passing in AVCodec.pix_fmts.
Signed-off-by: Dylan Simon <dylan@dylex.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
"Fork" is an ambiguous term, since there may be more than one fork, also
"fork" could be confused with the corresponding function. Also it seems
important to point the name of the referenced fork in the symbol.
Note: the old --enable-incompatible-fork-abi command is retained for
compatibility, although it should be considered deprecated.
Currently the WebVTT demuxer parses the cues but throws away
the cue id (the optional first line of the cue) and cue
settings (the optional rendering instructions that follow
the timestamp).
However, in order to write inband text tracks (to WebM
files), the entire cue payload from the WebVTT source must
be preserved.
This commit makes no change to the data part of the output
buffer packet (where the actual cue text is stored), but
does add the cue id and settings as a side data items, if
they're present in the cue. Existing code that cares only
about the data part of the packet can continue to ignore the
side data.
There are two new packet data type flags,
AV_PKT_DATA_WEBVTT_IDENTIFIER and
AV_PKT_DATA_WEBVTT_SETTINGS.
* commit '006ec64877fb638de4b15ae5fd969e22bd0f60ca':
lavr doxy: add version.h to the lavr group
lavc doxy: add avcodec.h to the libavcodec group.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Some fixes provided by Paul B Mahol <onemda@gmail.com>
and Michael Niedermayer <michaelni@gmx.at> and me.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
Refactoring copy_side_data into a separate function so that it can be called
in cases where side data needs to be duplicated.
Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '507b1e454cf9953da3e18f33c9bd1fca78c97cb5':
avcodec: Add field order information to AVCodecParserContext.
Conflicts:
doc/APIchanges
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '803d21f38bdafe7c4e2571a9ae7052013a12923b':
lavc: schedule AVCodecContext.lowres for removal on next bump.
Conflicts:
libavcodec/avcodec.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
avutil: doxy: Small clarification for av_buffer_create()
avcodec: doxy: Clarify how to use buf[] when implementing get_buffer2()
avcodec: doxy: Clarify what get_buffer2 must fill in buf[]
Conflicts:
libavutil/buffer.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
avcodec: Bump minor for JPEG 2000 decoder
JPEG 2000 decoder for DCinema
The mqc code is merged, the rest is added independent of
the existing jpeg2000 decoder and encoder.
Conflicts:
Changelog
doc/general.texi
libavcodec/Makefile
libavcodec/allcodecs.c
libavcodec/mqc.c
libavcodec/mqc.h
libavcodec/mqcdec.c
libavcodec/version.h
tests/fate/video.mak
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Based on the 2007 GSoC project from Kamil Nowosad <k.nowosad@students.mimuw.edu.pl>
Updated to current programming standards, style and many more small
fixes by Diego Biurrun <diego@biurrun.de>.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Currently, we have a AV_CODEC_ID_SSA, which matches the way the ASS/SSA
markup is muxed in a standalone .ass/.ssa file. This means the AVPacket
data starts with a "Dialogue:" string, followed by a timing information
(start and end of the event as string) and a trailing CRLF after each
line. One packet can contain several lines. We'll refer to this layout
as "SSA" or "SSA lines".
In matroska, this markup is not stored as such: it has no "Dialogue:"
prefix, it contains a ReadOrder field, the timing information is not in
the payload, and it doesn't contain the trailing CRLF. See [1] for more
info. We'll refer to this layout as "ASS".
Since we have only one common codec for both formats, the matroska
demuxer is constructing an AVPacket following the "SSA lines" format.
This causes several problems, so it was decided to change this into
clean ASS packets.
Some insight about what is changed or unchanged in this commit:
CODECS
------
- the decoding process still writes "SSA lines" markup inside the ass
fields of the subtitles rectangles (sub->rects[n]->ass), which is
still the current common way of representing decoded subtitles
markup. It is meant to change later.
- new ASS codec id: AV_CODEC_ID_ASS (which is different from the
legacy AV_CODEC_ID_SSA)
- lavc/assdec: the "ass" decoder is renamed into "ssa" (instead of
"ass") for consistency with the codec id and allows to add a real
ass decoder. This ass decoder receives clean ASS lines (so it starts
with a ReadOrder, is followed by the Layer, etc). We make sure this
is decoded properly in a new ass-line rectangle of the decoded
subtitles (the ssa decoder OTOH is doing a simple straightforward
copy). Using the packet timing instead of data string makes sure the
ass-line now contains the appropriate timing.
- lavc/assenc: just like the ass decoder, the "ssa" encoder is renamed
into "ssa" (instead of "ass") for consistency with the codec id, and
allows to add a real "ass" encoder.
One important thing about this encoder is that it only supports one
ass rectangle: we could have put several dialogue events in the
AVPacket (separated by a \0 for instance) but this would have cause
trouble for the muxer which needs not only the start time, but also
the duration: typically, you have merged events with the same start
time (stored in the AVPacket->pts) but a different duration. At the
moment, only the matroska do the merge with the SSA-line codec.
We will need to make sure all the decoders in the future can't add
more than one rectangle (and only one Dialogue line in it
obviously).
FORMATS
-------
- lavf/assenc: the .ass/.ssa muxer can take both SSA and ASS packets.
In the case of ASS packets as input, it adds the timing based on the
AVPacket pts and duration, and mux it with "Dialogue:", trailing
CRLF, etc.
- lavf/assdec: unchanged; it currently still only outputs SSA-lines
packets.
- lavf/mkv: the demuxer can now output ASS packets without the need of
any "SSA-lines" reconstruction hack. It will become the default at
next libavformat bump, and the SSA support will be dropped from the
demuxer. The muxer can take ASS packets since it's muxed normally,
and still supports the old SSA packets. All the SSA support and
hacks in Matroska code will be dropped at next lavf bump.
[1]: http://www.matroska.org/technical/specs/subtitles/ssa.html
* commit '9de9b828ef005dec37052548c195a6b4f18fc701':
lavc: don't overwrite display dimensions with coded dimensions.
lavc: extend / update the [coded_]{width,height} doxy
Conflicts:
libavcodec/avcodec.h
libavcodec/utils.c
The change to the w/h handling is not merged as it breaks lowres
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '4e70d66ded537cadd32dbd02a38c3d86a203c812':
mpegvideo: fix allocation of the hwaccel_picture_private data
lavc: update the doxy for avcodec_decode_{video,audio} wtih refcounting.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The two types of packets (PCI and DSI) are passed untouched but combined by the new codec ID AV_CODEC_ID_DVD_NAV.
The first 980 bytes in the packet contain the PCI data. The next 1018 are the DSI data.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f099d3d1d5466bd63f4ab36270d169ff9ea613b8':
Add av_log_{ask_for_sample|missing_feature} replacements to libavutil
ismindex: Check the return value of allocations
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This field was only ever set and freed from avcodec, and not otherwise
used. However, because frames are refcounted now, avcodec cannot make any
assumptions about the lifetime of the frame metadata, which can result in
double-frees or leaked memory.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>