summaryrefslogtreecommitdiffstats
path: root/stream/stream_ffmpeg.c
Commit message (Collapse)AuthorAgeFilesLines
* Rename directories, move files (step 1 of 2) (does not compile)wm42012-11-121-170/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tis drops the silly lib prefixes, and attempts to organize the tree in a more logical way. Make the top-level directory less cluttered as well. Renames the following directories: libaf -> audio/filter libao2 -> audio/out libvo -> video/out libmpdemux -> demux Split libmpcodecs: vf* -> video/filter vd*, dec_video.* -> video/decode mp_image*, img_format*, ... -> video/ ad*, dec_audio.* -> audio/decode libaf/format.* is moved to audio/ - this is similar to how mp_image.* is located in video/. Move most top-level .c/.h files to core. (talloc.c/.h is left on top- level, because it's external.) Park some of the more annoying files in compat/. Some of these are relicts from the time mplayer used ffmpeg internals. sub/ is not split, because it's too much of a mess (subtitle code is mixed with OSD display and rendering). Maybe the organization of core is not ideal: it mixes playback core (like mplayer.c) and utility helpers (like bstr.c/h). Should the need arise, the playback core will be moved somewhere else, while core contains all helper and common code.
* stream_ffmpeg: handle rtsp:// URLs by default, add lavf://Uoti Urpala2012-10-281-16/+22
| | | | | | | | | | | Make stream_ffmpeg handle rtsp:// URLs by default, without requiring ffmpeg://rtsp://. Previously (after removal of other rtsp implementations) rtsp:// fell back to using HTTP, which was unlikely to work. Also add lavf:// as an alternative to ffmpeg:// to force the stream implementation. Since libavformat can come from Libav rather than FFmpeg, using the ffmpeg name in the prefix is misleading.
* stream_ffmpeg: fix broken line from 30afc64532ff61Uoti Urpala2012-04-181-1/+1
| | | | | | | Commit 30afc64532ff61 ("stream_ffmpeg: switch to libavformat avio API") somehow contained a nonsense line which broke the control() function. Fix. Also add avformat_network_init() to central libav initialization code to avoid warnings.
* Update Libav API usesUoti Urpala2012-02-011-2/+2
| | | | | | | | | | | | | | | | | | | Change various code to use the latest Libav API. The libavcodec error_recognition setting has been removed and replaced with different semantics. I removed the "--lavdopts=er=<value>" option accordingly, as I don't think it's widely enough used to be worth attempting to emulate the old option semantics using the new API. A new option with the new semantics can be added later if needed. Libav dropped APIs that were necessary with all Libav versions until quite recently (like setting avctx->age), and it would thus not be possible to keep compatibility with previous Libav versions without adding workarounds. The new APIs also had some bugs/limitations in the recent Libav release 0.8, and it would not work fully (at least some avcodec options would not be set correctly). Because of those issues, this commit makes no attempt to maintain compatibility with anything but the latest Libav git head. Hopefully the required fixes and improvements will be included in a following Libav point release.
* stream_ffmpeg: switch to libavformat avio APIUoti Urpala2012-01-021-19/+31
| | | | | | stream_ffmpeg was using the libavformat URLContext API. This API has been deprecated (for public use at least) in libavformat. Switch to the AVIOContext API.
* cleanup: do libav* initialization on startupUoti Urpala2011-07-181-1/+0
| | | | | | | Do the global initialization of libavcodec and libavformat (avcodec_register_all(), av_register_all()) immediately on program startup and remove the initialization calls from various individual modules that use libavcodec/libavformat functionality.
* stream: Make stream_write_buffer() check for short writesranma2011-04-121-0/+1
| | | | | | | | | | | | | | | | | | | | None of the calling sites to stream_write_buffer were checking the return value to see if all bytes got written (nothing in current code actually calls it any more after MEncoder was removed). This was causing (very occasionally) problems with mencoder when using output pipes AND running under a sandbox or when being straced (ptrace is the culprit). Theoretically this problem can happen without pipes or ptrace. Only stream_file, stream_smb and stream_ffmpeg implement write_buffer and ffmpeg already handles this internally. Original patch by Sang-Uok Kum. Signed-off-by: Tobias Diedrich <ranma@google.com> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32881 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_lavf, stream_ffmpeg: support librtmp seeksUoti Urpala2010-04-231-1/+10
|
* stream_ffmpeg, demux_lavf: Use flv demuxer for rtmp streamsUoti Urpala2010-04-231-0/+7
| | | | | | | | | | Use lavf's flv demuxer for rtmp/rtmps/... stream types. Letting generic format probing handle this could work, but with the current probing implementation it'd at least depend on not-really-guaranteed details of the stream layer (probing different formats and then decoding depends on seeking back in between; rtmp streams don't support such seeking directly so would need to rely on details of caching behavior).
* stream_ffmpeg.c: change reads back to url_read_complete()Uoti Urpala2010-04-231-1/+1
| | | | | | | | Change reading data from FFmpeg from url_read() back to url_read_complete(). url_read_complete() behavior has changed in FFmpeg and no longer returns an error for partial reads at EOF so it's usable now. Using it is probably not significantly better than url_read(), but at least it handles EAGAIN.
* Merge svn changes up to r30502Uoti Urpala2010-03-091-7/+11
|\ | | | | | | | | | | | | | | Conflicts: libswscale/rgb2rgb.c libswscale/rgb2rgb.h libswscale/swscale.c libvo/x11_common.c
| * Reindentreimar2010-02-031-4/+4
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30499 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add support for FFmpeg's rtsp dummy URL-with-pseudo-demuxer scheme.reimar2010-02-031-3/+7
| | | | | | | | | | | | | | ffmpeg://rtsp://... will play a rtsp stream via FFmpeg. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30498 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30475Uoti Urpala2010-03-091-0/+18
|\|
| * Add license header to all files missing it in the stream subdirectory.diego2010-01-301-0/+18
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30468 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30236Uoti Urpala2010-01-081-30/+4
|\|
| * Support rtmp:// URLs directly instead of requiring ffmpeg://rtmp://reimar2010-01-061-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30232 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Simplify ffmpeg stream support, we (so far) do not need any special option ↵reimar2010-01-061-29/+3
| | | | | | | | | | | | parsing. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30231 b3059339-0415-0410-9bf9-f77b7e298cf2
* | stream_ffmpeg: Fix reads near EOFUoti Urpala2009-11-231-1/+1
|/ | | | | | | | | | stream_ffmpeg used libavformat's url_read_complete() to read data. However that function returns failure if it did not manage to read the _full_ amount of data asked for, while the behavior we want is to return any positive amount of data there was before end of file. This caused attempts to read the last bytes in a file to fail. Fix by using url_read() instead of url_read_complete(); even if some reads before EOF return less than the full amount that should not be a problem.
* Fall back to read-based seeking for ffmpeg:// URLs when is_streamed is setreimar2009-11-171-2/+2
| | | | | | | (i.e. it is not possible to use url_fseek). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29928 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add preliminary support for streaming via FFmpeg's URProtocol functions.reimar2009-11-171-0/+140
Basic playback tested for file and http protocols. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29923 b3059339-0415-0410-9bf9-f77b7e298cf2