Update player icons
5
.gitignore
vendored
@@ -349,12 +349,11 @@ FodyWeavers.xsd
|
||||
*.webm
|
||||
*.mkv
|
||||
*.av1
|
||||
dav1d.dll
|
||||
packages/
|
||||
lib/
|
||||
include/
|
||||
oss/
|
||||
output.mp4
|
||||
prompt.txt
|
||||
.user
|
||||
build/
|
||||
sample/
|
||||
*.user
|
||||
|
||||
@@ -53,41 +53,30 @@ size_t required_size = frame.width * frame.height * 4;
|
||||
|
||||
---
|
||||
|
||||
## ✅ **현재 작업 완료: Intel VPL AV1 디코더 구현** (2025-09-26)
|
||||
## ✅ **최신 완료 작업: 전체 하드웨어 가속 시스템 구축 완료** (2025-09-26)
|
||||
|
||||
### **완료된 주요 작업**
|
||||
1. **Intel VPL AV1 디코더 구현**: VPLAV1Decoder 클래스 완전 구현
|
||||
2. **VideoDecoderFactory 통합**: VPL 디코더를 팩토리 패턴에 통합
|
||||
3. **하드웨어 가속 지원**: Intel Quick Sync Video 기반 AV1 하드웨어 디코딩
|
||||
4. **Surface 변환 시스템**: VPL mfxFrameSurface1 → VideoFrame 변환 로직
|
||||
5. **에러 처리 강화**: 포괄적인 VPL/MFX 상태 코드 매핑 및 처리
|
||||
6. **가용성 검증**: Intel GPU/CPU 및 VPL 런타임 자동 감지
|
||||
7. **성능 통계**: 프레임별 디코딩 시간 및 에러율 추적
|
||||
8. **설계 문서**: [Intel VPL AV1 Decoder Design Document](Intel_VPL_AV1_Decoder_Design.md) 작성
|
||||
### **완료된 주요 하드웨어 가속 시스템**
|
||||
1. **Intel VPL AV1 디코더**: Intel Quick Sync Video 하드웨어 가속 완전 구현
|
||||
2. **AMD AMF AV1 디코더**: AMD VCN 하드웨어 가속 완전 구현
|
||||
3. **NVIDIA NVDEC AV1 디코더**: NVIDIA GPU 하드웨어 가속 완전 구현
|
||||
4. **자동 하드웨어 감지**: GPU별 최적 디코더 자동 선택 (nvdec → vpl → amf → dav1d)
|
||||
5. **VideoDecoderFactory 완전 통합**: 모든 하드웨어 디코더 통합 및 우선순위 설정
|
||||
6. **범용 Surface 변환**: 각 하드웨어별 Surface → VideoFrame 변환 시스템
|
||||
7. **포괄적 에러 처리**: VPL/AMF/NVDEC 상태 코드 매핑 및 fallback 처리
|
||||
|
||||
---
|
||||
|
||||
## 🎯 **현재 프로젝트 상태 요약 (2025-09-26 업데이트)**
|
||||
|
||||
### ✅ **구현 완료된 주요 컴포넌트**
|
||||
1. **Core Video Infrastructure**: WebMFileReader, AV1Decoder, VideoDecoderFactory ✅
|
||||
2. **Hardware Acceleration**: NVDECAV1Decoder, AMFAV1Decoder, VPLAV1Decoder, CUDA 13.0 통합, AMD AMF 통합, Intel VPL 통합 ✅
|
||||
3. **Adaptive Quality Control**: AdaptiveAV1Decoder, AdaptiveNVDECDecoder 완전 구현 ✅
|
||||
4. **Quality Mode System**: CONSERVATIVE, FAST, ULTRA_FAST 모드 구현 및 최적화 ✅
|
||||
5. **GPU Rendering System**: SimpleGPURenderer, D3D12VideoRenderer 구현 ✅
|
||||
6. **UI Integration**: VideoPlayerControl 단순화 및 WinUI3 통합 ✅
|
||||
7. **Build System**: 모든 프로젝트 빌드 성공 (GUI/Headless/UnitTest) ✅
|
||||
8. **Test Infrastructure**: 47개 Unit Test, Mock 시스템, NVDEC 헤드리스 테스트 구축 ✅
|
||||
9. **Code Quality**: 한글 주석 → 영어 변환, 코딩 가이드라인 준수, VavCore 네임스페이스 통일 ✅
|
||||
10. **Performance Optimization**: 4K AV1 디코딩 27.7fps 달성 (ULTRA_FAST 모드) ✅
|
||||
11. **Project Structure Reorganization**: VavCore_Library_Design.md 구조 완전 적용 ✅
|
||||
12. **Multi Video UI Enhancement**: MultiVideoTestPage → MultiVideoPage 이름 변경 및 기능 완성 ✅
|
||||
13. **User Experience Improvement**: Stop All 버튼 처음부터 재생 기능 구현 ✅
|
||||
14. **VavCore Static Library**: 재사용 가능한 라이브러리 완전 구현 ✅
|
||||
15. **Logging System Architecture**: 플랫폼 독립적 Observer 패턴 기반 로깅 시스템 ✅
|
||||
16. **Complete Dark Theme UI**: 전역 다크 테마, 타이틀바, 모든 페이지 다크 모드, UX 개선 완료 ✅
|
||||
17. **Code Architecture Cleanup**: IAdaptiveVideoDecoder 인터페이스 정리, AdaptiveTypes.h 분리 ✅
|
||||
18. **AMD AMF AV1 Decoder**: AMD GPU 하드웨어 가속 AV1 디코더 완전 구현 ✅
|
||||
1. **전체 하드웨어 가속 시스템**: NVIDIA NVDEC, Intel VPL, AMD AMF AV1 디코더 완전 구현 ✅
|
||||
2. **자동 최적화 시스템**: GPU 감지 및 최적 디코더 자동 선택 (nvdec → vpl → amf → dav1d) ✅
|
||||
3. **Core Video Infrastructure**: WebMFileReader, VideoDecoderFactory, Surface 변환 시스템 ✅
|
||||
4. **Adaptive Quality Control**: AdaptiveAV1Decoder, AdaptiveNVDECDecoder, 동적 품질 조정 ✅
|
||||
5. **GPU Rendering System**: D3D12VideoRenderer, YUV→RGB 변환, AspectFit 렌더링 ✅
|
||||
6. **VavCore Static Library**: 재사용 가능한 독립 라이브러리 구조 ✅
|
||||
7. **UI Integration**: VideoPlayerControl, MultiVideoPage, 다크 테마 완전 구현 ✅
|
||||
8. **Build & Test System**: 전 프로젝트 빌드 성공, 47개 Unit Test, 헤드리스 테스트 ✅
|
||||
|
||||
### 📋 **완료된 설계 및 구현 (참조용)**
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 432 B After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 207 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 637 B After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 283 B After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 456 B After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 52 KiB |
@@ -1,10 +1,3 @@
|
||||
android player 를 만들어서 av1 디코딩 테스트 필요.
|
||||
|
||||
|
||||
|
||||
모든 작업이 끝났으면 Vav2Player 의 Setting 화면에 Decoder 를 명시적으로 지정해주는 UI 를 추가해줘.
|
||||
|
||||
|
||||
|
||||
현재 "개방-폐쇄 원칙(Open-Closed Principle)"과 문제를 겪고 있다.
|
||||
이 때문에, VideoDecoderFactory 클래스가 새로운 구현체(implementor)가 추가될 때마다 헤더파일에서의 빌드 충돌 문제가 발생하고 있고,
|
||||
@@ -17,20 +10,6 @@ android player 를 만들어서 av1 디코딩 테스트 필요.
|
||||
|
||||
|
||||
|
||||
CLAUDE.md 파일을 확인하여 현재 작업 상황을 점검하고 완료된 항목들을 업데이트해줘.
|
||||
완료된 사항만 간단하게 적어주고, 불필요한 정보들은 최대한 줄여줘.
|
||||
|
||||
|
||||
VavCoreVideoFrame 에는 color_space 변수가 없다. 차후에 이것을 사용할 기능이 들어가게 될까?
|
||||
|
||||
|
||||
Intel VPL 라이브러리 빌드가 완료되었으므로, 이제 다음 단계로 진행할 수 있습니다:
|
||||
|
||||
1. Intel VPL AV1 디코더 구현 - 설계 문서 기반으로 VPLAV1Decoder 클래스 구현
|
||||
2. VideoDecoderFactory 통합 - VPL 디코더를 팩토리에 추가
|
||||
3. VavCore 프로젝트 설정 - Intel VPL 라이브러리 링크 설정
|
||||
|
||||
|
||||
📱 WinUI 3 아이콘 파일 가이드
|
||||
|
||||
주요 아이콘들:
|
||||
@@ -43,6 +22,7 @@ VavCoreVideoFrame 에는 color_space 변수가 없다. 차후에 이것을 사
|
||||
- LockScreenLogo.scale-200.png (48x48) - 잠금화면 알림
|
||||
|
||||
|
||||
|
||||
----------
|
||||
libvpl 을 빌드하여, Debug 는 postfix 에 -debug 를 붙여서, dll 라이브러리를 만들어줘.
|
||||
헤더파일은 D:\Project\video-av1\include\libvpl 경로에.
|
||||
|
||||
33
vav2/todo8.txt
Normal file
@@ -0,0 +1,33 @@
|
||||
android player 를 만들어서 av1 디코딩 테스트 필요.
|
||||
|
||||
|
||||
모든 작업이 끝났으면 Vav2Player 의 Setting 화면에 Decoder 를 명시적으로 지정해주는 UI 를 추가해줘.
|
||||
|
||||
|
||||
CLAUDE.md 파일을 확인하여 현재 작업 상황을 점검하고 완료된 항목들을 업데이트해줘.
|
||||
완료된 사항만 간단하게 적어주고, 불필요한 정보들은 최대한 줄여줘.
|
||||
|
||||
|
||||
VavCoreVideoFrame 에는 color_space 변수가 없다. 차후에 이것을 사용할 기능이 들어가게 될까?
|
||||
|
||||
|
||||
VavCoreVideoFrame 에는 현재 cpu data 만 제공하고 있다.
|
||||
dx3d surface 에 직접 av1 프레임을 디코딩해주는 SDK 도 있다.
|
||||
각 프레임을 요청할 때, dx3d surface 인자를 제공해주면, surface 에 직접 프레임을 그려줄 수 있는지 조사해서 검토해봐줘.
|
||||
|
||||
AMF
|
||||
* header: D:\Project\video-av1\include\amf
|
||||
* doc: https://github.com/GPUOpen-LibrariesAndSDKs/AMF/blob/master/amf/doc/AMF_Video_Decode_API.md
|
||||
|
||||
dav1d
|
||||
* header: D:\Project\video-av1\include\dav1d
|
||||
* source: https://code.videolan.org/videolan/dav1d
|
||||
|
||||
libvpl
|
||||
* header: D:\Project\video-av1\include\libvpl
|
||||
* doc: https://intel.github.io/libvpl/latest/API_ref/VPL_func_vid_decode.html#func-video-decode
|
||||
|
||||
nvdec
|
||||
* header: D:\Project\video-av1\oss\nvidia-video-codec\Interface
|
||||
* doc: https://docs.nvidia.com/video-technologies/video-codec-sdk/13.0/nvdec-video-decoder-api-prog-guide/index.html
|
||||
|
||||