247{
248 auto self = std::dynamic_pointer_cast<VideoContainerBuffer>(shared_from_this());
249
254
255 auto texture_proc = std::make_shared<TextureProcessor>();
256 texture_proc->set_streaming_mode(true);
257 texture_proc->set_processing_token(token);
259
261 if (!chain) {
262 chain = std::make_shared<BufferProcessingChain>();
264 }
265 chain->set_preferred_token(token);
266 chain->add_preprocessor(texture_proc, self);
267
269 "VideoContainerBuffer setup_processors: VideoStreamReader as default, "
270 "TextureProcessor as preprocessor");
271}
#define MF_INFO(comp, ctx,...)
void set_texture_processor(const std::shared_ptr< TextureProcessor > &processor)
Allow inherited classes to set the TextureProcessor directly.
std::shared_ptr< Buffers::BufferProcessingChain > get_processing_chain() override
Access the buffer's processing chain.
void set_default_processor(const std::shared_ptr< BufferProcessor > &processor) override
Set the buffer's default processor.
void set_processing_chain(const std::shared_ptr< BufferProcessingChain > &chain, bool force=false) override
Replace the buffer's processing chain.
void enforce_default_processing(bool should_process) override
Controls whether the buffer should use default processing.
std::shared_ptr< Kakshya::StreamContainer > m_container
std::shared_ptr< VideoStreamReader > m_video_reader
@ Init
Engine/subsystem initialization.
@ Buffers
Buffers, Managers, processors and processing chains.
Tendency< A, C > chain(const Tendency< A, B > &first, const Tendency< B, C > &second)
Sequential composition: evaluate first, feed result into second.