changeset 20016:f24d9486e66b

audioread: Fix sample index argument to be Matlab compatible * audioread.cc (Faudioread): Use 1-based indexing for start and end indexes. Accept Inf as an index to mean end-of-file. Add error check for index beyond end-of-file.
author Mike Miller <mtmiller@ieee.org>
date Sat, 21 Feb 2015 11:08:12 -0500
parents 343ca73b1507
children f9ca80482c41
files libinterp/dldfcn/audioread.cc
diffstat 1 files changed, 5 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/dldfcn/audioread.cc
+++ b/libinterp/dldfcn/audioread.cc
@@ -123,17 +123,17 @@
           return retval;
         }
 
-      double dstart = range(0);
-      double dend = range(1);
+      double dstart = xisinf (range(0)) ? info.frames : range(0);
+      double dend = xisinf (range(1)) ? info.frames : range(1);
 
-      if (dstart < 0 || dstart > dend || D_NINT (dstart) != dstart
-          || D_NINT (dend) != dend)
+      if (dstart < 1 || dstart > dend || dend > info.frames
+          || D_NINT (dstart) != dstart || D_NINT (dend) != dend)
         {
           error ("audioread: invalid specification for range of frames");
           return retval;
         }
 
-      start = dstart;
+      start = dstart - 1;
       end = dend;
     }