annotate scripts/image/movie.m @ 31286:10a813492497

maint: Use "nonzero" in docstrings and error messages. * movie.m, mustBeNonzero.m, lsqnonneg.m, pqpnonneg.m: Use "nonzero" in docstrings and error messages.
author Rik <rik@octave.org>
date Mon, 10 Oct 2022 18:17:16 -0700
parents 796f54d4ddbf
children 597f3ee61a48
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ########################################################################
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 ##
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
3 ## Copyright (C) 2017-2022 The Octave Project Developers
27918
b442ec6dda5c use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents: 26374
diff changeset
4 ##
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 ## See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 ## distribution or <https://octave.org/copyright/>.
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
7 ##
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
8 ## This file is part of Octave.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
9 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
10 ## Octave is free software: you can redistribute it and/or modify it
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
11 ## under the terms of the GNU General Public License as published by
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
12 ## the Free Software Foundation, either version 3 of the License, or
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
13 ## (at your option) any later version.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
14 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
15 ## Octave is distributed in the hope that it will be useful, but
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
18 ## GNU General Public License for more details.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
19 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
20 ## You should have received a copy of the GNU General Public License
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
21 ## along with Octave; see the file COPYING. If not, see
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
22 ## <https://www.gnu.org/licenses/>.
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 ##
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ########################################################################
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
25
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
26 ## -*- texinfo -*-
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
27 ## @deftypefn {} {} movie (@var{mov})
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
28 ## @deftypefnx {} {} movie (@var{mov}, @var{n})
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
29 ## @deftypefnx {} {} movie (@var{mov}, @var{n}, @var{fps})
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
30 ## @deftypefnx {} {} movie (@var{h}, @dots{})
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
31 ## Play a movie defined by an array of frame structures.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
32 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
33 ## The movie @var{mov} must be a struct array of frames with fields
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
34 ## @qcode{"cdata"} and @qcode{"colormap"}, as returned by the @code{getframe}
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
35 ## function. By default all images are displayed once, at 12 fps, in the
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
36 ## current axes.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
37 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
38 ## The optional argument @var{n} is a scalar or vector of integers that
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
39 ## controls the number of times the movie is displayed and which particular
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
40 ## frames are shown:
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
41 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
42 ## @table @asis
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
43 ## @item First element:
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
44 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
45 ## @table @asis
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
46 ## @item @var{n}(1) > 0
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
47 ## Play the movie @var{n}(1) times.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
48 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
49 ## @item @var{n}(1) < 0
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
50 ## Play the movie @code{abs (@var{n}(1)} times alternatively in forward and
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
51 ## backward order.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
52 ## @end table
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
53 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
54 ## @item Other elements (if any):
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
55 ## Indices of the frames in @var{mov} that will be displayed.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
56 ## @end table
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
57 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
58 ## If the first argument is a handle to a figure or axes @var{h}, the movie is
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
59 ## played in that figure or axes instead of the current axes.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
60 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
61 ## @seealso{getframe, im2frame, frame2im}
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
62 ## @end deftypefn
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
63
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
64 function movie (varargin)
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
65
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
66 if (nargin == 0 || nargin > 4)
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
67 print_usage ();
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
68 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
69
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
70 ## Extract possible handle argument
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
71 hax = [];
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
72 if (ishghandle (varargin{1}))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
73 typ = get (varargin{1}, "type");
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
74 if (strcmp (typ, "axes"))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
75 hax = varargin{1};
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
76 elseif (strcmp (typ, "figure"))
26374
b3a2ee31dd58 movie.m: Don't change "visible" property of figure handle input.
Rik <rik@octave.org>
parents: 26242
diff changeset
77 hax = get (varargin{1}, "currentaxes");
b3a2ee31dd58 movie.m: Don't change "visible" property of figure handle input.
Rik <rik@octave.org>
parents: 26242
diff changeset
78 if (isempty (hax))
b3a2ee31dd58 movie.m: Don't change "visible" property of figure handle input.
Rik <rik@octave.org>
parents: 26242
diff changeset
79 hax = axes ("parent", varargin{1});
b3a2ee31dd58 movie.m: Don't change "visible" property of figure handle input.
Rik <rik@octave.org>
parents: 26242
diff changeset
80 endif
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
81 else
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
82 error ("movie: H must be a handle to an axes or figure");
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
83 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
84 varargin(1) = [];
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
85 nargin = nargin - 1;
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
86 if (nargin == 0)
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
87 print_usage ();
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
88 endif
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
89 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
90
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
91 ## Extract other arguments
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
92 n = 1;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
93 fps = 12;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
94 idx = [];
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
95
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
96 mov = varargin{1};
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
97 if (! isfield (mov, "cdata") || ! isfield (mov, "colormap"))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
98 error ("movie: MOV must be a frame struct array");
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
99 elseif (numel (mov) < 2)
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
100 error ("movie: MOV must contain at least two frames");
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
101 endif
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
102
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
103 if (nargin > 1)
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
104 n = varargin{2};
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
105 if (! isindex (abs (n(1))))
31286
10a813492497 maint: Use "nonzero" in docstrings and error messages.
Rik <rik@octave.org>
parents: 30564
diff changeset
106 error ("movie: N must be a nonzero integer");
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
107 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
108
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
109 if (! isscalar (n))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
110 idx = n(2:end)(:)';
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
111 n = n(1);
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
112 if (! isindex (idx, numel (mov)))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
113 error (["movie: All elements N(2:end) must be valid indices ", ...
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
114 "into the MOV struct array"]);
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
115 endif
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
116 endif
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
117
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
118 if (nargin > 2)
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
119 fps = varargin{3};
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
120 if (! (isnumeric (fps) && isscalar (fps) && fps > 0))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
121 error ("movie: FPS must be a numeric scalar > 0");
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
122 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
123 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
124 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
125
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
126 if (isempty (hax))
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
127 hax = gca ();
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
128 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
129
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
130 ## Build the list of frames to be displayed
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
131 if (isempty (idx))
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
132 idx = (1:numel (mov));
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
133 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
134
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
135 if (n > 0)
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
136 idx = repmat (idx, 1, n);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
137 else
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
138 n = -n;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
139 tmp = repmat ([idx fliplr(idx)], 1, fix (n/2));
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
140 if (fix (n/2) != n/2)
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
141 idx = [tmp, idx];
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
142 else
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
143 idx = tmp;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
144 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
145 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
146
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
147 ## Initialize graphics objects
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
148 if (isempty (mov(1).cdata))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
149 error ("movie: empty image data at frame 1");
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
150 endif
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
151
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
152 him = findobj (hax, "-depth", 1, "tag", "__movie_frame__");
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
153 if (isempty (him))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
154 him = image ("parent", hax, "cdata", mov(1).cdata,
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
155 "tag", "__movie_frame__");
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
156 else
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
157 set (him, "cdata", mov(1).cdata);
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
158 endif
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
159
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
160 set (hax, "ydir", "reverse", "visible", "off");
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
161
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
162 ## Initialize the timer
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
163 t = tau = 1/fps;
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
164 timerid = tic ();
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
165
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
166 for ii = idx
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
167 cdata = mov(ii).cdata;
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
168 if (isempty (cdata))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
169 error ("movie: empty image data at frame %d", ii);
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
170 endif
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
171 set (him, "cdata", cdata);
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
172
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
173 if (! isempty (mov(ii).colormap))
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
174 set (hax, "colormap", mov(ii).colormap)
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
175 endif
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
176
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
177 pause (t - toc (timerid));
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
178 t += tau;
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
179 endfor
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
180
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
181 endfunction
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
182
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
183
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
184 %!demo
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
185 %! nframes = 20;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
186 %! colors = jet (nframes);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
187 %! baseim = ones (20, 20, 3, "uint8");
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
188 %! mov(nframes) = struct ("cdata", [], "colormap", []);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
189 %! for ii = 1:nframes
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
190 %! im = baseim * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
191 %! im(:,ii,1) = colors(ii,1) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
192 %! im(:,ii,2) = colors(ii,2) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
193 %! im(:,ii,3) = colors(ii,3) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
194 %! mov(ii).cdata = im;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
195 %! endfor
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
196 %! clf ();
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
197 %! title ("Play movie forward 2 times");
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
198 %! movie (mov, 2);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
199
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
200 %!demo
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
201 %! nframes = 20;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
202 %! colors = jet (nframes);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
203 %! baseim = ones (20, 20, 3, "uint8");
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
204 %! mov(nframes) = struct ("cdata", [], "colormap", []);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
205 %! for ii = 1:nframes
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
206 %! im = baseim * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
207 %! im(:,ii,1) = colors(ii,1) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
208 %! im(:,ii,2) = colors(ii,2) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
209 %! im(:,ii,3) = colors(ii,3) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
210 %! mov(ii).cdata = im;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
211 %! endfor
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
212 %! clf ();
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
213 %! title ("Play movie forward and backward 5 times at 25 fps");
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
214 %! movie (mov, -5, 25);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
215
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
216 %!demo
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
217 %! nframes = 20;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
218 %! colors = jet (nframes);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
219 %! baseim = ones (20, 20, 3, "uint8");
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
220 %! mov(nframes) = struct ("cdata", [], "colormap", []);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
221 %! for ii = 1:nframes
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
222 %! im = baseim * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
223 %! im(:,ii,1) = colors(ii,1) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
224 %! im(:,ii,2) = colors(ii,2) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
225 %! im(:,ii,3) = colors(ii,3) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
226 %! mov(ii).cdata = im;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
227 %! endfor
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
228 %! clf ();
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
229 %! title ("Play downsampled movie 5 times");
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
230 %! movie (mov, [5 1:3:nframes]);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
231
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
232 %!demo
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
233 %! clf ();
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
234 %! z = sombrero ();
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
235 %! hs = surf (z);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
236 %! axis manual
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
237 %! nframes = 50;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
238 %! mov(nframes) = struct ("cdata", [], "colormap", []);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
239 %! for ii = 1:nframes
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
240 %! set (hs, "zdata", z * sin (2*pi*ii/nframes));
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
241 %! mov(ii) = getframe ();
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
242 %! endfor
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
243 %! clf ();
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
244 %! movie (mov, 3, 25);
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
245
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
246 ## Test input validation
28896
90fea9cc9caa test: Add expected error message <Invalid call> to BIST tests for nargin.
Rik <rik@octave.org>
parents: 27923
diff changeset
247 %!error <Invalid call> movie ()
90fea9cc9caa test: Add expected error message <Invalid call> to BIST tests for nargin.
Rik <rik@octave.org>
parents: 27923
diff changeset
248 %!error <Invalid call> movie (1,2,3,4,5)
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
249 %!error <MOV must be a frame struct array> movie ({2})
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
250 %!error <MOV must contain at least two frames>
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
251 %! movie (struct ("cdata", [], "colormap", []));
31286
10a813492497 maint: Use "nonzero" in docstrings and error messages.
Rik <rik@octave.org>
parents: 30564
diff changeset
252 %!error <N must be a nonzero integer>
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
253 %! movie (struct ("cdata", {[], []}, "colormap", []), 2.3);
31286
10a813492497 maint: Use "nonzero" in docstrings and error messages.
Rik <rik@octave.org>
parents: 30564
diff changeset
254 %!error <N must be a nonzero integer>
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
255 %! movie (struct ("cdata", {[], []}, "colormap", []), [2.3 -6]);
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
256 %!error <All elements N\(2:end\) must be valid indices into the MOV struct>
26374
b3a2ee31dd58 movie.m: Don't change "visible" property of figure handle input.
Rik <rik@octave.org>
parents: 26242
diff changeset
257 %! movie (struct ("cdata", {[], []}, "colormap", []), [1 -1]);
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
258 %!error <All elements N\(2:end\) must be valid indices into the MOV struct>
26374
b3a2ee31dd58 movie.m: Don't change "visible" property of figure handle input.
Rik <rik@octave.org>
parents: 26242
diff changeset
259 %! movie (struct ("cdata", {[], []}, "colormap", []), [1 5]);
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
260 %!error <FPS must be a numeric scalar . 0>
26374
b3a2ee31dd58 movie.m: Don't change "visible" property of figure handle input.
Rik <rik@octave.org>
parents: 26242
diff changeset
261 %! movie (struct ("cdata", {[], []}, "colormap", []), 1, "a");
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
262 %!error <FPS must be a numeric scalar . 0>
26374
b3a2ee31dd58 movie.m: Don't change "visible" property of figure handle input.
Rik <rik@octave.org>
parents: 26242
diff changeset
263 %! movie (struct ("cdata", {[], []}, "colormap", []), 1, [1 1]);
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
264 %!error <FPS must be a numeric scalar . 0>
26374
b3a2ee31dd58 movie.m: Don't change "visible" property of figure handle input.
Rik <rik@octave.org>
parents: 26242
diff changeset
265 %! movie (struct ("cdata", {[], []}, "colormap", []), 1, -1/12);
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
266 %!error <empty image data at frame 1>
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
267 %! hf = figure ("visible", "off");
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
268 %! unwind_protect
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
269 %! movie (hf, struct ("cdata", {[], []}, "colormap", []));
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
270 %! unwind_protect_cleanup
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
271 %! close (hf);
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
272 %! end_unwind_protect
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
273 %!error <empty image data at frame 2>
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
274 %! hf = figure ("visible", "off");
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
275 %! unwind_protect
26374
b3a2ee31dd58 movie.m: Don't change "visible" property of figure handle input.
Rik <rik@octave.org>
parents: 26242
diff changeset
276 %! movie (struct ("cdata", {ones(2), []}, "colormap", []));
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
277 %! unwind_protect_cleanup
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
278 %! close (hf);
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
279 %! end_unwind_protect