From patchwork Wed Jan 16 23:36:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?UTF-8?B?Wm9sdMOhbiBLxZF2w6Fnw7M=?= X-Patchwork-Id: 1026280 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="sUX4f3Sf"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43g3YX2W02z9sBQ for ; Thu, 17 Jan 2019 10:38:24 +1100 (AEDT) Received: from localhost ([127.0.0.1]:59377 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gjulJ-00040Q-Pv for incoming@patchwork.ozlabs.org; Wed, 16 Jan 2019 18:38:21 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57704) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gjukd-000402-Af for qemu-devel@nongnu.org; Wed, 16 Jan 2019 18:37:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gjuka-0002iv-C2 for qemu-devel@nongnu.org; Wed, 16 Jan 2019 18:37:39 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:34406) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gjukS-0002Xt-6I for qemu-devel@nongnu.org; Wed, 16 Jan 2019 18:37:31 -0500 Received: by mail-wm1-x32c.google.com with SMTP id y185so2236900wmd.1 for ; Wed, 16 Jan 2019 15:37:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=lGyIkt3VhCwBwvK3U51kE5o0HzK51JNKX7bG90N+hR0=; b=sUX4f3SfjBF4+4WkDVAD+afY+u+9Kld4T2Vr2ztK7qScHN5MmZeprLXluI9w9VYwbN A0XINmdkJIlUDc4hpY/9EF2jJR5TuLhT6uD/rcIIdoGWpGfVa6z9B8MZ/Gi39XUoqPO5 tkbF1k2ZUuvIvKTn1xemJs0LXFYKNxN/XrgmCWneI/uiueFD1An+4GJveGfYqev3gs60 /F2Lzn4YlEkIX4AljEqn2lwY2r3YXvtyeu1C6YKiV2ZV/BhqxszwGGsLYxKWEJ5bVA7L SaLUWz1/jgsdp41NVSwHbrR7virNzZhV6D9WtyV8C73UNqAMGM8QJHeXMuoS73Hhxq1F UOvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=lGyIkt3VhCwBwvK3U51kE5o0HzK51JNKX7bG90N+hR0=; b=BHFhQ3SVZ38OO0U3RPw9c6FXIP1/jisdf1jBcfp6xrgG1RkmAC7I3M5iOfZPJUx/hv 6oBidCOPqOjYXNZo7Z525kZDkHmEoKonLiTP9CXDvIANsgHjJmSJbpPPB+2doSWmKDsu CilM2GKWiW3zCNtoaFyH3NeOb2y557fe6xGNimGdSqSGhmITXuZ4jftyk1tN+U9fG998 LQSyX1gCAHtWUFvNebwgnPyu5Foptq5fr04BnVfIElGbGfRStwzkFLKMaWjpeZ8fu997 8QwGx1E1pM4E/XXddbyNHdh2Ee1T4dZ+w5ARVp8V2fFO3iZ14zRcIlKUJswl1vt1C1or 7Nqw== X-Gm-Message-State: AJcUukdiRDJwmX06X8EgOzTqUFPCoPKUrxk0WbLRpi5XwBgmLJeErCwk G7gepSeIVpKhI6rw5DnYoFQ4gkQv X-Google-Smtp-Source: ALg8bN4bjysdOXzN1fdOQcXyk+d02mVc9kxZjcBXl5LHx37BnC7vonA378L9nIUISYeXrKwbiaEoiw== X-Received: by 2002:a1c:8851:: with SMTP id k78mr9581228wmd.51.1547681844880; Wed, 16 Jan 2019 15:37:24 -0800 (PST) Received: from nullptr.home.dirty-ice.org (2a01-036c-0113-e4b0-0000-0000-0000-0005.pool6.digikabel.hu. [2a01:36c:113:e4b0::5]) by smtp.gmail.com with ESMTPSA id s66sm30760437wmf.34.2019.01.16.15.37.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Jan 2019 15:37:24 -0800 (PST) From: "=?UTF-8?q?K=C5=91v=C3=A1g=C3=B3=2C=20Zolt=C3=A1n?=" X-Google-Original-From: =?utf-8?b?S8WRdsOhZ8OzLCBab2x0w6Fu?= To: qemu-devel@nongnu.org Date: Thu, 17 Jan 2019 00:36:33 +0100 Message-Id: X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32c Subject: [Qemu-devel] [PATCH v3 00/50] Audio 5.1 patches X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Gerd Hoffmann Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Hi, Here's an updated version of my audio 5.1 patches. Bigger changes from the previous version: * Removed QemuOpts, use qobject_input_visitor. This also means I removed my two OptsVisitor patches as they are no longer needed. I haven't done the input and output option merging, I think they're better this way as we can share a few functions between the input and output, but it has its drawbacks too with its extra nesting, so it's still up for debate. * Trivial qapi fixes * MIN/MAX: Eric Blake's patches[1] should fix the osdep.h problems eventually, so I left that out of my patch series. Additionally, programmingkidx@gmail.com reported some problems with the coreaudio backend, but since I don't have a Mac I can't really test/debug it. Any help is greatly appreciated! Regards, Zoltan [1]: https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg00727.html Kővágó, Zoltán (50): qapi: qapi for audio backends audio: use qapi AudioFormat instead of audfmt_e audio: -audiodev command line option: documentation audio: -audiodev command line option basic implementation alsaaudio: port to -audiodev config coreaudio: port to -audiodev config dsoundaudio: port to -audiodev config noaudio: port to -audiodev config ossaudio: port to -audiodev config paaudio: port to -audiodev config sdlaudio: port to -audiodev config spiceaudio: port to -audiodev config wavaudio: port to -audiodev config audio: -audiodev command line option: cleanup audio: reduce glob_audio_state usage audio: basic support for multi backend audio audio: add audiodev properties to frontends audio: audiodev= parameters no longer optional when -audiodev present paaudio: do not move stream when sink/source name is specified paaudio: properly disconnect streams in fini_* audio: remove audio_MIN, audio_MAX audio: do not run each backend in audio_run paaudio: fix playback glitches audio: remove read and write pcm_ops audio: use size_t where makes sense audio: api for mixeng code free backends alsaaudio: port to the new audio backend api coreaudio: port to the new audio backend api dsoundaudio: port to the new audio backend api noaudio: port to the new audio backend api ossaudio: port to the new audio backend api paaudio: port to the new audio backend api sdlaudio: port to the new audio backend api spiceaudio: port to the new audio backend api wavaudio: port to the new audio backend api audio: remove remains of the old backend api audio: unify input and output mixeng buffer management audio: remove hw->samples, buffer_size_in/out pcm_ops audio: common rate control code for timer based outputs audio: split ctl_* functions into enable_* and volume_* audio: add mixeng option (documentation) audio: make mixeng optional paaudio: get/put_buffer functions audio: support more than two channels in volume setting audio: replace shift in audio_pcm_info with bytes_per_frame audio: basic support for multichannel audio paaudio: channel-map option usb-audio: do not count on avail bytes actually available usb-audio: support more than two channels of audio usbaudio: change playback counters to 64 bit configure | 5 - Makefile.objs | 6 +- qapi/audio.json | 241 +++++ qapi/qapi-schema.json | 1 + audio/audio.h | 76 +- audio/audio_int.h | 141 +-- audio/audio_pt_int.h | 22 - audio/audio_template.h | 112 ++- audio/dsound_template.h | 63 +- audio/mixeng.h | 9 +- audio/rate_template.h | 2 +- include/hw/qdev-properties.h | 3 + include/sysemu/replay.h | 4 +- ui/vnc.h | 2 + audio/alsaaudio.c | 771 +++++---------- audio/audio.c | 1571 +++++++++++++++--------------- audio/audio_legacy.c | 548 +++++++++++ audio/audio_pt_int.c | 174 ---- audio/audio_win_int.c | 18 +- audio/coreaudio.c | 198 ++-- audio/dsoundaudio.c | 449 +++------ audio/noaudio.c | 98 +- audio/ossaudio.c | 608 +++++------- audio/paaudio.c | 894 +++++++---------- audio/sdlaudio.c | 218 ++--- audio/spiceaudio.c | 286 ++---- audio/wavaudio.c | 158 +-- audio/wavcapture.c | 8 +- hw/arm/omap2.c | 2 +- hw/audio/ac97.c | 13 +- hw/audio/adlib.c | 7 +- hw/audio/cs4231a.c | 11 +- hw/audio/es1370.c | 17 +- hw/audio/gus.c | 9 +- hw/audio/hda-codec.c | 35 +- hw/audio/lm4549.c | 6 +- hw/audio/milkymist-ac97.c | 16 +- hw/audio/pcspk.c | 5 +- hw/audio/pl041.c | 1 + hw/audio/sb16.c | 17 +- hw/audio/wm8750.c | 16 +- hw/core/qdev-properties-system.c | 57 ++ hw/display/xlnx_dp.c | 2 +- hw/input/tsc210x.c | 2 +- hw/usb/dev-audio.c | 464 +++++++-- monitor.c | 12 +- replay/replay-audio.c | 16 +- replay/replay.c | 2 +- ui/vnc.c | 41 +- vl.c | 7 +- audio/Makefile.objs | 3 +- hmp-commands.hx | 11 +- qemu-options.hx | 242 ++++- 53 files changed, 3985 insertions(+), 3715 deletions(-) create mode 100644 qapi/audio.json delete mode 100644 audio/audio_pt_int.h create mode 100644 audio/audio_legacy.c delete mode 100644 audio/audio_pt_int.c