Re: [FFmpeg-user] Please increase the number of variables
Am 03.06.2022 um 17:30 schrieb Paul B Mahol: On Fri, Jun 3, 2022 at 5:05 PM Michael Koch wrote: Hello, I'd like to ask if the number of variables in expressions could be increased from 10 to 25 please. I mean the st() and ld() functions. I'm just programming a realtime wormhole simulation and the limitation to 10 variables is becoming nasty. I did already begin to re-use the same variables for different things, but that makes debugging complicated. It would be so much easier to have more variables and use each one only for one thing. What you see below is only a small part of the code. Why you doing that way, this is the most inefficient way to do it. How would you do it instead? Sure, it's possible to generate the mapping files with C or C# code. Pro C code: + No limit for the number of variables. + The code can be commented in the same line. + It's very helpful to get error messages for division by zero, sqrt(-1), asin(2), log(0), log(-1). Pro FFmpeg code in batch file: + A whole project can be written in one batch file and executed with just one double-click. No compiler required. + The mapping files are automatically generated in the correct working folder, no problems with files in wrong folder. In the meantime I got the code for a realtime wormhole (with fisheye projection in a planetarium) running with just 10 variables (see below). I had to re-use some of the variables, which is error-prone. I also had to use many if/ifnot functions to avoid overwriting of variables. With 12 variables the code would have been simpler. I have some ideas for even more complex transformations, but with the limitation to just 10 variables they are impossible to implement. Michael ffmpeg -f lavfi -i nullsrc=size=%OUT_W%x%OUT_H% -vf format=pix_fmts=gray16le,geq='^ st(0,%OUT_H_FOV%/180*((2*X+1)/%OUT_W%-1));^ st(1,%OUT_V_FOV%/180*((2*Y+1)/%OUT_H%-1));^ st(2,atan2(ld(1),ld(0)));^ st(3,PI/2*hypot(ld(0),ld(1)));^ st(4,sin(ld(3))*cos(ld(2)));^ st(5,sin(ld(3))*sin(ld(2)));^ st(6,cos(ld(3)));^ st(1,if(lt(ld(6),cos(%OUT_H_FOV%/360*PI)),32767,0));^ st(0,ld(5)*cos(%PITCH2%/180*PI)-ld(6)*sin(%PITCH2%/180*PI));^ st(6,ld(6)*cos(%PITCH2%/180*PI)+ld(5)*sin(%PITCH2%/180*PI));^ st(5,ld(0));^ st(7,atan2(ld(5),ld(4)));^ st(8,acos(ld(6)));^ st(9,if(lte(ld(8),%RS%/180*PI),1));^ if(ld(9),st(7,ld(8)*cos(ld(7;^ ifnot(ld(9),st(8,ld(8)-%S%*(2*%RS%/180*PI/(ld(8)-%RS%/180*PI;^ ifnot(ld(9),st(4,sin(ld(8))*cos(ld(7;^ ifnot(ld(9),st(5,sin(ld(8))*sin(ld(7;^ ifnot(ld(9),st(6,cos(ld(8;^ ifnot(ld(9),st(0,ld(5)*cos(%PITCH1%/180*PI)-ld(6)*sin(%PITCH1%/180*PI)));^ ifnot(ld(9),st(6,ld(6)*cos(%PITCH1%/180*PI)+ld(5)*sin(%PITCH1%/180*PI)));^ ifnot(ld(9),st(5,ld(0)));^ ifnot(ld(9),st(7,atan2(ld(5),ld(4;^ ifnot(ld(9),st(8,acos(ld(6;^ ifnot(ld(9),st(7,atan2(sin(ld(8))*cos(ld(7)),cos(ld(8);^ if(ld(9),0.5*%IN_W2%*(1+180/PI/%RS%*ld(7)),ld(1)+0.5*%IN_W%*(1+ld(7)/PI))' -frames 1 -y xmap.pgm ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] Please increase the number of variables
Am 03.06.2022 um 17:30 schrieb Paul B Mahol: On Fri, Jun 3, 2022 at 5:05 PM Michael Koch wrote: Hello, I'd like to ask if the number of variables in expressions could be increased from 10 to 25 please. I mean the st() and ld() functions. I'm just programming a realtime wormhole simulation and the limitation to 10 variables is becoming nasty. I did already begin to re-use the same variables for different things, but that makes debugging complicated. It would be so much easier to have more variables and use each one only for one thing. What you see below is only a small part of the code. Why you doing that way, this is the most inefficient way to do it. Computing time doesn't care in this case. The code is only generating the mapping files for the remap filter. In the realtime part of the simulation are no complicated functions. I can solve the problem with just 10 variables, but it would be much easier (and better readable code) if more variables were available. Michael -- ** ASTRO ELECTRONIC Dipl.-Ing. Michael Koch Raabestr. 43 37412 Herzberg www.astro-electronic.de Tel. +49 5521 854265 Fax +49 5521 854266 ** ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] Please increase the number of variables
On Fri, Jun 3, 2022 at 5:05 PM Michael Koch wrote: > Hello, > > I'd like to ask if the number of variables in expressions could be > increased from 10 to 25 please. I mean the st() and ld() functions. I'm > just programming a realtime wormhole simulation and the limitation to 10 > variables is becoming nasty. I did already begin to re-use the same > variables for different things, but that makes debugging complicated. It > would be so much easier to have more variables and use each one only for > one thing. > What you see below is only a small part of the code. > Why you doing that way, this is the most inefficient way to do it. > > Thanks, > Michael > > > ffmpeg -f lavfi -i nullsrc=size=%OUT_W%x%OUT_H% -vf > format=pix_fmts=gray16le,geq='^ > st(0,PI/360*%OUT_H_FOV%*((2*X+1)/%OUT_W%-1));^ > st(1,PI/360*%OUT_V_FOV%*((2*Y+1)/%OUT_H%-1));^ > st(4,cos(ld(1))*sin(ld(0)));^ > st(5,sin(ld(1)));^ > st(6,cos(ld(1))*cos(ld(0)));^ > st(7,atan2(ld(5),ld(4)));^ > st(8,acos(ld(6)));^ > st(9,if(lte(ld(8),%RS%/180*PI),%OUT_W%,0));^ > > st(8,if(gt(ld(8),%RS%/180*PI),ld(8)-(2*%RS%/180*PI/(ld(8)-%RS%/180*PI)),0));^ > st(4,sin(ld(8))*cos(ld(7)));^ > st(5,sin(ld(8))*sin(ld(7)));^ > st(6,cos(ld(8)));^ > st(7,atan2(ld(4),ld(6)));^ > st(8,asin(ld(5)));^ > ld(9)+0.5*%IN_W%*(1+ld(7)/%IN_H_FOV%*360/PI)' -frames 1 -y xmap.pgm > ___ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". > ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".