Subsections

- Example and explanation

##
Playing/Seeking

Seeking targets and displays the next frame. The next frame is targeted because frame zero has no previous. When you seek, you reposition to just before the target frame, and since the play direction has not been established (there is no direction when seeking) it shows you the next frame. This produces the expected behavior when you seek to frame zero; you see the first frame. Seeking displays in the compositor what you are getting ready to work with/edit/etc; always showing the next frame in relation to the cursor. Technically, since seeking just resets the position, it would be correct not to update the compositor, but it is best to seek and show the next frame to confirm that it is the frame you expected to see.

Playing shows you what has just been played in the compositor window. It is not the same as seeking. When you use Keypad 1 to play frame forward, then the 1st frame that is played and shown in the compositor window is frame zero (which was already displayed). The position is incremented to 1. Press Keypad 1 yet again, and the next frame displayed is 1, and the new position is 2, and so on. According to the implemented strategy, the insertion point moves to track playback. When playback stops, the insertion point stays where playback stopped. Thus, with playback you change the position of the insertion point.

Simple explanation of what you will be seeing in the compositor when playing:

Play forward
  the frame to the right of the cursor in the timeline gets displayed.
Play backward
  the frame to the left of the cursor in the timeline gets displayed.

The reason behind this play methodology is that you want to know what you just played so that you know what matches what you just saw/heard in case that is the desired stuff. You don't want the compositor to show you what you have not yet played – you need to see this frame to analyze/check to see if it is what you want. This behavior applies to any playing operation, such as the keypad or Frame forward / Frame reverse buttons. You can still easily see the actual insertion point in the zoombar at the bottom of the timeline – seventh button over or 3rd button from the right side. Also note the following:

Blinking insertion point on the timeline
  seeking/positioning was the last operation.
Solid non-blinking insertion point on timeline
  playing was the last operation.

###
Example and explanation

1. open a small example of 10 numbered frames (or use the Title plugin to add a timestamp)
2. press "f" to fit the timeline
3. make sure settings → align_cursor_on_frames is set
4. seek to frame 4 by clicking on the timeline at position 4, compositor shows the 5th frame, since the media counts from 1 and the timeline counts from 0. This is correct behavior.
5. press KP1 to play next frame. According to playback strategy: When play is forwards, the next unit is displayed, and the position is advanced one unit. So the next frame is 4, (shows the 5th frame) it is displayed. The position is advanced from 4 to 5. This is correct behavior.
6. press KP4 to play the previous frame. According to playback strategy: When play is in reverse, the previous unit is displayed, and the position is reduced one unit. So the previous frame is 4, (shows the 5th frame) it is displayed. The position is reduced from 5 to 4. This is correct behavior.

If you watch the zoombar (bottom of main window) position, it shows the current position is just before the next frame to be displayed when going forwards, and just after the frame to be displayed when going backward.

To recap, position is usually set in the program as a location that is between a previous and next frame/sample unit such that the next unit equals the seek target. After position is reset using a seek operation, the next unit is displayed, which is the seek target. When play is forward, the next unit is shown, and the position is advanced one unit. When play is in reverse, the previous unit is shown, and the position is reduced one unit. At the beginning, there is no previous, and at the end, there is no next, but silence is rendered at the end.