Received: by mail.netbsd.org (Postfix, from userid 605) id 82B5F84DEF; Thu, 9 Apr 2020 20:53:41 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 0870D84DD9 for ; Thu, 9 Apr 2020 20:53:41 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Received: from mail.netbsd.org ([127.0.0.1]) by localhost (mail.netbsd.org [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id T4mYdEZoPn2y for ; Thu, 9 Apr 2020 20:53:40 +0000 (UTC) Received: from cvs.NetBSD.org (ivanova.NetBSD.org [IPv6:2001:470:a085:999:28c:faff:fe03:5984]) by mail.netbsd.org (Postfix) with ESMTP id 3E48784D67 for ; Thu, 9 Apr 2020 20:53:40 +0000 (UTC) Received: by cvs.NetBSD.org (Postfix, from userid 500) id 2B56DFB27; Thu, 9 Apr 2020 20:53:40 +0000 (UTC) Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_158646562022260" MIME-Version: 1.0 Date: Thu, 9 Apr 2020 20:53:40 +0000 From: "Nia Alarie" Subject: CVS commit: pkgsrc/multimedia/mpv To: pkgsrc-changes@NetBSD.org Reply-To: nia@netbsd.org X-Mailer: log_accum Message-Id: <20200409205340.2B56DFB27@cvs.NetBSD.org> Sender: pkgsrc-changes-owner@NetBSD.org List-Id: pkgsrc-changes.NetBSD.org Precedence: bulk List-Unsubscribe: This is a multi-part message in MIME format. --_----------=_158646562022260 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Module Name: pkgsrc Committed By: nia Date: Thu Apr 9 20:53:40 UTC 2020 Modified Files: pkgsrc/multimedia/mpv: Makefile distinfo pkgsrc/multimedia/mpv/patches: patch-audio_out_ao__netbsd.c Log Message: mpv: ao_netbsd changes... - Implement get_space properly and use AUDIO_GETBUFINFO more - Simplify implemention of get_delay and set period_size To generate a diff of this commit: cvs rdiff -u -r1.106 -r1.107 pkgsrc/multimedia/mpv/Makefile cvs rdiff -u -r1.64 -r1.65 pkgsrc/multimedia/mpv/distinfo cvs rdiff -u -r1.4 -r1.5 \ pkgsrc/multimedia/mpv/patches/patch-audio_out_ao__netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --_----------=_158646562022260 Content-Disposition: inline Content-Length: 7025 Content-Transfer-Encoding: binary Content-Type: text/x-diff; charset=us-ascii Modified files: Index: pkgsrc/multimedia/mpv/Makefile diff -u pkgsrc/multimedia/mpv/Makefile:1.106 pkgsrc/multimedia/mpv/Makefile:1.107 --- pkgsrc/multimedia/mpv/Makefile:1.106 Wed Apr 8 12:17:02 2020 +++ pkgsrc/multimedia/mpv/Makefile Thu Apr 9 20:53:39 2020 @@ -1,7 +1,7 @@ -# $NetBSD: Makefile,v 1.106 2020/04/08 12:17:02 nia Exp $ +# $NetBSD: Makefile,v 1.107 2020/04/09 20:53:39 nia Exp $ DISTNAME= mpv-0.32.0 -PKGREVISION= 8 +PKGREVISION= 9 CATEGORIES= multimedia MASTER_SITES= ${MASTER_SITE_GITHUB:=mpv-player/} GITHUB_TAG= v${PKGVERSION_NOREV} Index: pkgsrc/multimedia/mpv/distinfo diff -u pkgsrc/multimedia/mpv/distinfo:1.64 pkgsrc/multimedia/mpv/distinfo:1.65 --- pkgsrc/multimedia/mpv/distinfo:1.64 Wed Apr 8 12:17:02 2020 +++ pkgsrc/multimedia/mpv/distinfo Thu Apr 9 20:53:39 2020 @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.64 2020/04/08 12:17:02 nia Exp $ +$NetBSD: distinfo,v 1.65 2020/04/09 20:53:39 nia Exp $ SHA1 (mpv-0.32.0.tar.gz) = 5b69ea34dd5f8d209acd5266415c7bc00ab83341 RMD160 (mpv-0.32.0.tar.gz) = d1e399fce8985a0399fe627248b87d8537cfefd7 @@ -7,7 +7,7 @@ Size (mpv-0.32.0.tar.gz) = 3148730 bytes SHA1 (patch-DOCS_man_ao.rst) = 5940fe1ad4d4328c03b9e6e5265c517762cfe2d0 SHA1 (patch-audio_out_ao.c) = 1527c818d0f50801485ad3b90c5d86b30b2ca6f1 SHA1 (patch-audio_out_ao__alsa.c) = c4661d0d22550d6e4eb2b7a42dd04dbcc58123b0 -SHA1 (patch-audio_out_ao__netbsd.c) = 1a88957a89dd8ebffaeadb14463c16796eb444d3 +SHA1 (patch-audio_out_ao__netbsd.c) = 6e3eee552499d61daee79e4b15a67e403dfafe9e SHA1 (patch-options_options.c) = c75fb27140ad21e0a11c6ded976116c544661f56 SHA1 (patch-player_main.c) = 7d1d62091c327fca698844004ddb9a7871e15fce SHA1 (patch-video_out_drm__common.c) = a545a8aec29f1b3c44d26aacbc59b86d3333a0b9 Index: pkgsrc/multimedia/mpv/patches/patch-audio_out_ao__netbsd.c diff -u pkgsrc/multimedia/mpv/patches/patch-audio_out_ao__netbsd.c:1.4 pkgsrc/multimedia/mpv/patches/patch-audio_out_ao__netbsd.c:1.5 --- pkgsrc/multimedia/mpv/patches/patch-audio_out_ao__netbsd.c:1.4 Wed Apr 8 12:17:02 2020 +++ pkgsrc/multimedia/mpv/patches/patch-audio_out_ao__netbsd.c Thu Apr 9 20:53:39 2020 @@ -1,8 +1,8 @@ -$NetBSD: patch-audio_out_ao__netbsd.c,v 1.4 2020/04/08 12:17:02 nia Exp $ +$NetBSD: patch-audio_out_ao__netbsd.c,v 1.5 2020/04/09 20:53:39 nia Exp $ NetBSD audio support. ---- audio/out/ao_netbsd.c.orig 2020-04-08 12:06:20.470592603 +0000 +--- audio/out/ao_netbsd.c.orig 2020-04-09 20:51:23.971921857 +0000 +++ audio/out/ao_netbsd.c @@ -0,0 +1,276 @@ +/* @@ -46,18 +46,16 @@ NetBSD audio support. +#include "ao.h" +#include "internal.h" + -+#ifndef NETBSD_MAX_DEVS -+#define NETBSD_MAX_DEVS (8) ++#ifndef NETBSD_MAX_CHANNELS ++#define NETBSD_MAX_CHANNELS (12) +#endif + -+#ifndef NETBSD_BUF_SIZE -+#define NETBSD_BUF_SIZE (1024) ++#ifndef NETBSD_MAX_DEVS ++#define NETBSD_MAX_DEVS (8) +#endif + +struct priv { + int fd; -+ uint64_t total_blocks; /* audio blocks output */ -+ uint64_t total_bytes; /* bytes sent to the queue */ +}; + +static int init(struct ao *ao) @@ -79,7 +77,7 @@ NetBSD audio support. + } + + MP_ERR(ao, "Opening device %s\n", device); -+ if ((p->fd = open(device, O_WRONLY)) == -1) { ++ if ((p->fd = open(device, O_WRONLY | O_NONBLOCK)) == -1) { + MP_ERR(ao, "Can't open audio device %s: %s\n", + device, mp_strerror(errno)); + goto fail; @@ -92,7 +90,7 @@ NetBSD audio support. + + info.mode = AUMODE_PLAY; + -+ for (int n = 1; n <= hw_info.play.channels; n++) { ++ for (int n = 1; n <= NETBSD_MAX_CHANNELS; n++) { + struct mp_chmap map; + + mp_chmap_from_channels(&map, n); @@ -127,6 +125,15 @@ NetBSD audio support. + MP_ERR(ao, "AUDIO_SETINFO failed: %s\n", mp_strerror(errno)); + goto fail; + } ++ ++ if (ioctl(p->fd, AUDIO_GETINFO, &info) == -1) { ++ MP_ERR(ao, "AUDIO_GETINFO failed: %s\n", mp_strerror(errno)); ++ goto fail; ++ } ++ ++ ao->period_size = info.blocksize / (pinfo->precision / 8) / pinfo->channels; ++ ao->device_buffer = info.play.buffer_size / (pinfo->precision / 8) / pinfo->channels; ++ + return 0; + +fail: @@ -149,38 +156,40 @@ NetBSD audio support. +{ + struct priv *p = ao->priv; + struct audio_info info; -+ struct audio_offset offset; + -+ if (ioctl(p->fd, AUDIO_GETINFO, &info) == -1) { -+ MP_ERR(ao, "AUDIO_GETINFO failed: %s\n", mp_strerror(errno)); ++ if (ioctl(p->fd, AUDIO_GETBUFINFO, &info) == -1) { ++ MP_ERR(ao, "AUDIO_GETBUFINFO failed: %s\n", mp_strerror(errno)); + return; + } + + (void)ioctl(p->fd, AUDIO_FLUSH, NULL); -+ (void)ioctl(p->fd, AUDIO_GETOOFFS, &offset); /* reset deltablks */ -+ p->total_blocks = p->total_bytes / info.blocksize; +} + +static void drain(struct ao *ao) +{ + struct priv *p = ao->priv; + struct audio_info info; -+ struct audio_offset offset; + -+ if (ioctl(p->fd, AUDIO_GETINFO, &info) == -1) { -+ MP_ERR(ao, "AUDIO_GETINFO failed: %s\n", mp_strerror(errno)); ++ if (ioctl(p->fd, AUDIO_GETBUFINFO, &info) == -1) { ++ MP_ERR(ao, "AUDIO_GETBUFINFO failed: %s\n", mp_strerror(errno)); + return; + } + + (void)ioctl(p->fd, AUDIO_DRAIN, NULL); -+ (void)ioctl(p->fd, AUDIO_FLUSH, NULL); -+ (void)ioctl(p->fd, AUDIO_GETOOFFS, &offset); /* reset deltablks */ -+ p->total_blocks = p->total_bytes / info.blocksize; +} + +static int get_space(struct ao *ao) +{ -+ return NETBSD_BUF_SIZE; ++ struct priv *p = ao->priv; ++ struct audio_info info; ++ unsigned int nblk; ++ ++ if (ioctl(p->fd, AUDIO_GETBUFINFO, &info) == -1) { ++ MP_ERR(ao, "AUDIO_GETBUFINFO failed: %s\n", mp_strerror(errno)); ++ return 0; ++ } ++ nblk = info.hiwat - (info.play.seek / info.blocksize); ++ return nblk * ao->period_size; +} + +static void audio_pause(struct ao *ao) @@ -214,20 +223,12 @@ NetBSD audio support. +{ + struct priv *p = ao->priv; + struct audio_info info; -+ struct audio_offset offset; -+ uint64_t transfer_len; + -+ if (ioctl(p->fd, AUDIO_GETINFO, &info) == -1) { -+ MP_ERR(ao, "AUDIO_GETINFO failed: %s\n", mp_strerror(errno)); -+ return 0; -+ } -+ if (ioctl(p->fd, AUDIO_GETOOFFS, &offset) == -1) { -+ MP_ERR(ao, "AUDIO_GETOOFFS failed: %s\n", mp_strerror(errno)); ++ if (ioctl(p->fd, AUDIO_GETBUFINFO, &info) == -1) { ++ MP_ERR(ao, "AUDIO_GETBUFINFO failed: %s\n", mp_strerror(errno)); + return 0; + } -+ p->total_blocks += offset.deltablks; -+ transfer_len = p->total_bytes - (p->total_blocks * info.blocksize); -+ return transfer_len / (double)ao->bps; ++ return (info.blocksize + info.play.seek) / (double)ao->bps; +} + +static int play(struct ao *ao, void **data, int samples, int flags) @@ -244,7 +245,6 @@ NetBSD audio support. + MP_ERR(ao, "audio write failed: %s\n", mp_strerror(errno)); + return 0; + } -+ p->total_bytes += ret; + return ret / ao->sstride; +} + --_----------=_158646562022260--