Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement live queueing strategy and callbacks system (#111)
* Add offline queue element. Change `new-compositor` scene to old API. Remove scene related modules * Add updating stream format, scene and sending buffer test. Fix queue element * Fix recursive frames poping * Fix droping pads * Add queue tests, fix and refactor events poping, actions, pads removing and logic separation * Add update scene events handling * Add update scene events handling test * Add docs * Add `CompositorCoreFormat` docs * Renamed queue output from `:compositor_core` to `:output` * Fix EOS action * Fix readability * Add module for queue contracts * Fix `calculate_next_buffer_pts` readability * Fix EOS handling add EOS test * Fix lint * Adjust core VC to the new input format from the queue. * Change setting video. Update `VC Core`, `VC bin`, add `Offline Queue bin`, update tests * Naming fixes * Fix scene notification event and rust decoding * Fix tests * Fix dirty scheduling * Add docs * Use `Map.new` instead of Map -> Enum -> Map conversions * Remove `wgpu_test` - covered in E2E tests * Fix `pad_ref` offline queue pad refs handling * Fix `handle_pad_removed` * Fix plural variables naming * Move queue spawing logic to seperate module * Fix queue bin spawning * Fix custom queue strategies states handling * Moved putting events to state * Remove unused alias * Wrap scene update in `SceneChangeEvent` * Remove EOS handling from Rust * Add core `handle_process` scene presence check * Remove `current` prefixes from `state` fields * Remove `different_video_indexes` check. Scene doesn't have to contain all input pads refs * Add scene validation * Fix scene validation. The scene doesn't have to specify all input pads * Add scene docs * Fix scene validation * Fix child removing * Change VC modules structure * Add empty video_configs check * Change scene validation in `handle_process` to more descriptive * Fix setting videos in VC core * Fix scene validation * Implement live queueing strategy * Fix lint * Move creating actions to State module * Design VC callbacks * Fix `handle_init` ctx typespec * Add init metadata. Refine docs * Fix lint * Add matadata to VC `init_options` * Move updating next buffer pts into state. Add live queue :start_timer message notification * Add start timer check * Fix naming ambiguity. Add `handle_info` callback * Implement callbacks system. Moved pipeline to test. TODO: refactor queues, rewrite tests * Move queues common logic into state * Moved `transformations test` handler into a separate module * Rewrite pipeline integration test * Create common test handler * Remove `pad_added` event. Fix eos pads dropping * Add custom messages handling to offline queue * Add custom msg handling to live queue * Separate handler state * Refactor init options passing * Fix user messages handling * Change demand mode of live queue to auto * Fix live queue output flow control * Fix handle_tick nearest index calculation * Fix `:no_frame` filtering in live queue * Fix timer_started check in live queue * Fix timer_started? check * Add eos handling to live queue * Fixed eos pads dropping * Fix live queue eos * Fix pads_states dropping, add sending black frame on empty live queue * Refine docs * Refine queueing strategies docs * Add live queue tests * Add `sends stream format and scene only once` test * Add `vc_init_options` description * Fix test and typos * Restructure modules * Fix structure. Fix tests. Fix typos
- Loading branch information