55 lines
2.9 KiB
Plaintext
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
|