ffmpeg.git
6 years agoconfigure: Properly set zlib dependencies for all components
Diego Biurrun [Tue, 6 Aug 2013 00:31:33 +0000 (02:31 +0200)]
configure: Properly set zlib dependencies for all components

6 years agoconfigure: The W64 demuxer should select the WAV demuxer, not depend on it
Diego Biurrun [Mon, 5 Aug 2013 21:05:30 +0000 (23:05 +0200)]
configure: The W64 demuxer should select the WAV demuxer, not depend on it

6 years agoconfigure: Properly split avserver component and system dependencies
Diego Biurrun [Tue, 27 Nov 2012 20:48:34 +0000 (21:48 +0100)]
configure: Properly split avserver component and system dependencies

6 years agoriff: Move demuxing code to a separate file.
Diego Biurrun [Sun, 4 Aug 2013 12:33:36 +0000 (14:33 +0200)]
riff: Move demuxing code to a separate file.

6 years agoriff: Move muxing code to a separate file
Diego Biurrun [Sun, 4 Aug 2013 12:10:54 +0000 (14:10 +0200)]
riff: Move muxing code to a separate file

6 years agoavformat/dv: K&R formatting cosmetics
Diego Biurrun [Tue, 6 Aug 2013 00:55:02 +0000 (02:55 +0200)]
avformat/dv: K&R formatting cosmetics

6 years agotcp: Use a different log message and level if there's more addresses to try
Martin Storsjö [Mon, 5 Aug 2013 16:44:20 +0000 (19:44 +0300)]
tcp: Use a different log message and level if there's more addresses to try

This lowers the level of warnings printed if trying to connect
to a host name that provides both v6 and v4 addresses but the
service only is available on the v4 address (often occurring for
'localhost', with servers that aren't v6-aware).

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agounix: Convert from AVERROR to errno range before comparing error codes
Martin Storsjö [Mon, 5 Aug 2013 16:39:08 +0000 (19:39 +0300)]
unix: Convert from AVERROR to errno range before comparing error codes

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoavcodec/options: Drop deprecation warning suppression macros
Diego Biurrun [Mon, 5 Aug 2013 20:28:26 +0000 (22:28 +0200)]
avcodec/options: Drop deprecation warning suppression macros

The options table is used in tools built by the host compiler and the
deprecation macros pull in bits that are not safe to use if host and
target compiler differ.

6 years agoriff.h: Remove stray extern declaration for non-existing symbol
Diego Biurrun [Sun, 4 Aug 2013 12:08:47 +0000 (14:08 +0200)]
riff.h: Remove stray extern declaration for non-existing symbol

6 years agotwinvq: Split VQF-specific part from common TwinVQ decoder core
Kostya Shishkov [Sun, 4 Aug 2013 15:18:34 +0000 (17:18 +0200)]
twinvq: Split VQF-specific part from common TwinVQ decoder core

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agotwinvq: Prefix enums and defines shared with VoxWare MetaSound
Diego Biurrun [Mon, 5 Aug 2013 10:37:01 +0000 (12:37 +0200)]
twinvq: Prefix enums and defines shared with VoxWare MetaSound

6 years agotwinvq: move all bitstream reading into single place
Kostya Shishkov [Sun, 4 Aug 2013 15:17:25 +0000 (17:17 +0200)]
twinvq: move all bitstream reading into single place

This is required for the future addition of VoxWare MetaSound decoder, for its
functions are mostly the same but bitstream reader is completely different
and bitstream format is slightly different too.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agompegts: Remove one 64-bit integer modulus operation per packet
Ben Avison [Mon, 5 Aug 2013 12:12:49 +0000 (13:12 +0100)]
mpegts: Remove one 64-bit integer modulus operation per packet

The common case of the pointer having increased by one packet (which results
in no change to the modulus) can be detected with a 64-bit subtraction,
which is far cheaper than a division on many platforms.

           Before          After
           Mean   StdDev   Mean   StdDev  Change
Divisions   248.3  8.8      51.5   7.4    +381.7%
Overall    2773.2 25.6     2372.5 43.1     +16.9%

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agovc1: check mb_height validity.
Luca Barbato [Mon, 5 Aug 2013 04:30:24 +0000 (06:30 +0200)]
vc1: check mb_height validity.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
6 years agovc1: check the source buffer in vc1_mc functions
Luca Barbato [Mon, 5 Aug 2013 04:27:12 +0000 (06:27 +0200)]
vc1: check the source buffer in vc1_mc functions

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
6 years agobink: Bound check the quantization matrix.
Luca Barbato [Sun, 4 Aug 2013 16:48:20 +0000 (18:48 +0200)]
bink: Bound check the quantization matrix.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
6 years agonetwork: Use SOCK_CLOEXEC when available
Luca Barbato [Sat, 3 Aug 2013 13:00:11 +0000 (15:00 +0200)]
network: Use SOCK_CLOEXEC when available

6 years agolavf: Support unix sockets
Luca Barbato [Mon, 29 Jul 2013 23:34:56 +0000 (01:34 +0200)]
lavf: Support unix sockets

6 years agolibx264: add shortcut for the bluray compatibility option
Luca Barbato [Mon, 5 Aug 2013 11:23:52 +0000 (13:23 +0200)]
libx264: add shortcut for the bluray compatibility option

As for intra-refresh it is just a commodity.

6 years agompegts: Make discard_pid() faster for single-program streams
Ben Avison [Mon, 5 Aug 2013 12:12:51 +0000 (13:12 +0100)]
mpegts: Make discard_pid() faster for single-program streams

When a stream contains a single program, there's no point in doing a
PID -> program lookup. Normally the one and only program isn't disabled,
so no packets should be discarded.

              Before          After
              Mean   StdDev   Mean   StdDev  Change
discard_pid()   73.8  9.4       20.2  1.5    +264.8%
Overall       2300.8 28.0     2253.1 20.6      +2.1%

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agompegts: Remove one memcpy per packet
Ben Avison [Wed, 31 Jul 2013 22:46:08 +0000 (23:46 +0100)]
mpegts: Remove one memcpy per packet

This was being performed to ensure that a complete packet was held in
contiguous memory, prior to parsing the packet. However, the source buffer
is typically large enough that the packet was already contiguous, so it is
beneficial to return the packet by reference in most cases.

         Before          After
         Mean   StdDev   Mean   StdDev  Change
memcpy    720.7  32.7     649.8  25.1   +10.9%
Overall  2372.7  46.1    2291.7  21.8    +3.5%

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoavio: Add an internal function for reading without copying
Ben Avison [Wed, 31 Jul 2013 22:46:08 +0000 (23:46 +0100)]
avio: Add an internal function for reading without copying

As long as there is enough contiguous data in the avio buffer,
just return a pointer to it instead of copying it to the caller
provided buffer.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agobuild: Add missing img2.o dependency to apetag.o
Diego Biurrun [Sun, 4 Aug 2013 23:43:13 +0000 (01:43 +0200)]
build: Add missing img2.o dependency to apetag.o

6 years agoismindex: Replace mkdir ifdeffery by os_support.h #include
Diego Biurrun [Sun, 4 Aug 2013 22:06:06 +0000 (00:06 +0200)]
ismindex: Replace mkdir ifdeffery by os_support.h #include

os_support.h contains more precise workarounds for non-POSIX mkdir().

6 years agovdpau: deprecate bitstream buffers within the hardware context
Rémi Denis-Courmont [Thu, 25 Jul 2013 19:30:21 +0000 (22:30 +0300)]
vdpau: deprecate bitstream buffers within the hardware context

The bitstream buffers are now private and freed by libavcodec. For
backward compatibility, the hold bitstream buffer pointer is left NULL
(applications were supposed to av_freep() it).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
6 years agovdpau: store picture data in picture's rather than codec's context
Rémi Denis-Courmont [Thu, 25 Jul 2013 19:30:20 +0000 (22:30 +0300)]
vdpau: store picture data in picture's rather than codec's context

Signed-off-by: Anton Khirnov <anton@khirnov.net>
6 years agovdpau: deprecate VDPAU codec capability
Rémi Denis-Courmont [Thu, 25 Jul 2013 19:30:19 +0000 (22:30 +0300)]
vdpau: deprecate VDPAU codec capability

Signed-off-by: Anton Khirnov <anton@khirnov.net>
6 years agovdpau: deprecate old codec-specific pixel formats
Rémi Denis-Courmont [Thu, 25 Jul 2013 19:30:18 +0000 (22:30 +0300)]
vdpau: deprecate old codec-specific pixel formats

Signed-off-by: Anton Khirnov <anton@khirnov.net>
6 years agovdpau: remove old-style decoders
Rémi Denis-Courmont [Thu, 25 Jul 2013 19:30:17 +0000 (22:30 +0300)]
vdpau: remove old-style decoders

Signed-off-by: Anton Khirnov <anton@khirnov.net>
6 years agoavconv: support -t as an input option.
Anton Khirnov [Tue, 18 Jun 2013 09:12:09 +0000 (11:12 +0200)]
avconv: support -t as an input option.

It limits the duration of the data read from a given input.

6 years agoavconv: make input -ss accurate when transcoding
Anton Khirnov [Sat, 15 Jun 2013 07:59:40 +0000 (09:59 +0200)]
avconv: make input -ss accurate when transcoding

Insert (a)trim filters on the corresponding inputs, so the extra frames
are decoded and discarded.

6 years agoavconv: distinguish between -ss 0 and -ss not being used
Anton Khirnov [Sat, 15 Jun 2013 07:35:10 +0000 (09:35 +0200)]
avconv: distinguish between -ss 0 and -ss not being used

Using -ss 0 to drop frames with negative timestamps is a perfectly valid
use case.

6 years agoavconv: insert extra filters in the same way for both graph inputs and outputs
Anton Khirnov [Fri, 14 Jun 2013 16:25:30 +0000 (18:25 +0200)]
avconv: insert extra filters in the same way for both graph inputs and outputs

This will allow using the same code when one filter can be inserted both
on input and output.

6 years agolavfi/fifo: fix flushing when using request_samples
Anton Khirnov [Sun, 4 Aug 2013 10:10:23 +0000 (12:10 +0200)]
lavfi/fifo: fix flushing when using request_samples

If any samples are still buffered when request_frame returns EOF, they
won't be returned currently.

6 years agoavconv: fix usage of deprecated lavfi API
Anton Khirnov [Sun, 4 Aug 2013 14:38:25 +0000 (16:38 +0200)]
avconv: fix usage of deprecated lavfi API

6 years agoavserver: do not use a static string as a default for a string option
Anton Khirnov [Sun, 4 Aug 2013 16:47:22 +0000 (18:47 +0200)]
avserver: do not use a static string as a default for a string option

Fixes an invalid free.

Bug-id: 448

6 years agomxfenc: switch to av_reallocp_array() and check allocation errors
Alexandra Khirnova [Fri, 2 Aug 2013 17:21:24 +0000 (19:21 +0200)]
mxfenc: switch to av_reallocp_array() and check allocation errors

Signed-off-by: Anton Khirnov <anton@khirnov.net>
6 years agoaac: Forward errors properly in aac_decode_frame_int
Luca Barbato [Sun, 4 Aug 2013 13:14:25 +0000 (15:14 +0200)]
aac: Forward errors properly in aac_decode_frame_int

Incidentally also remove a warning.

6 years agoaac: Check init_get_bits return value
Luca Barbato [Sun, 4 Aug 2013 13:00:02 +0000 (15:00 +0200)]
aac: Check init_get_bits return value

Some code paths can call it with invalid length.

CC: libav-stable@libav.org
6 years agoavconv: improve some variable names
Anton Khirnov [Fri, 14 Jun 2013 16:12:23 +0000 (18:12 +0200)]
avconv: improve some variable names

'filter' is too generic, since the functions in question deal with
several filters.

Also add const qualifiers to those variables.

6 years agolavfi: add const to the AVFilter parameter of avfilter_graph_create_filter()
Anton Khirnov [Fri, 14 Jun 2013 16:14:33 +0000 (18:14 +0200)]
lavfi: add const to the AVFilter parameter of avfilter_graph_create_filter()

This function should never modify the filter.

6 years agoconfigure: Check for GCC diagnostic pragma support inside of functions
Diego Biurrun [Fri, 2 Aug 2013 20:03:09 +0000 (22:03 +0200)]
configure: Check for GCC diagnostic pragma support inside of functions

The actual usage of the pragma is within functions and older versions
of gcc only support the pragma outside of functions.

6 years agoavcodec: Add output_picture_number to AVCodecParserContext
Yusuke Nakamura [Fri, 2 Aug 2013 09:16:48 +0000 (18:16 +0900)]
avcodec: Add output_picture_number to AVCodecParserContext

Set output_picture_number in H.264 parser.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agoDisable deprecation warnings for cases where a replacement is available
Diego Biurrun [Wed, 27 Mar 2013 17:36:51 +0000 (18:36 +0100)]
Disable deprecation warnings for cases where a replacement is available

6 years agobuild: Add _Pragma macro to disable deprecated declaration warnings
Diego Biurrun [Wed, 27 Mar 2013 17:23:01 +0000 (18:23 +0100)]
build: Add _Pragma macro to disable deprecated declaration warnings

6 years agodoc/print_options: Move options headers to a saner place
Diego Biurrun [Thu, 1 Aug 2013 12:41:34 +0000 (14:41 +0200)]
doc/print_options: Move options headers to a saner place

6 years agoGive less generic names to global library option arrays
Diego Biurrun [Thu, 1 Aug 2013 12:35:01 +0000 (14:35 +0200)]
Give less generic names to global library option arrays

6 years agortmp: Add seek support
Gavriloaie Eugen-Andrei [Fri, 2 Aug 2013 09:29:23 +0000 (12:29 +0300)]
rtmp: Add seek support

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoh264_sei: Return meaningful values
Vittorio Giovara [Fri, 2 Aug 2013 08:33:00 +0000 (10:33 +0200)]
h264_sei: Return meaningful values

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agoh264_sei: K&R formatting cosmetics
Vittorio Giovara [Wed, 31 Jul 2013 08:13:22 +0000 (10:13 +0200)]
h264_sei: K&R formatting cosmetics

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agoh264_sei: Remove pointless old comment
Diego Biurrun [Wed, 31 Jul 2013 16:07:53 +0000 (18:07 +0200)]
h264_sei: Remove pointless old comment

6 years agotwinvq: Add proper twinvq prefixes to identifiers
Diego Biurrun [Tue, 30 Jul 2013 17:42:21 +0000 (19:42 +0200)]
twinvq: Add proper twinvq prefixes to identifiers

6 years agoflvdec: Eliminate completely silly goto
Diego Biurrun [Wed, 31 Jul 2013 21:56:26 +0000 (23:56 +0200)]
flvdec: Eliminate completely silly goto

6 years agoflvdec: K&R formatting cosmetics
Diego Biurrun [Wed, 31 Jul 2013 22:10:40 +0000 (00:10 +0200)]
flvdec: K&R formatting cosmetics

6 years agoflvdec: Fix = vs. == typo in sample rate check
Diego Biurrun [Wed, 31 Jul 2013 21:59:05 +0000 (23:59 +0200)]
flvdec: Fix = vs. == typo in sample rate check

6 years agortsp: Simplify code for forming the remote peer url
Martin Storsjö [Thu, 1 Aug 2013 06:51:10 +0000 (09:51 +0300)]
rtsp: Simplify code for forming the remote peer url

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoavframe: have av_frame_get_side_data take const AVFrame*
Vittorio Giovara [Tue, 30 Jul 2013 15:39:07 +0000 (17:39 +0200)]
avframe: have av_frame_get_side_data take const AVFrame*

Signed-off-by: Anton Khirnov <anton@khirnov.net>
6 years agortpproto: Allow specifying a separate rtcp port in ff_rtp_set_remote_url
Martin Storsjö [Wed, 31 Jul 2013 08:48:28 +0000 (11:48 +0300)]
rtpproto: Allow specifying a separate rtcp port in ff_rtp_set_remote_url

A separate rtcp port can already be set when opening the rtp
protocol normally, but when doing port setup as in RTSP (where
we first need to open the local ports and pass them to the peer,
and only then receive the remote peer port numbers), we didn't
check the same url parameter as in the normal open routine.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpproto: Check the size before reading buf[1]
Martin Storsjö [Wed, 31 Jul 2013 09:45:33 +0000 (12:45 +0300)]
rtpproto: Check the size before reading buf[1]

I doubt that anyone ever would try to send a 1 byte packet
via the RTP protocol, but check just in case - it shouldn't
crash at least.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoavconv: add -n option to immediately exit when output files already exist
Vittorio Giovara [Wed, 31 Jul 2013 12:48:49 +0000 (14:48 +0200)]
avconv: add -n option to immediately exit when output files already exist

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoavconv: Call exit_program instead of exit in avconv_opt as well
Martin Storsjö [Wed, 31 Jul 2013 10:44:17 +0000 (13:44 +0300)]
avconv: Call exit_program instead of exit in avconv_opt as well

This seems to have been missed in 636ced8e1dc.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoavopt: Check whether the object actually has got an AVClass
Martin Storsjö [Mon, 29 Jul 2013 11:53:01 +0000 (14:53 +0300)]
avopt: Check whether the object actually has got an AVClass

AVIOContext has got an av_class member that only gets set if
opening the context using avio_open2, but not if allocating a
custom IO context. A caller that wants to read AVOptions from
an AVIOContext (recursively using AV_OPT_SEARCH_CHILDREN) may
not know if the AVIOContext actually has got a class set or not.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpproto: Move rtpproto specific function declarations to a separate header
Martin Storsjö [Wed, 31 Jul 2013 09:29:32 +0000 (12:29 +0300)]
rtpproto: Move rtpproto specific function declarations to a separate header

Mixing these with the rtp depacketizer functions in rtpdec.h is
no good.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpproto: Simplify the rtp_read function by looping over the fds
Martin Storsjö [Wed, 31 Jul 2013 09:21:47 +0000 (12:21 +0300)]
rtpproto: Simplify the rtp_read function by looping over the fds

This avoids having duplicate code where only the fd parameter
differs.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpproto: Remove a misplaced comment
Martin Storsjö [Wed, 31 Jul 2013 09:17:51 +0000 (12:17 +0300)]
rtpproto: Remove a misplaced comment

The fdset is a pollfd array nowadays, and it is already populated
at this point.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpproto: Support nonblocking reads
Martin Storsjö [Fri, 26 Jul 2013 17:24:06 +0000 (20:24 +0300)]
rtpproto: Support nonblocking reads

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpenc: Simplify code by introducing a macro for rescaling NTP timestamps
Martin Storsjö [Wed, 9 Jan 2013 16:55:52 +0000 (18:55 +0200)]
rtpenc: Simplify code by introducing a macro for rescaling NTP timestamps

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoavfilter: Add some missing FF_API_AVFILTERBUFFER ifdefs
Diego Biurrun [Mon, 29 Jul 2013 18:49:53 +0000 (20:49 +0200)]
avfilter: Add some missing FF_API_AVFILTERBUFFER ifdefs

6 years agotree-test: Refactor and plug memory leaks
Diego Biurrun [Tue, 30 Jul 2013 15:28:44 +0000 (17:28 +0200)]
tree-test: Refactor and plug memory leaks

With the most annoying memory leak found by Derek Buitenhuis.

6 years agotree.h: K&R formatting and typo cosmetics
Diego Biurrun [Tue, 30 Jul 2013 17:41:47 +0000 (19:41 +0200)]
tree.h: K&R formatting and typo cosmetics

6 years agohls: Call avformat_find_stream_info() on the chained demuxers
Michael Niedermayer [Wed, 25 Jul 2012 15:40:33 +0000 (17:40 +0200)]
hls: Call avformat_find_stream_info() on the chained demuxers

This allows the chained demuxer (or more precisely, the lavf
utility code) to better fill in timestamps on packets from
these, especially for cases where one stream is a raw ADTS
stream.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoReplace remaining obsolete PIX_FMT names with AV_PIX_FMT equivalents
Diego Biurrun [Mon, 29 Jul 2013 18:48:47 +0000 (20:48 +0200)]
Replace remaining obsolete PIX_FMT names with AV_PIX_FMT equivalents

6 years agortsp: Support RFC4570 (source specific multicast) more properly.
Ed Torbett [Fri, 26 Jul 2013 10:38:00 +0000 (11:38 +0100)]
rtsp: Support RFC4570 (source specific multicast) more properly.

Add support for domain names, for multiple source addresses,
for exclusions, and for session level specification of addresses.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpproto: Support more than one SSM include address, support excludes
Ed Torbett [Fri, 26 Jul 2013 19:37:00 +0000 (22:37 +0300)]
rtpproto: Support more than one SSM include address, support excludes

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoudp: Keep track of include and exclude sources separately
Ed Torbett [Fri, 26 Jul 2013 19:05:21 +0000 (22:05 +0300)]
udp: Keep track of include and exclude sources separately

This allows us to explicitly fail if the caller tried to set
both inclusions and exclusions at the same time.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoudp: Allow specifying multicast include/blocks as host names as well
Ed Torbett [Fri, 26 Jul 2013 18:54:29 +0000 (21:54 +0300)]
udp: Allow specifying multicast include/blocks as host names as well

Previously this only allowed literal IP addresses. When these
are conveyed in a SDP file as in RFC4570, host names are allowed
as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoavisynth: Fix a "AVISynth" vs. "AviSynth" struct name typo
Diego Biurrun [Mon, 29 Jul 2013 17:39:51 +0000 (19:39 +0200)]
avisynth: Fix a "AVISynth" vs. "AviSynth" struct name typo

Also fix some similar typos in comments and documentation.

6 years agoconfigure: Detect AIX ar command instead of hardcoding it in the OS section
Diego Biurrun [Mon, 29 Jul 2013 16:23:08 +0000 (18:23 +0200)]
configure: Detect AIX ar command instead of hardcoding it in the OS section

6 years agofate: Add tree test
Diego Biurrun [Wed, 17 Oct 2012 17:43:41 +0000 (19:43 +0200)]
fate: Add tree test

6 years agoavutil/tree: Drop debug messages that clutter the output
Diego Biurrun [Tue, 16 Oct 2012 14:08:58 +0000 (16:08 +0200)]
avutil/tree: Drop debug messages that clutter the output

6 years agoavutil/tree: K&R formatting cosmetics
Diego Biurrun [Tue, 16 Oct 2012 14:08:05 +0000 (16:08 +0200)]
avutil/tree: K&R formatting cosmetics

6 years agofate: Add timefilter test
Diego Biurrun [Fri, 5 Oct 2012 17:37:10 +0000 (19:37 +0200)]
fate: Add timefilter test

6 years agohls: Free packets when skipping packets when seeking
Martin Storsjö [Mon, 29 Jul 2013 08:27:44 +0000 (11:27 +0300)]
hls: Free packets when skipping packets when seeking

This fixes memory leaks present since 2b3d041cdc.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agohlsproto: Store all durations in AV_TIME_BASE
Martin Storsjö [Mon, 29 Jul 2013 07:27:09 +0000 (10:27 +0300)]
hlsproto: Store all durations in AV_TIME_BASE

Also parse segment durations as floating point, which is allowed
since HLS version 3.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agohls: Store all durations in AV_TIME_BASE
Martin Storsjö [Mon, 29 Jul 2013 07:26:02 +0000 (10:26 +0300)]
hls: Store all durations in AV_TIME_BASE

Also parse segment durations as floating point, which is allowed
since HLS version 3.

This is based on a patch by Zhang Rui.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agohls: Store first_timestamp in units of AV_TIME_BASE
Martin Storsjö [Mon, 29 Jul 2013 07:09:02 +0000 (10:09 +0300)]
hls: Store first_timestamp in units of AV_TIME_BASE

When first_timestamp was stored as-is, its actual time base
wasn't known later in the seek function.

Additionally, the logic (from 795d9594cfa) for scaling it
based on stream_index is flawed - stream_index in the seek
function only specifies which stream the seek timestamp refers
to, but obviously doesn't say anything about which stream
first_timestamp belongs to.

In the cases where stream_index was >= 0 and all streams had the
same time base, this didn't matter in practice.

Seeking taking first_timestamp into account is problematic
when one variant is mpegts (with real timestamps) and one variant
is raw ADTS (with timestamps only being accumulated packet
duration), where the variants start at totally different timestamps.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agohuffyuvenc: BGRA support
Michael Niedermayer [Sun, 10 Mar 2013 10:16:33 +0000 (11:16 +0100)]
huffyuvenc: BGRA support

Bug-Id: 452

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agohls: Create an AVProgram for each variant
LYF [Fri, 16 Nov 2012 06:12:27 +0000 (14:12 +0800)]
hls: Create an AVProgram for each variant

Without the information, an application may choose audio from one
variant and video from another variant, which leads to fetching two
variants from the network. This enables av_find_best_stream() to find
matching audio and video streams, so that only one variant is fetched.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agohls: Respect the different stream time bases when comparing dts
Michael Niedermayer [Mon, 20 Aug 2012 23:00:05 +0000 (01:00 +0200)]
hls: Respect the different stream time bases when comparing dts

Also adjust the streams timestamps according to their start
timestamp when comparing. This helps getting correctly interleaved
packets if one stream lacks timestamps (such as a plain ADTS
stream when the other variants are full mpegts) when the others
have timestamps that don't start from zero.

This probably doesn't work properly if such a stream is
temporarily disabled (via the discard flags) and then reenabled,
and such streams are hard to correctly sync against the other
streams as well - but this works better than before at least.

The segment number restriction makes sure all variants advance
roughly at the same pace as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agohls: Set stream offset before opening a chained demuxer
Martin Storsjö [Sun, 28 Jul 2013 17:33:26 +0000 (20:33 +0300)]
hls: Set stream offset before opening a chained demuxer

This makes sure we don't accidentally check discard flags
for the wrong stream.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agohls: Don't check discard flags until the parent demuxer's streams actually exist
Michael Niedermayer [Mon, 13 Aug 2012 18:37:04 +0000 (20:37 +0200)]
hls: Don't check discard flags until the parent demuxer's streams actually exist

If passing the end of one segment while initializing the
chained demuxer, the parent demuxer's streams aren't set up
yet, so we can't recheck the discard flags.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agohls: Copy the time base from the chained demuxer
Michael Niedermayer [Thu, 7 Mar 2013 12:42:12 +0000 (13:42 +0100)]
hls: Copy the time base from the chained demuxer

When a variant stream isn't mpegts but e.g. raw adts, the
default time base (90k) isn't correct.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agohls: Return all packets from a previous variant before moving on to the next one
Martin Storsjö [Sun, 28 Jul 2013 17:09:31 +0000 (20:09 +0300)]
hls: Return all packets from a previous variant before moving on to the next one

This serves as a safeguard; normally we want to use the dts
comparison to interleave packets from all active variants. If that
dts comparison for some reason doesn't work as intended, make sure
that all packets in all variants for a certain sequence number have
been returned before moving on to the next one.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agolavf: Don't interpret just slightly broken timestamps as wraparound
Michael Niedermayer [Sun, 28 Jul 2013 17:04:05 +0000 (20:04 +0300)]
lavf: Don't interpret just slightly broken timestamps as wraparound

This avoids breaking some slightly incorrect (dts > pts) timestamps
in sample HLS streams from Apple.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agooma: correctly mark and decrypt partial packets
Luca Barbato [Wed, 17 Apr 2013 19:19:23 +0000 (21:19 +0200)]
oma: correctly mark and decrypt partial packets

Incomplete crypted files would lead to a read after buffer boundary
otherwise.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
6 years agooma: check geob tag boundary
Luca Barbato [Wed, 17 Apr 2013 19:07:09 +0000 (21:07 +0200)]
oma: check geob tag boundary

Prevent read after buffer boundary on corrupted tag.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
6 years agooma: refactor seek function
Luca Barbato [Sat, 4 May 2013 05:40:09 +0000 (07:40 +0200)]
oma: refactor seek function

Properly propagate seek errors from avio and the generic pcm seek.

6 years agoxl: Make sure the width is valid
Luca Barbato [Sun, 28 Jul 2013 16:24:15 +0000 (18:24 +0200)]
xl: Make sure the width is valid

And undo the wrong commit f1cb490d6d7391ff7e28cc376908cc98a652228d

CC: libav-stable@libav.org
6 years agohttp: Support reading gzip/deflate compressed data
Zhang Rui [Mon, 22 Jul 2013 20:07:10 +0000 (04:07 +0800)]
http: Support reading gzip/deflate compressed data

Derived from VLC's http module.
Original authors:
  Antoine Cellerier <dionoea@videolan.org>
  Sébastien Escudier <sebastien-devel@celeos.eu>
  Rémi Duraffort <ivoire@videolan.org>
  Rémi Denis-Courmont <remi@remlab.net>
  Francois Cartegnie <fcvlcdev@free.fr>

Normally, http servers shouldn't send this to us since we
don't advertise it with an Accept-Encoding header, but some
servers still do it anyway.

Signed-off-by: Martin Storsjö <martin@martin.st>