Commit Graph

13159 Commits

Author SHA1 Message Date
Michael Niedermayer
7dfe798d14 Merge commit '06205b5efdcf0bc4c5463bfdd02f09b5f79fc4cd'
* commit '06205b5efdcf0bc4c5463bfdd02f09b5f79fc4cd':
  hls: Free packets when skipping packets when seeking

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-30 10:26:04 +02:00
Michael Niedermayer
ef1544740e Merge commit 'a2b7eeeb06471979ee39fd3075a04633222678a6'
* commit 'a2b7eeeb06471979ee39fd3075a04633222678a6':
  hlsproto: Store all durations in AV_TIME_BASE

Conflicts:
	libavformat/hlsproto.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-30 10:19:20 +02:00
Michael Niedermayer
4971551fd2 Merge commit 'c44191039944526dd7eb6e536990b555837961f5'
* commit 'c44191039944526dd7eb6e536990b555837961f5':
  hls: Store all durations in AV_TIME_BASE

Conflicts:
	libavformat/hls.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-30 10:12:48 +02:00
Michael Niedermayer
5a270296cb Merge commit 'e1d5b244761cf69db655ad7ece1dbf2c13dd4fce'
* commit 'e1d5b244761cf69db655ad7ece1dbf2c13dd4fce':
  hls: Store first_timestamp in units of AV_TIME_BASE

Conflicts:
	libavformat/hls.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-30 10:03:02 +02:00
Michael Niedermayer
6df20d0d35 asfdec: remove "ignoring invalid packet_obj_size" code
The code is no longer needed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-30 03:19:39 +02:00
Michael Niedermayer
465aa53f21 asfdec: move packet_obj_size to ASFStream
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-30 03:19:39 +02:00
Michael Niedermayer
cb6d02df4c asfdec: avoid using AVStream->priv_data
This ensures that we dont write into one struct and read the other without
realizing that they arent identical.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-30 03:19:39 +02:00
Martin Storsjö
06205b5efd hls: Free packets when skipping packets when seeking
This fixes memory leaks present since 2b3d041cdc.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-29 20:15:50 +03:00
Martin Storsjö
a2b7eeeb06 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>
2013-07-29 20:15:50 +03:00
Martin Storsjö
c441910399 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>
2013-07-29 20:15:50 +03:00
Martin Storsjö
e1d5b24476 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 795d9594cf) 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>
2013-07-29 20:15:50 +03:00
Michael Niedermayer
994e09345e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  hls: Create an AVProgram for each variant

Conflicts:
	libavformat/hls.c

See: 23db5418ed
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-29 14:35:40 +02:00
Michael Niedermayer
65dcb54493 Merge commit '9d64f236292ba28018dd9afd2d57f8f944b33f81'
* commit '9d64f236292ba28018dd9afd2d57f8f944b33f81':
  hls: Respect the different stream time bases when comparing dts

Conflicts:
	libavformat/hls.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-29 14:18:37 +02:00
Michael Niedermayer
2f9e97b32a Merge commit 'c11e33a3d9665dd1fc5dbdecdd03a4860ac6a622'
* commit 'c11e33a3d9665dd1fc5dbdecdd03a4860ac6a622':
  hls: Set stream offset before opening a chained demuxer

Conflicts:
	libavformat/hls.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-29 14:11:21 +02:00
Michael Niedermayer
d31c0fcfa5 Merge commit 'cdd2d73d315ecaf19ff49e64c91923275f1bda68'
* commit 'cdd2d73d315ecaf19ff49e64c91923275f1bda68':
  hls: Don't check discard flags until the parent demuxer's streams actually exist
  hls: Copy the time base from the chained demuxer

Conflicts:
	libavformat/hls.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-29 14:04:27 +02:00
Michael Niedermayer
07440c9380 Merge commit 'eb33ba04e03d9f36e23fffd442510c824be709c3'
* commit 'eb33ba04e03d9f36e23fffd442510c824be709c3':
  hls: Return all packets from a previous variant before moving on to the next one

Conflicts:
	libavformat/hls.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-29 13:59:27 +02:00
Michael Niedermayer
f7bc03bcaf Merge commit 'c5b46a064d9991f2cd045c90179fccf35ecffc34'
* commit 'c5b46a064d9991f2cd045c90179fccf35ecffc34':
  lavf: Don't interpret just slightly broken timestamps as wraparound

Conflicts:
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-29 13:14:29 +02:00
Michael Niedermayer
5fb652dddb Merge commit '2219e27b5b17d146e4ab71a3ed86dfc013fb7a93'
* commit '2219e27b5b17d146e4ab71a3ed86dfc013fb7a93':
  oma: correctly mark and decrypt partial packets

Conflicts:
	libavformat/omadec.c

See: dcd013a535
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-29 13:01:20 +02:00
Michael Niedermayer
9d8fb23747 Merge commit '9d0b45ade864f3d2ccd8610149fe1fff53c4e937'
* commit '9d0b45ade864f3d2ccd8610149fe1fff53c4e937':
  oma: check geob tag boundary

Conflicts:
	libavformat/omadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-29 12:41:32 +02:00
Michael Niedermayer
bc672a016f Merge commit '4f03a77e52596cbe9ec179666ddb3e0345a8133a'
* commit '4f03a77e52596cbe9ec179666ddb3e0345a8133a':
  oma: refactor seek function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-29 12:21:52 +02:00
Michael Niedermayer
39a69d9dfb Merge commit '0f51c398beac87682b2249662b97e30512f7868c'
* commit '0f51c398beac87682b2249662b97e30512f7868c':
  http: Support reading gzip/deflate compressed data
  utvideoenc: use av_image_copy_plane()

Conflicts:
	libavformat/http.c
See: b09d86c636
See: 6bab3430a7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-29 12:00:17 +02:00
LYF
c110cbf6b5 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>
2013-07-29 09:50:09 +03:00
Michael Niedermayer
9d64f23629 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>
2013-07-29 09:50:08 +03:00
Martin Storsjö
c11e33a3d9 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>
2013-07-29 09:50:06 +03:00
Michael Niedermayer
cdd2d73d31 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>
2013-07-29 09:50:05 +03:00
Michael Niedermayer
82bf8c8783 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>
2013-07-29 09:50:03 +03:00
Martin Storsjö
eb33ba04e0 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>
2013-07-29 09:50:02 +03:00
Michael Niedermayer
c5b46a064d 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>
2013-07-29 09:49:58 +03:00
Luca Barbato
2219e27b5b 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
2013-07-28 22:54:55 +02:00
Luca Barbato
9d0b45ade8 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
2013-07-28 22:54:55 +02:00
Luca Barbato
4f03a77e52 oma: refactor seek function
Properly propagate seek errors from avio and the generic pcm seek.
2013-07-28 22:54:55 +02:00
James Almer
ac8e70d735 oggenc: Write stream metadata if available
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-28 21:10:51 +02:00
Zhang Rui
0f51c398be 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>
2013-07-28 18:39:49 +03:00
Matthieu Bouron
8a09195545 lavf/movenc: improve psp check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-28 17:05:05 +02:00
Matthieu Bouron
ee4ef139e3 lavf/movenc: remove useless checks on AVOutputFormat
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-28 17:05:01 +02:00
Michael Niedermayer
2655c1ac12 Merge commit '6ff15cd569e1345bc3612fb69ad3003b104fe50d'
* commit '6ff15cd569e1345bc3612fb69ad3003b104fe50d':
  Remove unreachable returns

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-28 13:23:54 +02:00
Michael Niedermayer
3afcddcff2 Merge commit 'c8f0b20b4a6bb6691928789d83e4b02896969848'
* commit 'c8f0b20b4a6bb6691928789d83e4b02896969848':
  avidec: Let the inner dv demuxer take care of discarding

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-28 13:15:21 +02:00
Michael Niedermayer
d781220991 Merge commit '10aa44aa675e05067845e3e55fac37642cbbdae4'
* commit '10aa44aa675e05067845e3e55fac37642cbbdae4':
  avidec: K&R formatting cosmetics

Conflicts:
	libavformat/avidec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-28 13:06:38 +02:00
Diego Biurrun
6ff15cd569 Remove unreachable returns 2013-07-27 16:00:41 +02:00
Luca Barbato
c8f0b20b4a avidec: Let the inner dv demuxer take care of discarding
CC: libav-stable@libav.org
2013-07-27 16:00:11 +02:00
Luca Barbato
10aa44aa67 avidec: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-07-27 16:00:11 +02:00
Michael Niedermayer
e8023dbaf0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  wtv: Drop some casts that now are unnecessary

Conflicts:
	libavformat/wtv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-27 09:43:29 +02:00
Michael Niedermayer
9027928522 Merge commit '86f042dcabde2a5386dbd95ab0451b274987d253'
* commit '86f042dcabde2a5386dbd95ab0451b274987d253':
  wtv: Make WTV_SECTOR_BITS a 64 bit constant

Conflicts:
	libavformat/wtv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-27 09:19:58 +02:00
Michael Niedermayer
5cb3d35dcc Merge commit '1297f7b87f8a84930a23eca705765c7c353dfcd5'
* commit '1297f7b87f8a84930a23eca705765c7c353dfcd5':
  rtpenc: Fix some odd comments

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-27 08:58:26 +02:00
Martin Storsjö
979e9e8f36 wtv: Drop some casts that now are unnecessary
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-26 23:05:18 +03:00
Martin Storsjö
86f042dcab wtv: Make WTV_SECTOR_BITS a 64 bit constant
This makes sure that values that are left-shifted by this constant
end up casted to 64 bit before shifting, avoiding overflow if the
value ends up larger than 2 GB.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-26 23:05:14 +03:00
Hendrik Schreiber
b512360184 avio: Don't set the seekable flag if no seek function is provided
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-26 21:46:18 +03:00
Martin Storsjö
1297f7b87f rtpenc: Fix some odd comments
Some weird comments stem from the fact that the rtpdec and rtpenc
code was shared earlier.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-26 21:43:29 +03:00
Michael Niedermayer
6663205338 avformat/dtsdec: Improve probe, reject things looking like analoge signals
Fixes Ticket2810

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-26 11:19:43 +02:00
Michael Niedermayer
af7949fdea Merge commit '4a2ef39442bf7f0150db07a1fbfcf8286e4d44a3'
* commit '4a2ef39442bf7f0150db07a1fbfcf8286e4d44a3':
  cosmetics: Add '0' to float constants ending in '.'.

Conflicts:
	libavcodec/ra288.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-26 10:43:12 +02:00