diff mbox series

转发: [PATCH RESEND] Fix video playback slowdown when spice client no audio enabled

Message ID SYBP282MB0012C2BA15BB428F4A5506B3C9240@SYBP282MB0012.AUSP282.PROD.OUTLOOK.COM
State New
Headers show
Series 转发: [PATCH RESEND] Fix video playback slowdown when spice client no audio enabled | expand

Commit Message

zhou qi Sept. 11, 2020, 11:53 a.m. UTC
Because I don't received any feedback, so i have decide resend again. with more detail.
@DirtY.iCE.hu, Can you review this patch? or someone else has time ?

Issue: video playback slowdown, using spice client --spice-disable-audio option
How to reproduce:
    1. compile qemu master for x86_64 target with spice enabled.
    2. laucher a windows 7 virtual machine with some like: qemu-system-x86_64 --enable-kvm -M q35,accel=kvm -display none  -spice port=5907,addr=0.0.0.0,disable-ticketing -device intel-hda,id=s0 -device hda-duplex,id=s0-codec0,bus=s0.0,cad=0
    3. connect the virtual machine using official remote-viewer without spice audio channel. which is:
        remote-viewer spice://localhost:5907 --spice-disable-audio
    4. open windows sample video using default media player. video location: C:\Users\Public\Videos\Sample Videos\Wildlife.wmv
        You will see the video playback speed is very slow.

I HAVE TEST QEMU 4.2.1 DOES NOT HAVE THIS ISSUE. And I believe this issue was indroduced by this commit: https://github.com/qemu/qemu/commit/fb35c2cec58985f0b8d2733f1b91927542eeb3fd

best regards

发件人: zhou qi <atmgnd@outlook.com>
发送时间: 2020年9月10日 19:17
收件人: qemu-devel@nongnu.org <qemu-devel@nongnu.org>
主题: [PATCH] Fix video playback slowdown when spice client no audio enabled 
 
From e8c2e283f0954de255a32ea70d577d5e61992399 Mon Sep 17 00:00:00 2001
From: Qi Zhou <atmgnd@outlook.com>
Date: Thu, 10 Sep 2020 19:09:29 +0800
Subject: [PATCH] Fix video playback slowdown when spice client no audio enabled

You will get video playback slowdown on the following cases

1. use official spice client with audio channel disabled, use --spice-disable-audio
   option
2. thirtpart client doesn't implement audio channel

ref: https://github.com/qemu/qemu/commit/fb35c2cec58985f0b8d2733f1b91927542eeb3fd
Signed-off-by: Qi Zhou <atmgnd@outlook.com>
---
 audio/audio.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/audio/audio.c b/audio/audio.c
index ce8c6dec5f..50febe190f 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -1091,7 +1091,11 @@  static size_t audio_pcm_hw_run_out(HWVoiceOut *hw, size_t live)
     while (live) {
         size_t size, decr, proc;
         void *buf = hw->pcm_ops->get_buffer_out(hw, &size);
-        if (!buf || size == 0) {
+
+        if (!buf) {
+            hw->mix_buf->pos = (hw->mix_buf->pos + live) % hw->mix_buf->size;
+            return clipped + live;
+        } else if ( size == 0) {
             break;
         }