summaryrefslogtreecommitdiff
path: root/libavformat/rtsp.c
Commit message (Collapse)AuthorAge
* Merge remote branch 'qatar/master'Michael Niedermayer2011-05-12
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (32 commits) 10-bit H.264 x86 chroma v loopfilter asm Port SMPTE S302M audio decoder from FFmbc 0.3. [Copyright headers corrected] Fix crash of interlaced MPEG2 decoding h264pred: fix one more aliasing violation. doc/APIchanges: fill in missing hashes and dates. flacenc: use proper initializers for AVOption default values. lavc: deprecate named constants for deprecated antialias_algo. aac: workaround for compilation on cygwin swscale: extend YUV422p support to 10bits depth tiff: add support for inverted FillOrder for uncompressed data Remove unused softfloat implementation. h264pred: fix aliasing violations. rotozoom: Eliminate French variable name. rotozoom: Check return value of fread(). rotozoom: Return an error value instead of calling exit(). rotozoom: Make init_demo() return int and check for errors on invocation. rotozoom: Drop silly UINT8 typedef. rotozoom: Drop some unnecessary parentheses. rotozoom: K&R coding style cosmetics rtsp: Only do keepalive using GET_PARAMETER if the server supports it ... Conflicts: Changelog cmdutils.c doc/APIchanges doc/general.texi ffmpeg.c ffplay.c libavcodec/h264pred_template.c libavcodec/resample.c libavutil/pixfmt.h libavutil/softfloat.c libavutil/softfloat.h tests/rotozoom.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-04-24
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: Handle unicode file names on windows rtp: Rename the open/close functions to alloc/free Lowercase all ff* program names. Refer to ff* tools by their lowercase names. NOT Pulled Replace more FFmpeg instances by Libav or ffmpeg. Replace `` by $() syntax in shell scripts. patcheck: Allow overiding grep program(s) through environment variables. NOT Pulled Remove stray libavcore and _g binary references. vorbis: Rename decoder/encoder files to follow general file naming scheme. aacenc: Fix whitespace after last commit. cook: Fix small typo in av_log_ask_for_sample message. aacenc: Finish 3GPP psymodel analysis for non mid/side cases. Remove RDFT dependency from AAC decoder. Add some debug log messages to AAC extradata Fix mov debug (u)int64_t format strings. bswap: use native types for av_bwap16(). doc: FLV muxing is supported. applehttp: Handle AES-128 encrypted streams Add a protocol handler for AES CBC decryption with PKCS7 padding doc: Mention that DragonFly BSD requires __BSD_VISIBLE set Conflicts: ffplay.c ffprobe.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-04-20
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (37 commits) In avcodec_open(), set return code to an error value only when an error occurs instead of unconditionally at the start of the function. lavc: remove reference to opt.h from Makefile. prefer avio_check() over url_exist() avio: remove AVIO_* access symbols in favor of new AVIO_FLAG_* symbols lavu: remove misc disabled cruft lavu: remove FF_API_OLD_IMAGE_NAMES cruft NOT PULLED lavu: remove FF_API_OLD_EVAL_NAMES cruft lavc: remove misc disabled cruft. lavc: remove the FF_API_INOFFICIAL cruft. lavc: remove the FF_API_SET_STRING_OLD cruft. lavc: remove the FF_API_USE_LPC cruft. lavc: remove the FF_API_SUBTITLE_OLD cruft. lavc: remove the FF_API_VIDEO_OLD cruft. lavc: remove the FF_API_AUDIO_OLD cruft. lavc: remove the FF_API_OPT_SHOW cruft. lavc: remove the FF_API_MM_FLAGS cruft. lavf: remove misc disabled cruft. lavf: remove FF_API_INDEX_BUILT cruft lavf: remove FF_API_URL_CLASS cruft. lavf: remove FF_API_SYMVER cruft ... Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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.
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-04-08
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: proto: include os_support.h in network.h matroskaenc: don't write an empty Cues element. lavc: add a FF_API_REQUEST_CHANNELS deprecation macro avio: move extern url_interrupt_cb declaration from avio.h to url.h avio: make av_register_protocol2 internal. avio: avio_ prefix for url_set_interrupt_cb. avio: AVIO_ prefixes for URL_ open flags. proto: introduce listen option in tcp doc: clarify configure features proto: factor ff_network_wait_fd and use it on udp Conflicts: ffmpeg.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avio: AVIO_ prefixes for URL_ open flags.Anton Khirnov2011-04-07
| |
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-04-05
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (22 commits) ac3enc: move extract_exponents inner loop to ac3dsp avio: deprecate url_get_filename(). avio: deprecate url_max_packet_size(). avio: make url_get_file_handle() internal. avio: make url_filesize() internal. avio: make url_close() internal. avio: make url_seek() internal. avio: cosmetics, move AVSEEK_SIZE/FORCE declarations together avio: make url_write() internal. avio: make url_read_complete() internal. avio: make url_read() internal. avio: make url_open() internal. avio: make url_connect internal. avio: make url_alloc internal. applehttp: Merge two for loops applehttp: Restructure the demuxer to use a custom AVIOContext applehttp: Move finished and target_duration to the variant struct aacenc: reduce the number of loop index variables avio: deprecate url_open_protocol avio: deprecate url_poll and URLPollEntry ... Conflicts: libavformat/applehttp.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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
| |
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-04-04
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: fate: fix partial run when no samples path is specified ARM: NEON fixed-point forward MDCT ARM: NEON fixed-point FFT lavf: bump minor version and add an APIChanges entry for avio changes avio: simplify url_open_dyn_buf_internal by using avio_alloc_context() avio: make url_fdopen internal. avio: make url_open_dyn_packet_buf internal. avio: avio_ prefix for url_close_dyn_buf avio: avio_ prefix for url_open_dyn_buf avio: introduce an AVIOContext.seekable field ac3enc: use generic fixed-point mdct lavfi: add fade filter Change yadif to not use out of picture lines. lavc: deprecate AVCodecContext.antialias_algo lavc: mark mb_qmin/mb_qmax for removal on next major bump. Conflicts: doc/filters.texi libavcodec/ac3enc_fixed.h libavcodec/ac3enc_float.h libavfilter/Makefile libavfilter/allfilters.c libavfilter/vf_fade.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avio: avio_ prefix for url_close_dyn_bufAnton Khirnov2011-04-03
| |
* | Use strtoul to parse rtptime and seq values.Ilya2011-03-26
| | | | | | | | | | strtol could return negative values, leading to various error messages, mainly "non-monotonically increasing dts".
* | Merge remote-tracking branch 'newdev/master'Michael Niedermayer2011-03-23
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * newdev/master: (33 commits) Fix an infinite loop when RoQ encoded generated a frame with a size greater than the maximum valid size. Add kbdwin.o to AC3 decoder Detect byte-swapped AC-3 and support decoding it directly. cosmetics: indentation Always copy input data for AC3 decoder. ac3enc: make sym_quant() branch-free cosmetics: indentation Add a CPU flag for the Atom processor. id3v2: skip broken tags with invalid size id3v2: don't explicitly skip padding Make sure kbhit() is in conio.h fate: update wmv8-drm reference vc1: make P-frame deblock filter bit-exact. configure: Add the -D parameter to the dlltool command amr: Set the AVFMT_GENERIC_INDEX flag amr: Set the pkt->pos field properly to the start of the packet amr: Set the codec->bit_rate field based on the last packet rtsp: Specify unicast for TCP interleaved streams, too Set the correct target for mingw64 dlltool applehttp: Change the variable for stream position in seconds into int64_t ... Conflicts: ffmpeg.c ffplay.c libavcodec/ac3dec.c libavformat/avio.h libavformat/id3v2.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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.
* Make ff_rtsp_send_cmd_with_content_async static to rtsp.c.Diego Elio Pettenò2011-01-25
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* rtspdec: Retry with TCP if UDP failedMartin Storsjö2011-01-24
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* rtsp: Use ff_rtsp_undo_setup in the cleanup code in ff_rtsp_make_requestMartin Storsjo2011-01-24
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* rtsp: Split out a function undoing the setup made by ff_rtsp_make_setup_requestMartin Storsjo2011-01-24
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* rtsp: Make make_setup_request a nonstatic functionMartin Storsjo2011-01-24
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* rtsp: Properly fail if unable to open an input RTP portMartin Storsjö2011-01-09
| | | | Originally committed as revision 26285 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Allow requesting of filtering of source packetsMartin Storsjö2011-01-06
| | | | | | | | | | | | | | | | | If filtered, only packets from the right source address and port are received. To test, play back e.g. some mpeg4 video RTSP stream (where the video stream is the first stream in the presentation) over UDP. While receiving this stream, send another stream to the same port: ffmpeg -re -i <whatever> -vcodec mpeg4 -an -f rtp rtp://127.0.0.1:5000?localport=1234 Normally, the RTSP playback reports lots of errors at this point. If the RTSP stream has the ?filter_src option enabled, these interferring packets are ignored. Originally committed as revision 26246 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Parse RTP-Info headersMartin Storsjö2011-01-05
| | | | Originally committed as revision 26236 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Store the Content-Base header value straight to the targetMartin Storsjö2011-01-02
| | | | | | | This avoids having a large temporary buffer in the struct used for storing the rtsp reply headers. Originally committed as revision 26192 to svn://svn.ffmpeg.org/ffmpeg/trunk