#pragma once

#include <cstdint>
#include <string>
#include <vector>

namespace smartcut::media {

struct S337mFrame {
  std::vector<std::uint8_t> carrier_header;
  std::vector<std::uint8_t> decoded_payload;
};

bool is_s337m_path(const std::string& path);
bool parse_s337m_16le(const std::string& path, std::vector<S337mFrame>* frames,
                      std::string* reason = nullptr);
bool write_s337m_16le(const std::vector<S337mFrame>& frames, const std::string& path,
                      std::string* reason = nullptr);
std::uint64_t s337m_payload_hash(const std::vector<S337mFrame>& frames);
std::size_t s337m_payload_bytes(const std::vector<S337mFrame>& frames);

}  // namespace smartcut::media
