emcodem
11th July 2024, 21:46
Hi,
as users in the FFAStrans Forum requested support for BRAW Files but not ffmpeg neither avisynth supports it currently, i decided to craft an avisynth plugin for it. I'd prefer ffmpeg support but there is no "plugin mechanism" builtin in ffmpeg that allows users to load new readers/decoders without recompiling, so here we go.
https://github.com/emcodem/avisynth_brawsource/releases
@Users: Please try it out and let me know any shortcomings.
It currently supports:
-) Audio and Video
-) 8, 16 or 32 bit (32 with Alpha) Video output (independent of BRAW input format)
-) Full threading support with SetFilterMTMode and Prefetch
-) BMD SDK DLL files (currently shipped with the release zip) must reside in a folder called brawsource_dlls in same folder where brawsource.dll resides
@Developers:
For the last one, i was not sure, how are source plugins supposed to do the threading these days? E.g. i can't really prefetch frames internally because i never know which frame the user wants next, right?
Also i would be very greatful on help for the following topics:
-) does BMD SDK allow redistribution of source code and dll's using their SDK?
-) can i put GPL or similar license on my code parts even when using BMD SDK? License here (https://justpaste.it/fcqrn)
-) more experienced c++ devs might know the idl/midl stuff, the bmd sdk requires building their midl to geht the header files, also they require to import a special header file. I'd love to just add all the generated BMD SDK header files to my project and add them to github so anyone can just clone and build without further thinking but maybe the license does not allow to redistribute parts of the SDK (i really don't know, my english is not good enough for these kind of matters) currently try to #include the bmd sdk files from their install location instead of relative, this forces other dev's to download their own copy of the SDK. How do other projects structure that nicely?
Example usage (mtmode and prefetch are very optional but seem to work and speed up ffmpeg operations a lot):
OPT_AllowFloatAudio = true #prevent avisynth downconverting to 16 bit audio
loadplugin("C:\dev\avs_rawsource\RawSource_2.6x\vs2022\x64\Release\BRawSource.dll")
#SetFilterMTMode ("BrawSource", 1)
BrawSource("C:\temp\Filmplusgear-Helicopter-Ischgl-2019.braw",bits=32)
#Prefetch(8,16)
as users in the FFAStrans Forum requested support for BRAW Files but not ffmpeg neither avisynth supports it currently, i decided to craft an avisynth plugin for it. I'd prefer ffmpeg support but there is no "plugin mechanism" builtin in ffmpeg that allows users to load new readers/decoders without recompiling, so here we go.
https://github.com/emcodem/avisynth_brawsource/releases
@Users: Please try it out and let me know any shortcomings.
It currently supports:
-) Audio and Video
-) 8, 16 or 32 bit (32 with Alpha) Video output (independent of BRAW input format)
-) Full threading support with SetFilterMTMode and Prefetch
-) BMD SDK DLL files (currently shipped with the release zip) must reside in a folder called brawsource_dlls in same folder where brawsource.dll resides
@Developers:
For the last one, i was not sure, how are source plugins supposed to do the threading these days? E.g. i can't really prefetch frames internally because i never know which frame the user wants next, right?
Also i would be very greatful on help for the following topics:
-) does BMD SDK allow redistribution of source code and dll's using their SDK?
-) can i put GPL or similar license on my code parts even when using BMD SDK? License here (https://justpaste.it/fcqrn)
-) more experienced c++ devs might know the idl/midl stuff, the bmd sdk requires building their midl to geht the header files, also they require to import a special header file. I'd love to just add all the generated BMD SDK header files to my project and add them to github so anyone can just clone and build without further thinking but maybe the license does not allow to redistribute parts of the SDK (i really don't know, my english is not good enough for these kind of matters) currently try to #include the bmd sdk files from their install location instead of relative, this forces other dev's to download their own copy of the SDK. How do other projects structure that nicely?
Example usage (mtmode and prefetch are very optional but seem to work and speed up ffmpeg operations a lot):
OPT_AllowFloatAudio = true #prevent avisynth downconverting to 16 bit audio
loadplugin("C:\dev\avs_rawsource\RawSource_2.6x\vs2022\x64\Release\BRawSource.dll")
#SetFilterMTMode ("BrawSource", 1)
BrawSource("C:\temp\Filmplusgear-Helicopter-Ischgl-2019.braw",bits=32)
#Prefetch(8,16)