From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id D9C7D42A8A for ; Sat, 11 Jun 2022 18:16:53 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0C96368B1F7; Sat, 11 Jun 2022 21:16:45 +0300 (EEST) Received: from iq.passwd.hu (iq.passwd.hu [217.27.212.140]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 536FD68B254 for ; Sat, 11 Jun 2022 21:16:38 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id C5CD2E53E8; Sat, 11 Jun 2022 20:16:38 +0200 (CEST) X-Virus-Scanned: amavisd-new at passwd.hu Received: from iq.passwd.hu ([127.0.0.1]) by localhost (iq.passwd.hu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p2SksEwLb9gA; Sat, 11 Jun 2022 20:16:37 +0200 (CEST) Received: from bluegene.passwd.hu (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id 0C249E716C; Sat, 11 Jun 2022 20:16:37 +0200 (CEST) From: Marton Balint To: ffmpeg-devel@ffmpeg.org Date: Sat, 11 Jun 2022 20:16:03 +0200 Message-Id: <20220611181604.5297-2-cus@passwd.hu> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220611181604.5297-1-cus@passwd.hu> References: <20220611181604.5297-1-cus@passwd.hu> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avdevice/pulse_audio_dec: reduce default fragment size X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Marton Balint Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Reduces default fragment size from the pulse audio default of 2 sec to 50 ms. This also has an effect on the size of the returned frames, which will be around 50 ms as well, making timestamps more accurate. This should fix the regression in ticket #9776. Pulseaudio timestamps for monitor sources are still pretty inaccurate for me, but I don't see how else should we query latencies from the library. Signed-off-by: Marton Balint --- doc/indevs.texi | 4 ++-- libavdevice/pulse_audio_dec.c | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/doc/indevs.texi b/doc/indevs.texi index 9d8020311a..1141da26d1 100644 --- a/doc/indevs.texi +++ b/doc/indevs.texi @@ -1292,8 +1292,8 @@ Specify the channels in use, by default 2 (stereo) is set. Specify the number of bytes per frame, by default it is set to 1024. @item fragment_size -Specify the minimal buffering fragment in PulseAudio, it will affect the -audio latency. By default it is unset. +Specify the size in bytes of the minimal buffering fragment in PulseAudio, it +will affect the audio latency. By default it is set to 50 ms amount of data. @item wallclock Set the initial PTS using the current time. Default is 1. diff --git a/libavdevice/pulse_audio_dec.c b/libavdevice/pulse_audio_dec.c index ed094fd250..c780d607a0 100644 --- a/libavdevice/pulse_audio_dec.c +++ b/libavdevice/pulse_audio_dec.c @@ -162,7 +162,12 @@ static av_cold int pulse_read_header(AVFormatContext *s) return AVERROR(ENOMEM); } - attr.fragsize = pd->fragment_size; + if (pd->fragment_size == -1) { + // 50 ms fragments/latency by default seem good enough + attr.fragsize = av_rescale(pa_frame_size(&ss), pd->sample_rate, 20); + } else { + attr.fragsize = pd->fragment_size; + } if (s->url[0] != '\0' && strcmp(s->url, "default")) device = s->url; -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".