1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

8791 Commits

Author SHA1 Message Date
Michael Niedermayer
328a3545c6 udp: update to new interrupt callback API
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-19 02:14:28 +01:00
Michael Niedermayer
e161b079de Merge remote-tracking branch 'qatar/master'
* qatar/master: (22 commits)
  configure: add check for w32threads to enable it automatically
  rtmp: do not hardcode invoke numbers
  cinepack: return non-generic errors
  fate-lavf-ts: use -mpegts_transport_stream_id option.
  Add an APIchanges entry and a minor bump for avio changes.
  avio: Mark the old interrupt callback mechanism as deprecated
  avplay: Set the new interrupt callback
  avconv: Set new interrupt callbacks for all AVFormatContexts, use avio_open2() everywhere
  cinepak: remove redundant coordinate checks
  cinepak: check strip_size
  cinepak, simplify, use AV_RB24()
  cinepak: simplify, use FFMIN()
  cinepak: Fix division by zero, ask for sample if encoded_buf_size is 0
  applehttp: Fix seeking in streams not starting at DTS=0
  http: Don't use the normal http proxy mechanism for https
  tls: Handle connection via a http proxy
  http: Reorder two code blocks
  http: Add a new protocol for opening connections via http proxies
  http: Split out the non-chunked buffer reading part from http_read
  segafilm: add support for raw videos
  ...

Conflicts:
	avconv.c
	configure
	doc/APIchanges
	libavcodec/cinepak.c
	libavformat/applehttp.c
	libavformat/version.h
	tests/lavf-regression.sh
	tests/ref/lavf/ts

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-19 02:00:06 +01:00
Michael Niedermayer
36a60fad62 lavf: cdg has large non keyframe segments and should thus be exempt from the non keyframe check in seeking.
Improves seeking for cdg files.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-19 01:15:40 +01:00
Michael Niedermayer
fca85ce5ec rawdec: use a default sample rate if none is specified.
Fixes "ffmpeg -f s16le -i /dev/zero"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-18 22:34:41 +01:00
Tomas Härdin
fd1cea6549 mxfdec: Add hack that adjusts the n_delta calculation when system items are present
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-18 15:33:44 +01:00
Tomas Härdin
7ddb0607f3 mxfdec: Parse IndexTableSegments and convert them into AVIndexEntry arrays
Based on work by Georg Lippitsch <georg.lippitsch@gmx.at>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-18 15:33:36 +01:00
Josh Allmann
704af3e29c rtmp: do not hardcode invoke numbers
Note: FCPublish/FCUnpublish are adobe server specific and not described
in the rtmp specification. Some servers might not cope with them at
all.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-11-18 13:57:44 +01:00
Martin Storsjö
45f511ece7 avio: Mark the old interrupt callback mechanism as deprecated
Prepare for removing it at an upcoming major bump.
2011-11-18 11:01:16 +01: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
Michael Niedermayer
95d6e5bdd5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vp5: Fix illegal read.
  vp6: Fix illegal read.
  tls: Use TLSv1_client_method for OpenSSL

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-18 02:55:32 +01:00
Michael Niedermayer
30ca700ba1 ac3probe: Detect Sonic Foundry Soft Encode AC3 as raw AC3.
Our ac3 code chain can handle it fine.
More ideal would be to write a demuxer that actually extracts what can be from the additional
headers and uses it for whatever it can be used for.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-17 20:29:55 +01:00
Carl Eugen Hoyos
d50122eafa Do not try to read total disc or track number if data atom is too short.
Fixes ticket #659.
2011-11-17 14:12:34 +01: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
Michael Niedermayer
1d23e5246c mjpeg: support mpo
Fixes stereoscopic_photo.mpo

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-17 03:13:50 +01:00
Michael Niedermayer
8709ba907a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegaudiodec: Don't use a nonexistent log context for av_dlog
  avformat: Accept the ISO8601 separate format as input, too
  avformat: Interpret times in ff_iso8601_to_unix_time as UTC
  avutil: Add av_timegm as a public function
  cinepak: Add another special case so that it can handle the following file:
  lagarith: add some RGBA decoding support
  lagarith: Add correct line prediction for RGB

Conflicts:
	doc/APIchanges
	libavcodec/cinepak.c
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-17 02:44:33 +01: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
Clément Bœsch
4da45aff28 cleanup: remove various double end ';' all over the code. 2011-11-16 07:48:23 +01:00
Michael Niedermayer
cd6851c5ef lavf: if timestamps are invalid (pts=dts) only drop dts.
Because if we drop both we have no timestamps at all for some files.
Fixes Ticket344

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-16 01:25:42 +01: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
Panagiotis H.M. Issaris
6f20921dee Fix seeking when using Apple HTTP Live Streaming
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.
2011-11-15 18:35:03 +01:00
Michael Niedermayer
53cb0de25b asfdec: mark only ts1 as av_unused
Idea-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-15 13:06:36 +01:00
Michael Niedermayer
7ea3963817 mpegts: Completely ignore H222 spec and consider reserved adaption
fields to be perfectly fine mpeg TS.
Fixes Ticket580

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-15 04:15:34 +01:00
Michael Niedermayer
a72580fc9e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  binkvideo: simplify and remove invalid shifts
  pulse: compute frame_duration once and fix it
  lavf: simplify format_child_class_next()
  hwaccel: OS X Video Decoder Acceleration (VDA) support.
  doc: add support for an optional navigation bar in texi2html pages

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/vda.c
	libavcodec/vda.h
	libavcodec/vda_h264.c
	libavcodec/vda_internal.h
	libavcodec/version.h
	libavformat/options.c
	libavutil/avutil.h
	libavutil/pixfmt.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-15 03:13:42 +01:00
Michael Niedermayer
6760bd0a19 asfdec: avoid unused variable warning.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-15 01:58:13 +01:00
Michael Niedermayer
ba7f18876c asfdec: use dts for seeking.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-15 01:08:04 +01:00
Michael Niedermayer
bb4eabacea asfdec: restore timestamp reading code
This reverts part of:
	commit e65ab9d94f
	Author: Mans Rullgard <mans@mansr.com>
	Date:   Wed Jun 1 17:26:27 2011 +0100

	    Remove unused variables
2011-11-15 00:57:08 +01:00
Michael Niedermayer
40176fc314 mp3enc: Try to use a matching bitrate in the xing header.
Might Fix Ticket431

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-14 20:59:28 +01:00
Michael Niedermayer
1fea432b7a mp3enc: simplify mp3_write_xing()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-14 20:52:42 +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
Clément Bœsch
07c7ffc04b Rename remaining get_le32 to avio_rl32. 2011-11-14 07:22:31 +01:00
Clément Bœsch
c142e2a00f Rename remaining get_le16 to avio_rl16. 2011-11-14 07:22:31 +01:00
Clément Bœsch
49651063da Use AVIOContext.seekable instead of deprecated url_is_streamed. 2011-11-14 07:22:31 +01:00
Clément Bœsch
7b79305a47 Rename remaining url_fskip to avio_skip. 2011-11-14 07:22:31 +01:00
Clément Bœsch
b04ee90043 Rename remaining av_metadata_set2 to av_dict_set. 2011-11-14 07:22:31 +01:00
Clément Bœsch
63b796b0dd Rename remaining url_ftell to avio_tell. 2011-11-14 07:22:31 +01:00
Clément Bœsch
055cda8acc Rename remaining get_byte to avio_r8. 2011-11-14 07:22:31 +01:00
Clément Bœsch
f3c47e4100 Rename remaining url_fsize to avio_size. 2011-11-14 07:22:31 +01:00
Clément Bœsch
53d70a334a Rename remaining get_buffer to avio_read. 2011-11-14 07:22:30 +01:00
Clément Bœsch
39edfcc9e8 Rename remaining url_fseek to avio_seek. 2011-11-14 07:22:30 +01:00
Clément Bœsch
eef3ea8c71 Rename remaining ByteIOContext to AVIOContext. 2011-11-14 07:22:30 +01:00
Michael Niedermayer
5f268ca5c5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavf: pass options from AVFormatContext to avio.
  avformat: Use avio_open2, pass the AVFormatContext interrupt_callback onwards
  avio: add avio_open2, taking an interrupt callback and options
  avio: add support for passing options to protocols.
  avio: add and use ffurl_protocol_next().
  avformat: Pass the interrupt callback on to chained muxers/demuxers
  avio: Add an AVIOInterruptCB parameter to ffurl_open/ffurl_alloc
  avformat: Use ff_check_interrupt
  avio: Add an internal utility function for checking the new interrupt callback
  avio: Add AVIOInterruptCB
  texi2html: remove stray \n
  doc: prettyfy the texi2html documentation
  swscale: handle unaligned buffers in yuv2plane1

Conflicts:
	libavformat/avformat.h
	libavformat/avio.c
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-14 00:33:39 +01:00