The SRT format should never have outputted CODEC_ID_SRT packets in the
first place: SRT is a subtitle format containing SubRip text markup
events. The timing information is part of the format, not the codec, and
thus CODEC_ID_SRT should not exist.
Creating packets with the timing information within the payload only
leads to problem (such as remuxing with timing alteration not working),
especially when the SubRip markup is being used in container like
Matroska in addition to this standalone SRT format.
The main reason the timing line was included in those CODEC_ID_SRT
packets is likely because it contained extra information (the event
position) the codec actually needs. This issue is solved by using the
AV_PKT_DATA_SUBTITLE_POSITION side data type.
This commit introduces a new packet side data type for the subtitle
position information. This is meant to be used by the SRT format where
that information is stored along with the timing, which is not part of
the subrip packets.
It is possible to support files with odd width and/or height
if real width and height are stored in header.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
* commit 'c68317ebbe4915035df0b08c23eea7a0b80ab881':
lavc: fix documentation for AVCodecContext.delay
atrac3: return an error if extradata_size is not a specific known size
lavc: use the correct API version guard macro for avcodec_encode_audio()
Move Doxyfile into the doc/ subdirectory
doxygen: Build Doxygen documentation in the doc/ subdirectory
dfa: use av_memcpy_backptr() where previously impossible
av_memcpy_backptr: Drop no longer necessary malloc padding
Conflicts:
.gitignore
libavcodec/avcodec.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '80521c1997a23e148edf89e11b939ab8646297ca':
build: allow targets to specify extra objects to link with executables
swscale: avoid pointless use of compound literals
libm: add fallbacks for various single-precision functions
network: use getservbyport() only if available
network: add fallbacks for INADDR_LOOPBACK and INET_ADDRSTRLEN
Include sys/time.h before sys/resource.h
Conflicts:
Makefile
configure
libavutil/libm.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Avoids memleaks with audio when extended_data is nontrivial and the user
doesn't reset the frame.
Shouldn't have any effect for video for now, but might be useful in the
future.
In avcodec_open2(), apply consistent casing and avoid "or" conjunction at
the beginning of a sentence, in the messages issued in case of
experimental codec usage.
* commit 'ec444c84cfd30ef34a4e7b4ec7ee77d7e5250d25':
mpegaudiodec: Fix buffer handling on random access
mpegaudio: Refactor mp3on4 flush function
fate: Add dependencies for audio tests
fate: cosmetics: Group idct8x8 test together with all other libavcodec tests
fate: More fine-grained dependencies for libavcodec test programs
Conflicts:
tests/fate/audio.mak
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '468ea9d5b14f92fe61f47f034e67066f65163f5f':
Revert "avutil: make some tables visible again"
Revert "avutil: Add a copy of ff_sqrt_tab back into avutil to restore ABI compatibility"
Conflicts:
libavcodec/sqrt_tab.c
libavutil/libavutil.v
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2b8dd371e4d276ca0d342e82b8b4cc281be0630a':
lavu: postpone recent deprecations until the next major bump
APIchanges: update lavr bump date
avconv: only apply presets when we have an encoder.
atrac3: replace a calculation with FFALIGN()
atrac3: remove unused ATRAC3Context field, sample_rate
atrac3: use sizeof(variable) instead of sizeof(type)
atrac3: simplify MDCT window calculation
Conflicts:
doc/APIchanges
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5d1007f74dd496d54b932242004382f44e3b22b4':
atrac3: initialize static tables in AVCodec.init_static_data()
atrac3: separate window initialization from IMDCT initialization
atrac3: move the 'frame_factor' field from ATRAC3Context to where it is used
atrac3: remove unused ATRAC3Context field, bit_rate
Conflicts:
libavcodec/atrac3.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'a2664c91fba15a1307f676ffad511f8f86fb3a27':
atrac3: move the 'samples_per_frame' field from ATRAC3Context to where it is used
atrac3: remove unused ATRAC3Context field, samples_per_channel
atrac3: use AVCodecContext.block_align instead of keeping a private copy
atrac3: move the 'delay' field from ATRAC3Context to where it is used
atrac3: move the 'version' field from ATRAC3Context to where it is used
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5ac673b5531d846b79a3d77e3e932e0cb1234c45':
atrac3: use AVCodecContext.channels instead of keeping a private copy
atrac3: simplify some loop indexing
atrac3: cosmetics: pretty-printing and renaming
pcm: define AVCodec instances only for enabled codecs
libxvid: remove useless doxy comments.
lavc: remove stats_out from the options table.
Conflicts:
libavcodec/atrac3.c
libavcodec/pcm.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This defines an AVCodec only if the corresponding CONFIG option is
enabled instead of using the broad CONFIG_ENCODERS/DECODERS.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Since it is declared as a string AVOption, the generic freeing code
attempts to free it on codec close. Some codecs might have already freed
it elsewhere (or didn't even allocate it with av_malloc() in the first
place), so this might lead to an invalid free.
There is no point in having this field accessible as an AVOption, so
remove it from the options table.
Fixes Bug 380.
CC: libav-stable@libav.org
Error out on init if a codec with CODEC_CAP_EXPERIMENTAL is requested
and strict_std_compliance is not FF_COMPLIANCE_EXPERIMENTAL.
Move the check from avconv to avcodec_open2() and return
AVERROR_EXPERIMENTAL accordingly.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit introduces a new AVPacket side data type:
AV_PKT_DATA_STRINGS_METADATA. Its main goal is to provide a way to
transmit the metadata from the AVFilterBufferRef up to the AVFrame. This
is at the moment "only" useful for lavfi input from libavdevice:
lavd/lavfi only outputs packets, and the metadata from the buffer ref
kept in its context needs to be transmitted from the packet to the frame
by the decoders. The buffer ref can be destroyed at any time (along with
the metadata), and a duplication of the AVPacket needs to duplicate the
metadata as well, so the choice of using the side data to store them was
selected.
Making sure lavd/lavfi raises the metadata is useful to allow tools like
ffprobe to access the filters metadata (it is at the moment the only
way); ffprobe will now automatically show the AVFrame metadata in any
customizable output format for users. API users will also be able to
access the AVFrame->metadata pointer the same way ffprobe does
(av_frame_get_metadata).
All the changes are done in this single commit to avoid some memory
leaks: for instances, the changes in lavfi/avcodec.c are meant to
duplicate the metadata from the buffer ref into the AVFrame. Unless we
have an internal way of freeing the AVFrame->metadata automatically, it
will leak in most of the user apps. To fix this problem, we introduce
AVCodecContext->metadata and link avctx->metadata to the current
frame->metadata and free it at each decode frame call (and in the codec
closing callback for the last one). But doing this also means to update
the way the tiff decoder already handles the AVFrame->metadata (it's the
only one decoder with frame metadata at the moment), by making sure it
is not trying to free a pointer already freed by the lavc internals.
The lavfi/avcodec.c buffer ref code is based on an old Thomas Kühnel
work, the rest of the code belongs to the commit author.
Signed-off-by: Thomas Kühnel <kuehnelth@googlemail.com>
Signed-off-by: Clément Bœsch <ubitux@gmail.com>
* 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>
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>
* commit 'd15c21e5fa3961f10026da1a3080a3aa3cf4cec9':
avutil: Add a copy of ff_sqrt_tab back into avutil to restore ABI compatibility
avutil: make some tables visible again
avutil: remove inline av_log2 from public API
celp_math: rename ff_log2 to ff_log2_q15
Conflicts:
libavutil/libavutil.v
Merged-by: Michael Niedermayer <michaelni@gmx.at>