From: Philip Prindeville <philipp_subx@redfish-solutions.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: Andrew Gaydenko <a@gaydenko.com>, alsa-devel@lists.sourceforge.net
Subject: Re: [ALSA - driver 0001450]: SPDIF out is limited with 48KHz
Date: Fri, 14 Oct 2005 21:28:50 -0600 [thread overview]
Message-ID: <43507772.3080402@redfish-solutions.com> (raw)
In-Reply-To: <s5hmzlfhxwo.wl%tiwai@suse.de>
Takashi Iwai wrote:
>At Tue, 11 Oct 2005 21:52:18 +0400,
>Andrew Gaydenko wrote:
>
>
>>Takashi,
>>
>>Unfortunately, routing problem still exists for (my host)-(bugtrack.alsa-project.org)
>>path. Is it possible to use the mailing list or my direct email (a@gaydenko.com) to
>>send the patch?
>>
>>
>
>BTS host seems instable for the time being.
>
>Anyway, the patch is below, and I already committed it to CVS tree now
>:)
>
>
>Takashi
>
>Index: alsa-kernel/pci/ice1712/ice1724.c
>===================================================================
>RCS file: /home/iwai/cvs/alsa/alsa-kernel/pci/ice1712/ice1724.c,v
>retrieving revision 1.67
>diff -u -r1.67 ice1724.c
>--- alsa-kernel/pci/ice1712/ice1724.c 12 Sep 2005 10:27:50 -0000 1.67
>+++ alsa-kernel/pci/ice1712/ice1724.c 11 Oct 2005 15:18:42 -0000
>@@ -675,9 +675,12 @@
> SNDRV_PCM_INFO_MMAP_VALID |
> SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_SYNC_START),
> .formats = SNDRV_PCM_FMTBIT_S32_LE,
>- .rates = SNDRV_PCM_RATE_32000|SNDRV_PCM_RATE_44100|SNDRV_PCM_RATE_48000,
>+ .rates = (SNDRV_PCM_RATE_32000|SNDRV_PCM_RATE_44100|
>+ SNDRV_PCM_RATE_48000|SNDRV_PCM_RATE_88200|
>+ SNDRV_PCM_RATE_96000|SNDRV_PCM_RATE_176400|
>+ SNDRV_PCM_RATE_192000),
> .rate_min = 32000,
>- .rate_max = 48000,
>+ .rate_max = 192000,
> .channels_min = 2,
> .channels_max = 2,
> .buffer_bytes_max = (1UL << 18), /* 16bits dword */
>@@ -905,6 +908,10 @@
> case 44100: break;
> case 48000: nval |= 2 << 12; break;
> case 32000: nval |= 3 << 12; break;
>+ case 88200: nval |= 4 << 12; break;
>+ case 96000: nval |= 5 << 12; break;
>+ case 192000: nval |= 6 << 12; break;
>+ case 176400: nval |= 7 << 12; break;
> }
> if (val != nval)
> update_spdif_bits(ice, nval);
>@@ -1292,22 +1299,32 @@
>
> static unsigned int encode_spdif_bits(snd_aes_iec958_t *diga)
> {
>- unsigned int val;
>+ unsigned int val, rbits;
>
> val = diga->status[0] & 0x03; /* professional, non-audio */
> if (val & 0x01) {
> /* professional */
> if ((diga->status[0] & IEC958_AES0_PRO_EMPHASIS) == IEC958_AES0_PRO_EMPHASIS_5015)
> val |= 1U << 3;
>- switch (diga->status[0] & IEC958_AES0_PRO_FS) {
>- case IEC958_AES0_PRO_FS_44100:
>- break;
>- case IEC958_AES0_PRO_FS_32000:
>- val |= 3U << 12;
>- break;
>- default:
>- val |= 2U << 12;
>- break;
>+ rbits = (diga->status[4] >> 3) & 0x0f;
>+ if (rbits) {
>+ switch (rbits) {
>+ case 2: val |= 5 << 12; break; /* 96k */
>+ case 3: val |= 6 << 12; break; /* 192k */
>+ case 10: val |= 4 << 12; break; /* 88.2k */
>+ case 11: val |= 7 << 12; break; /* 176.4k */
>+ }
>+ } else {
>+ switch (diga->status[0] & IEC958_AES0_PRO_FS) {
>+ case IEC958_AES0_PRO_FS_44100:
>+ break;
>+ case IEC958_AES0_PRO_FS_32000:
>+ val |= 3U << 12;
>+ break;
>+ default:
>+ val |= 2U << 12;
>+ break;
>+ }
> }
> } else {
> /* consumer */
>
>
>
I don't suppose the patch is anyway applicable to the DRS capable
VIA southbridges, is it?
Also... on a broader note... SPDIF is an asynchronous transport, right?
The transmission rate is unrelated to the actual playback rate, since you
can carry compressed PCM, DTS, DolbyD, etc. all over the same
transport...
If that's the case, why not send 44.1kHz data as uncompressed "compressed
PCM" (i.e. flag it as being compressed, but then don't really compress it,
or compress it losslessly) over SPDIF if it can only do 48kHz (on the
sender's side)?
-Philip
-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
next prev parent reply other threads:[~2005-10-15 3:28 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-11 15:22 [ALSA - driver 0001450]: SPDIF out is limited with 48KHz bugtrack
2005-10-11 17:52 ` Andrew Gaydenko
2005-10-12 9:44 ` Takashi Iwai
2005-10-15 3:28 ` Philip Prindeville [this message]
2005-10-17 10:04 ` Takashi Iwai
-- strict thread matches above, loose matches on Subject: below --
2005-10-12 10:39 bugtrack
2005-10-11 19:24 bugtrack
2005-10-06 14:40 bugtrack
2005-10-06 14:36 bugtrack
2005-10-05 17:07 bugtrack
2005-09-24 13:33 bugtrack
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43507772.3080402@redfish-solutions.com \
--to=philipp_subx@redfish-solutions.com \
--cc=a@gaydenko.com \
--cc=alsa-devel@lists.sourceforge.net \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.