mirror of
https://github.com/Akascape/Datamosher-Pro.git
synced 2025-12-05 15:59:59 +01:00
39 lines
1014 B
JavaScript
39 lines
1014 B
JavaScript
// dd_zero.js
|
|
// only mess frames if mv > movement_threshold
|
|
var movement_threshold = 3;
|
|
function glitch_frame(frame)
|
|
{
|
|
// bail out if we have no motion vectors
|
|
let mvs = frame["mv"];
|
|
if ( !mvs )
|
|
return;
|
|
// bail out if we have no forward motion vectors
|
|
let fwd_mvs = mvs["forward"];
|
|
if ( !fwd_mvs )
|
|
return;
|
|
|
|
// columns
|
|
let W = fwd_mvs.length;
|
|
for ( let i = 0; i < fwd_mvs.length; i++ )
|
|
{
|
|
|
|
let row = fwd_mvs[i];
|
|
|
|
// rows
|
|
let H = row.length;
|
|
for ( let j = 0; j < row.length; j++ )
|
|
{
|
|
// loop through all macroblocks
|
|
let mv = row[j];
|
|
|
|
// THIS IS WHERE THE MAGIC HAPPENS
|
|
if ( (mv[0] * mv[0])+(mv[1] * mv[1]) > movement_threshold*movement_threshold){
|
|
//mv[0] = Math.sin(i/W*Math.PI*2)*mv[0];
|
|
//mv[1] = Math.cos(j/H*Math.PI*2)*mv[1];
|
|
mv[0] = 0;//mv[0] * 10;
|
|
mv[1] = 0;//mv[1] * 10;
|
|
}
|
|
}
|
|
}
|
|
}
|