The input buffer allows the player to send inputs when they can't act—such as during recovery or blockstun—and have the input act is if it were sent exactly when they can first act. This is what enables frame advantages to play out in a consistent way, since both players are almost guaranteed to get frame perfect timing on their follow ups. For example, it allows -10 moves to be punished by i10 attacks without frame perfect inputs.
The input buffer is 8 frames long. This gives an effective 9 frame window to input a frame perfect link.
For example, the following inputs both do a generic 1 jab twice in a row as quickly as possible:
|Recovery (input buffer)|
Some motion inputs can be buffered. For these, the 8 frame window is only concerned with the last input in the sequence, with the timing window of the motion input itself independent of the input buffer.
For example, Kazumi's b,n,f+2 can at most be input in 15 frames:
So the b can be “buffered” (i.e. input before having recovered) for up to 22 frames if the f+2 is also input in the first frame of the buffer:
As a general rule, moves that aren't bufferable are those which come out of a stance. If you aren't in that stance while recovering, you can't buffer the moves for that stance. In addition, for most stances entered by motion inputs, entering the stance also can't be buffered.
Moves with one input immediately after the other, e.g. Yoshimitsu's 3~4, usually can't be fully buffered as they're technically a cancel. You can't cancel a move you haven't started yet.
A move not being bufferable means that it can't easily be used as a punisher, follow up, counter-attack, or in combos, since getting the move out may require near frame perfect timing.
For the generic dash stance entered by f,f, the first f can be buffered, but the second cannot. This obeys the rules for motion inputs as above, so it can be buffered for up to 20 frames, as that's the biggest gap between the two f's that is normally permitted.
Dash attacks require the second f to be held for at least one frame before pressing the attack button, so it takes a minimum of 2 frames to input such a move from a bufferable situation, i.e. adding 1 frame for the input. For example, Lidia's f,F+2 is i13, but it can only at best punish a -14 move: