1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-02 03:06:28 +02:00
Commit Graph

171 Commits

Author SHA1 Message Date
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
Ronald S. Bultje
95f03cf31f Reindent after r17764.
Originally committed as revision 17765 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 13:42:16 +00:00
Ronald S. Bultje
f3e71942e7 In the current implementation of rtp_parse_packet(), finalize_packet() is
called for all packets with an internal handler function but only for
non-first packets from dynamic payload parse_packet() handlers. This patch
fixes that. Bug was noticed by Luca in "[PATCH] rtpdec.c: don't overwrite
pkt->stream_index in finalize_packet()" thread.

Originally committed as revision 17764 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 13:41:50 +00:00
Ronald S. Bultje
144ae29dde Implement marker bit, which is used for several RTP payloads currently
under review. See "[FFmpeg-devel] RTP mark bit not passed to parse_packet"
thread on mailinglist.

Originally committed as revision 17616 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-26 14:24:50 +00:00
Luca Abeni
302879cb36 Split rtp.h in rtp.h, rtpdec.h, and rtpenc.h
Originally committed as revision 17016 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-06 10:35:52 +00:00
Ronald S. Bultje
1a45a9f4c0 Add "AVFormatContext *ctx" (that being the RTSP demuxer's) as first argument
to the parse_packet() function pointer in RTPDynamicProtocolHandlers. This
allows these functions to peek back and retrieve values from the demuxer's
context (or RTSPState). The ASF/RTP payload parser will use this to be able
to parse SDP values (which occur even before the payload ID is given), store
them in the RTSPState and then retrieve them while parsing payload data. See
"[PATCH] RTSP-MS 13/15: add RTSP demuxer AVFormatContext to parse_packet()
function pointer (was: transport context)" mailinglist thread.

Originally committed as revision 17015 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-06 01:37:19 +00:00
Luca Abeni
20631a9c15 Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
Originally committed as revision 16817 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-27 12:23:16 +00:00
Diego Biurrun
406792e7b0 cosmetics: Remove pointless period after copyright statement non-sentences.
Originally committed as revision 16684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-19 15:46:40 +00:00
Luca Abeni
be73a544af Rename rtp_payload_data_t to avoid clashes with the POSIX namespace
Originally committed as revision 16115 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-13 23:25:19 +00:00
Ronald S. Bultje
99a1d1915e Remove access into RTPDemuxContext in rtsp.c, which allows making it opaque
(and thus preparing for the introduction of RDTDemuxContext) in a next patch.
See discussion in "RDT/Realmedia patches #2" thread on ML.

Originally committed as revision 15542 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-04 04:16:44 +00:00
Ronald S. Bultje
9b932b8ac0 Change function prototype of RTPDynamicPayloadHandler.parse_packet() to
not use RTPDemuxContext, but rather take a pointer to the payload context
directly. This allows using payload handlers regardless over the transport
over which they were sent, and prepares for the introduction of a future
RDTDemuxContext. See discussion in "RDT/Realmedia patches #2" thread on ML.

Originally committed as revision 15541 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-04 04:15:06 +00:00
Diego Biurrun
d0feff2a5b Uniformly define _XOPEN_SOURCE to 600.
The feature_tests.h header from Sun systems (Solaris/OpenSolaris) will abort
the build if _XOPEN_SOURCE is defined to 500, and C99 is requested (as well
as POSIX.1-2001), and will only accept it to be defined to 600.
inspired by a patch from Diego Pettenò, flameeyes gmail com

Originally committed as revision 15460 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-29 06:22:12 +00:00
Ronald S. Bultje
0369d2b045 Give register_dynamic_payload_handler() in rtpdec.c a ff_ prefix and export
it so that I can use it in rdt.c as well. See discussion in "Realmedia patch"
thread on ML.

Originally committed as revision 15233 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-07 01:19:26 +00:00
Luca Abeni
26efefc52c Do not set timestamp information for a non existing AVStream
(fix a bug in the RTP demuxer)

Originally committed as revision 14909 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-22 19:03:05 +00:00
Aurelien Jacobs
7246177d80 ensure we get explicit definition of various _XOPEN_SOURCE functions we use
Originally committed as revision 14766 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-14 22:01:59 +00:00
Måns Rullgård
e8420626d0 RTP: use dprintf(), allow compilation with -DDEBUG
Originally committed as revision 14211 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-13 19:41:10 +00:00
Luca Abeni
fba7815d8d Reindent after last commit
Originally committed as revision 14046 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-02 10:26:23 +00:00
Luca Abeni
d6b9e57af2 Fix A/V synch for RTP streams that do not contain MPEG1 or 2
(correctly compute the presentation times based on the RTP timestamps
and the RTCP SR packets)

Originally committed as revision 14045 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-02 10:23:27 +00:00
Diego Biurrun
245976da2a Use full path for #includes from another directory.
Originally committed as revision 13098 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-09 11:56:36 +00:00
Diego Biurrun
bd10713636 typo fixes
Originally committed as revision 12449 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-15 16:15:47 +00:00
Ronald S. Bultje
f841a0fca1 Add a flags field to the RTPDynamicPayloadPacketHandlerProc (PKT_FLAG_*).
This can be used later by RDT to get the flags from the RTP packet and
use that for the RealMedia packet (such as whether this RTP packet
represents a keyframe or not). For discussion, see "[PATCH] Realmedia
/ RTSP (RDT)".

Originally committed as revision 11557 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-18 20:48:32 +00:00
Ronald S. Bultje
f739b36d16 Reindent after r11493 (always use parse_packet() vfunc in rtp_parse_packet()),
see "[PATCH] Realmedia / RTSP (RDT)" thread on ML.

Originally committed as revision 11494 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-10 13:54:30 +00:00
Ronald S. Bultje
b4e3330c12 Make rtp_parse_packet() always call the vfunc of the dynamic payload handler
if there is one. See "[PATCH] Realmedia / RTSP (RDT)" thread on ML.

Originally committed as revision 11493 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-10 13:52:35 +00:00
Luca Abeni
8eb793c459 Split the RTP demuxing functions out of rtp.c, to simplify the RTP muxer's dependencies
Originally committed as revision 11406 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-04 19:33:50 +00:00