Commit Graph

73 Commits

Author SHA1 Message Date
Martin Storsjö 946df0598b rtpdec: Return AVERROR(EAGAIN) for mpegts parsing errors
This indicates that there was no error that needs to be reported to the
caller, so we can move on to parse the next packet immediately, if
available. The only error code that ff_mpegts_parse_packet can return
indicates that there was no packet to return from the provided data, for
which it returns -1.

Originally committed as revision 25496 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-15 21:32:21 +00:00
Martin Storsjö 65cdee9c95 rtpdec: Don't use the no reordering codepath if there already is a queue
Originally committed as revision 25462 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-13 08:47:34 +00:00
Martin Storsjö ddcf841191 rtpdec: Handle wrapping seq numbers in has_next_packet properly
Originally committed as revision 25461 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-13 08:15:39 +00:00
Martin Storsjö d678a6fd82 rtpdec: Parse the next packet in the sequence if it is available, if the previous packet didn't return any data
Originally committed as revision 25460 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-13 08:14:30 +00:00
Martin Storsjö 91ec7aea20 rtpdec: Return AVERROR(EAGAIN) if out of data for mpegts, pass returned error codes through
Originally committed as revision 25459 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-13 08:13:53 +00:00
Martin Storsjö f6e138b4f4 rtpdec: Don't call the depacketizer to return more data unless it actually said it has more data
It may have returned a negative number for an error (e.g. AVERROR(EAGAIN),
if more data is required for it to be able to return a complete packet).

Originally committed as revision 25458 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-13 08:13:07 +00:00
Martin Storsjö 4ffff36751 rtpdec: Split out storing of the depacketization return value to a separate function
This makes the code less fragile and easier to understand.

Originally committed as revision 25457 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-13 08:12:23 +00:00
Martin Storsjö b7952ed184 rtpdec: Set prev_ret properly when parsing more data from mpegts RTP packets
Originally committed as revision 25404 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-08 08:40:08 +00:00
Martin Storsjö 45658b7414 rtpdec: Store the previous return value for mpegts when it was -1, too
Originally committed as revision 25403 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-08 07:28:17 +00:00
Robert Schlabbach 243ac3fdaa rtpdec: Keep track of the previous return value from rtp_parse_packet_internal for mpegts packets
Patch by Robert Schlabbach, robert_s at gmx dot net

Originally committed as revision 25402 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-08 07:26:42 +00:00
Robert Schlabbach 9446b4bbbc rtpdec: Handle RTP header extension
This fixes roundup issue 2270.

Patch by Robert Schlabbach, robert_s at gmx dot net

Originally committed as revision 25372 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-06 16:59:14 +00:00
Martin Storsjö 3ece3e4c56 Add RTP depacketization of the X-QT QuickTime format
Originally committed as revision 25371 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-06 12:42:18 +00:00
Martin Storsjö 58ee09911e rtpdec: Reorder received RTP packets according to the seq number
Reordering is enabled only when receiving over UDP.

Originally committed as revision 25294 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-01 17:50:24 +00:00
Martin Storsjö 0260741876 rtpdec: Split out the part of rtp_parse_packet that does the parsing of new packets
Originally committed as revision 25293 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-01 17:46:10 +00:00
Martin Storsjö ad4ad27fb6 rtsp/rtpdec: Allow rtp_parse_packet to take ownership of the packet buffer
Do the same change for ff_rdt_parse_packet, too, to keep the interfaces
similar.

Originally committed as revision 25289 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-01 17:43:27 +00:00
Martin Storsjö 0048a2a8d3 Handle G.722 in RTP, and all the exceptions mandated in RFC 3551
Originally committed as revision 25125 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-15 17:35:39 +00:00
Josh Allmann b20359f51a rtsp: Return AVERROR_EOF when all streams have received an RTCP BYE packet
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24965 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-29 10:25:16 +00:00
Josh Allmann 682d28a965 Reindent
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24964 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-29 10:20:18 +00:00
Josh Allmann ff328c0225 rtpdec: Read RTCP compound packets
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24963 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-29 10:19:44 +00:00
Josh Allmann 7f3468d392 rtp: Replace hardcoded RTCP packet types with defines
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24912 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-25 09:15:31 +00:00
Luca Abeni 952139a322 Do not use the server SSRC as client SSRC in the RTP demuxer
Originally committed as revision 24879 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-23 11:53:27 +00:00
Josh Allmann 51291e6005 Add RTP depacketization of VP8
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24798 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-16 14:23:35 +00:00
Martin Storsjö 1ddc176ec4 Add RTP depacketization of MP4A-LATM
Originally committed as revision 24790 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-12 21:07:17 +00:00
Martin Storsjö 965a3ddb1f Remove mostly unnecessary rtpdec_*.h files, store the declarations in one file
Originally committed as revision 24596 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-30 12:04:27 +00:00
Josh Allmann a59096e4a7 Add a depacketizer for QDM2
Patch by Josh Allmann, joshua dot allmann at gmail, original code
by Ronald S Bultje.

Originally committed as revision 24236 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-14 12:32:00 +00:00
Martin Storsjö d74c6145fb rtpdec: Allow depacketizers to specify that pkt->pts should be left as AV_NOPTS_VALUE
Originally committed as revision 24234 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-14 12:26:16 +00:00
Josh Allmann 4449df6baf Add RTP depacketization of SVQ3
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23941 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-01 20:12:58 +00:00
Josh Allmann 824535e3c6 rtpdec: Malloc the fmtp value buffer
This allows very large value strings, needed for xiph extradata.

Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23859 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-28 20:27:25 +00:00
Josh Allmann 016bc031eb rtpdec: Add generic function for iterating over FMTP configuration lines
This will be used for cleaning up code that is common among RTP depacketizers.

Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23847 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-28 11:24:12 +00:00
Josh Allmann ca937a5508 RTSP, rtpdec: Move RTPPayloadData into rtpdec_mpeg4 and remove all references to rtp_payload_data in rtpdec and rtsp
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23772 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-25 08:02:50 +00:00
Josh Allmann 73e6c53e64 rtpdec: Move AAC depacketization code in rtpdec to a proper payload handler
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23771 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-25 08:01:20 +00:00
Josh Allmann 9b3788efc3 RTSP: Decouple MPEG-4 and AAC specific parts from rtsp.c
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23769 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-25 07:58:38 +00:00
Martin Storsjö 5948f82227 Reset RTCP timestamps after seeking, add range start offset to the packets timestamps
If these aren't reset, the timestamps make a huge jump when the next RTCP
is received.

Originally committed as revision 22918 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 07:38:52 +00:00
Martin Storsjö 2cab6b48ad Revert svn rev 21857, readd first_rtcp_ntp_time in RTPDemuxContext
In order to sync RTP streams that get their initial RTCP timestamp at
different times, propagate the NTP timestamp of the first RTCP packet
to all other streams.

This makes the timestamps of returned packets start at (near) zero instead
of at any random offset.

Originally committed as revision 22917 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 07:34:28 +00:00
Martin Storsjö 0950e1703b Reindent
Originally committed as revision 22805 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-05 17:26:06 +00:00
Martin Storsjö 0e4b185a8d Fix leaks in the AAC RTP depacketizer
Originally committed as revision 22804 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-05 17:25:39 +00:00
Josh Allmann 06a36faf4c Rename rtpdec_theora.[ch] to rtpdec_xiph.[ch], as a preparation for merging
the Vorbis / theora depacketizers.

Patch by Josh Allmann <joshua DOT allmann AT gmail DOT com>.

Originally committed as revision 22765 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-01 21:40:56 +00:00
Stefano Sabatini 72415b2adb Define AVMediaType enum, and use it instead of enum CodecType, which
is deprecated and will be dropped at the next major bump.

Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
Josh Allmann 887af2aa12 RTP depacketization of Theora
Patch by Josh Allmann (joshua allmann gmail com)

Originally committed as revision 22636 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-22 16:26:29 +00:00
Martin Storsjö f65919af7e Rename RTP depacketizer files from rtp_* to rtpdec_*
Originally committed as revision 22109 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-28 11:03:14 +00:00
Ronald S. Bultje fc78b0cb7e Remove first_rtcp_ntp_time. This is used to prevent overflow of the timestamp,
but doesn't actually do that. What's worse, it creates timestamp adjustments
that are different per stream within a session, leading to a/v sync issues.

See discussion in thread "[FFmpeg-devel] rtp streaming x264+audio issues (and
some ideas to fix them)". Patch suggested by Luca Abeni <lucabe72 email it>.

Originally committed as revision 21857 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-16 23:00:03 +00:00
Martin Storsjö 9c8fa20d7e When using RTP-over-UDP, send dummy packets during stream setup, similar to
what e.g. RealPlayer does. This allows proper port forwarding setup in NAT-
based environments.

Patch by Martin Storsjö <$firstname at $firstname dot st>.

Originally committed as revision 21856 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-16 22:50:50 +00:00
Ronald S. Bultje 556aa7a102 RTP/AMR depacketizer, by Martin Storsjö <$firstname at $firstname dot st>.
Originally committed as revision 21740 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-10 17:20:50 +00:00
Alexis Ballier 9125806e34 Fix warnings about implicit function declaration when compiling rtpdec.c
Patch by Alexis Ballier, alexis D ballier A gmail

Originally committed as revision 21601 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-01 23:10:04 +00:00
Ronald S. Bultje 45aa90807f Add RTP/H.263 depacketizer by Martin Storsjö <$firstname () $firstname st>.
Originally committed as revision 21512 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-28 16:08:13 +00:00
Luca Abeni 76faff6ef2 Add support for mp3 over RTP in rtpdec.c
Originally committed as revision 20916 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-23 21:23:26 +00:00
Ronald S. Bultje e6327fba98 Add a Vorbis payload parser. Implemented by Colin McQuillan as a GSoC
qualification task, see "RTP/Vorbis payload implementation (GSoC qual
task)" thread on mailinglist.

Originally committed as revision 18509 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-14 15:01:46 +00:00
Stefano Sabatini 9106a698e7 Rename bitstream.h to get_bits.h.
Originally committed as revision 18494 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-13 16:20:26 +00:00
Ronald S. Bultje e9fce261a6 Assign the x-pf-asf payload string to be decoded by rtp_asf.c, and add a
SDP line handler that parses the streamID in the SDP so that ASF stream
data can be matched to their respective streams in the RTSP demuxer. See
"[PATCH] RTSP-MS 12/15: ASF payload support" thread on mailinglist.

Originally committed as revision 18061 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-20 01:11:08 +00:00
Ronald S. Bultje eafb17d140 Don't let finalize_packet() touch pkt->stream_index. Instead, let individual
payload handlers take care of that themselves at their own option. What this
patch really does is "fix" a bug in MS-RTSP protocol where incoming packets
are always coming in over the connection (UDP) or interleave-id (TCP) of
the stream-id of the first ASF packet in the RTP packet. However, RTP packets
may contain multiple ASF packets (and usually do, from what I can see), and
therefore this leads to playback bugs. The intended stream-id per ASF packet
is given in the respective ASF packet header. The ASF demuxer will correctly
read this and set pkt->stream_index, but since the "stream" parameter can
not be known to rtpdec.c or any of the RTP/RTSP code, the "st" parameter
in all these functions is basically invalid. Therefore, using st->id as
pkt->stream_index leads to various playback bugs. The result of this patch
is that pkt->stream_index is left untouched for RTP/ASF (and possibly for
other payloads that have similar behaviour).

The patch was discussed in the "[PATCH] rtpdec.c: don't overwrite
pkt->stream_index in finalize_packet()" thread on the mailinglist.

Originally committed as revision 17767 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 13:51:34 +00:00