Figure 3.1 Process flow
Figure 3.2 Stream branching
[Note] The same stream must not exist within one branch candidate. This is because opening the same stream with different stream handles does not read data at the same time. The stream opened later is connected to the end of the aperture, so data can be retrieved from the stream opened earlier. Therefore, the same stream as the current one may exist in the branch candidate. 《Example in Figure 3.2》 - The same stream must not be duplicated in bstm6 to bstm8, but it is okay to have the same stream as bstm2.
situation | explanation |
---|---|
Branch playback ends | Branch playback has ended. |
Waiting for branch destination selection | A branch candidate is being read ahead, but the branch destination has not been selected. |
Branch destination decision | The branch destination has been selected from among the branch candidates. |
No branch destination | There are no branch candidates or branch destinations for the current stream. |
Figure 3.3 State transition diagram of branch playback
branch stream | Before branch execution | After branch execution (after switching process) |
---|---|---|
current stream | A | B |
branch destination stream | B | Undecided until next branch destination is selected |
timing | explanation |
---|---|
natural switching | When stream A is finished decoding, switch to stream B, which is the branch destination. |
Forced switch | Even if stream A is in the middle of being decoded, it will forcibly switch to the branch destination stream B. |