Mercurial > octave
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 |
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 |