[FFmpeg-user] shuffleframes -- unexpected results

Mark Filipak (ffmpeg) markfilipak at bog.us
Sun Feb 21 21:09:37 EET 2021


I've run some test cases for the shuffleframes filter. I've documented shuffleframes via my 
preferred documentation format (below). In the course of my testing, I found 2 cases (marked "***** 
Expected", below) that produced unexpected results, to wit: If the 1st frame is discarded, the 
entire input is discarded, even if the 1st discard is followed by frames that are supposed to be 
retained.

shuffleframes   ...General frame manipulation that substitutes and/or discards video frames but that 
does not insert (cannot add) frames [1].
shuffleframes=0   ...Default
               ¦
               0   ...Passes the input frames to the output, unaltered (does nothing).
               ...For a pattern of frames with initial substitution:
               0 0    ...For input frames 0 1 2 3 4 5 etc., outputs 0 0 2 2 4 4 etc.
               0 0 2    ...For input frames 0 1 2 3 4 5 6 7 8 etc., outputs 0 0 2 3 3 5 6 6 8 etc.
               0 0 2 3   ...For input frames 0 1 2 3 4 5 6 7 8 9 10 11 etc., outputs 0 0 2 3 4 4 6 7 
8 8 10 11 etc.
               ...For a pattern of frames with final substitution:
               0 0    ...For input frames 0 1 2 3 4 5 etc., outputs 0 0 2 2 4 4 etc.
               0 1 1    ...For input frames 0 1 2 3 4 5 6 7 8 etc., outputs 0 1 1 3 4 4 6 7 7 etc.
               0 1 2 2   ...For input frames 0 1 2 3 4 5 6 7 8 9 10 11 etc., outputs 0 1 2 2 4 5 6 6 
8 9 10 10 etc.
               ...For a pattern of frames with internal substitution:
               0 1 1 3   ...For input frames 0 1 2 3 4 5 6 7 8 9 10 11 etc., outputs 0 1 1 3 4 5 5 7 
8 9 9 11 etc.
               ...For a pattern of frames with initial discard:
               -1    ...Blocks the pipeline (discards all frames).
               -1 1    ...Blocks the pipeline (discards all frames). ***** Expected 1 3 5 7 ..
               -1 1 2   ...Blocks the pipeline (discards all frames). ***** Expected 1 2 4 5 7 8 ..
               ...For a pattern of frames with final discard:
               0 -1    ...For input frames 0 1 2 3 4 5 etc., outputs 0 2 4 etc.
               0 1 -1    ...For input frames 0 1 2 3 4 5 6 7 8 etc., outputs 0 1 3 4 6 7 etc.
               0 1 2 -1   ...For input frames 0 1 2 3 4 5 6 7 8 9 10 11 etc., outputs 0 1 2 4 5 6 8 
9 10 etc.
               ...For a pattern of frames with internal discard:
               0 1 -1 3   ...For input frames 0 1 2 3 4 5 6 7 8 9 10 11 etc., outputs 0 1 3 4 5 7 8 
9 11 etc.
               ...For a pattern of frames with 2 substitutions (exchange) and 1 internal discard:
               0 3 -1 1   ...For input frames 0 1 2 3 4 5 6 7 8 9 10 11 etc., outputs 0 3 1 4 7 5 8 
11 9 etc.

[1] A scheme utilizing '+' to insert frames (similar to how '-' discards frames) was not implemented.

-- 
Facts: The U.S. President heads the military, federal police, and National Guard;
The President can unconditionally declare martial law at any time, for any reason;
The House impeached President Trump but it only takes 34 senators to block removal;
Lacking Senate action, only Vice President Pence could have stopped Trump;
On 6 January, Trump denounced Pence for 'allowing' Biden's election;
Vowing Pence's murder, Oath Keepers & Proud Boys attacked the Capital;
Trump did nothing to stop the insurrection and sent no help.
Trump? The Republicans? Connect the dots, folks. It's not rocket science.


More information about the ffmpeg-user mailing list