Commit Graph

58 Commits

Author SHA1 Message Date
wm4 dd96c11d5e stream: implement some HTTP specific options for stream_lavf
The "http:" protocol has been switched to use ffmpeg's HTTP
implementation some time ago. One problem with this was that many HTTP
specific options stopped working, because they were obviously
implemented for the internal HTTP implementation only.

Add the missing things. Note that many options will work for ffmpeg
only, as Libav's HTTP implementation is missing these. They will
silently be ignored on Libav.

Some options we can't fix:
--ipv4-only-proxy, --prefer-ipv4, --prefer-ipv6
    As far as I can see, not even libavformat internals distinguish
    between ipv4 and ipv6.
--user, --passwd
    ffmpeg probably supports specifying these in the URL directly.
2013-01-24 17:45:13 +01:00
wm4 eb787267c8 stream: handle mms streaming with ffmpeg
Use ffmpeg (stream_lavf) instead of internal mms support (asf_streaming.c)
for mms://, mmsh://, mmst:// URLs.

The old implementation is available under mp_mms:// etc.

There are some caveats with this:
- mms:// now always maps to mmsh://. It won't try mmst://. (I'm not sure
  if mms:// URLs really can use the mmst protocol, though.)
- MMS streams under the http:// prefix are not handled. (ffmpeg ticket
  #2001.) (Was already broken in mpv since c02f25.)
- It downloads all video streams now. MMS streams often have redundant
  video streams, which encode the main stream at different quality. The
  client is supposed to select one according to its bandwidth
  requirements. (Explicit MMS stream selection has been broken in mpv
  for a while, because MPOpts.vid maps to the stream number, not the
  demuxer's stream ID - but the old logic doesn't work anyway when
  using demuxer_lavf as opposed to demux_asf.)
2012-12-11 00:37:54 +01:00
wm4 6294c78549 cache: simplify further
This commit is separate from the previous one to separate our own
changes from changes merged from mplayer2 (as far as that was possible).

Make it easier for stream implementations to request being cached. Set
a default cache size in stream.c, and remove them from various stream
implementations. Only MS streaming support sets a meaningful cache size.

Make querying cache size saner. This reduces the amount of #ifdefs
needed.
2012-12-03 21:08:51 +01:00
Uoti Urpala 2d58234c86 cache: refactor how cache enabling is done
Code enabling the cache by default for network streams did that by
modifying the value of the "cache" option. This wasn't sane, as
multiple streams may be created and all share the same options. Change
the code to not modify options but store data in the stream instance
instead.

Conflicts:
	core/mplayer.c
	demux/demux.c
	stream/cache2.c
	stream/network.c
	stream/network.h
	stream/pnm.c
	stream/stream.c
	stream/stream_rtp.c

Merged from mplayer2 commit e26070. Note that this doesn't solve any
actual bug, as the playlist crashing bug has been fixed before.

Since the global cache size option value is not overwritten anymore, the
option doesn't need to be restored on end of playback (M_OPT_LOCAL).
2012-12-03 21:08:51 +01:00
wm4 ddffcce678 stream, demux: replace off_t with int64_t
On reasonable systems, these types were the same anyway. Even on
unreasonable systems (seriously, which?), this may reduce potential
breakage.
2012-11-20 18:00:15 +01:00
upsuper 7759e565b7 asf_streaming: remove broken MMSU support code
Comment out unused code

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35359 b3059339-0415-0410-9bf9-f77b7e298cf2

Removing mmsu-related code

MMSU was never supported by MPlayer, and the protocol has been
deprecated. Since the code is not in use at all, Removing it
should not break anything.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35420 b3059339-0415-0410-9bf9-f77b7e298cf2
2012-11-20 18:00:14 +01:00
reimar 3f85094d4e Fix potential bugs and issues, general cleanups
Most of these are reimar fixing issues found by Coverity static
analyzer, and possibly some more cleanup commits independent from
this.

Since these commits are rather noisy, squash them all together.

Try to make code a bit clearer.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35294 b3059339-0415-0410-9bf9-f77b7e298cf2

Conflicts:
	audio/out/ao_alsa.c

Check the correct variable for NULL.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35323 b3059339-0415-0410-9bf9-f77b7e298cf2

Remove pointless unreachable code (the loop condition already checks
the 0xff case).

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35325 b3059339-0415-0410-9bf9-f77b7e298cf2

Fix typo that might have caused reading beyond the string end.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35326 b3059339-0415-0410-9bf9-f77b7e298cf2

Do not needlessly use "long" types.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35331 b3059339-0415-0410-9bf9-f77b7e298cf2

Use AV_RB32 to avoid sign extension issues and validate offset before using it.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35332 b3059339-0415-0410-9bf9-f77b7e298cf2

Remove nonsense casts.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35343 b3059339-0415-0410-9bf9-f77b7e298cf2

Fix crash in case sh_audio allocation failed.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35348 b3059339-0415-0410-9bf9-f77b7e298cf2

Fix potential NULL dereference.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35351 b3059339-0415-0410-9bf9-f77b7e298cf2

Conflicts:
	libmpcodecs/ad_ffmpeg.c

Note: Slightly modified.

Fix malloc failure check to check the correct variable.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35353 b3059339-0415-0410-9bf9-f77b7e298cf2

Avoid code duplication and pointless casts.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35363 b3059339-0415-0410-9bf9-f77b7e298cf2

Conflicts:
	stream/tv.c

Error out if an invalid channel list name was specified
instead of continuing and reading outside array bounds
all over the place.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35364 b3059339-0415-0410-9bf9-f77b7e298cf2

Conflicts:
	stream/tv.c

Make array "static const".

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35365 b3059339-0415-0410-9bf9-f77b7e298cf2

Properly free resources even when encountering many
parse errors.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35367 b3059339-0415-0410-9bf9-f77b7e298cf2

Conflicts:
	parser-cfg.c

Avoid leaks in error handling.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35380 b3059339-0415-0410-9bf9-f77b7e298cf2

Do not do sign comparisons on "char" type which can be both signed or unsigned.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35381 b3059339-0415-0410-9bf9-f77b7e298cf2

Free cookies file data after parsing it.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35382 b3059339-0415-0410-9bf9-f77b7e298cf2

http_set_field only makes a copy of the string, so we still need to
free it.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35383 b3059339-0415-0410-9bf9-f77b7e298cf2

check4proxies does not modify input URL, so mark it const.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35390 b3059339-0415-0410-9bf9-f77b7e298cf2

Remove proxy "support" from stream_rtp and stream_upd, trying
to use a http proxy for UDP connections makes no sense.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35394 b3059339-0415-0410-9bf9-f77b7e298cf2

Conflicts:
	stream/stream_rtp.c
	stream/stream_udp.c

Add url_new_with_proxy function to reduce code duplication and memleaks.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35395 b3059339-0415-0410-9bf9-f77b7e298cf2

Conflicts:
	stream/pnm.c
	stream/stream_live555.c
	stream/stream_nemesi.c
	stream/stream_rtsp.c

Fix off-by-one errors in file descriptor validity checks.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35402 b3059339-0415-0410-9bf9-f77b7e298cf2

Remove pointless cast.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35403 b3059339-0415-0410-9bf9-f77b7e298cf2

Abort when opening the file failed instead of calling
"write" with an invalid descriptor.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35404 b3059339-0415-0410-9bf9-f77b7e298cf2

Remove pointless local variable.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35411 b3059339-0415-0410-9bf9-f77b7e298cf2

Conflicts:
	stream/http.c
2012-11-20 18:00:14 +01:00
wm4 4873b32c59 Rename directories, move files (step 2 of 2)
Finish renaming directories and moving files. Adjust all include
statements to make the previous commit compile.

The two commits are separate, because git is bad at tracking renames
and content changes at the same time.

Also take this as an opportunity to remove the separation between
"common" and "mplayer" sources in the Makefile. ("common" used to be
shared between mplayer and mencoder.)
2012-11-12 20:08:18 +01:00
Uoti Urpala fc6a9e4a3e build: switch to libavutil bswap.h and intreadwrite.h
Remove the private bswap and intreadwrite.h implementations and use
libavutil headers instead.

Originally these headers weren't publicly installed by libavutil at
all. That already changed in 2010, but the pure C bswap version in
installed headers was very inefficient. That was recently (2011-12)
improved and now using the public bswap version probably shouldn't
cause noticeable performance problems, at least if using a new enough
compiler.
2012-02-01 22:46:27 +02:00
Clément Bœsch 6506d4ad84 cleanup: remove more warnings 2011-05-02 00:46:48 +03:00
diego 12d3e0df99 cleanup: don't check for NULL before free()
patch by Clément Bœsch, ubitux gmail com

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32598 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:05:12 +02:00
diego 26541aeb8b printf format fixes ("%d" -> "%zd")
Add 'z' length modifier to %d printf format specifier for size_t argument.
stream/http.c:675: warning: format '%d' expects type 'int', but argument 4 has type 'size_t'

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31933 b3059339-0415-0410-9bf9-f77b7e298cf2

Add 'z' length modifier to %d printf format specifiers for size_t arguments.
libmpdemux/demux_avi.c:553: warning: format '%u' expects type 'unsigned int', but argument 5 has type 'size_t'
libmpdemux/demux_avi.c:553: warning: format '%u' expects type 'unsigned int', but argument 7 has type 'size_t'

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31935 b3059339-0415-0410-9bf9-f77b7e298cf2

Add 'z' length modifier to %d printf format specifiers for size_t arguments.
libmpdemux/demux_lmlm4.c:75: warning: format '%d' expects type 'int', but argument 5 has type 'ssize_t'
libmpdemux/demux_lmlm4.c:163: warning: format '%d' expects type 'int', but argument 6 has type 'ssize_t'
libmpdemux/demux_lmlm4.c:163: warning: format '%d' expects type 'int', but argument 7 has type 'ssize_t'

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31937 b3059339-0415-0410-9bf9-f77b7e298cf2

Add 'z' length modifier to %d printf format specifier for size_t argument.
stream/asf_streaming.c:676: warning: format '%d' expects type 'int', but argument 5 has type 'size_t'

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31938 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:15:48 +02:00
reimar 41d25ebcc8 stream: Use MSG_NOSIGNAL flag if available for send().
This avoids MPlayer quitting due to SIGPIPE at least for these cases.
Ignoring SIGPIPE in general would break window-closing with some
window-managers.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31566 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:11:43 +02:00
Uoti Urpala 00323c06e2 Delete things related to old translation system
Remove the help/ subdirectory, configure code to create toplevel
help_mp.h, and all the '#include "help_mp.h"' lines from .c files.
2010-03-10 03:47:14 +02:00
Uoti Urpala 0dce155dd3 Merge svn changes up to r30694 2010-03-10 01:01:15 +02:00
Uoti Urpala 12d3caebc7 Merge svn changes up to r30475 2010-03-09 19:18:43 +02:00
diego 326397d815 Add header for asf_mmst_streaming_start() instead of forward declaring it.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30690 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-21 23:26:16 +00:00
diego 8ba6b4eaf9 cosmetics: Remove pointless empty lines at EOF.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30675 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-20 21:02:49 +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 ed333bb31d Merge svn changes up to r29971 2009-11-29 06:11:02 +02:00
compn b3eaf99833 mime type [video/x-ms-wmv] is not an ASF redirector.
patch by KO Myung-Hun komh!chollian!net


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29965 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-26 17:57:33 +00:00
Uoti Urpala d6c410b54c Replace libavutil internal header #includes with MPlayer copies
Change #include lines for libavutil/intreadwrite.h, libavutil/bswap.h
and libavutil/x86_cpu.h to use the MPlayer file under ffmpeg_files/
instead.
2009-07-26 06:16:43 +03:00
Uoti Urpala 0eb321bf2c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
Amar Takhar e306174952 Translation system changes part 2: replace macros by strings
Replace all MSGTR_ macros in the source by the corresponding English
string.
2009-07-07 01:38:20 +03:00
Amar Takhar b5972d6f14 Translation system changes part 1: wrap translated strings
Replace mp_msg() calls which have a translated string as the format
argument with mp_tmsg and add _() around all other translated strings.
2009-07-07 01:28:07 +03:00
diego 6e9cbdc104 whitespace cosmetics: Remove all trailing whitespace.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29305 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-05-13 02:58:57 +00:00
Uoti Urpala cf9edda1d3 Merge svn changes up to r29117 2009-04-01 02:43:47 +03:00
compn 09d4f18010 change close to closesocket, unifies close streaming code
patch by Francesco Cosoleto , cosoleto gmail com


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29066 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-03-26 13:35:12 +00:00
reimar 127480e660 Add support for mmsh:// as alias for mmshttp://
Patch by Francesco Cosoleto [cosoleto gmail com]


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29064 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-03-26 11:00:04 +00:00
Uoti Urpala 9790f4e6e7 Merge svn changes up to r28461 2009-02-04 00:28:17 +02:00
diego 0f65d3be9d Convert HAVE_WINSOCK2_H into a 0/1 definition.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28437 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-01 13:42:27 +00:00
Uoti Urpala b56858342f Merge svn changes up to r27514 2008-09-03 10:16:30 +03:00
diego 788a4d5f91 Move '#define closesocket close' preprocessor directive to a common place
and put it under the proper '#ifndef HAVE_CLOSESOCKET' condition.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27505 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-09-01 07:31:57 +00:00
diego f27f04a53d Revert moving closesocket definition and network headers to network.h.
This caused lots of trouble on MinGW, we need a different solution.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27504 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-08-31 13:59:54 +00:00
diego c152b07e66 Move duplicated '#define closesocket close' into network.h along with
network-related #include #ifdeffery.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27496 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-08-29 22:55:39 +00:00
diego 3af860b877 Rename HAVE_WINSOCK preprocessor condition to HAVE_WINSOCK_H.
This is what it is called in FFmpeg and more consistent with other
names for similar conditionals. This fixes a potential compilation
failure on MinGW, as described in Bugzilla #1262.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27493 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-08-29 20:05:08 +00:00
Uoti Urpala c0c914effd Move audio_id and video_id to options struct 2008-04-23 13:48:38 +03:00
albeu 64868a36cd Make stream independent of libmpdemux, the asf demuxer and streaming
code share a function and a few definitions.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26357 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-04-09 00:32:35 +00:00
rtogni 9a1d198e9d Stream IDs must be written as hex numbers. Fixes
http://wm.streampower.be/ceu/archive/CEU_COUNCIL_DELIBIRATIONS_PUBLIC_DEBATE/ceulive_1443.wmv

Patch by Peter Collingbourne pcc03 doc ic ac uk


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25928 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-01-29 23:50:08 +00:00
reimar bfef84e32f Simplify a little bit
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25487 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-21 11:56:18 +00:00
reimar 023446528b Remove a check that is never in any way useful
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25486 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-21 11:53:55 +00:00
reimar 64b88a4139 Avoid some le2me_ASF_* stuff operating directly on buffer, should
simplify some future changes


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25484 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-21 11:46:58 +00:00
reimar 642b997690 Remove another useless cast
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25482 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-21 11:37:47 +00:00
reimar 5947ca8334 100l, buffer bound checks work better when done _before_ access.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25481 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-21 11:34:04 +00:00
reimar f00272efea Reduce some extreme parsing ugliness (mostly cosmetic)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25480 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-21 11:30:55 +00:00
reimar c06c4c6379 Remove useless alloc casts
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25479 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-21 10:53:32 +00:00
reimar 0791efc730 Reduce code duplication: add a asf_read_wrapper function that never does partial reads
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25478 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-21 00:13:08 +00:00
ben e25991774e cosmetic: indent after r25415
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25416 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-15 19:17:36 +00:00
ben 1fd811a487 do not override *file_format if already set by asf_streaming_start()
ASX files containing a playlist were probably not playable at all.

Fixes playback of the following:
http://www.impek.com/go/oldcartoontv/wm
http://www.impek.tv/go/soul/wm
http://www.impek.com/go/tropical2/wm
http://www.impek.com/go/mizik/wm


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25415 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-15 19:16:49 +00:00
reimar cd3d3369e1 Mark all stream_info_t as const
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25239 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-02 13:22:53 +00:00