History | View | Annotate | Download (67.3 KB)
rtsp: Specify unicast for TCP interleaved streams, too
According to the RFC, the default is multicast if nothing isspecified, which doesn't make sense for TCP.
According to a bug report, some Axis camera models give a"400 Bad Request" error if this is omitted....
Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
Use AVERROR_EXIT with url_interrupt_cb.
Functions interrupted by url_interrupt_cb should not be restarted.Therefore using AVERROR was wrong, as it did not allow to distinguishwhen the underlying system call was interrupted and actually needed to be...
avio: rename url_fopen/fclose -> avio_open/close.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
libavformat: Remove FF_NETERRNO()
Map EAGAIN and EINTR from ff_neterrno to the normal AVERRORerror codes. Provide fallback definitions of other errno.h networkerrors, mapping them to the corresponding winsock errors.
This eases catching these error codes in common code, without having...
avio: avio_ prefixes for get_* functions
In the name of consistency:get_byte -> avio_r8get_<type> -> avio_r<type>get_buffer -> avio_read
get_partial_buffer will be made private later
get_strz is left out becase I want to change it later to return...
avio: move init_put_byte() to a new private header and rename it
init_put_byte should never be used outside of lavf, sincesizeof(AVIOContext) isn't part of public ABI.
avio: rename ByteIOContext to AVIOContext.
Replace remaining uses of parse_date with av_parse_time.
rtsp: udp_read_packet returning 0 doesn't mean success
If udp_read_packet returns 0, rtsp_st isn't set and we shouldn'ttreat it as a successfully received packet (which is counted andpossibly triggers a RTCP receiver report).
This fixes issue 2612.
rtsp/rdt: Assign the RTSPStream index to AVStream->id
This is used for mapping AVStreams back to their correspondingRTSPStream. Since d9c0510, the RTSPStream pointer isn't stored inAVStream->priv_data any longer, breaking this mapping from AVStreamsto RTSPStreams....
Use avformat_free_context for cleaning up muxers
libavformat: Use avcodec_copy_context for chained muxers
This avoids having the chained AVStream->codec point to the sameAVCodecContext owned by the outer AVStream. The downside is thatchanges to the AVCodecContext made after calling av_write_headercannot be detected automatically within the chained muxer....
Free AVStream->info in chained muxers
This fixes memory leaks in the RTSP muxer and RTP hinting in themov muxer present since SVN rev 25418.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
rtsp: Don't store RTSPStream in AVStream->priv_data
For mpegts in RTP, there isn't a direct mapping between RTSPStreamsand AVStreams, and the RTSPStream isn't ever stored inAVStream->priv_data, which was earlier leaked. The fix for thisleak, in ea7f080749d68a431226ce196014da38761a0d82, lead to...
Free the RTSPStreams in ff_rtsp_close_streams
This plugs a small memory leak
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
Replace dprintf with av_dlog
dprintf clashes with POSIX.1-2008
rtsp: make ff_sdp_parse return value forwarded
the sdp demuxer did not forward it at all while the rtsp demuxer assumeda single kind of error
os: replace select with poll
Select has limitations on the fd values it could accept and silentlybreaks when it is reached.
Prefix all _demuxer, _muxer, _protocol from libavformat and libavdevice.
This also lists the objects from those two libraries as internal (by addingthe ff_ prefix) so that they can then be hidden via linker scripts.
Make ff_rtsp_send_cmd_with_content_async static to rtsp.c.
rtspdec: Retry with TCP if UDP failed
rtsp: Use ff_rtsp_undo_setup in the cleanup code in ff_rtsp_make_request
rtsp: Split out a function undoing the setup made by ff_rtsp_make_setup_request
rtsp: Make make_setup_request a nonstatic function
rtsp: Properly fail if unable to open an input RTP port
Originally committed as revision 26285 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Allow requesting of filtering of source packets
If filtered, only packets from the right source address and portare received.
To test, play back e.g. some mpeg4 video RTSP stream (where thevideo stream is the first stream in the presentation) over UDP....
rtsp: Parse RTP-Info headers
Originally committed as revision 26236 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Store the Content-Base header value straight to the target
This avoids having a large temporary buffer in the struct used forstoring the rtsp reply headers.
Originally committed as revision 26192 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Pass the method name to ff_rtsp_parse_line
Originally committed as revision 26191 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Pass RTSPState to ff_rtsp_parse_line, instead of HTTPAuthState
This allows ff_rtsp_parse_line to do more changes directly in RTSPStatewhen parsing the reply, instead of having to store large amounts oftemporary data in RTSPMessageHeader.
Originally committed as revision 26190 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Add a method parameter to ff_rtsp_read_reply
Originally committed as revision 26189 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtpdec: Emit timestamps for packets before the first RTCP packet, too
Emitted timestamps in each stream start from 0, for the first receivedRTP packet. Once an RTCP packet is received, that one is used forsync, emitting timestamps that fit seamlessly into the earlier ones....
rtsp: Check if the rtp stream actually has an RTPDemuxContext
For example MS-RTSP doesn't have RTPDemuxContexts for all streams.
This fixes issue 2448.
Originally committed as revision 26107 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Require the transport reply from the server to match the request
This fixes a crash if we requested TCP interleaved transport, but theserver replies with transport data for UDP. According to the RFC, theserver isn't allowed to respond with another transport type than the...
rtsp: Don't set the RTP time base from the sample rate if no sample rate is set
This also reverts SVN rev 26016, which incorrectly overwrote the time basewith 90 kHz for all streams, regardless of what was set by the SDP parsing.
The stream that triggered the fix in 26016 still works after this commit....
rtsp/rtpdec: Set the AVStream time_base directly in rtsp when it is known
This fixes cases where the RTP time base and the sample rate of the streamdiffer. Previously, the AVStream time_base was unconditionally set tothe sample rate (which initially was set to one value when parsing the...
rtsp: Parse RealRTSP sample rate declarations from the SDP
The RTP time base can be different from the actual content sample rate.
Originally committed as revision 25907 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Look for RTP payload handlers for static payload types, too
Originally committed as revision 25893 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Factorize code for initializing the rtp payload handler
Originally committed as revision 25892 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Do a forgotten reindenting
Originally committed as revision 25839 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Parse and use the Content-Base reply header, if present
This fixes playing RTSP urls with query parameters.
Originally committed as revision 25755 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Split out the RTSP demuxer functions to a separate, new file
Originally committed as revision 25601 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Move rtsp_setup_output_streams into rtspenc.c
Originally committed as revision 25600 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Add stub declarations of the setup_in/output_streams functions
This may be needed to avoid calls to implicitly defined functions(that will be removed by dead code elimination later anyway).
Originally committed as revision 25585 to svn://svn.ffmpeg.org/ffmpeg/trunk
drop rtsp_default_protocols which is not part of public API and not used anymore
Originally committed as revision 25557 to svn://svn.ffmpeg.org/ffmpeg/trunk
use rtp_get_local_rtp_port() instead of the deprecated rtp_get_local_port()
Originally committed as revision 25554 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Move the rtsp_probe function to the demuxer code block
This function is only used by the RTSP demuxer.
Originally committed as revision 25537 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Untangle the dependencies between the RTSP/SDP demuxers and RTSP muxer
This allows compilation of one of them without requiring the others'dependencies to be present.
Originally committed as revision 25535 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Reorder functions
Originally committed as revision 25534 to svn://svn.ffmpeg.org/ffmpeg/trunk
Add a demuxer for receiving raw rtp:// URLs without an SDP description
The demuxer inspects the payload type of a received RTP packet andhandles the cases where the content is fully described by the payload type.
Originally committed as revision 25527 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Factorize out code for opening a chained RTP muxer
The new object file is added to the SDP demuxer in the makefile, since itis needed in both the RTSP muxer and demuxer and in the SDP demuxer, dueto the current code coupling.
Originally committed as revision 25410 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Make rtsp_rtp_mux_open reusable
Originally committed as revision 25409 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Remove the start_time field from RTSPState, use AVFormatContext->start_time_realtime instead
Originally committed as revision 25408 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp/sdp: Move code into correct ifdefs
This makes the code dependencies correct. Previously, the SDP demuxerwasn't buildable on its own.
This also reverts rev 25343.
Originally committed as revision 25354 to svn://svn.ffmpeg.org/ffmpeg/trunk
Remove some pointless CONFIG_RTSP_DEMUXER #ifdefs.They reside within a large CONFIG_RTSP_DEMUXER block and are thus pointless.
Originally committed as revision 25343 to svn://svn.ffmpeg.org/ffmpeg/trunk
Add some #endif comments to ease understanding.
Originally committed as revision 25342 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: In the muxer, show the generated with verbose log level
It is only useful for debugging, so it doesn't have to be shown every time.
Originally committed as revision 25323 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Show the received SDP
Originally committed as revision 25322 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Return a queued packet if it has been in the queue for longer than max_delay
Originally committed as revision 25295 to svn://svn.ffmpeg.org/ffmpeg/trunk
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
Reindent/rewrap
Originally committed as revision 25291 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Reorganize if statements in rtsp_read_play
Originally committed as revision 25290 to svn://svn.ffmpeg.org/ffmpeg/trunk
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 interfacessimilar.
Originally committed as revision 25289 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Use a dynamically allocated receive buffer
Originally committed as revision 25288 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Handle standard assigned codec names for private payload types, too
Originally committed as revision 25126 to svn://svn.ffmpeg.org/ffmpeg/trunk
Reindent after r25032.
Originally committed as revision 25033 to svn://svn.ffmpeg.org/ffmpeg/trunk
Send NAT punching messages to the address specified in the Transport:message, if available (RFC 2326, section 12.39), fixes issue 2212.
Patch by John Wimer <john at god vtic net>.
Originally committed as revision 25032 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: 10l, try to update the correct rtp stream
This fixes a bug from rev 22917. Now RTSP streams where the individual RTCPsender reports aren't sent at the same time actually are synced properly.
Originally committed as revision 25029 to svn://svn.ffmpeg.org/ffmpeg/trunk
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
rtsp: Check the RTCP file handle for new packets, too
Originally committed as revision 24962 to svn://svn.ffmpeg.org/ffmpeg/trunk
Handle IPv6 in the RTSP code
Originally committed as revision 24925 to svn://svn.ffmpeg.org/ffmpeg/trunk
Handle IPv6 in the SDP demuxer
Originally committed as revision 24924 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Return EOF if the TCP control channel is closed
Originally committed as revision 24920 to svn://svn.ffmpeg.org/ffmpeg/trunk
Send OPTIONS request at a regular basis to standard RTSP servers as well,this prevents a time-out which closes the TCP connection and kills oursession.
see "Re: [FFmpeg-devel] [PATCH] rtsp.c: keep-alive" thread on mailinglist.
Originally committed as revision 24785 to svn://svn.ffmpeg.org/ffmpeg/trunk
get rid of MAX_STREAMS limit in RTSP
Originally committed as revision 24752 to svn://svn.ffmpeg.org/ffmpeg/trunk
Fix spelling in comment(s)
Originally committed as revision 24737 to svn://svn.ffmpeg.org/ffmpeg/trunk
Add RTP packetization of Theora and Vorbis
Originally committed as revision 24735 to svn://svn.ffmpeg.org/ffmpeg/trunk
Preserve status reason
It is used to provide meaningful error messages.
Originally committed as revision 24714 to svn://svn.ffmpeg.org/ffmpeg/trunk
Remove mostly unnecessary rtpdec_*.h files, store the declarations in one file
Originally committed as revision 24596 to svn://svn.ffmpeg.org/ffmpeg/trunk
rtsp: Move the definition of SDP_MAX_SIZE up, use it in the RTSP muxer, too
Originally committed as revision 24571 to svn://svn.ffmpeg.org/ffmpeg/trunk
Zero-initialize structs/arrays with {0} instead of {}, which isn't proper C99
Patch by Axel Holzinger, aholzinger at gmx dot de
Originally committed as revision 24391 to svn://svn.ffmpeg.org/ffmpeg/trunk
Report when a method gets an error status code
That makes easier understand what went wrong.In debug mode the whole reply gets printed.
Originally committed as revision 24212 to svn://svn.ffmpeg.org/ffmpeg/trunk
Make ff_url_split() public
ff_url_split() is retained as an alias, as it was used by ffserver,to avoid breaking ABI compatibility with it.
Originally committed as revision 23822 to svn://svn.ffmpeg.org/ffmpeg/trunk
RTSP, rtpdec: Move RTPPayloadData into rtpdec_mpeg4 and remove all references to rtp_payload_data in rtpdec and rtsp
Originally committed as revision 23772 to svn://svn.ffmpeg.org/ffmpeg/trunk
RTSP: Move more SDP/FMTP stuff from rtsp.c to rtpdec_mpeg4.c
Originally committed as revision 23770 to svn://svn.ffmpeg.org/ffmpeg/trunk
RTSP: Decouple MPEG-4 and AAC specific parts from rtsp.c
Originally committed as revision 23769 to svn://svn.ffmpeg.org/ffmpeg/trunk
RTSP: Remove skip_spaces in favor of strspn
Originally committed as revision 23768 to svn://svn.ffmpeg.org/ffmpeg/trunk
Make the http protocol open the connection immediately in http_open again
Also make the RTSP protocol use url_alloc and url_connect instead of relyingon the delay open behaviour.
Originally committed as revision 23710 to svn://svn.ffmpeg.org/ffmpeg/trunk
RTSP: Use the same authentication for the HTTP POST session as for the GET
Originally committed as revision 23686 to svn://svn.ffmpeg.org/ffmpeg/trunk
RTSP: Add the auth credentials to the HTTP tunnel URL, too
Originally committed as revision 23651 to svn://svn.ffmpeg.org/ffmpeg/trunk
RTSP: Set the connection handles to null after closing them
This fixes a potential issue when doing redirects.
Originally committed as revision 23649 to svn://svn.ffmpeg.org/ffmpeg/trunk
RTSP: Don't store the connection handles in local variables
This removes some useless copying of handles, and simplifies error handling.
Originally committed as revision 23648 to svn://svn.ffmpeg.org/ffmpeg/trunk
RTSP: Clean up rtsp_hd on failure
Since rtsp_hd isn't assigned to rt->rtsp_hd until after the setup phase,the initialized URLContext could be leaked on failures.
Originally committed as revision 23643 to svn://svn.ffmpeg.org/ffmpeg/trunk
Cosmetics: Change connexion to connection in code comments
Originally committed as revision 23601 to svn://svn.ffmpeg.org/ffmpeg/trunk
RTSP: Shrink SDP fmtp parsing buffer size
Since the parsing of Vorbis/Theora fmtp headers is handled by theparse_sdp_a_line function pointer now, the buffer in sdp_parse_fmtpdoesn't need to be this large any longer.
Patch by Josh Allmann, joshua dot allmann at gmail...
Reindent
Originally committed as revision 23598 to svn://svn.ffmpeg.org/ffmpeg/trunk
Add RTSP tunneling over HTTP
Patch by Josh Allmann, joshua dot allmann at gmail dot com
Originally committed as revision 23536 to svn://svn.ffmpeg.org/ffmpeg/trunk
Cosmetics: Reindent/align/wrap
Originally committed as revision 23498 to svn://svn.ffmpeg.org/ffmpeg/trunk
RTSP: Propagate errors up from ff_rtsp_send_cmd*
Originally committed as revision 23497 to svn://svn.ffmpeg.org/ffmpeg/trunk