Commit Graph

341 Commits

Author SHA1 Message Date
Michael Niedermayer
b52925d2cd Merge commit '2f3bada63e57345329c4f9b48e9b81b5cfc03d05'
* commit '2f3bada63e57345329c4f9b48e9b81b5cfc03d05':
  lavf: Add a protocol for SRTP encryption/decryption
  rtsp: Support decryption of SRTP signalled via RFC 4568 (SDES)

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 16:05:34 +01:00
Martin Storsjö
2f3bada63e lavf: Add a protocol for SRTP encryption/decryption
This is mostly useful for encryption together with the RTP muxer,
but could also be set up as IO towards the peer with the SDP
demuxer with custom IO.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 11:55:10 +02:00
Martin Storsjö
424da30830 rtsp: Support decryption of SRTP signalled via RFC 4568 (SDES)
This only takes care of decrypting incoming packets; the outgoing
RTCP packets are not encrypted. This is enough for some use cases,
and signalling crypto keys for use with outgoing RTCP packets
doesn't fit as simply into the API. If the SDP demuxer is hooked
up with custom IO, the return packets can be encrypted e.g. via the
SRTP protocol.

If the SRTP keys aren't available within the SDP, the decryption
can be handled externally as well (when using custom IO).

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 11:54:40 +02:00
Michael Niedermayer
34c1c08c66 Merge commit '86d9181cf41edc3382bf2481f95a2fb321058689'
* commit '86d9181cf41edc3382bf2481f95a2fb321058689':
  rtpdec: Support sending RTCP feedback packets

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-09 11:48:14 +01:00
Martin Storsjö
86d9181cf4 rtpdec: Support sending RTCP feedback packets
This sends NACK for missed packets and PLI (picture loss indication)
if a depacketizer indicates that it needs a new keyframe, according
to RFC 4585.

This is only enabled if the SDP indicated that feedback is supported
(via the AVPF or SAVPF profile names).

The feedback packets are throttled to a certain maximum interval
(currently 250 ms) to make sure the feedback packets don't eat up
too much bandwidth (which might be counterproductive). The RFC
specifies a more elaborate feedback packet scheduling.

The feedback packets are currently sent independently from normal
RTCP RR packets, which is not totally spec compliant, but works
fine in the environments I've tested it in. (RFC 5506 allows this,
but requires a SDP attribute for enabling it.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-08 17:48:14 +02:00
Carl Eugen Hoyos
1ae9d2820e Support decoding AC-3 in wav.
All known samples are actually ac3-in-spdif-in-wav, so use
the spdif demuxer to get the ac3 frames.
2013-01-06 18:48:51 +01:00
Carl Eugen Hoyos
1a34103f0f mmf.c: Use LIBAVFORMAT_IDENT when writing Yamaha SMAF version information. 2013-01-05 23:39:46 +01:00
James Almer
b7d77f8e64 astenc: Enable the loop flag only when needed
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-05 17:07:42 +01:00
Michael Niedermayer
8d0b2aae71 Merge commit 'e96406eda4f143f101bd44372f7b2d542183000a'
* commit 'e96406eda4f143f101bd44372f7b2d542183000a':
  rtsp: Add support for depacketizing RTP data via custom IO

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 13:23:19 +01:00
Martin Storsjö
e96406eda4 rtsp: Add support for depacketizing RTP data via custom IO
To use this, set sdpflags=custom_io to the sdp demuxer. During
the avformat_open_input call, the SDP is read from the AVFormatContext
AVIOContext (ctx->pb) - after the avformat_open_input call,
during the av_read_frame() calls, the same ctx->pb is used for reading
packets (and sending back RTCP RR packets).

Normally, one would use this with a read-only AVIOContext for the
SDP during the avformat_open_input call, then close that one and
replace it with a read-write one for the packets after the
avformat_open_input call has returned.

This allows using the RTP depacketizers as "pure" demuxers, without
having them tied to the libavformat network IO.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-03 15:15:27 +02:00
Clément Bœsch
dc8b36746a lavf/webvtt: use ff_subtitles_read_chunk().
The FATE test is updated because the line breaks in the dialogue
rectangles are now proper CRLF.
2013-01-03 07:46:30 +01:00
Clément Bœsch
3fa642d60f subviewer: sanitize packets.
The data does not contain timing or trailing line breaks anymore. In
addition to being less idiotic, it is consistent with other codecs and
thus allows more switches between formats and codecs. It also fixes the
issue of the trailing line returns being simple \n instead of CRLF in
the ASS rectangle dialogue (this is the reason of the FATE update).
2013-01-03 07:25:47 +01:00
Nicolas George
ecda1d3cbe lavf: add data: URI scheme. 2013-01-01 19:29:04 +01:00
Michael Niedermayer
9336a980bb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: Add support for limelight authentication
  rtmp: Add support for adobe authentication

Conflicts:
	Changelog
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-01 14:04:50 +01:00
Martin Storsjö
c1ea44c54d rtmp: Add support for limelight authentication
Limelight is a not too uncommon CDN. The authentication scheme is
pretty similar to the adobe authentication, but is even closer to
normal http digest authentication (but not close enough to warrant
sharing code) than the adobe version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-31 13:39:09 +02:00
Martin Storsjö
08225d0126 rtmp: Add support for adobe authentication
This is mostly used to authenticate the client when publishing.
Tested with wowza and akamai.

Some but not all servers support resending a new connect invoke
within the same connection, so always reconnect for sending a new
connection attempt. This matches what other applications do as well.

The authentication scheme is structurally pretty similar to http
digest authentication, but uses base64 instead of hex strings.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-31 13:39:08 +02:00
Paul B Mahol
9a74282644 Sony Wave64 muxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-31 07:10:57 +00:00
Clément Bœsch
1f265f5205 microdvd: sanitize AVPackets.
Current MicroDVD AVPackets contain timing information and trailing line
breaks. The data is now only composed of the markup data. Doing this
consistently between text subtitles decoders allows to use different
codec for various formats. For instance, MicroDVD markup is sometimes
found in some VPlayer files. Also, generally speaking, the subtitles
text decoders have no use of these timings (and they must not use them
since it would break any user timing adjustment).

Technically, this is a major ABI break. In practice, a mismatching
lavf/lavc will now error out for MicroDVD decoding. Supporting both
formats requires unnecessary complex and fragile code.

FATE needs update because line breaks in the ASS file were "\n" (because
that's what is used in the original file). ASS format expect "\r\n" line
breaks; this commit fixes this issue. Also note that this "\r\n"
trailing need to be moved at some point from the decoders to the ASS
muxer.
2012-12-31 00:41:35 +01:00
Clément Bœsch
faa94061dd Add SubViewer v1 subtitles demuxer and decoder. 2012-12-31 00:01:58 +01:00
Clément Bœsch
7b43402724 Add PJS subtitles demuxer and decoder. 2012-12-30 23:55:28 +01:00
Clément Bœsch
a1e4e352a6 Add AQTitle subtitles demuxer. 2012-12-30 23:37:14 +01:00
Clément Bœsch
725d6c615c Add MPlayer subtitles demuxer. 2012-12-30 23:09:49 +01:00
Clément Bœsch
5c68aae908 Add VPlayer subtitles demuxer and decoder.
Note that the linebreaks text codec option (but not the feature) has
been removed; its main goal was to allow demuxers to configure the text
decoder (and not meant to be used by users), but the AVOption are not a
viable solution. This is solved differently in this commit.
2012-12-30 22:46:42 +01:00
Clément Bœsch
5f02844c8d Add MPL2 subtitles demuxer and decoder. 2012-12-30 22:37:25 +01:00
Stefano Sabatini
0156dd6530 lavf/segment: add segment_frames option
This is meant to address trac ticket #1483.
2012-12-28 11:17:22 +01:00
Stefano Sabatini
7a8face9fb lavf/segment: add reference_stream option 2012-12-28 10:57:02 +01:00
Paul B Mahol
4f5440adc2 NIST SPHERE demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-23 21:22:43 +00:00
Stefano Sabatini
ddf6131a0a lavf/segment: add segment_start_number option
Consistent with the image2 muxer.
2012-12-13 21:38:43 +01:00
Stefano Sabatini
8e9056559e lavf/segment: add reset_timestamps option
The new options reset the timestamps at each new segment, so that the
generated segments will have timestamps starting close to 0.

It is meant to address trac ticket #1425.
2012-12-11 00:18:23 +01:00
Nicolas George
160013736e lavf: TED Talks JSON captions demuxer. 2012-12-09 18:50:38 +01:00
Paul B Mahol
57231e4d5b tak: demuxer, parser, and decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-12-07 16:15:02 -05:00
Clément Bœsch
710c4baf52 lavf: VobSub demuxer. 2012-12-07 21:18:06 +01:00
Nicolas George
32aedebdc5 lavf: add a concat demuxer. 2012-12-06 14:09:14 +01:00
Paul B Mahol
4c18562d02 Ensoniq Paris Audio File demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 13:01:22 +00:00
Paul B Mahol
880191637f IRCAM demuxer & muxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 13:01:22 +00:00
James Almer
b70251c0ad AST Muxer
Signed-off-by: James Almer <jamrial@gmail.com>
2012-12-04 11:25:46 +00:00
Peter Ross
1696c72af4 iff demuxer: include DEEP TVDC lookup table in extradata buffer
Signed-off-by: Peter Ross <pross@xvid.org>
2012-12-04 20:53:26 +11:00
Paul B Mahol
56e149fda9 PVF demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-01 21:02:45 +00:00
Vitaliy E Sugrobov
5603b2bf6e Gif demuxer
Gif demuxer is capable of extracting multiple frames from gif file.
In conjunction with gif decoder it implements support for reading
animated gifs.
Demuxer has two options available to user: default_delay and min_delay.
These options are for protection from too rapid gif animations. In practice
it is standard approach to slow down rendering of this kind of gifs. If you try to
play gif with delay between frames of one hundredth of second (100fps) using
one of major web browsers, you get significantly slower playback,
around 10 fps. This is because browser detects that delay value is less than some
threshold (usually 2 hundredths of second) and reset it to default value (usually 10
hundredths of second, which corresponds to 10fps). Manipulating these options user
can achieve the same effect during conversion to some video format. Otherwise user
can set them to not protect from rapid animations at all.
The other case when these options necessary is for gif images encoded according to
gif87a standard since prior to gif89a there was no delay information included in file.
Bump lavf minor version.

Signed-off-by: Vitaliy E Sugrobov <vsugrob@hotmail.com>
2012-11-30 14:33:58 +00:00
Paul B Mahol
9a31997938 BRSTM demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-29 19:04:35 +00:00
Daniel Verkamp
a0958949eb Vivo demuxer 2012-11-28 20:13:05 +00:00
Paul B Mahol
51d6879939 AFC demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-27 10:17:28 +00:00
Paul B Mahol
461ecea068 AST demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-17 19:30:08 +00:00
Paul B Mahol
962314fe27 AVR demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-05 17:31:22 +00:00
Paul B Mahol
7fe6f6e2b1 caf muxer: write metadata
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-26 03:12:45 +00:00
Paul B Mahol
a57d560db3 LVF demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-22 23:22:39 +00:00
Michael Niedermayer
d8cfa98358 Merge commit '58b619c8a226cc4564ad5af291bc99a04f89ee56'
* commit '58b619c8a226cc4564ad5af291bc99a04f89ee56':
  wav muxer: write metadata

Conflicts:
	Changelog
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 15:16:23 +02:00
Victor Vasiliev
58b619c8a2 wav muxer: write metadata
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-10-16 18:51:56 +02:00
Stefano Sabatini
cd559bb49a lavc: add xface image decoder and encoder
Based on libcompface code by James Ashton <James.Ashton@anu.edu.au>, and
relicensed to LGPL with the author's consent.
2012-10-15 08:32:18 +02:00
Michael Niedermayer
de31814ab0 Merge commit 'b522000e9b2ca36fe5b2751096b9a5f5ed8f87e6'
* commit 'b522000e9b2ca36fe5b2751096b9a5f5ed8f87e6':
  avio: introduce avio_closep
  mpegtsenc: set muxing type notification to verbose
  vc1dec: Use correct spelling of "opposite"
  a64multienc: change mc_frame_counter to unsigned
  arm: call arm-specific rv34dsp init functions under if (ARCH_ARM)
  svq1: Drop a bunch of useless parentheses
  parseutils-test: do not print numerical error codes
  svq1: K&R formatting cosmetics

Conflicts:
	doc/APIchanges
	libavcodec/svq1dec.c
	libavcodec/svq1enc.c
	libavformat/version.h
	libavutil/parseutils.c
	tests/ref/fate/parseutils

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 14:03:12 +02:00