Mercurial > hg > octave-lyh
changeset 17201:af2051e363ea
Fix return arguments for wavread (...,"size"), bug #39639.
* scripts/audio/wavread.m: Return two arguments in two output variables.
* scripts/audio/wavwrite.m: Add %!tests for "size", and [N], [N1, N2]
inputs to wavread.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 07 Aug 2013 07:35:01 -0700 |
parents | 755ec7bce733 |
children | aada14bf74ed |
files | scripts/audio/wavread.m scripts/audio/wavwrite.m |
diffstat | 2 files changed, 24 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/audio/wavread.m +++ b/scripts/audio/wavread.m @@ -177,8 +177,8 @@ length = (param(2)-param(1)+1) * channels; elseif (nparams == 4 && char (param) == "size") ## Size of the file is requested. - tmp = idivide (8 * data_size, channels * bits_per_sample); - y = [tmp, channels]; + y = idivide (8 * data_size, channels * bits_per_sample); + samples_per_sec = channels; return; else error ("wavread: invalid PARAM argument");
--- a/scripts/audio/wavwrite.m +++ b/scripts/audio/wavwrite.m @@ -154,7 +154,7 @@ %! fname = tmpnam (); %!test -%! A = [-1:0.1:1; -1:0.1:1]; +%! A = [-1:0.1:1; -1:0.1:1]'; %! wavwrite (A, fname); %! [B, samples_per_sec, bits_per_sample] = wavread (fname); %! unlink (fname); @@ -163,7 +163,7 @@ %! assert (bits_per_sample, 16); %!test -%! A = [-1:0.1:1; -1:0.1:1]; +%! A = [-1:0.1:1; -1:0.1:1]'; %! wavwrite (A, 4000, fname); %! [B, samples_per_sec, bits_per_sample] = wavread (fname); %! unlink (fname); @@ -172,7 +172,7 @@ %! assert (bits_per_sample, 16); %!test -%! A = [-1:0.1:1; -1:0.1:1]; +%! A = [-1:0.1:1; -1:0.1:1]'; %! wavwrite (A, 4000, 8, fname); %! [B, samples_per_sec, bits_per_sample] = wavread (fname); %! unlink (fname); @@ -197,3 +197,22 @@ %! assert (samples_per_sec, 8000); %! assert (bits_per_sample, 16); +%!test +%! A = [-1:0.1:1; -1:0.1:1]'; +%! wavwrite (A, fname); +%! B = wavread (fname, 15); +%! unlink (fname); +%! assert (A(1:15,:) ,B, 1/2^15); +%! wavwrite (A, fname); +%! B = wavread (fname, [10, 20]); +%! unlink (fname); +%! assert (A(10:20,:) ,B, 1/2^15); + +%!test +%! A = [-1:0.1:1; -1:0.1:1]'; +%! wavwrite (A, fname); +%! [nsamp, nchan] = wavread (fname, "size"); +%! unlink (fname); +%! assert (nsamp, 21); +%! assert (nchan, 2); +