Commit Graph

19 Commits

Author SHA1 Message Date
Uoti Urpala b9fefc87c0 stream_ffmpeg: fix broken line from 30afc64532
Commit 30afc64532 ("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.
2012-04-18 01:27:55 +03:00
Uoti Urpala db8cdc73e3 Update Libav API uses
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.
2012-02-01 22:46:27 +02:00
Uoti Urpala 30afc64532 stream_ffmpeg: switch to libavformat avio API
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.
2012-01-02 06:15:52 +02:00
Uoti Urpala a4f4130819 cleanup: do libav* initialization on startup
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.
2011-07-18 00:57:05 +03:00
ranma f8c32fc953 stream: Make stream_write_buffer() check for short writes
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
2011-04-12 18:23:43 +03:00
Uoti Urpala 7be5f14c3a demux_lavf, stream_ffmpeg: support librtmp seeks 2010-04-23 23:50:34 +03:00
Uoti Urpala 1d4d1bff82 stream_ffmpeg, demux_lavf: Use flv demuxer for rtmp streams
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).
2010-04-23 22:57:25 +03:00
Uoti Urpala eb48fefe94 stream_ffmpeg.c: change reads back to url_read_complete()
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.
2010-04-23 21:19:50 +03:00
Uoti Urpala bc0f524909 Merge svn changes up to r30502
Conflicts:
	libswscale/rgb2rgb.c
	libswscale/rgb2rgb.h
	libswscale/swscale.c
	libvo/x11_common.c
2010-03-09 19:44:28 +02:00
Uoti Urpala 12d3caebc7 Merge svn changes up to r30475 2010-03-09 19:18:43 +02:00
reimar 9d9b7a1e22 Reindent
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30499 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-03 22:33:35 +00:00
reimar 8613396aa0 Add support for FFmpeg's rtsp dummy URL-with-pseudo-demuxer scheme.
ffmpeg://rtsp://... will play a rtsp stream via FFmpeg.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30498 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-03 22:32:48 +00:00
diego 59e26907b6 Add license header to all files missing it in the stream subdirectory.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30468 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-30 22:26:47 +00:00
Uoti Urpala 819b8f08a2 Merge svn changes up to r30236 2010-01-08 02:44:37 +02:00
reimar 78267a4d21 Support rtmp:// URLs directly instead of requiring ffmpeg://rtmp://
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30232 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-06 16:12:58 +00:00
reimar abb06b3f11 Simplify ffmpeg stream support, we (so far) do not need any special option parsing.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30231 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-06 16:11:29 +00:00
Uoti Urpala 34c8b502e9 stream_ffmpeg: Fix reads near EOF
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.
2009-11-23 03:47:34 +02:00
reimar 450d40d443 Fall back to read-based seeking for ffmpeg:// URLs when is_streamed is set
(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
2009-11-17 18:30:33 +00:00
reimar 5830140582 Add preliminary support for streaming via FFmpeg's URProtocol functions.
Basic playback tested for file and http protocols.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29923 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-17 16:09:17 +00:00