Hi,
I think I've found what triggers the problem (and avoiding it I can get
things to work fine).
It seems to happen when these things happen in this order:
- The [gemhead] driving the [pix_snap] and [pix_record] is disabled
(via a 0 message) _before_ the gemwin is created (for example, at loadbang)
- After creating the gemwin, the gemhead is not enabled until _just
before_ the "record 1" and "auto 1" messages are sent to [pix_record].
That is, the following sequence of actions, that should be perfectly
legal, leads to malfunctioning:
i) disabling the gemhead driving pix_snap and pix_record
(some time passes)
ii) creating the gemwin
(some time passes)
iii) filename is given to pix_record
(some time passes)
iv) the following is done in 0 logical time:
iv.1) enabling the gemhead
iv.2) "record 1" message to pix_record
iv.3) "auto 1" message to pix_record
This can lead to either of two malfunctioning and unrecoverable situations:
A) immediate crash
B) pix_record outputs some error messages and does not record;
The pix_record will never recover. Even if you do a sequence of
steps that would normally lead to good functioning (e.g.:
destroy/recreate the gemwin, enabling the gemhead, repeating steps iii,
iv.2 and iv.3 in non-zero time), it won't work any more.
I wouldn't expect this to cause any problem; at the very least,
pix_record should:
- never crash
- give a meaningful error message if the situation presented is actually
illegal for some reason
- recover and work correctly when "normality" is reestablished
Well all this is basically a bug report so I will file it to the bug
tracker. I just thoght I'd let you know that I had found the workaround;
then while writing it came out as if i was filing a bug report...
Also, if anybody can confirm the issue on other platforms beside windows
and/or explain why this behaviour should be expected (except the crashes
of course), that would be helpful.
thanks
m.
news@petervenus.de escribió:
Hello
I am working with [pix_snap] and its running quite good.
In the attachment you will find a test-patch i build out of help-files.
While playing around with [pix_snap]i noticed, that its quite important,
to have different gemheads for the parts where you do something
to the source-signal and the part of the patch where you record the video.
like having [gemhead 5] for the first, and [gemhead 55] for the snapping part.
that way the first part gets handled before the image is snapped.
hope that helps.
Peter
-----Ursprüngliche Nachricht-----
Von: Matteo Sisti Sette
Gesendet: 21.03.2010 13:23:16
An: Jaime Oliver
Betreff: Re: [PD] pix_snap + pix_record = problem
Jaime Oliver escribió:
I had a similar error in osx10.6.
Did you find a workaround? Could you ever record a sequence of snapped
pixes into a video file?
thanks
m.
--
Matteo Sisti Sette
matteosistisette@gmail.com
http://www.matteosistisette.com
#N canvas 355 9 994 775 10;
#X msg 468 167 snap;
#X obj 458 134 t a b;
#X obj 458 112 gemhead 99;
#X obj 458 86 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 553 224 cnv 15 167 200 empty empty empty 20 12 0 14 -24198 -66577
0;
#X obj 553 404 pix_record;
#X obj 572 373 cnv 15 145 25 empty empty empty 20 12 0 14 -225271 -66577
0;
#X msg 582 377 bang;
#X msg 654 377 auto $1;
#X obj 635 378 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 572 229 cnv 15 145 65 empty empty empty 20 12 0 14 -225271 -66577
0;
#X msg 578 254 codeclist;
#X msg 574 233 dialog;
#X obj 574 274 t a;
#X obj 562 301 cnv 15 155 65 empty empty empty 20 12 0 14 -225271 -66577
0;
#X obj 776 275 bng 15 250 50 0 empty empty save_as 0 -6 0 15 -258699
-1 -1;
#N canvas 0 22 450 300 savepanel 0;
#X obj 114 62 inlet;
#X obj 114 254 outlet;
#X obj 114 199 t b a;
#X obj 114 125 savepanel;
#X msg 114 162 set file $1;
#X connect 0 0 3 0;
#X connect 2 0 1 0;
#X connect 2 1 1 0;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X restore 586 303 pd savepanel;
#X msg 622 345 record $1;
#X obj 602 347 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 565 345 t a;
#X floatatom 641 407 5 0 0 0 - - -;
#X msg 634 274 codec mjpa;
#X obj 773 325 tgl 15 0 empty empty rec_ONoff 17 7 0 10 -262144 -1
-1 0 1;
#X obj 775 240 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 654 255 codec 4;
#X obj 75 18 cnv 15 250 350 empty empty empty 20 12 0 14 -228992 -66577
0;
#X obj 241 49 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577
0;
#N canvas 0 0 450 300 gemwin 0;
#X obj 132 136 gemwin;
#X obj 67 89 outlet;
#X obj 67 10 inlet;
#X msg 67 70 set destroy;
#X msg 132 112 create , 1;
#X msg 198 112 destroy;
#X msg 156 71 set create;
#X obj 67 41 route create;
#X connect 2 0 7 0;
#X connect 3 0 1 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 1 0;
#X connect 7 0 3 0;
#X connect 7 0 4 0;
#X connect 7 1 6 0;
#X connect 7 1 5 0;
#X restore 246 88 pd gemwin;
#X msg 246 69 create;
#X text 242 48 Create window:;
#X obj 77 49 cnv 15 155 250 empty empty empty 20 12 0 14 -24198 -66577
0;
#X obj 77 321 pix_texture;
#X obj 89 54 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 154 18 open a supported;
#X text 155 30 movie-clip;
#X obj 102 248 unpack 0 0 0;
#X floatatom 92 271 5 0 0 3 length - -;
#X floatatom 141 271 5 0 0 3 width - -;
#X floatatom 191 271 5 0 0 3 height - -;
#X obj 146 229 bng 15 250 50 0 empty empty end_reached 20 7 0 10 -262144
-1 -1;
#X floatatom 128 194 5 0 10000 1 frame# - -;
#X obj 89 83 openpanel;
#X msg 89 103 open $1;
#X obj 77 343 rectangle 4 3;
#X obj 77 212 pix_film;
#X msg 95 146 auto $1;
#X obj 95 128 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X msg 106 170 colorspace Grey;
#X obj 77 24 gemhead 10;
#X obj 77 301 rotateXYZ;
#X floatatom 334 282 5 0 0 0 - - -;
#X floatatom 377 282 5 0 0 0 - - -;
#X floatatom 420 283 5 0 0 0 - - -;
#X obj 715 22 tgl 30 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 715 61 select 1 0;
#X msg 599 14 1;
#X obj 707 103 t b b;
#X obj 600 40 t f f f;
#X msg 656 14 0;
#X obj 656 41 t f f f;
#X msg 392 47 0;
#X text 389 27 //1: click here;
#X obj 447 203 pix_snap 512 512;
#X text 287 66 //2: here;
#X text 123 56 //3: click here;
#X text 795 276 //4: click here;
#X text 751 24 //5: click here;
#X text 96 519 //STEPS TO REPRODUCE (follow strictly);
#X text 120 535 //1: click the 0 message to the gemhead;
#X text 124 552 //2: create the gemwin;
#X text 128 567 //3: the big bang to select input file;
#X text 130 585 //4: the "save as" red bang;
#X text 130 601 //5: click to set the big toggle;
#X msg 565 325 file;
#X connect 0 0 62 0;
#X connect 1 0 62 0;
#X connect 1 1 0 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 5 1 20 0;
#X connect 7 0 5 0;
#X connect 8 0 5 0;
#X connect 9 0 8 0;
#X connect 11 0 13 0;
#X connect 12 0 13 0;
#X connect 13 0 5 0;
#X connect 15 0 16 0;
#X connect 16 0 73 0;
#X connect 17 0 19 0;
#X connect 18 0 17 0;
#X connect 19 0 5 0;
#X connect 21 0 13 0;
#X connect 22 0 18 0;
#X connect 23 0 24 0;
#X connect 24 0 13 0;
#X connect 27 0 28 0;
#X connect 28 0 27 0;
#X connect 31 0 43 0;
#X connect 32 0 41 0;
#X connect 35 0 36 0;
#X connect 35 1 37 0;
#X connect 35 2 38 0;
#X connect 40 0 44 1;
#X connect 41 0 42 0;
#X connect 42 0 44 0;
#X connect 44 0 49 0;
#X connect 44 1 35 0;
#X connect 44 2 39 0;
#X connect 45 0 44 0;
#X connect 46 0 45 0;
#X connect 47 0 44 0;
#X connect 48 0 44 0;
#X connect 49 0 31 0;
#X connect 50 0 49 1;
#X connect 51 0 49 2;
#X connect 52 0 49 3;
#X connect 53 0 54 0;
#X connect 54 0 56 0;
#X connect 54 1 58 0;
#X connect 55 0 57 0;
#X connect 56 0 55 0;
#X connect 56 1 73 0;
#X connect 57 0 9 0;
#X connect 57 1 18 0;
#X connect 57 2 3 0;
#X connect 58 0 59 0;
#X connect 59 0 3 0;
#X connect 59 1 18 0;
#X connect 59 2 9 0;
#X connect 60 0 2 0;
#X connect 62 0 5 0;
#X connect 73 0 19 0;