Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save svagionitis/5453918 to your computer and use it in GitHub Desktop.
Save svagionitis/5453918 to your computer and use it in GitHub Desktop.
Sequence Diagram For Playback a Video File From Disk (Error decoding data) for http://www.websequencediagrams.com/
# Error decoding data
title Sequence Diagram For Playback a Video File From Disk (Error decoding data)
participant "Higher Layer (HTML page, JS)" as HigherLayer
participant "Media Player (Webkit {HTMLMediaElement, MediaPlayer, MediaPlayerPrivate}, Irisplayer)" as MediaPlayer
participant "Video pipeline(Local Disk, Demux, Decoder)" as VideoPipeline
note right of MediaPlayer
networkState: NETWORK_IDLE
readyState: HAVE_ENOUGH_DATA
end note
HigherLayer->MediaPlayer: play()
MediaPlayer->HigherLayer: play
MediaPlayer->HigherLayer: playing
MediaPlayer->VideoPipeline: Check if there are enough data for playback.
alt There are not enough data for playback
note right of MediaPlayer
networkState: NETWORK_LOADING
end note
MediaPlayer->HigherLayer: progress
note right of MediaPlayer
readyState <= HAVE_CURRENT_DATA
end note
MediaPlayer->HigherLayer: waiting
note right of VideoPipeline
1. Media Player reads successfully the file.
2. Some media data were received.
3. Error decoding data.
end note
VideoPipeline->MediaPlayer: Error decoding data.
note right of MediaPlayer
error: MEDIA_ERR_DECODE
end note
MediaPlayer->HigherLayer: error
alt readyState: HAVE_NOTHING
note right of MediaPlayer
networkState: NETWORK_EMPTY
end note
MediaPlayer->HigherLayer: emptied
else readyState > HAVE_NOTHING
note right of MediaPlayer
networkState: NETWORK_IDLE
end note
end
else There are enough data to playback
note right of MediaPlayer
No need to perform any particular action.
end note
VideoPipeline->MediaPlayer: No need to return any data.
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment