1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Commit Graph

9096 Commits

Author SHA1 Message Date
Luca Barbato
80ac87c13d lavc: support ZenoXVID custom tag
Looks like this kind of samples are produced by certain Russian
equipment.
2013-01-17 21:41:18 +01:00
Justin Ruggles
b805c725a3 idcin: fix memleaks in idcin_read_packet()
Fixes fate-id-cin-video failures when running FATE with valgrind.
2013-01-16 12:21:35 -05:00
Martin Storsjö
a7ba324413 rtpdec_mpeg4: Check the remaining amount of data before reading
This fixes possible buffer overreads.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-16 11:12:39 +02:00
Martin Storsjö
977d4a3b8a rtpdec_mpeg4: Check the return value from malloc
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 23:18:33 +02:00
Martin Storsjö
42364fcbca srtp: Mark a few variables as uninitialized
This squelches false positive warnings (with gcc) about them being
used uninitalized.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 23:18:08 +02:00
Martin Storsjö
c2603aa25b lavf: Add a fate test for the SRTP functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 23:18:08 +02:00
Martin Storsjö
611bf39bde sdp: Include SRTP crypto params if using the srtp protocol
Also print port numbers for this protocol.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 11:55:29 +02: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
Martin Storsjö
ab2ad8bd56 lavf: Add functions for SRTP decryption/encryption
This supports the AES_CM_128_HMAC_SHA1_80 and
AES_CM_128_HMAC_SHA1_32 cipher suites (from RFC 4568) at the
moment. The main missing features are replay protection (which can be
added later without changing the internal API), and the F8 and null
ciphers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-15 11:54:34 +02:00
Diego Biurrun
d8c772de53 nutdec: Always return a value from nut_read_timestamp()
The function is a callback that is called by ff_gen_search with
a constant stream index.

Avoid a false positive on older gcc version.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 02:15:09 +01:00
Giorgio Vazzana
39403c6c1b oggparsetheora: fix comment header parsing
Pass the correct header size to ff_vorbis_comment()

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 20:47:27 +02:00
Luca Barbato
23a610b9d6 nut: support vp9 tag 2013-01-14 19:20:47 +01:00
Tom Finegan
66aabd76a9 mkv: support vp9 tag 2013-01-14 19:20:47 +01:00
Martin Storsjö
d596f2b322 rtpdec: Make variables that should wrap unsigned
This makes the behaviour defined when they wrap around. The value
assigned to expected_prior was a uint32_t already.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 20:09:42 +02:00
Martin Storsjö
30b50f79ae rtpdec: Handle more received packets than expected when sending RR
Without this, we'd signal a huge loss rate (due to unsigned
wraparound) if we had received one packet more than expected (that
is, one seq number sent twice). The code has a check for lost_interval
<= 0, but that doesn't do what was intended as long as the variable is
unsigned.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 17:52:02 +02:00
Martin Storsjö
d0fe217e39 rtpdec: Simplify insertion into the linked list queue
By using a pointer-to-pointer, we avoid having to keep track
of the previous packet separately.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 17:51:48 +02:00
Martin Storsjö
62761934b0 rtpdec: Remove a woefully misplaced comment
The code below the comment does not at all relate to statistics,
and even if moved to the right place, the comment adds little
value.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 17:51:42 +02:00
Michael Niedermayer
6dc8505417 rtmpproto: Fix assignments in if()
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 13:13:00 +02:00
Michael Niedermayer
d641ee94b5 lavf: Fix assignments in if()
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-14 13:12:55 +02:00
Martin Storsjö
22c436c85e rtpdec: Send a valid "delay since SR" value in the RTCP RR packets
Previously, we always signalled a zero time since the last RTCP
SR, which is dubious.

The code also suggested that this would be the difference in
RTP NTP time units (32.32 fixed point), while it actually is
in in 1/65536 second units. (RFC 3550 section 6.4.1)

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 19:55:49 +02:00
Martin Storsjö
e568db4025 rtpdec: Calculate and report packet reception jitter
This brings back some code that was added originally in 4a6cc061
but never was used, and was removed as unused in 4cc843fa. The
code is updated to actually work and is tested to return sane
values.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 19:53:53 +02:00
Martin Storsjö
abae27ed3a rtpdec: Fix the calculation of expected number of packets
The base_seq variable is set to first_seq - 1 (in
rtp_init_sequence), so no + 1 is needed here.

This avoids reporting 1 lost packet from the start.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 19:48:41 +02:00
Martin Storsjö
f6804c3e1b rtpdec: Remove a useless todo comment
The question can be answered: No, we do not know the initial sequence
number from the SDP. In certain cases, it can be known from the
RTP-Info response header in RTSP though. (In that case, we use it as
timestamp origin, but not for rtp receiver statistics.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 00:02:17 +02:00
Martin Storsjö
54cb096ee4 rtsp: Remove an outdated comment
It is unclear what the bug exactly was and if it ever was fixed,
and we don't even support decoding via faad any longer. The
comment has been present since d0deedcb in 2006.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 00:02:11 +02:00
Martin Storsjö
3900d53fb1 rtsp: Remove references to weirdly named variables in other files
One of them is renamed now, but mentioning it by name serves
no purpose here.  The other table mentioned ceased to exist
under that name in 4934884a1 in 2006.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 00:02:04 +02:00
Martin Storsjö
c44784c9bb rtp: Rename a static variable to normal naming conventions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 00:01:51 +02:00
Martin Storsjö
58b5971881 rtp: Cosmetic cleanup
Remove leftover debug comments, fix brace placement and
add whitespace, remove unnecessary and weirdly placed braces.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-12 00:01:28 +02:00
Dale Curtis
ae3d416369 matroska: Fix use after free
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-11 00:12:08 +01:00
Martin Storsjö
76c40fbef0 rtpdec_vp8: Don't trim too much data from broken frames
Previously, for broken frames, we only returned the first partition
of the frame (we would append all the received packets to the packet
buffer, then set pkt->size to the size of the first partition, since
the rest of the frame could have lost data inbetween) - now instead
return the full buffered data we have, but don't append anything more
to the buffer after the lost packet discontinuity. Decoding the
truncated packet should hopefully get better quality than trimming out
everything after the first partition.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-10 09:43:01 +02:00
Martin Storsjö
3b366c3aa0 rtpdec_vp8: Simplify code by using an existing helper function
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-10 09:41:44 +02:00
Martin Storsjö
ed79093222 rtpdec: Add a terminating null byte at the end of the SDES/CNAME
This is required by RFC 3550 (section 6.5):

   The list of items in each chunk MUST be terminated by one or more
   null octets, the first of which is interpreted as an item type of
   zero to denote the end of the list.

This was implicitly added as padding before, unless the host name
length matched up so no padding was added.

This makes wireshark parse the packets properly if other RTCP items
are appended to the same packet.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-10 09:40:49 +02:00
Luca Barbato
a800fd5fc7 yuv4mpeg: do not use deprecated functions
Use the libavutil replacement.
2013-01-09 21:07:49 +01:00
Luca Barbato
fba8e5b608 oggdec: fix faulty cleanup prototype 2013-01-09 21:07:48 +01:00
Justin Ruggles
06deaf8ad3 idcin: return 0 from idcin_read_packet() on success.
This matches the AVInputFormat.read_packet() API.
2013-01-09 14:49:07 -05:00
Justin Ruggles
5d0450461f idcin: better error handling
Add some additional checks for EOF and print error messages on an incomplete
header or packet.

FATE reference updated for id-cin-video due to the demuxer no longer
returning a partial video packet at EOF.
2013-01-09 14:49:07 -05:00
Justin Ruggles
33f58c3616 idcin: check for integer overflow when calling av_get_packet()
chunk_size is unsigned 32-bit, but av_get_packet() takes a signed int as the
packet size.
2013-01-09 14:49:06 -05:00
Justin Ruggles
7040e479a1 idcin: allow seeking back to the first packet
Also, do not allow seek-by-byte, as there is no way to find the next packet
boundary.
2013-01-09 14:49:06 -05:00
Justin Ruggles
49543373f3 idcin: set AV_PKT_FLAG_KEY for video packets with a palette 2013-01-09 14:49:06 -05:00
Justin Ruggles
ccc0ffb1ba idcin: set start_time and packet duration instead of manually tracking pts.
Also, use 1 / sample_rate for audio stream time_base.
2013-01-09 14:49:06 -05:00
Justin Ruggles
4b840930da idcin: set channel_layout 2013-01-09 14:49:06 -05:00
Justin Ruggles
12c2530b1d idcin: fix check for presence of an audio stream 2013-01-09 14:49:06 -05:00
Justin Ruggles
b0c96e0613 idcin: validate header parameters
Avoids using unsupported parameters and signed integer overflows.
2013-01-09 14:49:06 -05:00
Justin Ruggles
f7a3c540c5 au: remove unnecessary casts 2013-01-09 11:52:57 -05:00
Justin Ruggles
2f8207b1c6 au: return AVERROR codes instead of -1 2013-01-09 11:52:57 -05:00
Justin Ruggles
fd9147f114 au: cosmetics: pretty-print and remove pointless comments 2013-01-09 11:52:57 -05:00
Justin Ruggles
c88d245c98 au: use ff_raw_write_packet() 2013-01-09 11:52:57 -05:00
Justin Ruggles
bdd00e2d1b au: set stream start time and packet durations 2013-01-09 11:52:57 -05:00
Justin Ruggles
af68a2baae au: use %u when printing id and channels since they are unsigned 2013-01-09 11:52:57 -05:00
Justin Ruggles
47d029a4c1 au: validate sample rate 2013-01-09 11:52:57 -05:00