summaryrefslogtreecommitdiff
path: root/libavformat/rtsp.c
Commit message (Collapse)AuthorAge
* rtsp: Expose the flag options via private AVOptions for sdp and rtp, tooMartin Storsjö2011-10-17
| | | | | | | | This allows setting the filter_src option for these demuxers, too, which wasn't possible at all before (where the option only was set via URL parameters for RTSP). Signed-off-by: Martin Storsjö <martin@martin.st>
* rtsp: Make the rtsp flags avoptions set via a defineMartin Storsjö2011-10-17
| | | | | | This helps sharing these options with the sdp and rtp demuxers. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtsp: Remove the separate filter_source variableMartin Storsjö2011-10-17
| | | | | | Read it as a flag from the flags field instead. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtsp: Accept options via private avoptions instead of URL optionsMartin Storsjö2011-10-17
| | | | | | | | | | | | Eventually, the old way of passing options by adding stuff to the URL can be dropped. This avoids having to tamper with the user-specified URL to pass options on the transport mode. This also works better with redirects, since the options don't need to be parsed out from the URL. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtsp: Simplify AVOption definitionsMartin Storsjö2011-10-17
| | | | | | | Use defines for shortening common parts, omit the .dbl named initializer (since it's the first element in the union). Signed-off-by: Martin Storsjö <martin@martin.st>
* rtsp: Merge the AVOption listsMartin Storsjö2011-10-17
| | | | | | | | This eases adding options that are common for both. The AV_OPT_FLAG_EN/DECODING_PARAM still indicates whether they belong to the muxer or demuxer. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtsp: Request that dynamic rate is disabledMartin Storsjö2011-10-12
| | | | | | | | | | | | | | | DSS enables this automatically if streaming VOD over TCP. If enabled, the server feeds packets faster than realtime, screwing up RTCP NTP based timestamps. Also, DSS doesn't indicate that this was indicated, if it was enabled automatically (although if it was requested to be enabled, a header saying that it was enabled is added, but this isn't added if it is enabled automatically), making it even harder to detect and work around properly without explicitly asking for it to be disabled(/enabled, if we were able to support it). Signed-off-by: Martin Storsjö <martin@martin.st>
* rtsp: Parse the x-Accept-Dynamic-Rate headerMartin Storsjö2011-10-12
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec: Add ff_ prefix to all nonstatic symbolsMartin Storsjö2011-10-12
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* rtsp: remove disabled codeDiego Biurrun2011-07-18
|
* lavf: use designated initialisers for all (de)muxers.Anton Khirnov2011-07-17
| | | | It's more readable and less prone to breakage.
* Do not include mathematics.h in avutil.hMans Rullgard2011-07-03
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* RTSP: Doxygen comment cleanupDiego Biurrun2011-07-03
| | | | | Do not use Doxygen for comments that apply to specific implementation details; merge some duplicated Doxygen comment blocks.
* rtsp: Don't pass string pointer as format string to ff_url_joinMartin Storsjö2011-06-16
| | | | | | | | | In this case, the string that was passed couldn't contain user-defined data and thus there was no risk for injection bugs, but it's safer this way, if we later change the content of the options string. Signed-off-by: Martin Storsjö <martin@martin.st>
* Remove all uses of now deprecated metadata functions.Anton Khirnov2011-06-08
|
* Replace custom DEBUG preprocessor trickery by the standard one.Diego Biurrun2011-06-03
|
* rtsp: use strtoul to parse rtptime and seq values.Ilya2011-05-24
| | | | | | | strtol could return negative values, leading to various error messages, mainly "non-monotonically increasing dts". Signed-off-by: Anton Khirnov <anton@khirnov.net>
* rtsp: Only do keepalive using GET_PARAMETER if the server supports itMartin Storsjö2011-05-11
| | | | | | | | | | | | | | | | This is more like what VLC does. If the server doesn't mention supporting GET_PARAMETER in response to an OPTIONS request, VLC doesn't send any keepalive requests at all. After this patch, libavformat will still send OPTIONS keepalives if GET_PARAMETER isn't explicitly said to be supported. Some RTSP cameras don't support GET_PARAMETER, and will close the connection if this is sent as keepalive request (but support OPTIONS just fine, but probably don't need any keepalive at all). Some other cameras don't support using OPTIONS as keepalive, but require GET_PARAMETER instead. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtp: Rename the open/close functions to alloc/freeMartin Storsjö2011-04-24
| | | | | | | This avoids clashes if we internally want to override the global open function. Signed-off-by: Martin Storsjö <martin@martin.st>
* avio: remove AVIO_* access symbols in favor of new AVIO_FLAG_* symbolsStefano Sabatini2011-04-19
| | | | | | | | Make AVIO_FLAG_ access constants work as flags, and in particular fix the behavior of functions (such as avio_check()) which expect them to be flags rather than modes. This breaks API.
* avio: AVIO_ prefixes for URL_ open flags.Anton Khirnov2011-04-07
|
* avio: make url_get_file_handle() internal.Anton Khirnov2011-04-04
|
* avio: make url_close() internal.Anton Khirnov2011-04-04
|
* avio: make url_write() internal.Anton Khirnov2011-04-04
|
* avio: make url_read_complete() internal.Anton Khirnov2011-04-04
|
* avio: make url_read() internal.Anton Khirnov2011-04-04
|
* avio: make url_open() internal.Anton Khirnov2011-04-04
|
* avio: make url_connect internal.Anton Khirnov2011-04-04
|
* avio: make url_alloc internal.Anton Khirnov2011-04-04
|
* avio: avio_ prefix for url_close_dyn_bufAnton Khirnov2011-04-03
|
* rtsp: Specify unicast for TCP interleaved streams, tooMartin Storsjö2011-03-21
| | | | | | | | | | According to the RFC, the default is multicast if nothing is specified, 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. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Use AVERROR_EXIT with url_interrupt_cb.Nicolas George2011-03-15
| | | | | | | | | | | | | Functions interrupted by url_interrupt_cb should not be restarted. Therefore using AVERROR(EINTR) was wrong, as it did not allow to distinguish when the underlying system call was interrupted and actually needed to be restarted. This fixes roundup issues 2657 and 2659 (ffplay not exiting for streamed content). Signed-off-by: Nicolas George <nicolas.george@normalesup.org> Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* avio: rename url_fopen/fclose -> avio_open/close.Anton Khirnov2011-02-23
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* libavformat: Remove FF_NETERRNO()Martin Storsjö2011-02-23
| | | | | | | | | | | | | | Map EAGAIN and EINTR from ff_neterrno to the normal AVERROR() error codes. Provide fallback definitions of other errno.h network errors, mapping them to the corresponding winsock errors. This eases catching these error codes in common code, without having to distinguish between FF_NETERRNO(EAGAIN) and AVERROR(EAGAIN). This fixes roundup issue 2614, unbreaking blocking network IO on windows. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* avio: avio_ prefixes for get_* functionsAnton Khirnov2011-02-21
| | | | | | | | | | | | | | In the name of consistency: get_byte -> avio_r8 get_<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 something useful. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* avio: move init_put_byte() to a new private header and rename itAnton Khirnov2011-02-20
| | | | | | | init_put_byte should never be used outside of lavf, since sizeof(AVIOContext) isn't part of public ABI. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* avio: rename ByteIOContext to AVIOContext.Anton Khirnov2011-02-20
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Replace remaining uses of parse_date with av_parse_time.Anton Khirnov2011-02-16
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* rtsp: udp_read_packet returning 0 doesn't mean successMartin Storsjö2011-02-17
| | | | | | | | If udp_read_packet returns 0, rtsp_st isn't set and we shouldn't treat it as a successfully received packet (which is counted and possibly triggers a RTCP receiver report). This fixes issue 2612.
* rtsp/rdt: Assign the RTSPStream index to AVStream->idMartin Storsjö2011-02-11
| | | | | | | | | | | | This is used for mapping AVStreams back to their corresponding RTSPStream. Since d9c0510, the RTSPStream pointer isn't stored in AVStream->priv_data any longer, breaking this mapping from AVStreams to RTSPStreams. Also, we don't need to clear the priv_data in rdt cleanup any longer, since it isn't set to duplicate pointers. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Use avformat_free_context for cleaning up muxersMartin Storsjö2011-02-04
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* libavformat: Use avcodec_copy_context for chained muxersMartin Storsjö2011-02-04
| | | | | | | | | | | | | This avoids having the chained AVStream->codec point to the same AVCodecContext owned by the outer AVStream. The downside is that changes to the AVCodecContext made after calling av_write_header cannot be detected automatically within the chained muxer. This avoids having to manually unlink the chained AVStream->codec by setting it to null before freeing the chained muxer via generic freeing functions. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Free AVStream->info in chained muxersMartin Storsjö2011-02-03
| | | | | | | This fixes memory leaks in the RTSP muxer and RTP hinting in the mov muxer present since SVN rev 25418. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* rtsp: Don't store RTSPStream in AVStream->priv_dataMartin Storsjö2011-02-03
| | | | | | | | | | | | | | | | For mpegts in RTP, there isn't a direct mapping between RTSPStreams and AVStreams, and the RTSPStream isn't ever stored in AVStream->priv_data, which was earlier leaked. The fix for this leak, in ea7f080749d68a431226ce196014da38761a0d82, lead to double frees for other, normal RTP streams. This patch avoids storing RTSPStreams in AVStream->priv_data, thus avoiding the double free. The RTSPStreams are always available via RTSPState->rtsp_streams anyway. Tested with MS-RTSP, RealRTSP, DSS and mpegts/RTP. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* Free the RTSPStreams in ff_rtsp_close_streamsLuca Barbato2011-02-01
| | | | | | This plugs a small memory leak Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* Replace dprintf with av_dlogLuca Barbato2011-01-29
| | | | dprintf clashes with POSIX.1-2008
* rtsp: make ff_sdp_parse return value forwardedLuca Barbato2011-01-28
| | | | | the sdp demuxer did not forward it at all while the rtsp demuxer assumed a single kind of error
* os: replace select with pollLuca Barbato2011-01-28
| | | | | Select has limitations on the fd values it could accept and silently breaks when it is reached.
* Prefix all _demuxer, _muxer, _protocol from libavformat and libavdevice.Diego Elio Pettenò2011-01-26
| | | | | This also lists the objects from those two libraries as internal (by adding the ff_ prefix) so that they can then be hidden via linker scripts.