Commit Graph

41573 Commits

Author SHA1 Message Date
Martin Storsjö
3567b91e49 rtpdec_hevc: Share the implementation of fragmented packets with h264
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:25:28 +02:00
Martin Storsjö
f3449062a8 rtpdec_hevc: Reduce indentation level by returning early on errors
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:25:21 +02:00
Martin Storsjö
8633fb47db rtpdec_hevc: Share the implementation of parsing a=framesize with h264
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:24:36 +02:00
Martin Storsjö
5956f489d0 rtpdec_hevc: Add asterisks at the start of each long comment line
This is the common style for such comments.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:24:27 +02:00
Martin Storsjö
5d8cae4573 rtpdec: Get rid of all trivial .alloc/.free functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:24:19 +02:00
Martin Storsjö
e72605f80b rtpdec: Allow allocating and freeing the private data without explicit functions
This can reduce the amount of boilerplate in simple depacketizers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:23:37 +02:00
Martin Storsjö
2b982e92f4 rtpdec: Set need_parsing via a handler field
This avoids implementing a full function just to set this one
field.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:22:41 +02:00
Martin Storsjö
b7a4c319fd rtpdec: Allow setting the need_parsing field in RTPDynamicProtocolHandler
This allows getting rid of quite a bit of boilerplate in depacketizers.

The default value (initializing need_parsing to 0, aka
AVSTREAM_PARSE_NONE) is the same as it is initialized to by default
in AVStream.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:22:21 +02:00
Martin Storsjö
b651c9139e rtpdec_mpa_robust: Move .enc_name to the start of the struct
This makes it match the other depacketizers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:22:04 +02:00
Martin Storsjö
db158f0dd2 rtpdec: Remove unnecessary _if_needed suffixes on functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:21:54 +02:00
Martin Storsjö
353b492d0f rtpdec: Change enc_name to a pointer instead of a fixed-size buffer
This avoids allocating space for a too large buffer for all the
name strings.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:21:18 +02:00
Martin Storsjö
0752f700d6 rtpdec_h264: Remove an unnecessary include
Nothing in this file use any network functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:20:54 +02:00
Martin Storsjö
247764a592 rtpdec_h264: Remove unnecessary struct padding
There's no point in adding padding in the allocation of a depacketizer
specific context struct.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:20:44 +02:00
Martin Storsjö
fe414059ec rtpdec_amr: Use the common indentation style
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:20:23 +02:00
Martin Storsjö
74d318f138 rtsp: Fix the indentation of a linewrapped statement
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:20:10 +02:00
Martin Storsjö
3cd5828fc0 rtpdec: Add missing trailing commas
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:20:02 +02:00
Gilles Chanteperdrix
04a1be8e28 libavformat: add T.140 RTP depacketization (RFC 4103)
Map this to AV_CODEC_ID_TEXT.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:19:44 +02:00
Martin Storsjö
26524e3581 rtsp: Interpret the text media type as AVMEDIA_TYPE_DATA
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:19:37 +02:00
Diego Biurrun
ce52869c22 fate: Rename fate-dts test to fate-dca-core
The codec is referred to as DCA in other parts of libav.
2015-02-23 16:26:32 +01:00
Diego Biurrun
cb4cb7b0ea qsv: Skip qsv.h compilation if qsv is not enabled 2015-02-23 16:26:32 +01:00
Gilles Chanteperdrix
cdcc370293 rtsp: punch holes again after pause
When a client behind a NAT issues a pause command, and stay paused for a
long time, the router may stop the RTP/RTCP port redirection. Resend the
hole punching packets before each PLAY command to cause the router to
restart the port redirection in that case.

Move the existing code for sending the packets from the SETUP phase
to the PLAY phase.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-23 16:55:56 +02:00
Federico Tomassetti
061c489895 eamad: check for out of bounds read
Bug-Id: CID 1257500
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-02-23 15:06:18 +01:00
Federico Tomassetti
161442ff2c mdec: check for out of bounds read
Bug-Id: CID 1257501
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-02-23 15:06:18 +01:00
Martin Storsjö
fe208ca54b rtpdec_hevc: Skip 1 byte (DOND) instead of 2 (DONL) between aggregation units
Only the first aggregation unit has 2 bytes (DONL) prepended, if
such a field is in use.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-23 15:33:20 +02:00
Vittorio Giovara
35c6ce76b1 Canopus HQX decoder
Based on work by Kostya Shishkov <kostya.shishkov@gmail.com>.
2015-02-22 22:42:27 +00:00
Carl Eugen Hoyos
36a6fb989b hevc_deblock: Fix compilation with nasm
CC: libav-stable@libav.org
Bug-Id: 795
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-02-22 22:34:20 +00:00
Vittorio Giovara
e570f895cd libschroedinger: Check memory allocations 2015-02-22 22:32:18 +00:00
Vittorio Giovara
521979e6b1 configure: Properly fail when libcdio/cdparanoia is not found 2015-02-22 22:31:54 +00:00
Vittorio Giovara
f7cc6627c0 configure: Use pkg-config for libdc1394 discovery
Since not all systems need the libraw1394 dependency, let pkg-config
provide the list of libraries actually needed.

The libdc1394-2.pc file has been included since version 2 (2008-01-05),
so it should be safe to use.
2015-02-22 22:30:35 +00:00
Martin Storsjö
a388e72d1a rtpenc_hevc: Aggregate multiple NAL units into one RTP packet, if possible
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-22 23:27:03 +02:00
Martin Storsjö
e2220e734f rtpenc_h264: Aggregate multiple NAL units into one RTP packet, if possible
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-22 23:26:57 +02:00
Thomas Volkert
c99915f7c7 rtpdec: DV depacketizer (RFC 6469)
(tested with live555 RTSP server)

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-22 23:01:55 +02:00
Gilles Chanteperdrix
44dc138ed2 rtpdec_mpeg4: reassemble fragmented AAC frames
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 23:38:07 +02:00
Gilles Chanteperdrix
dcf969e98d rtpdec_mpeg4: add more verbose error logging
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 23:37:58 +02:00
Gilles Chanteperdrix
96084251e5 libavformat: add robust MPEG audio depacketization (RFC 5219)
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 23:37:50 +02:00
Gilles Chanteperdrix
5cbae5651d mpegaudio_parser: add MP3 ADU headers parser
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 23:37:42 +02:00
Gilles Chanteperdrix
5e5583efe4 libavformat: add AC3 RTP depacketization (RFC 4184)
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 23:37:32 +02:00
Gilles Chanteperdrix
4438d1c6ed rtsp: parse lang attribute in SDP
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 23:37:24 +02:00
Gilles Chanteperdrix
1ec28a66f2 rtpdec: fix issue with conversion from unsigned to signed
When receiving an RTCP packet, the difference between the last RTCP
timestamp and the base timestamp may be negative. As these timestamps
are of the uint32_t type, the result becomes a large integer. Cast
the difference to int32_t to avoid this issue.

The result of this issue is very large start times for RTSP
streams, and difficulty to restart correctly after a pause.

Signed-off-by: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 23:37:15 +02:00
Martin Storsjö
ff394ca087 rtpdec_h264: Add a missing closing paren in a log message
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 23:36:56 +02:00
Peter Meerwald
12655c4804 libavresample: NEON optimized FIR audio resampling
modelled after aarch64 code

on Cortex-A8, s16 and s32 code is about 2x faster,
float code about 7x faster

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 22:08:39 +02:00
Thomas Volkert
cbdd1806ea rtpdec_hevc: Implement parsing of aggregated packets
With significant changes by Martin Storsjö, to use the shared
function instead of reimplementing it.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 11:32:50 +02:00
Martin Storsjö
b878ba03e7 rtpdec_hevc: Initialize variables to silence false positive compiler warnings
For some reason, clang didn't warn about this prior to using the
shared function.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 11:32:47 +02:00
Martin Storsjö
10e2d8b556 rtpdec_hevc: Use a shared function for parsing parameter sets
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 11:32:44 +02:00
Martin Storsjö
0de0751084 rtpdec_h264: Make reusable functions non-static
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 11:32:41 +02:00
Martin Storsjö
16163e6bf2 rtpdec_h264: Fix nal type counting after refactoring
This fixes builds with -DDEBUG after f0a874799.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 11:32:38 +02:00
Martin Storsjö
a3cc519d1f rtpdec_h264: Prepare h264_handle_packet_stap_a for sharing with hevc
Add a parameter for skipping a number of bytes at the start of each nal.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 11:32:36 +02:00
Martin Storsjö
48183b3ad4 rtpdec_h264: Generalize parse_sprop_parameter_sets
Don't write directly into an AVCodecContext, write into given
pointers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 11:32:31 +02:00
Clément Bœsch
a982c5d74f tests: drop bc dependency
We already have a dependency on awk and bc is sometimes not found in the
base system.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 11:17:45 +02:00
Anton Khirnov
a06b0b1295 h264: initialize H264Context.avctx in init_thread_copy
This prevents using a wrong (first thread's) AVCodecContext if decoding
a frame in the first pass over all threads fails.
2015-02-21 09:29:48 +01:00