From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Martin Guy Newsgroups: gmane.comp.audio.sox.devel Subject: sox spectrogram patches Date: Sat, 26 Dec 2015 02:23:30 +0100 Message-ID: Reply-To: sox-devel@lists.sourceforge.net NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a11441f107e68390527c2ebfe X-Trace: ger.gmane.org 1451093043 19424 80.91.229.3 (26 Dec 2015 01:24:03 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 26 Dec 2015 01:24:03 +0000 (UTC) To: sox-devel@lists.sourceforge.net Original-X-From: sox-devel-bounces@lists.sourceforge.net Sat Dec 26 02:23:55 2015 Return-path: Envelope-to: gcasd-sox-devel@m.gmane.org Received-SPF: pass (sog-mx-4.v43.ch3.sourceforge.com: domain of gmail.com designates 74.125.82.49 as permitted sender) client-ip=74.125.82.49; envelope-from=martinwguy@gmail.com; helo=mail-wm0-f49.google.com; X-Received: by 10.28.7.138 with SMTP id 132mr49572282wmh.100.1451093011575; Fri, 25 Dec 2015 17:23:31 -0800 (PST) X-Spam-Score: -1.6 (-) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (martinwguy[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-Headers-End: 1aCda5-00085P-SE X-BeenThere: sox-devel@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: sox-devel-bounces@lists.sourceforge.net Xref: news.gmane.org gmane.comp.audio.sox.devel:454 Archived-At: Received: from lists.sourceforge.net ([216.34.181.88]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aCdaN-0001HV-0B for gcasd-sox-devel@m.gmane.org; Sat, 26 Dec 2015 02:23:55 +0100 Received: from localhost ([127.0.0.1] helo=sfs-ml-3.v29.ch3.sourceforge.com) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1aCda9-0003av-9n; Sat, 26 Dec 2015 01:23:41 +0000 Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1aCda8-0003aq-2l for sox-devel@lists.sourceforge.net; Sat, 26 Dec 2015 01:23:40 +0000 Received: from mail-wm0-f49.google.com ([74.125.82.49]) by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1aCda5-00085P-SE for sox-devel@lists.sourceforge.net; Sat, 26 Dec 2015 01:23:40 +0000 Received: by mail-wm0-f49.google.com with SMTP id p187so215301446wmp.0 for ; Fri, 25 Dec 2015 17:23:37 -0800 (PST) Received: by 10.27.144.195 with HTTP; Fri, 25 Dec 2015 17:23:30 -0800 (PST) --001a11441f107e68390527c2ebfe Content-Type: text/plain; charset=UTF-8 On 26/12/2015, Eric Wong wrote: > I've started maintaining a branch of things in their absence. Thanks Eric. I have three commits, all regarding "sox spectrogram": - remove arbitrary limit on spectrogram output height (was 1200) - add "spectrogram -n" flag to normalize the image brightness regardless of audio file loudness - add FFTW3 support, which is between 150 and 250 times faster than the slow built-in FFT routine see commentary in the patches for further details. They are the last three commits on https://github.com/martinwguy/sox.git which is a fork of the main sf.net repository and are also attached. They only touch src/spectrogram.c, and are independent o each other (i.e. you can apply any or all of them in any order as they do not conflict with each other). They are also attached as patches. This were all needed to be able to use "sox spectrogram" for the production of log-frequency-axis spectrograms of music in wikidelia.net Cheers M --001a11441f107e68390527c2ebfe Content-Type: text/x-patch; charset=US-ASCII; name="sox-spectrogram-raise-size-limits.patch" Content-Disposition: attachment; filename="sox-spectrogram-raise-size-limits.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file1 c3BlY3Ryb2dyYW06IHJlbW92ZSBhcmJpdHJhcnkgbGltaXQgb24gaGVpZ2h0IG9mIHNwZWN0cm9n cmFtCgpTb3ggaGFkIGFuIGFyYml0cmFyeSBsaW1pdCBvZiA4MTkzIG9uIHRoZSB2ZXJ0aWNhbCBh eGlzIHNpemUKYmFzZWQgb24gTUFYX0ZGVF9TSVpFPTQwOTYgYW5kIGhhZCBmaXhlZC1zaXplIGFy cmF5cyBmb3IgaXRzIGRhdGEuClRoaXMgaXMgYm90aCB3YXN0ZWZ1bCBvZiBtZW1vcnkgZm9yIHNt YWxsZXIgRkZUcyBhbmQgc3RvcHMgdXMgcHJvZHVjaW5nCm1vcmUgZGV0YWlsZWQgb3V0cHV0IGZv ciBubyBvYnZpb3VzIHJlYXNvbi4KClRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgc2l6ZSBsaW1pdCBv biBZLWF4aXMtaGVpZ2h0IGJ5IG1ha2luZyBhcnJheQphbGxvY2F0aW9uIGR5bmFtaWMuIEluIHBy YWN0aWNlLCB5b3UgY2FuJ3QgcmVtb3ZlIHRoZSBsaW1pdCBhcyBnZXRvcHQKaW5zaXN0cyBvbiBt aW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlcyBmb3IgbnVtZXJpYyBhcmd1bWVudHMsIHNvIHdlCmNv cHkgdGhlIHNpbWlsYXJseSBhcmJpdHJhcnkgbGltaXQgb2YgMjAwMDAwIGZyb20gTUFYX1hfU0la RS4KCmRpZmYgLS1naXQgYS9zcmMvc3BlY3Ryb2dyYW0uYyBiL3NyYy9zcGVjdHJvZ3JhbS5jCmlu ZGV4IGFmYjBiMGUuLmIzOGQyMTIgMTAwNjQ0Ci0tLSBhL3NyYy9zcGVjdHJvZ3JhbS5jCisrKyBi L3NyYy9zcGVjdHJvZ3JhbS5jCkBAIC0zNiwxMCArMzYsMTMgQEAKICAgI2luY2x1ZGUgPGlvLmg+ CiAjZW5kaWYKIAotI2RlZmluZSBNQVhfRkZUX1NJWkUgNDA5NgogI2RlZmluZSBpc19wMih4KSAh KHggJiAoeCAtIDEpKQogCisvKiBUaGVzZSBhcmUgYXJiaXRyYXJ5IGFzIHRoZXJlIGlzIG5vIHVw cGVyIGxpbWl0LCBidXQKKyAqIHNveCdzIGdldG9wdCgpIG5lZWRzIGFuIHVwcGVyIGxpbWl0IGZv ciBlYWNoIG9wdGlvbiwgc28uLi4KKyAqLwogI2RlZmluZSBNQVhfWF9TSVpFIDIwMDAwMAorI2Rl ZmluZSBNQVhfWV9TSVpFIDIwMDAwMAogCiB0eXBlZGVmIGVudW0ge1dpbmRvd19IYW5uLCBXaW5k b3dfSGFtbWluZywgV2luZG93X0JhcnRsZXR0LCBXaW5kb3dfUmVjdGFuZ3VsYXIsIFdpbmRvd19L YWlzZXIsIFdpbmRvd19Eb2xwaH0gd2luX3R5cGVfdDsKIHN0YXRpYyBsc3hfZW51bV9pdGVtIGNv bnN0IHdpbmRvd19vcHRpb25zW10gPSB7CkBAIC03MSw4ICs3NCwxMSBAQCB0eXBlZGVmIHN0cnVj dCB7CiAgIGludCAgICAgICAgZGZ0X3NpemUsIHN0ZXBfc2l6ZSwgYmxvY2tfc3RlcHMsIGJsb2Nr X251bSwgcm93cywgY29scywgcmVhZDsKICAgaW50ICAgICAgICB4X3NpemUsIGVuZCwgZW5kX21p biwgbGFzdF9lbmQ7CiAgIHNveF9ib29sICAgdHJ1bmNhdGVkOwotICBkb3VibGUgICAgIGJ1ZltN QVhfRkZUX1NJWkVdLCBkZnRfYnVmW01BWF9GRlRfU0laRV0sIHdpbmRvd1tNQVhfRkZUX1NJWkUr MV07Ci0gIGRvdWJsZSAgICAgYmxvY2tfbm9ybSwgbWF4LCBtYWduaXR1ZGVzWyhNQVhfRkZUX1NJ WkU+PjEpICsgMV07CisgIGRvdWJsZSAgICAgKiBidWY7CQkvKiBbZGZ0X3NpemVdICovCisgIGRv dWJsZSAgICAgKiBkZnRfYnVmOwkJLyogW2RmdF9zaXplXSAqLworICBkb3VibGUgICAgICogd2lu ZG93OwkJLyogW2RmdF9zaXplICsgMV0gKi8KKyAgZG91YmxlICAgICBibG9ja19ub3JtLCBtYXg7 CisgIGRvdWJsZSAgICAgKiBtYWduaXR1ZGVzOwkvKiBbKGRmdF9zaXplIC8gMikgKyAxXSAqLwog ICBmbG9hdCAgICAgICogZEJmczsKIH0gcHJpdl90OwogCkBAIC0xMTQsOSArMTIwLDkgQEAgc3Rh dGljIGludCBnZXRvcHRzKHNveF9lZmZlY3RfdCAqIGVmZnAsIGludCBhcmdjLCBjaGFyICoqYXJn dikKIAogICB3aGlsZSAoKGMgPSBsc3hfZ2V0b3B0KCZvcHRzdGF0ZSkpICE9IC0xKSBzd2l0Y2gg KGMpIHsKICAgICBHRVRPUFRfTlVNRVJJQyhvcHRzdGF0ZSwgJ3gnLCB4X3NpemUwICAgICAgICwg MTAwLCBNQVhfWF9TSVpFKQotICAgIEdFVE9QVF9OVU1FUklDKG9wdHN0YXRlLCAnWCcsIHBpeGVs c19wZXJfc2VjLCAgMSAsIDUwMDApCi0gICAgR0VUT1BUX05VTUVSSUMob3B0c3RhdGUsICd5Jywg eV9zaXplICAgICAgICAsIDY0ICwgMTIwMCkKLSAgICBHRVRPUFRfTlVNRVJJQyhvcHRzdGF0ZSwg J1knLCBZX3NpemUgICAgICAgICwgMTMwLCBNQVhfRkZUX1NJWkUgLyAyICsgMikKKyAgICBHRVRP UFRfTlVNRVJJQyhvcHRzdGF0ZSwgJ1gnLCBwaXhlbHNfcGVyX3NlYywgIDEgLCBNQVhfWF9TSVpF KQorICAgIEdFVE9QVF9OVU1FUklDKG9wdHN0YXRlLCAneScsIHlfc2l6ZSAgICAgICAgLCA2NCAs IE1BWF9ZX1NJWkUpCisgICAgR0VUT1BUX05VTUVSSUMob3B0c3RhdGUsICdZJywgWV9zaXplICAg ICAgICAsIDEzMCwgTUFYX1lfU0laRSkKICAgICBHRVRPUFRfTlVNRVJJQyhvcHRzdGF0ZSwgJ3on LCBkQl9yYW5nZSAgICAgICwgMjAgLCAxODApCiAgICAgR0VUT1BUX05VTUVSSUMob3B0c3RhdGUs ICdaJywgZ2FpbiAgICAgICAgICAsLTEwMCwgMTAwKQogICAgIEdFVE9QVF9OVU1FUklDKG9wdHN0 YXRlLCAncScsIHNwZWN0cnVtX3BvaW50cywgMCAsIHAtPnNwZWN0cnVtX3BvaW50cykKQEAgLTE3 Miw3ICsxNzgsNyBAQCBzdGF0aWMgZG91YmxlIG1ha2Vfd2luZG93KHByaXZfdCAqIHAsIGludCBl bmQpCiAgIGRvdWJsZSBzdW0gPSAwLCAqIHcgPSBlbmQgPCAwPyBwLT53aW5kb3cgOiBwLT53aW5k b3cgKyBlbmQ7CiAgIGludCBpLCBuID0gMSArIHAtPmRmdF9zaXplIC0gYWJzKGVuZCk7CiAKLSAg aWYgKGVuZCkgbWVtc2V0KHAtPndpbmRvdywgMCwgc2l6ZW9mKHAtPndpbmRvdykpOworICBpZiAo ZW5kKSBtZW1zZXQocC0+d2luZG93LCAwLCBzaXplb2YoKihwLT53aW5kb3cpKSAqIHAtPmRmdF9z aXplKTsKICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkgd1tpXSA9IDE7CiAgIHN3aXRjaCAocC0+ d2luX3R5cGUpIHsKICAgICBjYXNlIFdpbmRvd19IYW5uOiBsc3hfYXBwbHlfaGFubih3LCBuKTsg YnJlYWs7CkBAIC0xOTAsMTAgKzE5NiwxMCBAQCBzdGF0aWMgZG91YmxlIG1ha2Vfd2luZG93KHBy aXZfdCAqIHAsIGludCBlbmQpCiAgIHJldHVybiBzdW07CiB9CiAKLXN0YXRpYyBkb3VibGUgKiBy ZGZ0X2luaXQoaW50IG4pCitzdGF0aWMgZG91YmxlICogcmRmdF9pbml0KHNpemVfdCBuKQogewog ICBkb3VibGUgKiBxID0gbHN4X21hbGxvYygyICogKG4gLyAyICsgMSkgKiBuICogc2l6ZW9mKCpx KSksICogcCA9IHE7Ci0gIGludCBpLCBqOworICBzaXplX3QgaSwgajsKICAgZm9yIChqID0gMDsg aiA8PSBuIC8gMjsgKytqKSBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKQogICAgICpwKysgPSBjb3Mo MiAqIE1fUEkgKiBqICogaSAvIG4pLCAqcCsrID0gc2luKDIgKiBNX1BJICogaiAqIGkgLyBuKTsK ICAgcmV0dXJuIHE7CkBAIC0yNjAsMTEgKzI2NiwxOCBAQCBzdGF0aWMgaW50IHN0YXJ0KHNveF9l ZmZlY3RfdCAqIGVmZnApCiAgIGlmIChwLT55X3NpemUpIHsKICAgICBwLT5kZnRfc2l6ZSA9IDIg KiAocC0+eV9zaXplIC0gMSk7CiAgICAgaWYgKCFpc19wMihwLT5kZnRfc2l6ZSkgJiYgIWVmZnAt PmZsb3cpCi0gICAgICBwLT5zaGFyZWQgPSByZGZ0X2luaXQocC0+ZGZ0X3NpemUpOworICAgICAg cC0+c2hhcmVkID0gcmRmdF9pbml0KChzaXplX3QpKHAtPmRmdF9zaXplKSk7CiAgIH0gZWxzZSB7 CiAgICBpbnQgeSA9IG1heCgzMiwgKHAtPllfc2l6ZT8gcC0+WV9zaXplIDogNTUwKSAvIGVmZnAt PmluX3NpZ25hbC5jaGFubmVscyAtIDIpOwogICAgZm9yIChwLT5kZnRfc2l6ZSA9IDEyODsgcC0+ ZGZ0X3NpemUgPD0geTsgcC0+ZGZ0X3NpemUgPDw9IDEpOwogICB9CisKKyAgLyogTm93IHRoYXQg ZGZ0X3NpemUgaXMgc2V0LCBhbGxvY2F0ZSB2YXJpYWJsZS1zaXplZCBlbGVtZW50cyBvZiBwcml2 X3QgKi8KKyAgcC0+YnVmCT0gbHN4X2NhbGxvYyhwLT5kZnRfc2l6ZSwgc2l6ZW9mKCoocC0+YnVm KSkpOworICBwLT5kZnRfYnVmCT0gbHN4X2NhbGxvYyhwLT5kZnRfc2l6ZSwgc2l6ZW9mKCoocC0+ ZGZ0X2J1ZikpKTsKKyAgcC0+d2luZG93CT0gbHN4X2NhbGxvYyhwLT5kZnRfc2l6ZSArIDEsIHNp emVvZigqKHAtPndpbmRvdykpKTsKKyAgcC0+bWFnbml0dWRlcyA9IGxzeF9jYWxsb2MoKHAtPmRm dF9zaXplIC8gMikgKyAxLCBzaXplb2YoKihwLT5tYWduaXR1ZGVzKSkpOworCiAgIGlmIChpc19w MihwLT5kZnRfc2l6ZSkgJiYgIWVmZnAtPmZsb3cpCiAgICAgbHN4X3NhZmVfcmRmdChwLT5kZnRf c2l6ZSwgMSwgcC0+ZGZ0X2J1Zik7CiAgIGxzeF9kZWJ1ZygiZHVyYXRpb249JWcgeF9zaXplPSVp IHBpeGVsc19wZXJfc2VjPSVnIGRmdF9zaXplPSVpIiwgZHVyYXRpb24sIHAtPnhfc2l6ZSwgcGl4 ZWxzX3Blcl9zZWMsIHAtPmRmdF9zaXplKTsKQEAgLTY1MSw2ICs2NjQsMTAgQEAgZXJyb3I6IHBu Z19kZXN0cm95X3dyaXRlX3N0cnVjdCgmcG5nLCAmcG5nX2luZm8pOwogICBmcmVlKHBuZ19yb3dz KTsKICAgZnJlZShwaXhlbHMpOwogICBmcmVlKHAtPmRCZnMpOworICBmcmVlKHAtPmJ1Zik7Cisg IGZyZWUocC0+ZGZ0X2J1Zik7CisgIGZyZWUocC0+d2luZG93KTsKKyAgZnJlZShwLT5tYWduaXR1 ZGVzKTsKICAgcmV0dXJuIFNPWF9TVUNDRVNTOwogfQogCg== --001a11441f107e68390527c2ebfe Content-Type: text/x-patch; charset=US-ASCII; name="sox-spectrogram-add-normalize-flag.patch" Content-Disposition: attachment; filename="sox-spectrogram-add-normalize-flag.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file2 QWRkIHNwZWN0cm9ncmFtIC1uIGZsYWcgdG8gbm9ybWFsaXNlIHRoZSBvdXRwdXQgdG8gbWF4aW11 bSBicmlnaHRuZXNzCgpUaGlzIGNoYW5nZSBhZGRzIGEgIm5vcm1hbGl6ZSIgZmxhZywgLW4sIHRv IHNveCBzcGVjdHJvZ3JhbSB0byBhZGp1c3QKdGhlIHNwZWN0cm9ncmFtIGdhaW4gc3VjaCB0aGF0 IHRoZSBoaWdoZXN0IHZhbHVlcyBnZXQgdGhlIGJyaWdodGVzdApjb2xvdXJzLCBhbGxvd2luZyBv bmUgdG8gZ2V0IHVuaWZvcm0gc3BlY3Ryb2dyYW1zIHJlZ2FyZGxlc3Mgb2YKZGlmZmVyZW50IHZv bHVtZXMgaW4gbXVzaWMgZmlsZXMuCgpkaWZmIC0tZ2l0IGEvc294LjEgYi9zb3guMQppbmRleCAy YzRjYTQ3Li42OTljZWRhIDEwMDY0NAotLS0gYS9zb3guMQorKysgYi9zb3guMQpAQCAtMzIzNSw2 ICszMjM1LDEwIEBAIEEgbmVnYXRpdmUKIC5JIG51bQogZWZmZWN0aXZlbHkgaW5jcmVhc2VzIHRo ZSBgYnJpZ2h0bmVzcycgb2YgdGhlIHNwZWN0cm9ncmFtIGRpc3BsYXksCiBhbmQgdmljZSB2ZXJz YS4KKy5JUCBcZkJcLW5cZlIKK1NldHMgdGhlIHVwcGVyIGxpbWl0IG9mIHRoZSBaIGF4aXMgc28g dGhhdCB0aGUgbG91ZGVzdCBwaXhlbHMKK2FyZSBzaG93biB1c2luZyB0aGUgYnJpZ2h0ZXN0IGNv bG91ciBpbiB0aGUgcGFsZXR0ZSAtIGEga2luZCBvZgorYXV0b21hdGljIFxmQlwtWlxmUiBmbGFn LgogLklQIFxmQlwtcVwgXGZJbnVtXGZSCiBTZXRzIHRoZSBaLWF4aXMgcXVhbnRpc2F0aW9uLCBp LmUuIHRoZSBudW1iZXIgb2YgZGlmZmVyZW50IGNvbG91cnMgKG9yCiBpbnRlbnNpdGllcykgaW4g d2hpY2ggdG8gcmVuZGVyIFotYXhpcwpkaWZmIC0tZ2l0IGEvc3JjL3NwZWN0cm9ncmFtLmMgYi9z cmMvc3BlY3Ryb2dyYW0uYwppbmRleCA4Y2JiM2Y0Li42ODY2ZTdiIDEwMDY0NAotLS0gYS9zcmMv c3BlY3Ryb2dyYW0uYworKysgYi9zcmMvc3BlY3Ryb2dyYW0uYwpAQCAtNTksNyArNTksNyBAQCB0 eXBlZGVmIHN0cnVjdCB7CiAgIGRvdWJsZSAgICAgcGl4ZWxzX3Blcl9zZWMsIHdpbmRvd19hZGp1 c3Q7CiAgIGludCAgICAgICAgeF9zaXplMCwgeV9zaXplLCBZX3NpemUsIGRCX3JhbmdlLCBnYWlu LCBzcGVjdHJ1bV9wb2ludHMsIHBlcm07CiAgIHNveF9ib29sICAgbW9ub2Nocm9tZSwgbGlnaHRf YmFja2dyb3VuZCwgaGlnaF9jb2xvdXIsIHNsYWNrX292ZXJsYXAsIG5vX2F4ZXM7Ci0gIHNveF9i b29sICAgcmF3LCBhbHRfcGFsZXR0ZSwgdHJ1bmNhdGU7CisgIHNveF9ib29sICAgbm9ybWFsaXpl LCByYXcsIGFsdF9wYWxldHRlLCB0cnVuY2F0ZTsKICAgd2luX3R5cGVfdCB3aW5fdHlwZTsKICAg Y2hhciBjb25zdCAqIG91dF9uYW1lLCAqIHRpdGxlLCAqIGNvbW1lbnQ7CiAgIGNoYXIgY29uc3Qg KmR1cmF0aW9uX3N0ciwgKnN0YXJ0X3RpbWVfc3RyOwpAQCAtMTEzLDcgKzExMyw3IEBAIHN0YXRp YyBpbnQgZ2V0b3B0cyhzb3hfZWZmZWN0X3QgKiBlZmZwLCBpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAgIGNoYXIgY29uc3QgKiBuZXh0OwogICBpbnQgYzsKICAgbHN4X2dldG9wdF90IG9wdHN0YXRl OwotICBsc3hfZ2V0b3B0X2luaXQoYXJnYywgYXJndiwgIitTOmQ6eDpYOnk6WTp6Olo6cTpwOlc6 dzpzdDpjOkFhcm1saFRvOiIsIE5VTEwsIGxzeF9nZXRvcHRfZmxhZ19ub25lLCAxLCAmb3B0c3Rh dGUpOworICBsc3hfZ2V0b3B0X2luaXQoYXJnYywgYXJndiwgIitTOmQ6eDpYOnk6WTp6Olo6cTpw Olc6dzpzdDpjOkFhcm1ubGhUbzoiLCBOVUxMLCBsc3hfZ2V0b3B0X2ZsYWdfbm9uZSwgMSwgJm9w dHN0YXRlKTsKIAogICBwLT5kQl9yYW5nZSA9IDEyMCwgcC0+c3BlY3RydW1fcG9pbnRzID0gMjQ5 LCBwLT5wZXJtID0gMTsgLyogTm9uLTAgZGVmYXVsdHMgKi8KICAgcC0+b3V0X25hbWUgPSAic3Bl Y3Ryb2dyYW0ucG5nIiwgcC0+Y29tbWVudCA9ICJDcmVhdGVkIGJ5IFNvWCI7CkBAIC0xMzQsNiAr MTM0LDcgQEAgc3RhdGljIGludCBnZXRvcHRzKHNveF9lZmZlY3RfdCAqIGVmZnAsIGludCBhcmdj LCBjaGFyICoqYXJndikKICAgICBjYXNlICdhJzogcC0+bm9fYXhlcyAgICAgICAgICA9IHNveF90 cnVlOyAgIGJyZWFrOwogICAgIGNhc2UgJ3InOiBwLT5yYXcgICAgICAgICAgICAgID0gc294X3Ry dWU7ICAgYnJlYWs7CiAgICAgY2FzZSAnbSc6IHAtPm1vbm9jaHJvbWUgICAgICAgPSBzb3hfdHJ1 ZTsgICBicmVhazsKKyAgICBjYXNlICduJzogcC0+bm9ybWFsaXplICAgICAgICA9IHNveF90cnVl OyAgIGJyZWFrOwogICAgIGNhc2UgJ2wnOiBwLT5saWdodF9iYWNrZ3JvdW5kID0gc294X3RydWU7 ICAgYnJlYWs7CiAgICAgY2FzZSAnaCc6IHAtPmhpZ2hfY29sb3VyICAgICAgPSBzb3hfdHJ1ZTsg ICBicmVhazsKICAgICBjYXNlICdUJzogcC0+dHJ1bmNhdGUgICAgICAgICA9IHNveF90cnVlOyAg IGJyZWFrOwpAQCAtNTU3LDYgKzU1OCw3IEBAIHN0YXRpYyBpbnQgc3RvcChzb3hfZWZmZWN0X3Qg KiBlZmZwKSAvKiBvbmx5IGNhbGxlZCwgYnkgZW5kKCksIG9uIGZsb3cgMCAqLwogICBpbnQgICAg ICAgICBpLCBqLCBrLCBiYXNlLCBzdGVwLCB0aWNrX2xlbiA9IDMgLSBwLT5ub19heGVzOwogICBj aGFyICAgICAgICB0ZXh0WzIwMF0sICogcHJlZml4OwogICBkb3VibGUgICAgICBsaW1pdDsKKyAg ZmxvYXQgICAgICAgYXV0b2dhaW4gPSAwLjA7CS8qIElzIGNoYW5nZWQgaWYgdGhlIC1uIGZsYWcg d2FzIHN1cHBsaWVkICovCiAKICAgZnJlZShwLT5zaGFyZWQpOwogICBpZiAocC0+dXNpbmdfc3Rk b3V0KSB7CkBAIC01ODMsOCArNTg1LDIyIEBAIHN0YXRpYyBpbnQgc3RvcChzb3hfZWZmZWN0X3Qg KiBlZmZwKSAvKiBvbmx5IGNhbGxlZCwgYnkgZW5kKCksIG9uIGZsb3cgMCAqLwogICAgIHBuZ19y b3dzW3Jvd3MgLSAxIC0gal0gPSAocG5nX2J5dGVwKShwaXhlbHMgKyBqICogY29scyk7CiAKICAg LyogU3BlY3Ryb2dyYW0gKi8KKworICBpZiAocC0+bm9ybWFsaXplKQorICAgIC8qIHZhbHVlcyBh cmUgYWxyZWFkeSBpbiBkQiwgc28gd2Ugc3VidHJhY3QgdGhlIG1heGltdW0gdmFsdWUKKyAgICAg KiAod2hpY2ggd2lsbCBub3JtYWxseSBiZSBuZWdhdGl2ZSkgdG8gcmFpc2UgdGhlIG1heGltdW0g dG8gMC4wLgorICAgICAqLworICAgIGF1dG9nYWluID0gLXAtPm1heDsKKwogICBmb3IgKGsgPSAw OyBrIDwgY2hhbnM7ICsraykgewogICAgIHByaXZfdCAqIHEgPSAocHJpdl90ICopKGVmZnAgLSBl ZmZwLT5mbG93ICsgayktPnByaXY7CisKKyAgICBpZiAocC0+bm9ybWFsaXplKSB7CisgICAgICBm bG9hdCAqZnA7CisKKyAgICAgIGZvciAoaSA9IHAtPnJvd3MgKiBwLT5jb2xzLCBmcCA9IHEtPmRC ZnM7IGkgPiAwIDsgZnArKywgaS0tKQorCSpmcCArPSBhdXRvZ2FpbjsKKyAgICB9CiAgICAgYmFz ZSA9ICFwLT5yYXcgKiBiZWxvdyArIChjaGFucyAtIDEgLSBrKSAqIChwLT5yb3dzICsgMSk7CiAg ICAgZm9yIChqID0gMDsgaiA8IHAtPnJvd3M7ICsraikgewogICAgICAgZm9yIChpID0gMDsgaSA8 IHAtPmNvbHM7ICsraSkKQEAgLTY1MSw3ICs2NjcsNyBAQCBzdGF0aWMgaW50IHN0b3Aoc294X2Vm ZmVjdF90ICogZWZmcCkgLyogb25seSBjYWxsZWQsIGJ5IGVuZCgpLCBvbiBmbG93IDAgKi8KICAg ICBzdGVwID0gMTAgKiBjZWlsKHAtPmRCX3JhbmdlIC8gMTAuICogKGZvbnRfeSArIDIpIC8gKGsg LSAxKSk7CiAgICAgZm9yIChpID0gMDsgaSA8PSBwLT5kQl9yYW5nZTsgaSArPSBzdGVwKSB7ICAg ICAgICAgICAvKiAoVGljaykgbGFiZWxzICovCiAgICAgICBpbnQgeSA9IChkb3VibGUpaSAvIHAt PmRCX3JhbmdlICogKGsgLSAxKSArIC41OwotICAgICAgc3ByaW50Zih0ZXh0LCAiJStpIiwgaSAt IHAtPmdhaW4gLSBwLT5kQl9yYW5nZSk7CisgICAgICBzcHJpbnRmKHRleHQsICIlK2kiLCBpIC0g cC0+Z2FpbiAtIHAtPmRCX3JhbmdlIC0gKGludCkoYXV0b2dhaW4rMC41KSk7CiAgICAgICBwcmlu dF9hdChjb2xzIC0gcmlnaHQgKyAxLCBiYXNlICsgeSArIDUsIExhYmVscywgdGV4dCk7CiAgICAg fQogICB9CkBAIC02OTIsNiArNzA4LDcgQEAgc294X2VmZmVjdF9oYW5kbGVyX3QgY29uc3QgKiBs c3hfc3BlY3Ryb2dyYW1fZWZmZWN0X2ZuKHZvaWQpCiAgICAgIlx0LVkgbnVtXHRZLWhlaWdodCB0 b3RhbCAoaS5lLiBub3QgcGVyIGNoYW5uZWwpOyBkZWZhdWx0IDU1MCIsCiAgICAgIlx0LXogbnVt XHRaLWF4aXMgcmFuZ2UgaW4gZEI7IGRlZmF1bHQgMTIwIiwKICAgICAiXHQtWiBudW1cdFotYXhp cyBtYXhpbXVtIGluIGRCRlM7IGRlZmF1bHQgMCIsCisgICAgIlx0LW5cdFNldCBaLWF4aXMgbWF4 aW11bSB0byB0aGUgYnJpZ2h0ZXN0IHBpeGVsIiwKICAgICAiXHQtcSBudW1cdFotYXhpcyBxdWFu dGlzYXRpb24gKDAgLSAyNDkpOyBkZWZhdWx0IDI0OSIsCiAgICAgIlx0LXcgbmFtZVx0V2luZG93 OiBIYW5uKGRlZmF1bHQpL0hhbW1pbmcvQmFydGxldHQvUmVjdGFuZ3VsYXIvS2Fpc2VyL0RvbHBo IiwKICAgICAiXHQtVyBudW1cdFdpbmRvdyBhZGp1c3QgcGFyYW1ldGVyICgtMTAgLSAxMCk7IGFw cGxpZXMgb25seSB0byBLYWlzZXIvRG9scGgiLAo= --001a11441f107e68390527c2ebfe Content-Type: text/x-patch; charset=US-ASCII; name="sox-spectrogram-fftw.patch" Content-Disposition: attachment; filename="sox-spectrogram-fftw.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file3 c3BlY3Ryb2dyYW06IGFkZCBGRlRXMyBzdXBwb3J0CgpTb3ggc3BlY3JvZ3JhbSBoYXMgdHdvIGRp ZmZlcmVudCBhbGdvcml0aG1zIHRvIGRvIHNwZWN0cm9ncmFtczoKbHN4X3NhZmVfcmRmdCgpIGZv ciBkZnRfc2l6ZSBvZiBwb3dlcnMgb2YgdHdvICgteXNpemU9Ml5uKzEpIGFuZApyZGZ0X3AoKSwg cHJpdmF0ZSB0byBzcGVjdHJvZ3JhbS5jLCB3aGljaCBkb2VzIGFueSBzaXplIGJ1dCBpcyBmcm9t CjE1MCB0byAyNTAgdGltZXMgc2xvd2VyLgoKVGhpcyBhZGRzIEZGVFczIHN1cHBvcnQsIHdoaWNo IGlzIGFib3V0IHRoZSBzYW1lIHNwZWVkIGFzIHRoZSBvbGQgbHN4CnJvdXRpbmUgYnV0IHdvcmtz IGF0IGFueSBzaXplOgotIHN0dWZmIGluICJjb25maWd1cmUiIHRvIGF1dG9kZXRlY3QgaXQgYW5k ICIuL2NvbmZpZ3VyZSAtLXdpdGhvdXQtZmZ0dyIKICB0byBmb3JjaWJseSBkaXNhYmxlIGl0Ci0g Y29kZSBpbiBzcmMvc3BlY3Ryb2dyYW0uYyB0byB1c2UgRkZUVyBpZiBpdCBpcyBlbmFibGVkIG9y IHRoZSBvbGQKICByb3V0aW5lcyBvdGhlcndpc2UKLSBjaGFuZ2VzIHRvIGRlYmlhbi9jb250cm9s IHRvIGJ1aWxkIHdpdGggRkZUVyAodGhvdWdoIHRoZSBkZWJpYW4gcGFja2FnZQogIGJ1aWxkIGRp ZXMgZm9yIG90aGVyIHJlYXNvbnMgbm90IGNvbmNlcm5pbmcgdGhpcyBwYXRjaCkuCgpUaGUgb3V0 cHV0IGZyb20gdGhlIG9sZCBhbGdvcml0aG1zIGFuZCBGRlRXICh0aGUgUE5HcykgYXJlIGlkZW50 aWNhbC4KCmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggMjMx MzhhOS4uNGJjMzA2NCAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5h YwpAQCAtMzMyLDYgKzMzMiwyOCBAQCBBQ19TVUJTVChQTkdfTElCUykKIAogCiAKK2RubCBDaGVj ayBmb3IgRkZUVzMgbGlicmFyaWVzCitBQ19BUkdfV0lUSChmZnR3LAorICAgIEFTX0hFTFBfU1RS SU5HKFstLXdpdGhvdXQtZmZ0d10sCisgICAgICAgIFtEb24ndCB0cnkgdG8gdXNlIEZGVFddKSkK K3VzaW5nX2ZmdHc9bm8KK2lmIHRlc3QgIiR3aXRoX2ZmdHciICE9ICJubyI7IHRoZW4KKyAgICBB Q19DSEVDS19IRUFERVJTKGZmdHczLmgsIHVzaW5nX2ZmdHc9eWVzKQorICAgIGlmIHRlc3QgIiR1 c2luZ19mZnR3IiA9ICJ5ZXMiOyB0aGVuCisgICAgICAgIEFDX0NIRUNLX0xJQihmZnR3MywgZmZ0 d19leGVjdXRlLCBGRlRXX0xJQlM9IiRGRlRXX0xJQlMgLWxmZnR3MyIsIHVzaW5nX2ZmdHc9bm8p CisgICAgZmkKKyAgICBpZiB0ZXN0ICIkd2l0aF9mZnR3IiA9ICJ5ZXMiIC1hICIkdXNpbmdfZmZ0 dyIgPSAibm8iOyB0aGVuCisgICAgICAgIEFDX01TR19GQUlMVVJFKFtjYW5ub3QgZmluZCBGRlRX M10pCisgICAgZmkKK2ZpCitpZiB0ZXN0ICIkdXNpbmdfZmZ0dyIgPSB5ZXM7IHRoZW4KKyAgIEFD X0RFRklORShIQVZFX0ZGVFcsIDEsIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBGRlRXMy5dKQor ZmkKK0FNX0NPTkRJVElPTkFMKEhBVkVfRkZUVywgdGVzdCB4JHVzaW5nX2ZmdHcgPSB4eWVzKQor QUNfU1VCU1QoRkZUV19MSUJTKQorCisKKwogZG5sIFRlc3QgZm9yIExBRFNQQQogQUNfQVJHX1dJ VEgobGFkc3BhLAogICAgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGhvdXQtbGFkc3BhXSwgW0Rvbid0 IHRyeSB0byB1c2UgTEFEU1BBXSkpCkBAIC03NTYsNiArNzc4LDcgQEAgZWNobyAiT1RIRVIgT1BU SU9OUyIKIGVjaG8gImxhZHNwYSBlZmZlY3RzLi4uLi4uLi4uLi4uLiR1c2luZ19sYWRzcGEiCiBl Y2hvICJtYWdpYyBzdXBwb3J0Li4uLi4uLi4uLi4uLi4kdXNpbmdfbWFnaWMiCiBlY2hvICJwbmcg c3VwcG9ydC4uLi4uLi4uLi4uLi4uLi4kdXNpbmdfcG5nIgorZWNobyAiRkZUVyBzdXBwb3J0Li4u Li4uLi4uLi4uLi4uJHVzaW5nX2ZmdHciCiBpZiB0ZXN0ICJ4JE9QRU5NUF9DRkxBR1MiID0gIngi OyB0aGVuCiBlY2hvICJPcGVuTVAgc3VwcG9ydC4uLi4uLi4uLi4uLi5ubyIKIGVsc2UKZGlmZiAt LWdpdCBhL2RlYmlhbi9jb250cm9sIGIvZGViaWFuL2NvbnRyb2wKaW5kZXggZGMzYzM0Yi4uOTQ2 ODFlOCAxMDA2NDQKLS0tIGEvZGViaWFuL2NvbnRyb2wKKysrIGIvZGViaWFuL2NvbnRyb2wKQEAg LTgsNiArOCw3IEBAIEJ1aWxkLURlcGVuZHM6IGRoLWF1dG9yZWNvbmYsCiAgICAgICAgICAgICAg ICBsYWRzcGEtc2RrLAogICAgICAgICAgICAgICAgbGliYW8tZGV2LAogICAgICAgICAgICAgICAg bGliYXNvdW5kMi1kZXYgW2xpbnV4LWFueV0sCisgICAgICAgICAgICAgICBsaWJmZnR3My1kZXYs CiAgICAgICAgICAgICAgICBsaWJnc20xLWRldiwKICAgICAgICAgICAgICAgIGxpYmlkM3RhZzAt ZGV2LAogICAgICAgICAgICAgICAgbGlibHRkbDMtZGV2LApkaWZmIC0tZ2l0IGEvc3JjL01ha2Vm aWxlLmFtIGIvc3JjL01ha2VmaWxlLmFtCmluZGV4IDdjY2VhYWYuLjU4MzhmMWYgMTAwNjQ0Ci0t LSBhL3NyYy9NYWtlZmlsZS5hbQorKysgYi9zcmMvTWFrZWZpbGUuYW0KQEAgLTkwLDYgKzkwLDkg QEAgbGlic294X2xhX0xJQkFERCA9IEBQTkdfTElCU0AKIGlmIEhBVkVfTUFHSUMKIGxpYnNveF9s YV9MSUJBREQgKz0gQE1BR0lDX0xJQlNACiBlbmRpZgoraWYgSEFWRV9GRlRXCitsaWJzb3hfbGFf TElCQUREICs9IEBGRlRXX0xJQlNACitlbmRpZgogCiBsaWJzb3hfbGFfTElCQUREICs9IEBHT01Q X0xJQlNACiAKZGlmZiAtLWdpdCBhL3NyYy9zcGVjdHJvZ3JhbS5jIGIvc3JjL3NwZWN0cm9ncmFt LmMKaW5kZXggMzQ0NTdmMi4uM2Q4YzIwOCAxMDA2NDQKLS0tIGEvc3JjL3NwZWN0cm9ncmFtLmMK KysrIGIvc3JjL3NwZWN0cm9ncmFtLmMKQEAgLTMwLDYgKzMwLDEwIEBACiAjZW5kaWYKICNpbmNs dWRlIDx6bGliLmg+CiAKKyNpZmRlZiBIQVZFX0ZGVFczX0gKKyNpbmNsdWRlIDxmZnR3My5oPgor I2VuZGlmCisKIC8qIEZvciBTRVRfQklOQVJZX01PREU6ICovCiAjaW5jbHVkZSA8ZmNudGwuaD4K ICNpZmRlZiBIQVZFX0lPX0gKQEAgLTgwLDYgKzg0LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICBk b3VibGUgICAgIGJsb2NrX25vcm0sIG1heDsKICAgZG91YmxlICAgICAqIG1hZ25pdHVkZXM7CS8q IFsoZGZ0X3NpemUgLyAyKSArIDFdICovCiAgIGZsb2F0ICAgICAgKiBkQmZzOworI2lmIEhBVkVf RkZUVworICBmZnR3X3BsYW4gIGZmdHdfcGxhbjsJCS8qIFVzZWQgaWYgRkZUX3R5cGUgPT0gRkZU X2ZmdHcgKi8KKyNlbmRpZgogfSBwcml2X3Q7CiAKICNkZWZpbmUgc2Vjcyhjb2xzKSBcCkBAIC0x OTcsNiArMjA0LDggQEAgc3RhdGljIGRvdWJsZSBtYWtlX3dpbmRvdyhwcml2X3QgKiBwLCBpbnQg ZW5kKQogICByZXR1cm4gc3VtOwogfQogCisjaWYgIUhBVkVfRkZUVworCiBzdGF0aWMgZG91Ymxl ICogcmRmdF9pbml0KHNpemVfdCBuKQogewogICBkb3VibGUgKiBxID0gbHN4X21hbGxvYygyICog KG4gLyAyICsgMSkgKiBuICogc2l6ZW9mKCpxKSksICogcCA9IHE7CkBAIC0yMTgsNiArMjI3LDgg QEAgc3RhdGljIHZvaWQgcmRmdF9wKGRvdWJsZSBjb25zdCAqIHEsIGRvdWJsZSBjb25zdCAqIGlu LCBkb3VibGUgKiBvdXQsIGludCBuKQogICB9CiB9CiAKKyNlbmRpZiAvKiBIQVZFX0ZGVFcgKi8K Kwogc3RhdGljIGludCBzdGFydChzb3hfZWZmZWN0X3QgKiBlZmZwKQogewogICBwcml2X3QgKiBw ID0gKHByaXZfdCAqKWVmZnAtPnByaXY7CkBAIC0yNjYsOCArMjc3LDEwIEBAIHN0YXRpYyBpbnQg c3RhcnQoc294X2VmZmVjdF90ICogZWZmcCkKIAogICBpZiAocC0+eV9zaXplKSB7CiAgICAgcC0+ ZGZ0X3NpemUgPSAyICogKHAtPnlfc2l6ZSAtIDEpOworI2lmICFIQVZFX0ZGVFcKICAgICBpZiAo IWlzX3AyKHAtPmRmdF9zaXplKSAmJiAhZWZmcC0+ZmxvdykKICAgICAgIHAtPnNoYXJlZCA9IHJk ZnRfaW5pdCgoc2l6ZV90KShwLT5kZnRfc2l6ZSkpOworI2VuZGlmCiAgIH0gZWxzZSB7CiAgICBp bnQgeSA9IG1heCgzMiwgKHAtPllfc2l6ZT8gcC0+WV9zaXplIDogNTUwKSAvIGVmZnAtPmluX3Np Z25hbC5jaGFubmVscyAtIDIpOwogICAgZm9yIChwLT5kZnRfc2l6ZSA9IDEyODsgcC0+ZGZ0X3Np emUgPD0geTsgcC0+ZGZ0X3NpemUgPDw9IDEpOwpAQCAtMjc5LDEyICsyOTIsMjAgQEAgc3RhdGlj IGludCBzdGFydChzb3hfZWZmZWN0X3QgKiBlZmZwKQogICBwLT53aW5kb3cJPSBsc3hfY2FsbG9j KHAtPmRmdF9zaXplICsgMSwgc2l6ZW9mKCoocC0+d2luZG93KSkpOwogICBwLT5tYWduaXR1ZGVz ID0gbHN4X2NhbGxvYygocC0+ZGZ0X3NpemUgLyAyKSArIDEsIHNpemVvZigqKHAtPm1hZ25pdHVk ZXMpKSk7CiAKKyAgLyogSW5pdGlhbGl6ZSB0aGUgRkZUIHJvdXRpbmUgKi8KKyNpZiBIQVZFX0ZG VFcKKyAgLyogV2UgaGF2ZSBvbmUgRkZUIHBsYW4gcGVyIGZsb3cgYmVjYXVzZSB0aGUgaW5wdXQv b3V0cHV0IGFycmF5cyBkaWZmZXIuICovCisgIHAtPmZmdHdfcGxhbiA9IGZmdHdfcGxhbl9yMnJf MWQocC0+ZGZ0X3NpemUsIHAtPmRmdF9idWYsIHAtPmRmdF9idWYsCisgICAgICAgICAgICAgICAg ICAgICAgRkZUV19SMkhDLCBGRlRXX01FQVNVUkUpOworI2Vsc2UKICAgaWYgKGlzX3AyKHAtPmRm dF9zaXplKSAmJiAhZWZmcC0+ZmxvdykKICAgICBsc3hfc2FmZV9yZGZ0KHAtPmRmdF9zaXplLCAx LCBwLT5kZnRfYnVmKTsKKyNlbmRpZgorCiAgIGxzeF9kZWJ1ZygiZHVyYXRpb249JWcgeF9zaXpl PSVpIHBpeGVsc19wZXJfc2VjPSVnIGRmdF9zaXplPSVpIiwgZHVyYXRpb24sIHAtPnhfc2l6ZSwg cGl4ZWxzX3Blcl9zZWMsIHAtPmRmdF9zaXplKTsKIAogICBwLT5lbmQgPSBwLT5kZnRfc2l6ZTsK LSAgcC0+cm93cyA9IChwLT5kZnRfc2l6ZSA+PiAxKSArIDE7CisgIHAtPnJvd3MgPSAocC0+ZGZ0 X3NpemUgLyAyKSArIDE7CiAgIGFjdHVhbCA9IG1ha2Vfd2luZG93KHAsIHAtPmxhc3RfZW5kID0g MCk7CiAgIGxzeF9kZWJ1Zygid2luZG93X2RlbnNpdHk9JWciLCBhY3R1YWwgLyBwLT5kZnRfc2l6 ZSk7CiAgIHAtPnN0ZXBfc2l6ZSA9IChwLT5zbGFja19vdmVybGFwPyBzcXJ0KGFjdHVhbCAqIHAt PmRmdF9zaXplKSA6IGFjdHVhbCkgKyAuNTsKQEAgLTM1OSw2ICszODAsMTkgQEAgc3RhdGljIGlu dCBmbG93KHNveF9lZmZlY3RfdCAqIGVmZnAsCiAgICAgaWYgKChwLT5lbmQgPSBtYXgocC0+ZW5k LCBwLT5lbmRfbWluKSkgIT0gcC0+bGFzdF9lbmQpCiAgICAgICBtYWtlX3dpbmRvdyhwLCBwLT5s YXN0X2VuZCA9IHAtPmVuZCk7CiAgICAgZm9yIChpID0gMDsgaSA8IHAtPmRmdF9zaXplOyArK2kp IHAtPmRmdF9idWZbaV0gPSBwLT5idWZbaV0gKiBwLT53aW5kb3dbaV07CisjaWYgSEFWRV9GRlRX CisgICAgZmZ0d19leGVjdXRlKHAtPmZmdHdfcGxhbik7CisgICAgLyogQ29udmVydCBmcm9tIEZG VFcncyAiaGFsZiBjb21wbGV4IiBmb3JtYXQgdG8gYW4gYXJyYXkgb2YgbWFnbml0dWRlcy4KKyAg ICAgKiBJbiBIQyBmb3JtYXQsIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZDoKKyAgICAgKiByMCwgcjEs IHIyIC4uLiByKG4vMiksIGkobisxKS8yLTEgLi4gaTIsIGkxCisgICAgICovCisgICAgcC0+bWFn bml0dWRlc1swXSArPSBzcXIocC0+ZGZ0X2J1ZlswXSk7CisgICAgZm9yIChpID0gMTsgaSA8IHAt PmRmdF9zaXplIC8gMjsgKytpKSB7CisgICAgICBwLT5tYWduaXR1ZGVzW2ldICs9IHNxcihwLT5k ZnRfYnVmW2ldKSArIHNxcihwLT5kZnRfYnVmW3AtPmRmdF9zaXplIC0gaQorXSk7CisgICAgfQor ICAgIHAtPm1hZ25pdHVkZXNbcC0+ZGZ0X3NpemUgLyAyXSArPSBzcXIocC0+ZGZ0X2J1ZltwLT5k ZnRfc2l6ZSAvIDJdKTsKKyNlbHNlCiAgICAgaWYgKGlzX3AyKHAtPmRmdF9zaXplKSkgewogICAg ICAgbHN4X3NhZmVfcmRmdChwLT5kZnRfc2l6ZSwgMSwgcC0+ZGZ0X2J1Zik7CiAgICAgICBwLT5t YWduaXR1ZGVzWzBdICs9IHNxcihwLT5kZnRfYnVmWzBdKTsKQEAgLTM2Nyw2ICs0MDEsOCBAQCBz dGF0aWMgaW50IGZsb3coc294X2VmZmVjdF90ICogZWZmcCwKICAgICAgIHAtPm1hZ25pdHVkZXNb cC0+ZGZ0X3NpemUgPj4gMV0gKz0gc3FyKHAtPmRmdF9idWZbMV0pOwogICAgIH0KICAgICBlbHNl IHJkZnRfcCgqcC0+c2hhcmVkX3B0ciwgcC0+ZGZ0X2J1ZiwgcC0+bWFnbml0dWRlcywgcC0+ZGZ0 X3NpemUpOworI2VuZGlmCisKICAgICBpZiAoKytwLT5ibG9ja19udW0gPT0gcC0+YmxvY2tfc3Rl cHMgJiYgZG9fY29sdW1uKGVmZnApID09IFNPWF9FT0YpCiAgICAgICByZXR1cm4gU09YX0VPRjsK ICAgfQo= --001a11441f107e68390527c2ebfe Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ --001a11441f107e68390527c2ebfe Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ SoX-devel mailing list SoX-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sox-devel --001a11441f107e68390527c2ebfe--