#include "code/muxer/muxer_file_muxer.h" #include "code/base/logger.h" #include using namespace av::muxer; using namespace av; int main() { // 初始化日志 Logger::instance().setLevel(LogLevel::DEBUG); std::cout << "测试 FileMuxer 初始化修复..." << std::endl; try { // 创建文件复用器 FileMuxer muxer; // 测试1: 使用正确的 FileMuxerParams std::cout << "\n=== 测试1: 正确的 FileMuxerParams ===" << std::endl; FileMuxerParams correctParams; correctParams.type = MuxerType::FILE_MUXER; correctParams.outputPath = "./test_output.mp4"; correctParams.outputFile = "./test_output.mp4"; correctParams.format = "mp4"; correctParams.overwrite = true; ErrorCode result = muxer.initialize(correctParams); if (result == ErrorCode::SUCCESS) { std::cout << "✓ 正确参数初始化成功!" << std::endl; } else { std::cout << "✗ 正确参数初始化失败,错误码: " << static_cast(result) << std::endl; } muxer.close(); // 测试2: 使用错误类型的 MuxerParams(基类) std::cout << "\n=== 测试2: 错误的 MuxerParams 类型 ===" << std::endl; MuxerParams wrongParams; wrongParams.type = MuxerType::FILE_MUXER; // 类型正确但实际是基类 wrongParams.outputPath = "./test_output2.mp4"; FileMuxer muxer2; result = muxer2.initialize(wrongParams); if (result != ErrorCode::SUCCESS) { std::cout << "✓ 错误参数类型被正确拒绝,错误码: " << static_cast(result) << std::endl; } else { std::cout << "✗ 错误参数类型未被拒绝!" << std::endl; } // 测试3: 空输出路径 std::cout << "\n=== 测试3: 空输出路径 ===" << std::endl; FileMuxerParams emptyPathParams; emptyPathParams.type = MuxerType::FILE_MUXER; emptyPathParams.outputPath = ""; // 空路径 emptyPathParams.outputFile = ""; // 空文件 FileMuxer muxer3; result = muxer3.initialize(emptyPathParams); if (result != ErrorCode::SUCCESS) { std::cout << "✓ 空路径参数被正确拒绝,错误码: " << static_cast(result) << std::endl; } else { std::cout << "✗ 空路径参数未被拒绝!" << std::endl; } // 测试4: 错误的复用器类型 std::cout << "\n=== 测试4: 错误的复用器类型 ===" << std::endl; FileMuxerParams wrongTypeParams; wrongTypeParams.type = MuxerType::STREAM_MUXER; // 错误的类型 wrongTypeParams.outputPath = "./test_output4.mp4"; FileMuxer muxer4; result = muxer4.initialize(wrongTypeParams); if (result != ErrorCode::SUCCESS) { std::cout << "✓ 错误复用器类型被正确拒绝,错误码: " << static_cast(result) << std::endl; } else { std::cout << "✗ 错误复用器类型未被拒绝!" << std::endl; } } catch (const std::exception& e) { std::cout << "✗ 异常: " << e.what() << std::endl; return 1; } std::cout << "\n测试完成!" << std::endl; return 0; }