1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-06-25 14:23:15 +02:00
Commit Graph

30949 Commits

Author SHA1 Message Date
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
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
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
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
2565dbeb3e tls: Handle connection via a http proxy
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 10:59:53 +02:00
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
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
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
ddf9b510e7 segafilm: add support for raw videos
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 10:54:44 +02:00
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
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
bb4b0ad83b vp5: Fix illegal read.
Found with Address Sanitizer
2011-11-17 11:58:49 -08:00
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
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
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
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
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
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
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
ffc638c283 lagarith: add some RGBA decoding support
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 10:49:51 +02:00
39616fc307 lagarith: Add correct line prediction for RGB
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 10:46:30 +02:00
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
f1d1516e55 cosmetics: indentation 2011-11-15 12:17:20 -05:00
1158745a2d mpegaudiodec: init static tables in AVCodec.init_static_data() 2011-11-15 12:17:20 -05:00
3f5d6a665a binkvideo: simplify and remove invalid shifts
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-14 15:35:29 +00:00
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
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
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
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
32caa7b13c lavf: pass options from AVFormatContext to avio. 2011-11-13 13:21:46 +01:00
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
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
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
163a31136d avio: add and use ffurl_protocol_next(). 2011-11-13 13:14:14 +01:00
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
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
9957cdbfd5 avformat: Use ff_check_interrupt 2011-11-13 13:08:13 +01:00
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
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
58b68d6b36 texi2html: remove stray \n
Single-quoted strings are printed verbatim in perl.
2011-11-13 12:42:39 +01:00
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
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
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
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
b656c4d08e tta: use an integer instead of a pointer to iterate output samples 2011-11-11 14:18:22 -05:00
5c210e2cb9 shorten: do not modify samples pointer when interleaving 2011-11-11 14:18:22 -05:00
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
8dbc6d03c0 dpcm: do not try to decode empty packets 2011-11-11 14:17:39 -05:00
e79da63282 dpcm: remove unneeded buf_size==0 check.
It is already checked in avcodec_decode_audio3()
2011-11-11 14:17:39 -05:00
9d06037d48 twinvq: add SSE/AVX optimized sum/difference stereo interleaving 2011-11-11 14:13:58 -05:00