Files
video-v1/vav2/todo14.txt

34 lines
1.4 KiB
Plaintext

● 좋은 소식입니다! VavCore API를 확인해보니 Seek 기능을 지원합니다:
- vavcore_seek_to_time() (line 211)
- vavcore_seek_to_frame() (line 212)
- vavcore_reset() (line 213)
하지만 실제 구현에서 Seek 기능이 제대로 동작하지 않을 가능성이 있습니다. 더 간단하고 확실한 해결책을 사용해보겠습니다:
vavcore_reset() 함수를 사용하는 것입니다. Reset은 보통 스트림을 처음 위치로 되돌리는 기능이고, Seek보다 안정적으로 구현되어 있을
가능성이 높습니다.
Phase 3: 장기 작업 (AndroidMediaCodecAV1Decoder_Refactoring_Analysis.md:352-365)
- MediaCodecSurfaceManager 분리 (Surface 관리)
- Strategy 패턴 적용 (OpenGL/Vulkan 최적화)
최적의 해결책:
NVDEC (CUDA) → D3D12 Texture (via CUDA-D3D12 Interop) → D3D12VideoRenderer
구현 단계:
1. D3D12 텍스처 생성
2. cuGraphicsD3D12RegisterResource로 D3D12 텍스처를 CUDA에 등록
3. NVDEC 디코딩 후 CUDA device memory에서 D3D12 텍스처로 직접 복사
4. D3D12VideoRenderer로 렌더링
이 방법은 완전한 zero-copy GPU 파이프라인입니다. CPU 메모리를 전혀 거치지 않습니다.
Hardware Decoder 에서 CPU fallback 으로 대응되는 분기 코드가 있을까?
Hardware Decoder 에서 D3D surface rendering path 를 벗어나서 처리되는 예외 상황의 처리 코드가 따로 있을까?