Banuba SDK
realtime_processor_mode.hpp
Go to the documentation of this file.
1 /// \file
2 /// \addtogroup EffectPlayer
3 /// @{
4 ///
5 // AUTOGENERATED FILE - DO NOT MODIFY!
6 // This file was generated by Djinni from effect_player.djinni
7 
8 #pragma once
9 
10 #include <functional>
11 
12 namespace bnb { namespace interfaces {
13 
14 enum class realtime_processor_mode : int {
15  /** Synchronous mode. Frame drop not allowed, `pop` will block on processing. */
16  sync,
17  /**
18  * Synchronous mode when effect loaded. Frame drop not allowed.
19  * During effect loading `push` will forward frames to `pop`, `pop` will return SKIP.
20  * When effect loaded, `pop` will block on processing.
21  */
22  sync_when_effect_loaded,
23  /**
24  * Asynchronous mode. Frame drop is allowed. `push` and `pop` do not block on processing.
25  * `push` can drop frames, if processor busy,
26  * `pop` can return EMPTY, if no processed frame data for now.
27  */
28  async,
29  /**
30  * Asynchronous mode. Frame drop is allowed. `push` and `pop` do not block on processing.
31  * During effect loading `push` will forward frames to `pop`, `pop` will return SKIP.
32  * When effect loaded, `push` can drop frames, if processor busy,
33  * `pop` can return EMPTY, if no processed frame data for now.
34  */
35  async_when_effect_loaded,
36 };
37 
38 } } // namespace bnb::interfaces
39 
40 namespace std {
41 
42 template <>
43 struct hash<::bnb::interfaces::realtime_processor_mode> {
44  size_t operator()(::bnb::interfaces::realtime_processor_mode type) const {
45  return std::hash<int>()(static_cast<int>(type));
46  }
47 };
48 
49 } // namespace std
50 /// @}
51