#pragma once
#include <cstdint>
#include <string>

namespace smartcut::media {
std::string encode_mkv_boundary(const std::string& input, const std::string& output, std::uint64_t first_frame, std::uint64_t end_frame);
std::string validate_mkv_boundary(const std::string& source, const std::string& output, std::uint64_t expected_frames);
std::string hdr10plus_sequence_report(const std::string& input);
std::string dovi_rpu_sequence_report(const std::string& input);
std::string codec_capabilities_report();
std::string join_mkv_video_segments(const std::string& copied, const std::string& replacement, const std::string& output,
                                    std::uint64_t copied_source_first_frame, std::uint64_t replacement_source_first_frame,
                                    bool prefer_first_codec_parameters = false);
std::string validate_mkv_join(const std::string& copied, const std::string& replacement, const std::string& output, std::uint64_t expected_frames);
}
