#ifndef ECLIPT_CONFIG_H #define ECLIPT_CONFIG_H #include "Frame.h" #include #include #include #include namespace eclipt { struct DecoderConfig { bool use_hw_acceleration = true; std::string hw_device = "auto"; int thread_count = 0; bool enable_frame_skiping = false; int max_ref_frames = 2; bool low_latency = false; }; struct OutputConfig { PixelFormat preferred_format = PixelFormat::YUV420; bool enable_frame_interpolation = false; int target_fps = 0; int frame_pool_size = 8; bool vsync = true; }; struct StreamConfig { int video_stream_index = -1; int audio_stream_index = -1; int subtitle_stream_index = -1; std::string preferred_language = "eng"; bool strict_stream_selection = false; }; struct PlayerConfig { DecoderConfig decoder; OutputConfig output; StreamConfig stream; int buffer_size_ms = 1000; bool prebuffer = true; }; enum class LogLevel { Debug, Info, Warning, Error }; enum class SeekDirection { Forward, Backward, Absolute }; using LogCallback = std::function; } #endif