dav1d를 어떻게든 넣어보려다가 발견하게되어서 질문드립니다.
(1) FFmpeg64.dll
ffmpeg 개발버전에는 dav1d patch가 되어있길래
실험실에 있는 내용에 따라서 FFmpeg64.dll에 dav1d가 들어간 ffmpeg64.dll을 만들어봤습니다.
개발 환경은 msys2에 mingw32-w64 였구요...
약간 헤더가 일치하지 않는 부분이 있긴 한데, 크게 어려운 부분은 없어서 AdditionalFunc.c까지 포함해서 FFmpeg64.dll이 만들어진 것 같긴 했습니다.
(2) ffcodec64.dll ...?
문제는 av1 코덱 파일을 열어도 "여전히" ffmpeg의 libaom 코덱으로 재생된다는 겁니다.
제가 만든 ffmpeg64.dll에는 확실히 libaom 코덱은 없구요.
파일들을 살펴보니, "인스톨러에 같이 포함된" ffcodec64.dll 에 libaom 코덱이 있더군요.
dependency walker로 찍어보니... "ffmpeg의 함수 다수"가 보였구요.
대부분의 함수는 그냥 제가 avfilter와 openh264 코덱 같은걸 추가해서 다시 빌드하면 될... 것 같긴 했지만
(3) GetHWCodec, SetHWFunction
이 두개는 뭐죠? 실험실에는 이 두 함수에 대한 내용을 못 찾았는데 어디서 찾아야 하는거죠?
그보다 중요한건.
왜 ffmpeg에는 포함되지 않은 두 함수가 ffcodec64.dll에 포함되어있는거죠?
LGPL 어디갔습니까?
+ ffcodec64.dll 파일을 제거해도 팟플레이어 동작에는 별 이상은 없더군요. 그나마 다행입니다.
첫댓글 해당 함수는 QuickSync디코더를 활성화 하기 위해서 QuickSync 함수를 설정해 주는 기능 입니다.
FFmpeg에서 QuickSync를 활성화 해줄려면 QuickSync LIB와 링크를 해야 되는데 QuickSync LIB는 VC++용 라이브러리라 GCC와 링크를 할 수 없고, 또한 팟플레이어 내부에 QuisySync.dll이 있어서 이것과 같이 사용할려고 저런식으로 만든것입니다.
즉 해당 함수는 없어도 상관 없습니다.
그리고 dav1d는 이미 다 해봤지만 디코딩이 실패가 나서 동작 자체가 안됨니다.
물론 해보시고 성공 하시면 다시 알려 주시면 팟플레이어 내부에 반영 하도록 하겠습니다.
음.... ffcodec64.dll 빌드 방법도 설명해주시면 좋겠네요...
그런 형태라면 없어도 된다! 기 보단 실험실의 ffmpeg.dll 빌드 방법처럼 추가된 소스는 공개하셔야 되는게 아닌가요?
http://get.daum.net/devel/ffmpeg.zip
입니다~~
다만 옛날꺼라 저 내용이 들어가 있지는 않을거 같기는 한데..
기본은 저기의 내용과 동일 합니다.
libdav코덱을 테스트 해보실려면 만들어진 FFmpeg64.dll을 ffcodec64.dll로 이름을 바꾼뒤에 해당 파일을 덮으 쓰면 만들어진 코덱으로 디코딩을 시도 하므로 해당 방법을 사용해보는것을 추천 합니다.
답변 감사합니다..