fengalin/media-toc

Refactor PlaybackPipeline states

fengalin opened this issue · 1 comments

PlaybackPipeline state handling could be enhanced:

  • Playing and Paused are set as variants of Initialized when they could use their own state.
  • Some workflows are currently handled by MainController when they should probably take place in PlaybackPipeline. E.g.: TwoStepsSeek and the post_seek state. PlaybackPipeline could notify the UI with its internal state instead of the two state machines updating individually.
  • In EOS, the PlaybackPipeline sets the dbl_audio_buffer to Paused. Even if this behaviour seems sufficient currently, it should be worth passing EOS and updating the WaveformBuffer to use this instead of using a state from the AudioBuffer.

DblAudioBuffer and SampleExtractor both use gst::State which doesn't include EOS, so let's just use Playing and Paused for now.