Commit Graph

31099 Commits

Author SHA1 Message Date
Michael Niedermayer
a2b51fe87c cinepak: simplify, use FFMIN()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 11:36:05 +02:00
Michael Niedermayer
b55aa7df6b cinepak: Fix division by zero, ask for sample if encoded_buf_size is 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 11:35:56 +02:00
Panagiotis H.M. Issaris
795d9594cf applehttp: Fix seeking in streams not starting at DTS=0
The Apple HTTP Live Streaming demuxer's implementation of
seeking searches for the MPEG TS segment which contains the
requested timestamp.  In its current implementation it assumes
that the first segment will start from 0.

But, MPEG TS streams do not necessarily start with timestamp
(near) 0, causing seeking to fail for those streams.

This also occurs when using live streaming of HTTP Live Streams.
In this case sliding playlists may be used, which means that in
that case only the last x encoded segments are stored, the earlier
segments get deleted from disk and removed from the playlist.
Because of this, when starting playback of a stream in the middle
of such a broadcast, the initial segment fetched after parsing
the m3u8 playlist will not start from timestamp (near) 0, causing
(the admittedly limited live) seeking to fail.

This patch changes this demuxers seeking implementation to use
the initial DTS as an offset for searching the segments containing
the requested timestamp.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 11:33:44 +02:00
Martin Storsjö
dbc2424baa http: Don't use the normal http proxy mechanism for https
The tls protocol handles connections via proxies internally.

With TLS/SSL, the peer verification requires that the client
speaks directly with the server, since the proxy doesn't have
the remote server's private key.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 10:59:53 +02:00
Martin Storsjö
2565dbeb3e tls: Handle connection via a http proxy
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 10:59:53 +02:00
Martin Storsjö
f5c5d57b57 http: Reorder two code blocks
This is in preparation for a later commit.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 10:59:53 +02:00
Martin Storsjö
9f1dae944e http: Add a new protocol for opening connections via http proxies
This opens a plain TCP connection through the proxy via the
CONNECT HTTP method. Normally, this is allowed for connections
on port 443, but can in general be used to allow connections
to any port (depending on proxy configuration), and could thus
be used to tunnel any TCP connection via a HTTP proxy.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 10:59:53 +02:00
Martin Storsjö
bf7723a640 http: Split out the non-chunked buffer reading part from http_read
This is in preparation for a later commit, where this function
is reused.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 10:59:16 +02:00
Matthew Hoops
ddf9b510e7 segafilm: add support for raw videos
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 10:54:44 +02:00
John Brooks
525c5b08fb rtpdec: only use RTCP for PTS when synchronizing multiple streams
RTCP timestamps are only necessary to synchronize time between
multiple streams. For a single stream, the RTP packet timestamp
provides more reliable timing. As a result, single-stream RTP
sessions should now have accurate and monotonic PTS.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 10:47:28 +02:00
John Brooks
12348ca25e rtpdec: unwrap RTP timestamps for PTS calculation
The timestamp field in RTPDemuxContext was unused before this.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 10:31:17 +02:00
Alex Converse
bb4b0ad83b vp5: Fix illegal read.
Found with Address Sanitizer
2011-11-17 11:58:49 -08:00
Thierry Foucu
e0966eb140 vp6: Fix illegal read.
Found with Address Sanitizer

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2011-11-17 11:58:40 -08:00
Martin Storsjö
92db95e9ca tls: Use TLSv1_client_method for OpenSSL
TLSv1 is compatible with SSLv3, so this doesn't change much
in terms of compatibility. By explicitly using TLSv1, OpenSSL
sends the server name indication (SNI) header, which we
already set using SSL_set_tlsext_host_name (earlier, this
didn't have any effect).

SNI allows servers to serve SSL content for different host
names with separate certificates on one single port (vhosts).

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-17 15:11:38 +02:00
Martin Storsjö
268fb3f985 mpegaudiodec: Don't use a nonexistent log context for av_dlog
This fixes builds with DEBUG defined, broken since
1158745a2d.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 12:01:32 +02:00
Martin Storsjö
18579f08e7 avformat: Accept the ISO8601 separate format as input, too
This makes the function accept the format of creation_time
as output by demuxers (e.g. the mov demuxer), making the
creation timestamp stay intact if transcoding.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 11:22:43 +02:00
Martin Storsjö
4a83541650 avformat: Interpret times in ff_iso8601_to_unix_time as UTC
This function is used in muxers for parsing the 'creation_time'
metadata key, for converting it to a time value.

This makes it match the behaviour of the exported 'creation_time'
metadata from demuxers, where it is in UTC, too.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 11:22:42 +02:00
Martin Storsjö
627067118c avutil: Add av_timegm as a public function
This is useful, since the normal timegm function isn't a standard
function (requiring _BSD_SOURCE or _SVID_SOURCE on glibc to
be visible, and not available on e.g. windows). The widely available
function mktime uses the local time zone, which requires ugly
workarounds to handle UTC time.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 11:22:41 +02:00
Mike Melanson
747283a078 cinepak: Add another special case so that it can handle the following file:
http://samples.mplayerhq.hu/V-codecs/CVID/bad_cinepak_frame_size.mov

This fix works around another work around which handles a different type
of odd Cinepak data.

Thanks to Matthew Hoops (clone2727 - gmail.com) for the sample and fix.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 10:50:52 +02:00
Kostya Shishkov
ffc638c283 lagarith: add some RGBA decoding support
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 10:49:51 +02:00
Nathan Caldwell
39616fc307 lagarith: Add correct line prediction for RGB
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 10:46:30 +02:00
Mans Rullgard
52767d891c lavf: fix multiplication overflow in avformat_find_stream_info()
Converting to double before the multiplication rather than after
avoids an integer overflow in some cases.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-15 23:41:04 +00:00
Justin Ruggles
f1d1516e55 cosmetics: indentation 2011-11-15 12:17:20 -05:00
Justin Ruggles
1158745a2d mpegaudiodec: init static tables in AVCodec.init_static_data() 2011-11-15 12:17:20 -05:00
Mans Rullgard
3f5d6a665a binkvideo: simplify and remove invalid shifts
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-14 15:35:29 +00:00
Luca Barbato
2625b621ce pulse: compute frame_duration once and fix it
The frame duration was calculated without taking in account the
bytes per sample.

Thanks to Lorenzo Pistone <blaffablaffa@gmail.com> for pointing
the issue and providing an initial fix.
2011-11-14 16:16:41 +01:00
Luca Barbato
caf27e37b6 lavf: simplify format_child_class_next()
And fix the error introduced when adding private option to avio.
See 32caa7b13c
2011-11-14 16:16:32 +01:00
Sebastien Zwickert
ac3dbb4d58 hwaccel: OS X Video Decoder Acceleration (VDA) support.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-11-14 16:07:32 +01:00
Janne Grunau
d8a091698a doc: add support for an optional navigation bar in texi2html pages
The navigation header for the web pages lives in a different repository.
Read it during documentation regeneration to use the same navigation bar
on all pages.
2011-11-14 01:12:15 +01:00
Anton Khirnov
32caa7b13c lavf: pass options from AVFormatContext to avio. 2011-11-13 13:21:46 +01:00
Martin Storsjö
9d77a8faf9 avformat: Use avio_open2, pass the AVFormatContext interrupt_callback onwards
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-13 13:20:49 +01:00
Martin Storsjö
1dee0aca74 avio: add avio_open2, taking an interrupt callback and options
The interrupt callback has to be passed in during opening (setting it
after opening isn't enough), since a blocking open couldn't be
interrupted otherwise.

Options are passed down to procotols and also need to be available
during open() in most cases.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-13 13:17:04 +01:00
Anton Khirnov
ddffc2fdc3 avio: add support for passing options to protocols.
Not used anywhere yet, support for passing options from avio_open() will
follow.
2011-11-13 13:14:39 +01:00
Anton Khirnov
163a31136d avio: add and use ffurl_protocol_next(). 2011-11-13 13:14:14 +01:00
Martin Storsjö
6ef350c16b avformat: Pass the interrupt callback on to chained muxers/demuxers
There are a few more cases of chained demuxers, but they
only use custom IO which don't do any blocking IO and thus
don't need the callback.
2011-11-13 13:13:57 +01:00
Martin Storsjö
6f1b7b3944 avio: Add an AVIOInterruptCB parameter to ffurl_open/ffurl_alloc
Change all uses of these function to pass the relevant
callback on.
2011-11-13 13:12:17 +01:00
Martin Storsjö
9957cdbfd5 avformat: Use ff_check_interrupt 2011-11-13 13:08:13 +01:00
Martin Storsjö
c4a090ddb5 avio: Add an internal utility function for checking the new interrupt callback
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-13 13:07:48 +01:00
Martin Storsjö
6aa0b98fb2 avio: Add AVIOInterruptCB
This is a better io interrupt callback function, which has an
opaque parameter, which is given to the interrupt callback.

This allows callers to precisely cancel IO for one single
AVFormatContext, without interrupt other ones in the same
process.

Note, it's not needed in AVIOContext, at the moment.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-13 12:59:56 +01:00
Luca Barbato
58b68d6b36 texi2html: remove stray \n
Single-quoted strings are printed verbatim in perl.
2011-11-13 12:42:39 +01:00
Luca Barbato
84fb63ed23 doc: prettyfy the texi2html documentation
make it use the website css and start structuring it so it is consistent
2011-11-13 12:00:44 +01:00
Ronald S. Bultje
8283f90a52 swscale: handle unaligned buffers in yuv2plane1
The issue had been introduced in
c435653627

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-11-13 08:27:20 +01:00
Janne Grunau
29ae0565d9 vble: remove vble_error_close
It does not make much sense to factor the error handling to its own
av_always_inline function. Fixes "format not a string literal and no
format arguments" warning in the av_log.
2011-11-11 22:05:51 +01:00
Derek Buitenhuis
c433a3f9a5 VBLE Decoder
Add a decoder for the VBLE Lossless Codec, which
still has a cult following. Used to be popular
several years ago on doom9.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-11 22:46:47 +02:00
Justin Ruggles
b656c4d08e tta: use an integer instead of a pointer to iterate output samples 2011-11-11 14:18:22 -05:00
Justin Ruggles
5c210e2cb9 shorten: do not modify samples pointer when interleaving 2011-11-11 14:18:22 -05:00
Justin Ruggles
befc473c00 mpc7: only support stereo input.
The Musepack SV7 reference encoder converts mono to stereo when encoding.
2011-11-11 14:17:40 -05:00
Justin Ruggles
8dbc6d03c0 dpcm: do not try to decode empty packets 2011-11-11 14:17:39 -05:00
Justin Ruggles
e79da63282 dpcm: remove unneeded buf_size==0 check.
It is already checked in avcodec_decode_audio3()
2011-11-11 14:17:39 -05:00
Justin Ruggles
9d06037d48 twinvq: add SSE/AVX optimized sum/difference stereo interleaving 2011-11-11 14:13:58 -05:00