Windows project migration to platform/windows
This commit is contained in:
50
vav2/platforms/windows/tests/headless/src/HeadlessDecoder.h
Normal file
50
vav2/platforms/windows/tests/headless/src/HeadlessDecoder.h
Normal file
@@ -0,0 +1,50 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <memory>
|
||||
#include <iostream>
|
||||
#include "../src/FileIO/WebMFileReader.h"
|
||||
#include "../src/Decoder/IVideoDecoder.h"
|
||||
#include "../src/Decoder/VideoDecoderFactory.h"
|
||||
#include "../src/Output/FileOutput.h"
|
||||
|
||||
namespace Vav2Player {
|
||||
|
||||
class HeadlessDecoder {
|
||||
public:
|
||||
HeadlessDecoder();
|
||||
~HeadlessDecoder();
|
||||
|
||||
// 메인 진입점
|
||||
bool ProcessFile(const std::string& input_file_path);
|
||||
|
||||
private:
|
||||
// 초기화
|
||||
bool InitializeComponents();
|
||||
bool OpenWebMFile(const std::string& file_path);
|
||||
bool InitializeDecoder();
|
||||
bool InitializeOutput();
|
||||
|
||||
// 디코딩 프로세스
|
||||
bool ProcessAllFrames();
|
||||
void PrintProgress(uint64_t current_frame, uint64_t total_frames);
|
||||
void PrintSummary();
|
||||
|
||||
// 컴포넌트들
|
||||
std::unique_ptr<WebMFileReader> m_file_reader;
|
||||
std::unique_ptr<IVideoDecoder> m_decoder;
|
||||
std::unique_ptr<FileOutput> m_file_output;
|
||||
|
||||
// 상태 정보
|
||||
std::string m_input_file_path;
|
||||
VideoMetadata m_metadata;
|
||||
uint64_t m_processed_frames = 0;
|
||||
uint64_t m_successful_frames = 0;
|
||||
uint64_t m_failed_frames = 0;
|
||||
bool m_verbose = true;
|
||||
|
||||
// 타이밍
|
||||
std::chrono::high_resolution_clock::time_point m_start_time;
|
||||
};
|
||||
|
||||
} // namespace Vav2Player
|
||||
Reference in New Issue
Block a user