summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml29
-rw-r--r--README.md (renamed from README.rst)40
-rwxr-xr-xtravis-deps92
3 files changed, 142 insertions, 19 deletions
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000..cd5a9d4262
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,29 @@
+language: c
+
+env:
+ - LIBAV=libav-stable
+ - LIBAV=libav-git
+ - LIBAV=ffmpeg-stable
+ - LIBAV=ffmpeg-git
+compiler:
+ - clang
+branches:
+ only:
+ - master
+
+before_install: ./travis-deps libass-stable $LIBAV
+script: ./configure && make
+
+notifications:
+ email:
+ recipients:
+ - mpv-team@googlegroups.com
+ email:
+ on_success: change
+ n_failure: always
+ irc:
+ channels:
+ - "irc.freenode.org#mpv-player-dev"
+ email:
+ on_success: change
+ n_failure: always
diff --git a/README.rst b/README.md
index d8a962282b..ba3fab5360 100644
--- a/README.rst
+++ b/README.md
@@ -1,24 +1,26 @@
mpv
-###
+===
+
+[![Build Status](https://api.travis-ci.org/mpv-player/mpv.png)](https://travis-ci.org/mpv-player/mpv)
Overview
-========
+--------
**mpv** is a movie player based on MPlayer and mplayer2. It supports a wide
variety of video file formats, audio and video codecs, and subtitle types.
If you are wondering what's different from mplayer2 and MPlayer you can read
-more about the changes_.
+more about the [changes][changes].
Compilation
-===========
+-----------
Compiling with full features requires development files for several
external libraries. Below is a list of some important requirements. For
-more information see the output of ``./configure --help`` for a list of options,
+more information see the output of `./configure --help` for a list of options,
or look at the list of enabled and disabled features printed after running
-``./configure``. If you think you have support for some feature installed
-but configure fails to detect it, the file ``config.log`` may contain
+`./configure`. If you think you have support for some feature installed
+but configure fails to detect it, the file `config.log` may contain
information about the reasons for the failure.
Essential dependencies (incomplete list):
@@ -37,33 +39,33 @@ Essential dependencies (incomplete list):
Most of the above libraries are available in suitable versions on normal
Linux distributions. However FFmpeg is an exception (distro versions may be
too old to work at all or work well). For that reason you may want to use
-the separately available build wrapper (mpv-build_) that first compiles FFmpeg
+the separately available build wrapper ([mpv-build][mpv-build]) that first compiles FFmpeg
libraries and libass, and then compiles the player statically linked against
those.
-If you are running Mac OSX and using homebrew we provide homebrew-mpv_, an up
+If you are running Mac OSX and using homebrew we provide [homebrew-mpv][homebrew-mpv], an up
to date formula that compiles mpv with sensible dependencies and defaults for
OSX.
Bug reports
-===========
+-----------
-Please use the `issues tracker`_ provided by GitHub to send us bug reports or
-feature requests.
+Please use the [issue tracker][issue tracker] provided by GitHub to send us bug
+reports or feature requests.
Contributing
-============
+------------
For small changes you can just send us pull requests through GitHub. For bigger
changes come and talk to us on IRC before you start working on them. It will
make code review easier for both parties later on.
Contacts
-========
+--------
-You can find us on IRC in ``#mpv-player`` on ``irc.freenode.net``
+You can find us on IRC in `#mpv-player` on `irc.freenode.net`
-.. _changes: https://github.com/mpv-player/mpv/blob/master/DOCS/man/en/changes.rst
-.. _mpv-build: https://github.com/mpv-player/mpv-build
-.. _homebrew-mpv: https://github.com/mpv-player/homebrew-mpv
-.. _issues tracker: https://github.com/mpv-player/mpv/issues
+[changes]: https://github.com/mpv-player/mpv/blob/master/DOCS/man/en/changes.rst
+[mpv-build]: https://github.com/mpv-player/mpv-build
+[homebrew-mpv]: https://github.com/mpv-player/homebrew-mpv
+[issue tracker]: https://github.com/mpv-player/mpv/issues
diff --git a/travis-deps b/travis-deps
new file mode 100755
index 0000000000..029c0f3992
--- /dev/null
+++ b/travis-deps
@@ -0,0 +1,92 @@
+#!/usr/bin/ruby
+
+class TravisDepsBuilder
+ def self.make(name)
+ info = build_map[name]
+ raise "unrecognized dependency identifier '#{name}'" unless info
+ instance = new(name, info[:url], info[:action])
+ instance.deps
+ instance.build
+ end
+
+ attr_reader :name, :url, :action
+
+ def initialize(name, url=nil, action=nil)
+ @name, @url, @action = name, url, action
+ end
+
+ def build
+ send(@action)
+ end
+
+ def deps; end
+
+ private
+ def git
+ sh "git clone --depth=1 #{url} #{name}"
+ compile name
+ end
+
+ def stable
+ filename = File.basename(url)
+ sh "wget #{url}"
+ sh "tar -xzvf #{filename}"
+ dirname = File.basename(url, ".tar.gz" )
+ compile dirname
+ end
+
+ def compile(dirname)
+ sh "cd #{dirname} && ./configure && make && sudo make install"
+ sh "cd $TRAVIS_BUILD_DIR"
+ end
+
+ def sh(command)
+ `#{command}`
+ end
+end
+
+class Libav < TravisDepsBuilder
+ def self.build_map
+ {
+ "libav-stable" => {
+ :action => :stable,
+ :url => 'http://libav.org/releases/libav-9.6.tar.gz'
+ },
+ "libav-git" => {
+ :action => :git,
+ :url => "git://git.libav.org/libav.git"
+ },
+ "ffmpeg-stable" => {
+ :action => :stable,
+ :url => 'http://www.ffmpeg.org/releases/ffmpeg-1.2.1.tar.gz'
+ },
+ "ffmpeg-git" => {
+ :action => :git,
+ :url => "git://github.com/FFmpeg/FFmpeg.git"
+ }
+ }
+ end
+end
+
+class Libass < TravisDepsBuilder
+ def self.build_map
+ {
+ "libass-stable" => {
+ :action => :stable,
+ :url => 'http://libass.googlecode.com/files/libass-0.10.1.tar.gz'
+ }
+ }
+ end
+end
+
+class Dependencies < TravisDepsBuilder
+ def deps
+ sh "sudo apt-get update -y"
+ sh "sudo apt-get install pkg-config fontconfig libfribidi-dev yasm -y"
+ end
+end
+
+Dependencies.new(:deps).deps
+
+Libass.make(ARGV[0])
+Libav.make(ARGV[1])