Files
video-v1/vav2/notes/todo7.txt
2025-10-12 02:04:54 +09:00

55 lines
2.9 KiB
Plaintext

현재 "개방-폐쇄 원칙(Open-Closed Principle)"과 문제를 겪고 있다.
이 때문에, VideoDecoderFactory 클래스가 새로운 구현체(implementor)가 추가될 때마다 헤더파일에서의 빌드 충돌 문제가 발생하고 있고,
이를 해결하기 위해 pimp 패턴으로 수정되어야 하는 것은 바람직하지 않습니다.
PIMPL 구현 없이도 이 문제를 아주 멋지게 해결할 수 있는 방법이 있습니다. 바로 등록 기반 팩토리 패턴 (Registration-Based Factory Pattern) 입니다.
"플러그인 패턴"이라고도 불립니다.
이 방식을 기반으로 VideoDecoderFactory 를 리팩토링하고자 하고 있고, 일단 기본 설계를 해서 md 파일로 저장해줘.
📱 WinUI 3 아이콘 파일 가이드
주요 아이콘들:
- Square44x44Logo.scale-200.png (88x88) - 앱 아이콘 (작업표시줄, 시작메뉴)
- Square44x44Logo.targetsize-24_altform-unplated.png (24x24) - 작은 앱 아이콘
- Square150x150Logo.scale-200.png (300x300) - 타일 아이콘 (시작메뉴 타일)
- Wide310x150Logo.scale-200.png (620x300) - 와이드 타일
- StoreLogo.png (50x50) - 스토어 로고
- SplashScreen.scale-200.png (1240x600) - 시작화면
- LockScreenLogo.scale-200.png (48x48) - 잠금화면 알림
----------
libvpl 을 빌드하여, Debug 는 postfix 에 -debug 를 붙여서, dll 라이브러리를 만들어줘.
헤더파일은 D:\Project\video-av1\include\libvpl 경로에.
라이브러리 파일은 D:\Project\video-av1\lib\libvpl 경로에 각각 빌드해줘.
Debug, Release 모두 빌드해줘.
그리고 빌드 스크립트로 D:\Project\video-av1\build_libvpl.bat 를 작성해줘.
AMF 빌드하여, Debug 는 postfix 에 -debug 를 붙여서, dll 라이브러리를 만들어줘.
헤더파일은 D:\Project\video-av1\include\amf 경로에.
라이브러리 파일은 D:\Project\video-av1\lib\amf 경로에 각각 빌드해줘.
Debug, Release 모두 빌드해줘.
그리고 빌드 스크립트로 D:\Project\video-av1\build_amf.bat 를 작성해줘.
마찬가지로 build 디렉토리를 만들고 거기서 적절한 빌드 환경 파일을 만들어야 할꺼야.
참고로, AMF 는 빌드 환경 코드가 같이 배포되지 않았다.
build_amf.bat 에서 이를 감안하고 스크립트를 작성해야할 것이다.
VavCore 에 "AMF 를 이용하여 av1 디코더 구현" 를 구현하자.
헤더: D:\Project\video-av1\include\amf
라이브러리: D:\Project\video-av1\lib\amf
문서: https://github.com/GPUOpen-LibrariesAndSDKs/AMF/blob/master/amf/doc/AMF_Video_Decode_API.md
VavCore 에 "Intel VPL 를 이용하여 av1 디코더 구현" 를 구현하자.
헤더: D:\Project\video-av1\include\libvpl
라이브러리: D:\Project\video-av1\lib\libvpl
문서: https://intel.github.io/libvpl/latest/API_ref/VPL_func_vid_decode.html#func-video-decode
디코더 설계문서: vav2/Intel_VPL_AV1_Decoder_Design.md