MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
VideoFileContainer.hpp
Go to the documentation of this file.
1#pragma once
2
5
6namespace MayaFlux::Kakshya {
7
8/**
9 * @class VideoFileContainer
10 * @brief File-backed video container — semantic marker over VideoStreamContainer.
11 *
12 * All streaming and ring buffer functionality lives in VideoStreamContainer.
13 * VideoFileContainer adds only file-specific convenience: duration query
14 * and deprecated legacy setup/set_raw_data stubs.
15 *
16 * Dimensions:
17 * [0] Time (frames)
18 * [1] SPATIAL_Y (height)
19 * [2] SPATIAL_X (width)
20 * [3] CHANNEL (RGBA = 4)
21 */
22class MAYAFLUX_API VideoFileContainer : public FileContainer, public VideoStreamContainer {
23public:
24 /**
25 * @brief Construct with default parameters.
26 */
28
29 /**
30 * @brief Construct with explicit video parameters.
31 * @param width Frame width in pixels.
32 * @param height Frame height in pixels.
33 * @param channels Colour channels per pixel (default 4).
34 * @param frame_rate Frame rate in fps.
35 */
36 VideoFileContainer(uint32_t width,
37 uint32_t height,
38 uint32_t channels = 4,
39 double frame_rate = 0.0);
40
41 ~VideoFileContainer() override = default;
42
43 /**
44 * @brief Total duration in seconds.
45 */
46 [[nodiscard]] double get_duration_seconds() const;
47};
48
49} // namespace MayaFlux::Kakshya
Marker interface for containers backed by file storage (in-memory only).
File-backed video container — semantic marker over VideoStreamContainer.
Concrete base implementation for streaming video containers.