Files
video-v1/vav2/todo8.txt

55 lines
2.4 KiB
Plaintext

3개의 비디오 레이어를 두고선 렌더링
✅ 진행중: Android MediaCodec AV1 디코더 구현 완료
✅ 진행중: platforms/android/godot-plugin JNI 브리지 구현 완료
📋 예정: VavCore C API 구현체 작성 (vavcore_* 함수들)
CLAUDE.md 파일을 확인하여 현재 작업 상황을 점검하고 완료된 항목들을 업데이트해줘.
완료된 사항만 간단하게 적어주고, 불필요한 정보들은 최대한 줄여줘.
✅ 해결: VavCore C API에서 SurfaceType enum으로 color space 관련 기능 포함
- CPU, D3D11Texture, VulkanImage, OpenGLTexture 등 다양한 surface 지원
- 크로스 플랫폼 GPU 렌더링 최적화 준비 완료
✅ 완료: vav2/ 경로 하위에 크로스 플랫폼 VavCore 구조 구축 완료
- platforms/android/godot-plugin: Godot 4.4.1 Android 네이티브 플러그인 구현 완료
- godot_extension: VavCore C# wrapper 및 Godot 노드 클래스 구현 완료
- VavCore C API를 28개 함수로 단순화하여 기술부채 최소화
------------
VavCoreVideoFrame 에는 현재 cpu data 만 제공하고 있다.
d3d surface 에 직접 av1 프레임을 디코딩해주는 SDK 도 있다.
만약 d3d surface 에 직접 디코딩과 렌더링까지 해준다면, 성능은 더 올라갈 것이다.
각 프레임을 요청할 때, 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
✅ 완료: VavCore_Godot_Integration_Design.md 작성 완료
- 크로스 플랫폼 아키텍처 설계 문서화
- 디렉토리 구조 및 개발 현황 상세 기록
- API 단순화 철학 반영
------------
✅ 완료: Vav2Player 설정 페이지에 디코더 선택 UI 구현 완료
- VideoDecoderFactory에서 AUTO, NVDEC, VPL, AMF, DAV1D, MEDIA_FOUNDATION 지원
- 설정 변경 시 다음 비디오 재생부터 적용되는 동적 디코더 전환 구현