Anton Khirnov [Sun, 18 May 2014 10:25:29 +0000 (12:25 +0200)]
mux: drop one of the hacks comprising compute_pkt_fields2()
All encoders should output proper timestamps now.
Anton Khirnov [Sun, 18 May 2014 10:21:32 +0000 (12:21 +0200)]
avconv: do not use poorly defined and undocumented AVStream.pts
Use OutputStream.last_mux_dts as an approximation of 'current' output
time instead.
Anton Khirnov [Sat, 17 May 2014 20:30:42 +0000 (22:30 +0200)]
hevc/intra_pred: simplify neighboring sample derivation
Mickaël Raulet [Sat, 17 May 2014 19:59:08 +0000 (21:59 +0200)]
hevc/intra_pred: drop unnecessary conditions in loops
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Mickaël Raulet [Sat, 17 May 2014 19:59:08 +0000 (21:59 +0200)]
hevc/intra_pred: optimize EXTEND_()*
Process 4 pixels at once.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Sat, 17 May 2014 18:41:22 +0000 (20:41 +0200)]
hevc: templatize intra_pred
Mickaël Raulet [Sat, 17 May 2014 18:32:05 +0000 (20:32 +0200)]
hevc: templatize pred_planar
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Tue, 29 Apr 2014 15:40:57 +0000 (17:40 +0200)]
movenc: use the "encoder" metadata tag to write stsd Compressorname
This mirrors the demuxer behaviour and avoids accessing
AVCodecContext.codec, which should not be done in muxers.
Anton Khirnov [Tue, 29 Apr 2014 15:23:49 +0000 (17:23 +0200)]
avconv: set the "encoder" tag when transcoding
Anton Khirnov [Tue, 29 Apr 2014 15:01:17 +0000 (17:01 +0200)]
wavenc: use codec descriptors to get the codec name
Also, return a proper error code.
Anton Khirnov [Sun, 18 May 2014 08:53:00 +0000 (10:53 +0200)]
doc/APIchanges: mark the release 10 branch point
Anton Khirnov [Sun, 18 May 2014 08:52:41 +0000 (10:52 +0200)]
doc/APIchanges: fill in missing hashes and dates
Anton Khirnov [Sun, 17 Nov 2013 17:42:02 +0000 (18:42 +0100)]
dv: do not set codec timebase
It is not supposed to be set from outside of libavcodec.
Set average framerate instead.
Anton Khirnov [Sun, 11 May 2014 16:00:48 +0000 (18:00 +0200)]
avconv: set output avg_frame_rate when known
Anton Khirnov [Sun, 11 May 2014 15:58:05 +0000 (17:58 +0200)]
lavf: extend avg_frame_rate documentation.
Anton Khirnov [Sun, 11 May 2014 08:07:35 +0000 (10:07 +0200)]
avienc: sanitize variable naming in write_header()
Do not call an AVCodecContext 'stream', that is highly confusing.
Also, add a local variable for the current AVStream in the loop over all
streams.
Anton Khirnov [Sat, 3 May 2014 08:48:03 +0000 (10:48 +0200)]
yop: only set extradata size after it has been successfully allocated
Do not leave a non-zero extradata_size set on failure
Anton Khirnov [Sat, 3 May 2014 09:08:25 +0000 (11:08 +0200)]
yuv4mpegdec: do not set coded_frame properties
coded_frame is not meant to be changed from outside of lavc, and is not
used for decoding.
Set AVCodecContext.field_order instead.
Anton Khirnov [Sat, 3 May 2014 09:04:50 +0000 (11:04 +0200)]
yuv4mpeg: split the demuxer and muxer into separate files
Anton Khirnov [Sat, 3 May 2014 08:44:17 +0000 (10:44 +0200)]
a64: check that extradata exists before reading from it
Anton Khirnov [Sat, 3 May 2014 08:43:27 +0000 (10:43 +0200)]
a64: remove unneeded struct qualifier
Anton Khirnov [Sat, 3 May 2014 06:50:41 +0000 (08:50 +0200)]
4xm: allocate extradata properly.
Pad it with the required amount of zeros, check for malloc failure.
Anton Khirnov [Sat, 5 Apr 2014 06:36:00 +0000 (08:36 +0200)]
lavc: add avcodec_free_context().
Right now, the caller has to manually manage some allocated
AVCodecContext fields, like extradata or subtitle_header. This is
fragile and prone to leaks, especially if we want to add more such
fields in the future.
The only reason for this behaviour is so that the AVStream codec context
can be reused for decoding. Such reuse is discouraged anyway, so this
commit is the first step to deprecating it.
Anton Khirnov [Sat, 5 Apr 2014 05:09:44 +0000 (07:09 +0200)]
lavc: remove the locking code in avcodec_close()
This function should not modify any global state, so there should be no
reason for any locking.
nu774 [Fri, 16 May 2014 11:25:46 +0000 (20:25 +0900)]
riff: Pass block_align to estimate frame duration
Fix incorrect wSamplesPerBlock(=0) written for ADPCM_IMA_WAV
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Martin Storsjö [Thu, 15 May 2014 18:43:46 +0000 (21:43 +0300)]
hlsenc: Set the default codecs to AAC and H264
Most HLS implementation only support these codecs.
Signed-off-by: Martin Storsjö <martin@martin.st>
Katerina Barone-Adesi [Fri, 16 May 2014 16:07:34 +0000 (18:07 +0200)]
build: Support building using clang-usan and disable-optimization
Clang Undefined Behaviour Sanitizer seems to make non-constant constant
expressions, making the compilation fail when they are used within
inline assembly if no optimization is requested.
Add -O1 to the cflags to hide the misbehaviour.
Bug-Id: 683
Hendrik Leppkes [Thu, 8 May 2014 13:51:15 +0000 (09:51 -0400)]
avisynth: set duration of audio streams
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Thu, 15 May 2014 06:02:59 +0000 (08:02 +0200)]
FATE/opus: increase fuzz for the celt tests
This seems to be needed on some 32bit arches.
Janne Grunau [Mon, 28 Apr 2014 15:56:43 +0000 (17:56 +0200)]
aarch64: opus NEON iMDCT and FFT
Opus celt decoding 11% faster and the iMDCT over 2.5 times faster on
Apple's A7.
Tristan Matthews [Wed, 14 May 2014 16:13:49 +0000 (16:13 +0000)]
configure: fix enable-libopus help string
Janne Grunau [Thu, 15 May 2014 12:53:30 +0000 (14:53 +0200)]
build: add avresample after avcodec to FFLIBS
avcodec might depend on avresample and with --as-needed required symbols
might be get removed if avresample is linked before avcodec.
Fixes link failures of avprobe and avplay on aarch64 with
--enable-neon-clobber-test.
Anton Khirnov [Sat, 5 Apr 2014 05:40:49 +0000 (07:40 +0200)]
lavc: properly handle subtitle_header in avcodec_copy_context()
Anton Khirnov [Sat, 5 Apr 2014 05:38:16 +0000 (07:38 +0200)]
lavc: preserve the original private data in avcodec_copy_context()
If a non-NULL codec was passed to avcodec_alloc_context3(), private data
will be already allocated in dest.
Anton Khirnov [Thu, 1 May 2014 11:11:57 +0000 (13:11 +0200)]
lavf: drop the zero-sized packets hack
There should not be any valid reason anymore for passing completely
empty packets to lavf.
OTOH side data-only packets can be useful.
Anton Khirnov [Thu, 1 May 2014 08:43:10 +0000 (10:43 +0200)]
lavf: add AVFMT_FLAG_BITEXACT.
Use it instead of checking CODEC_FLAG_BITEXACT in the first stream's
codec context.
Using codec options inside lavf is fragile and can easily break when the
muxing codec context is not the encoding context.
Anton Khirnov [Thu, 17 Apr 2014 10:51:03 +0000 (12:51 +0200)]
lavc: add a native Opus decoder.
Initial implementation by Andrew D'Addesio <modchipv12@gmail.com> during
GSoC 2012.
Completion by Anton Khirnov <anton@khirnov.net>, sponsored by the
Mozilla Corporation.
Further contributions by:
Christophe Gisquet <christophe.gisquet@gmail.com>
Janne Grunau <janne-libav@jannau.net>
Luca Barbato <lu_zero@gentoo.org>
Janne Grunau [Tue, 13 May 2014 22:05:27 +0000 (00:05 +0200)]
build: do not append $(FFLIBS-) to $(FFLIBS) if $(NAME) is not defined
Avoids including disabled library Makefiles.
Anton Khirnov [Thu, 1 May 2014 08:03:54 +0000 (10:03 +0200)]
lavf: properly document the distinction between flags and ctx_flags
Janne Grunau [Thu, 1 May 2014 11:18:57 +0000 (13:18 +0200)]
build: handle library dependencies in configure
Instead of setting FFLIBS in each library Makefile configure
exports FFLIBS-$library in config.mak.
Janne Grunau [Tue, 13 May 2014 13:47:51 +0000 (15:47 +0200)]
aarch64: assembler in clang-3.4 ignores the division by two
Values are positive powers of two, so just replace it with right shift.
Anton Khirnov [Mon, 24 Mar 2014 01:02:33 +0000 (02:02 +0100)]
avconv: Support VDA hwaccel
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Anton Khirnov [Mon, 24 Mar 2014 00:59:02 +0000 (01:59 +0100)]
lavc: Add new VDA hwaccel
It leverages the new hwaccel 1.2 features:
- get_buffer2 is never called
- the internal context is automatically initialized/deinitialized
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Anton Khirnov [Thu, 6 Mar 2014 18:02:29 +0000 (19:02 +0100)]
vda: use hwaccel private data for internal bitstream buffer
Anton Khirnov [Thu, 6 Mar 2014 13:07:42 +0000 (14:07 +0100)]
lavu: Add a pixel format for new VDA hwaccel
The current hwaccel is broken and cannot be fixed in a compatible
way. It will be deprecated and replaced with a new one.
Anton Khirnov [Thu, 6 Mar 2014 17:37:42 +0000 (18:37 +0100)]
lavc: Add hwaccel private data and init/uninit callbacks
Luca Barbato [Thu, 8 May 2014 12:43:23 +0000 (14:43 +0200)]
hwaccel: Support specific frame allocators
It would reduce the boilerplate code users have to write.
Anton Khirnov [Thu, 6 Mar 2014 17:19:52 +0000 (18:19 +0100)]
hwaccel: Rename priv_data_size to frame_priv_data_size
This describes more accurately what this field is for.
Anton Khirnov [Thu, 6 Mar 2014 17:15:31 +0000 (18:15 +0100)]
lavc: document which parts of AVHWAccel are private.
Anton Khirnov [Thu, 6 Mar 2014 17:01:05 +0000 (18:01 +0100)]
lavc: set AVCodecContext.hwaccel in ff_get_format()
This way each decoder does not have to do the same thing manually.
Anton Khirnov [Thu, 6 Mar 2014 16:48:18 +0000 (17:48 +0100)]
lavc: Add an internal wrapper around get_format()
It will be useful in the following commits.
nu774 [Fri, 9 May 2014 12:47:41 +0000 (21:47 +0900)]
pcm-dvd: Fix 20bit decoding
Increment the pointer as needed.
Bug-Id: 592
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Martin Storsjö [Thu, 8 May 2014 12:12:23 +0000 (15:12 +0300)]
rtmpproto: Check the buffer sizes when copying app/playpath strings
As pointed out by Reimar Döffinger.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
Uwe L. Korn [Mon, 5 May 2014 20:47:05 +0000 (21:47 +0100)]
rtmpproto: Support alternative slist parameter in rtmp URLs
Support the URL scheme where the playpath is in an RTMP URL is
passed as the slist argument and the app is given infront of the
query part of the URL:
rtmp://host[:port]/[app]?slist=[playpath]
(other arguments in the query part are stripped as they are not used)
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Wed, 30 Apr 2014 06:44:31 +0000 (09:44 +0300)]
libfdk-aac: Relicense the library wrappers to 2-clause BSD
This should make it possible for Fraunhofer to contribute to these
wrappers - they didn't want to contribute to code under LGPL2.1 with
the "or any later version" clause (which allowed using the code
under the LGPL3 license).
Signed-off-by: Martin Storsjö <martin@martin.st>
Jean First [Sun, 26 Jan 2014 00:31:53 +0000 (01:31 +0100)]
libfdk-aacenc: Enable 7.1 channel encoding
7.1(wide) and 7.1(wide-side) channel layouts are supported in
fdk-aac since the 0.1.3 release.
The earlier versions of fdk-aac didn't include any library
version defines in the public headers, thus checking for
the AACENCODER_LIB_VL0 define is enough to know that we're
building against a new enough version of fdk-aac.
This change includes contributions by Tim Walker,
Michael Niedermayer and Timothy Gu.
Signed-off-by: Martin Storsjö <martin@martin.st>
Anton Khirnov [Fri, 4 Apr 2014 17:38:04 +0000 (19:38 +0200)]
avconv: rename OutputStream.opts to OutputStream.encoder_opts
This makes it more clear what is this variable for exactly.
Anton Khirnov [Sun, 6 Apr 2014 05:28:51 +0000 (07:28 +0200)]
avconv: remove a useless line
Doing anything with that field when we are doing streamcopy (so the
encoder is not opened) should have absolutely no effect.
Anton Khirnov [Fri, 4 Apr 2014 17:59:48 +0000 (19:59 +0200)]
avconv: rename 'codec' to 'enc_ctx'
This more clearly describes what is the variable used for.
Also, move its declaration into the block where it is actually used.
Anton Khirnov [Fri, 4 Apr 2014 17:59:48 +0000 (19:59 +0200)]
avconv: rename 'icodec' to 'dec_ctx'
This more clearly describes what is the variable used for.
Anton Khirnov [Fri, 4 Apr 2014 17:38:04 +0000 (19:38 +0200)]
avconv: rename InputStream.opts to InputStream.decoder_opts
This makes it more clear what is this variable for exactly.
Anton Khirnov [Tue, 25 Mar 2014 11:38:31 +0000 (12:38 +0100)]
avconv: simplify exit_program() by using more local vars
Luca Barbato [Sat, 26 Apr 2014 19:10:30 +0000 (21:10 +0200)]
probe: Support AAC_LATM in set_codec_from_probe_data
Luca Barbato [Sat, 26 Apr 2014 18:32:47 +0000 (20:32 +0200)]
latm: Add a probe function
Luca Barbato [Thu, 1 May 2014 12:54:06 +0000 (14:54 +0200)]
mathematics: K&R formatting cosmetics
Luca Barbato [Thu, 1 May 2014 22:21:23 +0000 (00:21 +0200)]
swscale: Fix an undefined behaviour
Prevent a division by zero down the codepath.
Sample-Id:
00001721-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Luca Barbato [Thu, 1 May 2014 22:18:04 +0000 (00:18 +0200)]
vp9: Read the frame size as unsigned
Sample-Id:
00001723-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Luca Barbato [Sat, 26 Apr 2014 17:02:36 +0000 (19:02 +0200)]
aac: K&R formatting cosmetics
Luca Barbato [Sat, 26 Apr 2014 12:09:55 +0000 (14:09 +0200)]
flv: K&R formatting cosmetics
Anton Khirnov [Tue, 29 Apr 2014 14:44:08 +0000 (16:44 +0200)]
lavc: deprecate AVCodecContext.codec_name
It is undocumented and has no real use.
Anton Khirnov [Tue, 29 Apr 2014 14:42:07 +0000 (16:42 +0200)]
lavc: do not use AVCodecContext.codec_name in avcodec_string()
That field will be deprecated.
Anton Khirnov [Tue, 29 Apr 2014 14:40:55 +0000 (16:40 +0200)]
rmdec: do not export anything to AVCodecContext.codec_name
That field will be deprecated and the value that is written there is not
particularly useful.
Anton Khirnov [Tue, 29 Apr 2014 14:13:38 +0000 (16:13 +0200)]
asfenc: use codec descriptors instead of AVCodecs to write codec info
Also, stop using AVCodecContext.codec_name as fallback, since it will be
deprecated.
Changes the result of the lavf-asf test (and its associated seektest),
since 'msmpeg4v3' gets written instead of just 'msmpeg4'.
Anton Khirnov [Tue, 29 Apr 2014 13:42:38 +0000 (15:42 +0200)]
oggparseskeleton: do not use AVCodecContext.codec_name
That field is undocumented, of dubious use, and will be deprecated.
Anton Khirnov [Tue, 29 Apr 2014 13:37:52 +0000 (15:37 +0200)]
mov: export stsd Compressorname in metadata
Stop using the undocumented to-be-deprecated AVCodecContext.codec_name
field.
Anton Khirnov [Tue, 29 Apr 2014 06:00:03 +0000 (08:00 +0200)]
lavc: move CODEC_FLAG_MV0 to mpegvideo
Anton Khirnov [Tue, 29 Apr 2014 06:08:43 +0000 (08:08 +0200)]
lavc: make the xvid-specific "gmc" flag a private option of libxvid
Anton Khirnov [Tue, 29 Apr 2014 06:00:03 +0000 (08:00 +0200)]
lavc: move CODEC_FLAG_NORMALIZE_AQP to mpegvideo
Anton Khirnov [Tue, 29 Apr 2014 05:50:16 +0000 (07:50 +0200)]
lavc: deprecate CODEC_FLAG_INPUT_PRESERVED
The addition of reference-counted frames makes it pointless.
Anton Khirnov [Sun, 27 Apr 2014 11:40:11 +0000 (13:40 +0200)]
matroska: add the Opus mapping
Anton Khirnov [Tue, 29 Apr 2014 10:26:38 +0000 (12:26 +0200)]
matroskaenc: write CodecDelay
Alessandro Ghedini [Tue, 29 Apr 2014 16:53:16 +0000 (18:53 +0200)]
lavfi: add Bauer stereo-to-binaural audio filter
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Tue, 29 Apr 2014 10:03:13 +0000 (12:03 +0200)]
matroskadec: read the CodecDelay element
Luca Barbato [Sat, 26 Apr 2014 11:32:03 +0000 (13:32 +0200)]
librtmp: Map native options to librtmp ones when possible
Makes the two protocols nearly seamless.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Tue, 29 Apr 2014 16:20:17 +0000 (18:20 +0200)]
hls: Sync the file number with the start sequence
Luca Barbato [Tue, 29 Apr 2014 16:37:01 +0000 (18:37 +0200)]
hls: Factor the sequence computation
Luca Barbato [Tue, 29 Apr 2014 08:13:34 +0000 (10:13 +0200)]
hls: Print start_number as first sequence value
The option now behaves as expected.
Luca Barbato [Tue, 29 Apr 2014 08:28:11 +0000 (10:28 +0200)]
segment: Report the current media sequence
Useful for debugging mostly.
Luca Barbato [Tue, 29 Apr 2014 08:07:03 +0000 (10:07 +0200)]
hls: Report the current media sequence
Useful for debugging mostly.
Hendrik Leppkes [Mon, 28 Apr 2014 21:38:05 +0000 (23:38 +0200)]
avconv_dxva2: define all used GUIDs directly instead of relying on the dxva2api.h header
This avoids issues with inconsistent headers with different versions of mingw-w64 and older MSVC variants.
Fixes FATE builds of MSVC 2010.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Tue, 29 Apr 2014 09:13:43 +0000 (11:13 +0200)]
h264: drop commented out cruft
Anton Khirnov [Thu, 5 Dec 2013 20:17:00 +0000 (21:17 +0100)]
mpegvideo: remove unused MpegEncContext.b4_stride
Anton Khirnov [Thu, 5 Dec 2013 20:14:40 +0000 (21:14 +0100)]
mpegvideo: move the MpegEncContext fields used from arm asm to the beginning
This should reduce the frequency with which the offsets need to be
updated.
Luca Barbato [Tue, 18 Mar 2014 20:19:00 +0000 (21:19 +0100)]
hls: Add an option to prepend a baseurl to the playlist entries
Useful to generate playlists with absolute paths.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Enrique Arizón Benito [Tue, 18 Mar 2014 20:18:59 +0000 (21:18 +0100)]
segment: Add an option to prepend a string to the list entries
Useful to generate lists with absolute urls.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Anton Khirnov [Mon, 28 Apr 2014 21:00:38 +0000 (23:00 +0200)]
configure: rework dxva in avconv handling
Move the dxva check after the dependencies have been detected, make sure
the ole32 library exists.
Fixes build on non-Windows.
Hendrik Leppkes [Tue, 22 Apr 2014 13:22:53 +0000 (15:22 +0200)]
avconv: add support for DXVA2 decoding
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Michael Niedermayer [Tue, 22 Apr 2014 13:22:52 +0000 (15:22 +0200)]
hwaccel: fix dxva2 & vaapi loop filter parameters
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Hendrik Leppkes [Tue, 22 Apr 2014 13:22:51 +0000 (15:22 +0200)]
dxva2_h264: add a workaround for old Intel GPUs
Old Intel GPUs expect the reference frame index to the actual surface,
instead of the index into RefFrameList as specified by the spec.
This workaround should be set when using one of the "ClearVideo" decoder
devices.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Hendrik Leppkes [Tue, 22 Apr 2014 13:22:50 +0000 (15:22 +0200)]
dxva2_h264: set the correct ref frame index in the long slice struct
The latest H.264 DXVA specification states that the index in this
structure should refer to a valid entry in the RefFrameList of the picture
parameter structure, and not to the actual surface index.
Fixes H.264 DXVA2 decoding on recent Intel GPUs (tested on Sandy and Ivy)
Signed-off-by: Anton Khirnov <anton@khirnov.net>