<html><head></head><body>Hi,<br><br>I wonder what kind of great secret wisdom you expect was behind the decision to drop everything except double, float, S32, S16 and U8. We obviously need float and S16, and nobody dared to remove the other three. I'm pretty sure we could remove U8.<br><br>It's just that everything else is completely useless, including all 12 variants of 24-bits PCM.<br><br><div class="gmail_quote">Le 25 octobre 2019 14:33:08 GMT+03:00, Alexandre Janniaux <ajanni@videolabs.io> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">Hi,<br><br>It seems pretty legitimate to reconsider any decision<br>through the TC if no consensus is found, especially if<br>nobody has any clues about why this decision was made.<br><br>On original J-B's post, it was written that votes and<br>discussion are private. Would the reason for this refusal<br>or acceptance be exposed on the mailing list for<br>documentation purpose?<br><br>The trac is a bit empty when it comes to keyword search or<br>normal search about this issue.<br><br><a href="https://trac.videolan.org/vlc/query?status=assigned&status=closed&status=new&status=reopened&keywords=~24+bit">https://trac.videolan.org/vlc/query?status=assigned&status=closed&status=new&status=reopened&keywords=~24+bit</a><br><br>The mailing list mainly hardly mention 24bit support but no<br>decision of removal.<br><br>As an inexperienced developer on audio it is difficult to<br>catch up on this and understand the reason behind this<br>decision, so I would really appreciate any hints following<br>this one.<br><br>Regards,<br>--<br>Alexandre Janniaux<br>Videolabs<br><br>On Fri, Oct 25, 2019 at 01:02:54PM +0200, Thomas Guillem wrote:<br>><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">On Fri, Oct 25, 2019, at 12:47, Rémi Denis-Courmont wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;">Here by people here in this decade.<br></blockquote> Then, I hereby ask the VLC's community if this old decision should be kept. Maybe I should ask the VLC-TC ?<br><br> VLC will continue to be denigrated by pro users if we don't offer them some options for "high quality audio".<br><br> A lot of applications are offering exclusive 24bit support. By doing a quick research I found MPV and Qobuz.<br><br> Yes I know 24bit 96k is useless, cf. <a href="https://people.xiph.org/~xiphmont/demo/neil-young.html">https://people.xiph.org/~xiphmont/demo/neil-young.html</a><br><br> This is not a reason to refuse this patch set, we should always offer a choice to pro users. Furthermore, this patch set doesn't affect the normal behavior,<br><br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;">Le 25 octobre 2019 13:35:36 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;">On Fri, Oct 25, 2019, at 12:17, Rémi Denis-Courmont wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;">I disagree and this contradicts earlier decisions here.<br></blockquote> Yes that is what you said in the first reply and I asked you:<br><br> Who ? when ? Do you have a trace of this decision ?<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;">Le 25 octobre 2019 10:16:28 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #e9b96e; padding-left: 1ex;">On Thu, Oct 24, 2019, at 18:29, Rémi Denis-Courmont wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ccc; padding-left: 1ex;">So what? Some cards don't support PCM at all, or only some really weird formats. That's why we use the OS-provided HAL.<br></blockquote> In that case, we can also add support for such format.<br><br> Yes, we must use the OS-provided HAL by default. But we can still add an advanced option to enable exclusive mode. I know a lot of audiophile would like to play their 24bit 96khz directly. Even if I know that 16bit 48khz cover fully the hearing range.<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ccc; padding-left: 1ex;">I don't think this belongs in VLC. We already decided to drop 24-bits PCM earlier.<br></blockquote> Who ? when ? Do you have a trace ?<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ccc; padding-left: 1ex;">Le 24 octobre 2019 15:37:12 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ccc; padding-left: 1ex;"> But don't use VLC_CODEC_S24N as this fourcc is not handled by any audio<br> filters. Instead, request VLC_CODEC_S32N to VLC and do the conversion<br> internally.<br><br> This commit is needed by the next commit since some sound cards only support<br> 24bits. modules/audio_output/wasapi.c | 30 +++++++++++++++++++++++++++---<br> 1 file changed, 27 insertions(+), 3 deletions(-)<br><br> diff --git a/modules/audio_output/wasapi.c b/modules/audio_output/wasapi.c<br> index d6105169b8e..daa946f8afc 100644<br> --- a/modules/audio_output/wasapi.c<br> +++ b/modules/audio_output/wasapi.c<br> @@ -106,6 +106,7 @@ typedef struct aout_stream_sys<br> unsigned block_align;<br> UINT64 written; /**< Frames written to the buffer */<br> UINT32 frames; /**< Total buffer size (frames) */<br> + bool s24s32; /**< Output configured as S24N, but input as S32N */<br> } aout_stream_sys_t;<br><br> static void ResetTimer(aout_stream_t *s)<br> @@ -268,7 +269,28 @@ static HRESULT Play(aout_stream_t *s, block_t *block, vlc_tick_t date)<br><br> const size_t copy = frames * sys->block_align;<br><br> - memcpy(dst, block->p_buffer, copy);<br> + if (!sys->s24s32)<br> + {<br> + memcpy(dst, block->p_buffer, copy);<br> + block->p_buffer += copy;<br> + block->i_buffer -= copy;<br> + }<br> + else<br> + {<br> + /* Convert back S32L to S24L. The following is doing the opposite<br> + * of S24LDecode() from codec/araw.c */<br> + BYTE *end = dst + copy;<br> + while (dst < end)<br> + {<br> + dst[0] = block->p_buffer[1];<br> + dst[1] = block->p_buffer[2];<br> + dst[2] = block->p_buffer[3];<br> + dst += 3;<br> + block->p_buffer += 4;<br> + block->i_buffer -= 4;<br> + }<br> +<br> + }<br> hr = IAudioRenderClient_ReleaseBuffer(render, frames, 0);<br> if (FAILED(hr))<br> {<br> @@ -276,8 +298,6 @@ static HRESULT Play(aout_stream_t *s, block_t *block, vlc_tick_t date)<br> break;<br> }<br><br> - block->p_buffer += copy;<br> - block->i_buffer -= copy;<br> block->i_nb_samples -= frames;<br> sys->written += frames;<br> if (block->i_nb_samples == 0)<br> @@ -512,6 +532,7 @@ static int vlc_FromWave(const WAVEFORMATEX *restrict wf,<br> switch (wf->wBitsPerSample)<br> {<br> case 32:<br> + case 24:<br> audio->i_format = VLC_CODEC_S32N;<br> break;<br> case 16:<br> @@ -679,6 +700,9 @@ static HRESULT Start(aout_stream_t *s, audio_sample_format_t *restrict pfmt,<br> sys->format = fmt.i_format;<br> sys->block_align = pwf->nBlockAlign;<br> sys->rate = pwf->nSamplesPerSec;<br> + sys->s24s32 = pwf->wBitsPerSample == 24 && fmt.i_format == VLC_CODEC_S32N;<br> + if (sys->s24s32)<br> + msg_Dbg(s, "audio device configured as s24");<br><br> hr = IAudioClient_Initialize(sys->client, shared_mode, 0, buffer_duration,<br> 0, pwf, sid);<br></blockquote>--<br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.<hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></blockquote></blockquote>--<br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.<hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></blockquote></blockquote>--<br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.<hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></blockquote></blockquote><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"><hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></blockquote><hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a></pre></blockquote></div><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>