diff options
Diffstat (limited to 'community/mpv')
-rw-r--r-- | community/mpv/PKGBUILD | 15 | ||||
-rw-r--r-- | community/mpv/mpv-0.3.1-always_respect_sector_size.patch | 34 |
2 files changed, 45 insertions, 4 deletions
diff --git a/community/mpv/PKGBUILD b/community/mpv/PKGBUILD index 39e1bd0c1..8f1703791 100644 --- a/community/mpv/PKGBUILD +++ b/community/mpv/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 103267 2014-01-01 22:33:16Z bpiotrowski $ +# $Id: PKGBUILD 103275 2014-01-02 08:50:55Z bpiotrowski $ # Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl> # Contributor: Eivind Uggedal <eivind@uggedal.com> pkgname=mpv pkgver=0.3.1 -pkgrel=1 +pkgrel=2 pkgdesc='Video player based on MPlayer/mplayer2' arch=('i686' 'x86_64') license=('GPL') @@ -17,8 +17,15 @@ depends=( makedepends=('mesa' 'python-docutils' 'waf') options=('!emptydirs' '!buildflags') install=mpv.install -source=(https://github.com/mpv-player/$pkgname/archive/v$pkgver.tar.gz) -md5sums=('f7e4091eb9ce058ce35b4bc1b6c4f3a2') +source=(https://github.com/mpv-player/$pkgname/archive/v$pkgver.tar.gz + mpv-0.3.1-always_respect_sector_size.patch) +md5sums=('f7e4091eb9ce058ce35b4bc1b6c4f3a2' + 'afe01937e9bff1f241d37774eda39b7a') + +prepare() { + cd $pkgname-$pkgver + patch -p1 -i ../mpv-0.3.1-always_respect_sector_size.patch +} build() { cd $pkgname-$pkgver diff --git a/community/mpv/mpv-0.3.1-always_respect_sector_size.patch b/community/mpv/mpv-0.3.1-always_respect_sector_size.patch new file mode 100644 index 000000000..82c474081 --- /dev/null +++ b/community/mpv/mpv-0.3.1-always_respect_sector_size.patch @@ -0,0 +1,34 @@ +From b04b48fc10dabb1d1b26ff519f55dcafb320985e Mon Sep 17 00:00:00 2001 +From: wm4 <wm4@nowhere> +Date: Thu, 2 Jan 2014 00:39:14 +0100 +Subject: [PATCH] stream: always respect sector_size, fixes cdda:// + +Streams like CDDA have special requirements in what quantities data can +be read: you can only read a sector at once, not more and not less. The +stream_peek() function didn't respect that and set less (used internal +buffer size of 2048 bytes, instead of CD sector size of 2352 bytes), so +no data was read and EOF was accidentally set, making playback with +cdda:// fail. + +This is a regression since commit 9a723f, but that commit merely exposed +the issue (the redundant seek would clear the EOF flag). +--- + stream/stream.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/stream/stream.c b/stream/stream.c +index 3332e66..b48de57 100644 +--- a/stream/stream.c ++++ b/stream/stream.c +@@ -562,7 +562,7 @@ struct bstr stream_peek(stream_t *s, int len) + while (buf_valid < len) { + int chunk = MPMAX(len - buf_valid, STREAM_BUFFER_SIZE); + if (s->sector_size) +- chunk = STREAM_BUFFER_SIZE; ++ chunk = s->sector_size; + assert(buf_valid + chunk <= TOTAL_BUFFER_SIZE); + int read = stream_read_unbuffered(s, &s->buffer[buf_valid], chunk); + if (read == 0) +-- +1.8.5.1 + |