summaryrefslogtreecommitdiff
path: root/community/mplayer2/mplayer2-20120729-libquvi-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/mplayer2/mplayer2-20120729-libquvi-support.patch')
-rw-r--r--community/mplayer2/mplayer2-20120729-libquvi-support.patch277
1 files changed, 0 insertions, 277 deletions
diff --git a/community/mplayer2/mplayer2-20120729-libquvi-support.patch b/community/mplayer2/mplayer2-20120729-libquvi-support.patch
deleted file mode 100644
index f27fa690d..000000000
--- a/community/mplayer2/mplayer2-20120729-libquvi-support.patch
+++ /dev/null
@@ -1,277 +0,0 @@
-From 37c124805c00ae0f2570c95f9543e39ce69793a6 Mon Sep 17 00:00:00 2001
-From: wm4 <wm4@mplayer2.org>
-Date: Fri, 02 Mar 2012 19:24:34 +0000
-Subject: quvi: Add support for streaming sites using libquvi
-
-This enables playing URLs from libquvi supported streaming sites
-directly, e.g. "mplayer http://www.youtube.com/watch?v=...."
-
-Anything opened with mplayer is checked with libquvi. If it looks like
-a URL of a supported streaming site, libquvi is used to extract the
-media URL, which is then passed to the lower level mplayer code
-instead of the HTML URL. Hopefully the libquvi URL checker works well
-enough that it doesn't cause any problems with normal URLs, files, or
-whatever else mplayer's stream layer accepts.
-
-Add the --quvi-format option. The option value is directly passed
-to libquvi as requested format. The only values that seem to work for
-any streaming site seem to be "best" (best quality) and "default"
-(lowest quality). The mplayer option defaults to "best" (overriding
-libquvi's default).
-
-Outstanding issues:
-- Does libquvi checking every opened file really not cause problems?
- Should there be a runtime option to disable libquvi use?
- (Probably not an issue.)
-- Should we check/set the supported protocol? By default libquvi has
- support for all protocols enabled. In the worst case, it might
- return an URL using a protocol not supported by mplayer, even though
- it could extract URLs with other protocols too.
- (Probably not an issue.)
-- Somehow export metadata (like media title) to the mplayer frontend?
----
-diff --git a/cfg-mplayer.h b/cfg-mplayer.h
-index 5440de9..d8d556a 100644
---- a/cfg-mplayer.h
-+++ b/cfg-mplayer.h
-@@ -517,6 +517,8 @@ const m_option_t common_opts[] = {
-
- OPT_MAKE_FLAGS("hr-mp3-seek", hr_mp3_seek, 0),
-
-+ OPT_STRING("quvi-format", quvi_format, 0),
-+
- { "rawaudio", (void *)&demux_rawaudio_opts, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
- { "rawvideo", (void *)&demux_rawvideo_opts, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
-
-diff --git a/configure b/configure
-index 5c1e288..18bc404 100755
---- a/configure
-+++ b/configure
-@@ -335,6 +335,7 @@ Optional features:
- --enable-winsock2_h enable winsock2_h [autodetect]
- --enable-smb enable Samba (SMB) input [autodetect]
- --enable-live enable LIVE555 Streaming Media [disable]
-+ --enable-libquvi enable libquvi [autodetect]
- --enable-nemesi enable Nemesi Streaming Media [autodetect]
- --disable-vcd disable VCD support [autodetect]
- --disable-bluray disable Blu-ray support [autodetect]
-@@ -650,6 +651,7 @@ _pvr=auto
- networking=yes
- _winsock2_h=auto
- _smb=auto
-+_libquvi=auto
- _joystick=no
- _xvid=auto
- _libnut=auto
-@@ -1009,6 +1011,8 @@ for ac_option do
- --disable-winsock2_h) _winsock2_h=no ;;
- --enable-smb) _smb=yes ;;
- --disable-smb) _smb=no ;;
-+ --enable-libquvi) _libquvi=yes ;;
-+ --disable-libquvi) _libquvi=no ;;
- --enable-joystick) _joystick=yes ;;
- --disable-joystick) _joystick=no ;;
- --enable-xvid) _xvid=yes ;;
-@@ -3610,6 +3614,19 @@ else
- fi
- echores "$_smb"
-
-+echocheck "libquvi support"
-+if test "$_libquvi" = auto ; then
-+ _libquvi=no
-+ if pkg_config_add libquvi ; then
-+ _libquvi=yes
-+ fi
-+fi
-+if test "$_libquvi" = yes; then
-+ def_libquvi="#define CONFIG_LIBQUVI 1"
-+else
-+ def_libquvi="#undef CONFIG_LIBQUVI"
-+fi
-+echores "$_libquvi"
-
- #########
- # VIDEO #
-@@ -6325,6 +6342,7 @@ LIBNEMESI = $_nemesi
- LIBNUT = $_libnut
- LIBPOSTPROC = $libpostproc
- LIBSMBCLIENT = $_smb
-+LIBQUVI = $_libquvi
- LIBTHEORA = $_theora
- LIRC = $_lirc
- LIVE555 = $_live
-@@ -6668,6 +6686,7 @@ $def_live
- $def_nemesi
- $def_networking
- $def_smb
-+$def_libquvi
- $def_socklen_t
- $def_vstream
-
-diff --git a/options.h b/options.h
-index 48f5c53..89324bd 100644
---- a/options.h
-+++ b/options.h
-@@ -78,6 +78,7 @@ typedef struct MPOpts {
- char **audio_lang;
- char **sub_lang;
- int hr_mp3_seek;
-+ char *quvi_format;
-
- char *audio_stream;
- int audio_stream_cache;
-diff --git a/stream/open.c b/stream/open.c
-index ce0a415..91e9ae2 100644
---- a/stream/open.c
-+++ b/stream/open.c
-@@ -26,12 +26,14 @@
-
- #include "config.h"
- #include "mp_msg.h"
-+#include "talloc.h"
-
- #ifdef __FreeBSD__
- #include <sys/cdrio.h>
- #endif
-
- #include "m_option.h"
-+#include "options.h"
- #include "stream.h"
- #include "libmpdemux/demuxer.h"
-
-@@ -42,6 +44,62 @@ char* cdrom_device=NULL;
- char* dvd_device=NULL;
- int dvd_title=0;
-
-+#ifdef CONFIG_LIBQUVI
-+
-+#include <quvi/quvi.h>
-+
-+static const char *resolve_quvi(const char *url, struct MPOpts *opts)
-+{
-+ char *media_title, *media_url;
-+ quvi_media_t m;
-+ QUVIcode rc;
-+ quvi_t q;
-+
-+ rc = quvi_init(&q);
-+ if (rc != QUVI_OK)
-+ return NULL;
-+
-+ // Don't try to use quvi on an URL that's not directly supported, since
-+ // quvi will do a network access anyway in order to check for HTTP
-+ // redirections etc.
-+ // The documentation says this will fail on "shortened" URLs.
-+ if (quvi_supported(q, (char *)url) != QUVI_OK) {
-+ quvi_close(&q);
-+ return NULL;
-+ }
-+
-+ mp_msg(MSGT_OPEN, MSGL_INFO, "[quvi] Checking URL...\n");
-+
-+ // Can use quvi_query_formats() to get a list of formats like this:
-+ // "fmt05_240p|fmt18_360p|fmt34_360p|fmt35_480p|fmt43_360p|fmt44_480p"
-+ // (This example is youtube specific.)
-+ // That call requires an extra net access. quvi_next_media_url() doesn't
-+ // seem to do anything useful. So we can't really do anything useful
-+ // except pass through the user's format setting.
-+ quvi_setopt(q, QUVIOPT_FORMAT, opts->quvi_format
-+ ? opts->quvi_format : "best");
-+
-+ rc = quvi_parse(q, (char *)url, &m);
-+ if (rc != QUVI_OK) {
-+ mp_msg(MSGT_OPEN, MSGL_ERR, "[quvi] %s\n", quvi_strerror(q, rc));
-+ quvi_close(&q);
-+ return NULL;
-+ }
-+
-+ quvi_getprop(m, QUVIPROP_PAGETITLE, &media_title);
-+ quvi_getprop(m, QUVIPROP_MEDIAURL, &media_url);
-+
-+ mp_msg(MSGT_OPEN, MSGL_INFO, "[quvi] Site media title: '%s'\n",
-+ media_title);
-+ media_url = talloc_strdup(NULL, media_url);
-+
-+ quvi_parse_close(&m);
-+ quvi_close(&q);
-+
-+ return media_url;
-+}
-+#endif
-+
- // Open a new stream (stdin/file/vcd/url)
-
- stream_t* open_stream(const char *filename, struct MPOpts *options,
-@@ -59,7 +117,16 @@ if(!filename) {
- return NULL;
- }
-
--//============ Open STDIN or plain FILE ============
-+ const char *resolved = NULL;
-+
-+#ifdef CONFIG_LIBQUVI
-+ resolved = resolve_quvi(filename, options);
-+#endif
-+
-+ if (resolved)
-+ filename = resolved;
-
-- return open_stream_full(filename,STREAM_READ,options,file_format);
-+ stream_t *res = open_stream_full(filename,STREAM_READ,options,file_format);
-+ talloc_free((void *)resolved);
-+ return res;
- }
---
-cgit v0.9
-From 86f7fe1ba61a465fb25bc30deaaa4fcf12600a43 Mon Sep 17 00:00:00 2001
-From: wm4 <wm4@nowhere>
-Date: Sun, 02 Sep 2012 18:45:11 +0000
-Subject: configure: add version check for libquvi
-
-I do not know what exactly is the minimum working version. Require the
-latest version currently released, which is about half a year old.
----
-diff --git a/configure b/configure
-index 2cf7aff..6a3298f 100755
---- a/configure
-+++ b/configure
-@@ -3445,7 +3445,7 @@ echores "$_smb"
- echocheck "libquvi support"
- if test "$_libquvi" = auto ; then
- _libquvi=no
-- if pkg_config_add libquvi ; then
-+ if pkg_config_add 'libquvi >= 0.4.1' ; then
- _libquvi=yes
- fi
- fi
---
-cgit v0.9
-diff --git a/cfg-mplayer.h b/cfg-mplayer.h
-index b889661..8b07091 100644
---- a/cfg-mplayer.h
-+++ b/cfg-mplayer.h
-@@ -485,7 +485,7 @@ const m_option_t common_opts[] = {
-
- OPT_MAKE_FLAGS("hr-mp3-seek", hr_mp3_seek, 0),
-
-- OPT_STRING("quvi-format", quvi_format, 0),
-+ OPT_STRING("quvi-format", quvi_format, 0, OPTDEF_STR("best")),
-
- { "rawaudio", (void *)&demux_rawaudio_opts, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
- { "rawvideo", (void *)&demux_rawvideo_opts, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
-diff --git a/stream/open.c b/stream/open.c
-index 91e9ae2..16d0dc3 100644
---- a/stream/open.c
-+++ b/stream/open.c
-@@ -76,8 +76,7 @@ static const char *resolve_quvi(const char *url, struct MPOpts *opts)
- // That call requires an extra net access. quvi_next_media_url() doesn't
- // seem to do anything useful. So we can't really do anything useful
- // except pass through the user's format setting.
-- quvi_setopt(q, QUVIOPT_FORMAT, opts->quvi_format
-- ? opts->quvi_format : "best");
-+ quvi_setopt(q, QUVIOPT_FORMAT, opts->quvi_format);
-
- rc = quvi_parse(q, (char *)url, &m);
- if (rc != QUVI_OK) {
---
-cgit v0.9