hi all, i’m stuck looking for a way to repair a spread
in short for example, the indices go like 0,1,2,3,5,6,9,10
meaning 4,7,8 are missing (or actually dropped frames in my situation)
now i want to repair the spread to 0,1,2,3,3,5,6,6,6,8,9,10
so i can hold the last frame when one or more are missing.
any idea how to approach this, or a node to look for?
I guess the minimum reproducible example would be good, since it depends like you want to detect errors in large data set and fix whole set, or you need it for a counter e.g. you read spread as it go and you need to decide if this frame is missing
yes it should work on a large number of slices (frames with values of kinect joint position data in my case) and i tried something with counter and framedelay to compare following slices, but still has errors. i’ll try and post my example later
some ideas for you:
you could implement a stopwatch and look at the times how long one frame to the next is and how big the value change between frames was and then build a custom filter, that extrapolates what the next changes will be, and adjust accordingly to the actual incoming frame.
another idea would be that you look at the frame difference values between your indices.
then there is also the differential node, that looks at slice differences. so if everything runs smooth, differential will give you a 1 in each slice, if you skip frames you will get higher numbers, and can do a setslice or insertslice or a repeat to fix your spread.
but primary i would look into how you could achieve the goal to minimize dropped frames :)
Finally managed to fix the thing like this, though I’m sure there is a more elegant way. Just hope I don’t need it again, making sure to avoid frame drops in the first place :)
Rather than writing the files with frame numbers, can you not write them with a timecode a then play them back based not a stopwatch? A missed frame would then hold until the net time increment.