annotate scripts/image/movie.m @ 27919:1891570abac8

update Octave Project Developers copyright for the new year In files that have the "Octave Project Developers" copyright notice, update for 2020.
author John W. Eaton <jwe@octave.org>
date Mon, 06 Jan 2020 22:29:51 -0500
parents b442ec6dda5c
children bd51beb6205e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27919
1891570abac8 update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 27918
diff changeset
1 ## Copyright (C) 2017-2020 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
2 ##
b442ec6dda5c use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents: 26374
diff changeset
3 ## See the file COPYRIGHT.md in the top-level directory of this distribution
b442ec6dda5c use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents: 26374
diff changeset
4 ## or <https://octave.org/COPYRIGHT.html/>.
b442ec6dda5c use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents: 26374
diff changeset
5 ##
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
6 ##
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
7 ## This file is part of Octave.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
8 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
9 ## 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
10 ## 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
11 ## 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
12 ## (at your option) any later version.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
13 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
14 ## 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
15 ## 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
16 ## 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
17 ## GNU General Public License for more details.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
18 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
19 ## 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
20 ## 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
21 ## <https://www.gnu.org/licenses/>.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
22
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
23 ## -*- texinfo -*-
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
24 ## @deftypefn {} {} movie (@var{mov})
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
25 ## @deftypefnx {} {} movie (@var{mov}, @var{n})
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
26 ## @deftypefnx {} {} movie (@var{mov}, @var{n}, @var{fps})
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
27 ## @deftypefnx {} {} movie (@var{h}, @dots{})
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
28 ## 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
29 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
30 ## 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
31 ## @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
32 ## 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
33 ## current axes.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
34 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
35 ## 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
36 ## 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
37 ## frames are shown:
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
38 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
39 ## @table @asis
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
40 ## @item First element:
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 @var{n}(1) > 0
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
44 ## Play the movie @var{n}(1) times.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
45 ##
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 @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
48 ## backward order.
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
49 ## @end table
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
50 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
51 ## @item Other elements (if any):
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
52 ## 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
53 ## @end table
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
54 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
55 ## 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
56 ## 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
57 ##
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
58 ## @seealso{getframe, im2frame, frame2im}
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
59 ## @end deftypefn
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 function movie (varargin)
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
62
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
63 if (nargin == 0 || nargin > 4)
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
64 print_usage ();
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
65 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
66
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
67 ## Extract possible handle argument
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
68 hax = [];
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
69 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
70 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
71 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
72 hax = varargin{1};
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
73 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
74 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
75 if (isempty (hax))
b3a2ee31dd58 movie.m: Don't change "visible" property of figure handle input.
Rik <rik@octave.org>
parents: 26242
diff changeset
76 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
77 endif
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
78 else
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
79 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
80 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
81 varargin(1) = [];
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
82 nargin = nargin - 1;
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
83 if (nargin == 0)
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
84 print_usage ();
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
85 endif
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
86 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
87
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
88 ## Extract other arguments
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
89 n = 1;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
90 fps = 12;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
91 idx = [];
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
92
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
93 mov = varargin{1};
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
94 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
95 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
96 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
97 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
98 endif
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
99
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
100 if (nargin > 1)
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
101 n = varargin{2};
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
102 if (! isindex (abs (n(1))))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
103 error ("movie: N must be a non-zero integer");
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
104 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
105
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
106 if (! isscalar (n))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
107 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
108 n = n(1);
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
109 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
110 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
111 "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
112 endif
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
113 endif
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
114
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
115 if (nargin > 2)
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
116 fps = varargin{3};
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
117 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
118 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
119 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
120 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
121 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
122
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
123 if (isempty (hax))
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
124 hax = gca ();
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
125 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
126
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
127 ## Build the list of frames to be displayed
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
128 if (isempty (idx))
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
129 idx = (1:numel (mov));
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
130 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
131
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
132 if (n > 0)
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
133 idx = repmat (idx, 1, n);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
134 else
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
135 n = -n;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
136 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
137 if (fix (n/2) != n/2)
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
138 idx = [tmp, idx];
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
139 else
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
140 idx = tmp;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
141 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
142 endif
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
143
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
144 ## Initialize graphics objects
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
145 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
146 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
147 endif
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
148
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
149 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
150 if (isempty (him))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
151 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
152 "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 else
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
154 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
155 endif
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
156
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
157 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
158
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
159 ## Initialize the timer
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
160 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
161 timerid = tic ();
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
162
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
163 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
164 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
165 if (isempty (cdata))
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
166 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
167 endif
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
168 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
169
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
170 if (! isempty (mov(ii).colormap))
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
171 set (hax, "colormap", mov(ii).colormap)
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
172 endif
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
173
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
174 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
175 t += tau;
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
176 endfor
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
177
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
178 endfunction
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
179
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
180
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
181 %!demo
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
182 %! nframes = 20;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
183 %! colors = jet (nframes);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
184 %! baseim = ones (20, 20, 3, "uint8");
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
185 %! mov(nframes) = struct ("cdata", [], "colormap", []);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
186 %! for ii = 1:nframes
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
187 %! im = baseim * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
188 %! im(:,ii,1) = colors(ii,1) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
189 %! im(:,ii,2) = colors(ii,2) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
190 %! im(:,ii,3) = colors(ii,3) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
191 %! mov(ii).cdata = im;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
192 %! endfor
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
193 %! clf ();
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
194 %! title ("Play movie forward 2 times");
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
195 %! movie (mov, 2);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
196
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
197 %!demo
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
198 %! nframes = 20;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
199 %! colors = jet (nframes);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
200 %! baseim = ones (20, 20, 3, "uint8");
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
201 %! mov(nframes) = struct ("cdata", [], "colormap", []);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
202 %! for ii = 1:nframes
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
203 %! im = baseim * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
204 %! im(:,ii,1) = colors(ii,1) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
205 %! im(:,ii,2) = colors(ii,2) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
206 %! im(:,ii,3) = colors(ii,3) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
207 %! mov(ii).cdata = im;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
208 %! endfor
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
209 %! clf ();
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
210 %! 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
211 %! movie (mov, -5, 25);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
213 %!demo
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
214 %! nframes = 20;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
215 %! colors = jet (nframes);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
216 %! baseim = ones (20, 20, 3, "uint8");
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
217 %! mov(nframes) = struct ("cdata", [], "colormap", []);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
218 %! for ii = 1:nframes
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
219 %! im = baseim * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
220 %! im(:,ii,1) = colors(ii,1) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
221 %! im(:,ii,2) = colors(ii,2) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
222 %! im(:,ii,3) = colors(ii,3) * 255;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
223 %! mov(ii).cdata = im;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
224 %! endfor
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
225 %! clf ();
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
226 %! title ("Play downsampled movie 5 times");
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
227 %! movie (mov, [5 1:3:nframes]);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
228
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
229 %!demo
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
230 %! clf ();
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
231 %! z = sombrero ();
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
232 %! hs = surf (z);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
233 %! axis manual
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
234 %! nframes = 50;
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
235 %! mov(nframes) = struct ("cdata", [], "colormap", []);
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
236 %! for ii = 1:nframes
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
237 %! 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
238 %! mov(ii) = getframe ();
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
239 %! endfor
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
240 %! clf ();
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
241 %! movie (mov, 3, 25);
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
242
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
243 ## Test input validation
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
244 %!error movie ()
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
245 %!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
246 %!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
247 %! movie (struct ("cdata", [], "colormap", []));
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
248 %!error <N must be a non-zero integer>
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
249 %! movie (struct ("cdata", {[], []}, "colormap", []), 2.3);
26212
2be1833a93a5 movie.m: New function (patch #9363)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff changeset
250 %!error <N must be a non-zero integer>
26242
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", []), [2.3 -6]);
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
252 %!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
253 %! 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
254 %!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
255 %! 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
256 %!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
257 %! 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
258 %!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
259 %! 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
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, -1/12);
26242
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
262 %!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
263 %! 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
264 %! unwind_protect
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
265 %! 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
266 %! unwind_protect_cleanup
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
267 %! close (hf);
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
268 %! end_unwind_protect
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
269 %!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
270 %! 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
271 %! unwind_protect
26374
b3a2ee31dd58 movie.m: Don't change "visible" property of figure handle input.
Rik <rik@octave.org>
parents: 26242
diff changeset
272 %! 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
273 %! unwind_protect_cleanup
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
274 %! close (hf);
2730917a7979 movie.m: Improve input validation and FPS accuracy (patch #9363).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26212
diff changeset
275 %! end_unwind_protect