Martin Storsjö
c86d8aed74
avio: Rename avclass symbols relating to avio
...
Don't prefix them ffio_url, which is misleading, sounding too
much like the urlprotocol layer (like ffurl_*).
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-28 22:07:04 +02:00
John Stebbins
da7e561964
matroskaenc: Allow writing track "forced" flag
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-02-24 22:28:51 +01:00
Martin Storsjö
d594dbecce
rtpdec: Rename the free method to close
...
Many of these functions were named foo_free_context, and since
the functions no longer should free the context itself, only
allocated elements within it, the previous naming was slightly
misleading.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:50 +02:00
Martin Storsjö
8e32b1f096
libavformat: Use ffio_free_dyn_buf where applicable
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:47 +02:00
Martin Storsjö
199fb40278
rtpdec: Use ffio_free_dyn_buf
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:44 +02:00
Martin Storsjö
8a273a7460
avio: Add an internal utility function for freeing dynamic buffers
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:41 +02:00
Martin Storsjö
078d43e23a
rtpdec: Free depacketizers if the init function failed
...
This is different from how it is handled in codecs/demuxers/muxers
though (where the close function isn't called if the open function
failed), but since the number of depacketizers that have an .init
function is quite limited, this is easy to change.
The main point is that if the init function failed, we shouldn't
try to use that depacketizer at all - this makes sure that the
parse function doesn't need to check for the things that were
initialized in the init function.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:39 +02:00
Martin Storsjö
bb4a310bb8
rtpdec: Don't free the payload context in the .free function
...
This makes it more consistent with depacketizers that don't have any
.free function at all, where the payload context is freed by the
surrounding framework. Always free the context in the surrounding
framework, having the individual depacketizers only free any data
they've specifically allocated themselves.
This is similar to how this works for demuxer/muxers/codecs - a
component shouldn't free the priv_data that the framework has
allocated for it.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:35 +02:00
Martin Storsjö
f4b59334bd
rtpdec: Remove the now unused .alloc field
...
Always use the .priv_data_size field instead.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:32 +02:00
Martin Storsjö
78791c086b
rtpdec: Use .init instead of .alloc to set default values
...
The ugly error handling in rdt gets improved in a later commit.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:28 +02:00
Martin Storsjö
88434f9725
rtpdec: Remove unnecessary inline attributes
...
These functions are far from performance critical, so there's no
point in marking them as inline.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:25 +02:00
Martin Storsjö
ec96a89c3e
rtpdec: Don't pass non-const pointers to fmtp attribute parsing functions
...
This makes it clear that the individual parsing functions can't
touch the parsed out value.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:22 +02:00
Martin Storsjö
ac0e54fda9
rtpdec: Add const to string parameters in internal fmtp parsing functions
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:18 +02:00
Martin Storsjö
12251f997b
rtpdec: Remove unnecessary checks
...
The free function of a depacketizer won't be called if data is NULL.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:14 +02:00
Martin Storsjö
c82bf15dca
rtpenc: Merge the h264 and hevc packetizers
...
They share a great deal of common structure; only a few minor
bits in the headers differ.
This also fixes an off-by-one in sending of the last fragment
of large HEVC nals (where it previously sent len+2 bytes, even
if it should have been len+RTP_HEVC_HEADERS_SIZE aka len+3).
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:25:43 +02:00
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
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
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
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
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
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