Subject: Re: 48 kHz does not work on snapper(4) on NetBSD 3.1
To: None <port-macppc@netbsd.org>
From: Marco Trillo <marcotrillo@gmail.com>
List: port-macppc
Date: 12/07/2006 18:52:56
------=_Part_62469_8419869.1165513976073
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi,

On 12/7/06, Marco Trillo <marcotrillo@gmail.com> wrote:
> Hi,
>
> When playing an audio file at 48000 samples/sec on snapper(4) on
> NetBSD 3.1, it plays at a speed of 44100 samples/sec (so it plays at
> 91% speed and with pitch distortion).

Well, I finally got it working!

The problem was in snapper_set_rate().
The Mac OS X I2S controller uses by default a MCLK-to-samplerate ratio
of 64 which gets a more accurate result.
However, snapper.c used a ratio of 256 which produced the same result
for both 44100 and 48000.

If you add a printf() to the current snapper.c to read the variables
'mdiv' and 'sdiv', you will see that it will produce the same results
for both 44100 and 48000.

The following patch for NetBSD 3.1 solves the problem.
It works for me! Now I get 48 kHz audio! :-)

I will try to make an updated patch against NetBSD-current (and by the
way add support for 32 kHz too) and send it through send-pr(1).


-- 
     Thanks,
     -Marco

------=_Part_62469_8419869.1165513976073
Content-Type: application/octet-stream; name="snapper.c.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="snapper.c.diff"

LS0tIHNuYXBwZXIuYy5vcmlnCTIwMDYtMTItMDcgMTg6Mzc6NTkuMDAwMDAwMDAwICswMTAwCisr
KyBzbmFwcGVyLmMJMjAwNi0xMi0wNyAxODozNjo1OC4wMDAwMDAwMDAgKzAxMDAKQEAgLTg2NSw1
MCArODY1LDQyIEBACiAjZGVmaW5lICBTRVJJQUxfREFWCTB4MDAwNDAwMDAKICNkZWZpbmUgIFNF
UklBTF9TSUxJQ09OCTB4MDAwNTAwMDAKIAotLy8gcmF0ZSA9IGZzID0gTFJDTEsKLS8vIFNDTEsg
PSA2NCpMUkNMSyAoSTJTKQotLy8gTUNMSyA9IDI1NmZzICh0eXAuIC0tIGNoYW5nZWFibGUpCi0K
LS8vIE1DTEsgPSBjbGtzcmMgLyBtZGl2Ci0vLyBTQ0xLID0gTUNMSyAvIHNkaXYKLS8vIHJhdGUg
PSBTQ0xLIC8gNjQgICAgKCA9IExSQ0xLID0gZnMpCisjZGVmaW5lIENMT0NLXzQ5TUhaCTQ5MTUy
MDAwCisjZGVmaW5lIENMT0NLXzQ1TUhaCTQ1MTU4NDAwCisjZGVmaW5lIENMT0NLXzE4TUhaCTE4
NDMyMDAwCiAKIGludAogc25hcHBlcl9zZXRfcmF0ZShzdHJ1Y3Qgc25hcHBlcl9zb2Z0YyAqc2Ms
IHVfaW50IHJhdGUpCiB7CiAJdV9pbnQgcmVnOwotCWludCBNQ0xLOwogCWludCBjbGtzcmMsIG1k
aXYsIHNkaXY7CiAJaW50IG1jbGtfZnM7Ci0KKwl1X2ludCBtY2xrX3JhdGU7CisJCiAJcmVnID0g
MDsKLQlzd2l0Y2ggKHJhdGUpIHsKLQljYXNlIDgwMDA6Ci0JCWNsa3NyYyA9IDE4NDMyMDAwOwkJ
LyogMThNSHogKi8KLQkJcmVnID0gQ0xLU1JDXzE4TUh6OwotCQltY2xrX2ZzID0gMjU2OwotCQli
cmVhazsKKwkvKgorCSAqIFVzZSBhIDY0IHJhdGlvIGZvciBiZXN0IGNoYXJhY3RlcmlzdGljcwor
CSAqLworCW1jbGtfZnMgPSA2NDsKKwltY2xrX3JhdGUgPSByYXRlICogbWNsa19mczsKIAotCWNh
c2UgNDQxMDA6Ci0JCWNsa3NyYyA9IDQ1MTU4NDAwOwkJLyogNDVNSHogKi8KKwlpZiAoKENMT0NL
XzE4TUhaICUgbWNsa19yYXRlKSA9PSAwKSB7CisJCWNsa3NyYyA9IENMT0NLXzE4TUhaOworCQly
ZWcgPSBDTEtTUkNfMThNSHo7CisJfSBlbHNlIGlmICgoQ0xPQ0tfNDVNSFogJSBtY2xrX3JhdGUp
ID09IDApIHsKKwkJY2xrc3JjID0gQ0xPQ0tfNDVNSFo7CiAJCXJlZyA9IENMS1NSQ180NU1IejsK
LQkJbWNsa19mcyA9IDI1NjsKLQkJYnJlYWs7Ci0KLQljYXNlIDQ4MDAwOgotCQljbGtzcmMgPSA0
OTE1MjAwMDsJCS8qIDQ5TUh6ICovCisJfSBlbHNlIGlmICgoQ0xPQ0tfNDlNSFogJSBtY2xrX3Jh
dGUpID09IDApIHsKKwkJY2xrc3JjID0gQ0xPQ0tfNDlNSFo7CiAJCXJlZyA9IENMS1NSQ180OU1I
ejsKLQkJbWNsa19mcyA9IDI1NjsKLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgorCX0gZWxzZSB7CiAJ
CXJldHVybiBFSU5WQUw7CiAJfQogCi0JTUNMSyA9IHJhdGUgKiBtY2xrX2ZzOwotCW1kaXYgPSBj
bGtzcmMgLyBNQ0xLOwkJCS8vIDQKLQlzZGl2ID0gbWNsa19mcyAvIDY0OwkJCS8vIDQKLQorCS8q
IGdldCB0aGUgTUNMSyBkaXZpc29yICovCisJbWRpdiA9IGNsa3NyYyAvIG1jbGtfcmF0ZTsKKwlz
ZGl2ID0gMTsgLyogU0NMSyBkaXZpc29yIGlzIHJhdGlvLzY0ID09IDY0LzY0ID09IDEgKi8KKwkK
IAlzd2l0Y2ggKG1kaXYpIHsKIAljYXNlIDE6CiAJCXJlZyB8PSBNQ0xLX0RJVjE7CkBAIC05MzUs
OSArOTI3LDkgQEAKIAkJcmVnIHw9ICgoc2RpdiAvIDIgLSAxKSA8PCAyMCkgJiAweDAwZjAwMDAw
OwogCQlicmVhazsKIAl9Ci0KKwkKIAlyZWcgfD0gU0NMS19NQVNURVI7CS8qIFhYWCBtYXN0ZXIg
bW9kZSAqLwotCisJCiAJcmVnIHw9IFNFUklBTF82NHg7CiAKIAkvKiBzdGVyZW8gaW5wdXQgYW5k
IG91dHB1dCAqLwo=
------=_Part_62469_8419869.1165513976073--