AkarinVS / L-SMASH-Works

Works based on L-SMASH project; This repo focuses on the common portion and the VapourSynth plugin. AviSynth users please use https://github.com/HomeOfAviSynthPlusEvolution/L-SMASH-Works. ffmpeg 5.0+ please use ffmpeg-4.5 branch.
47 stars 11 forks source link

DNX120 Decoding is broken #3

Closed kedaitinh12 closed 3 years ago

kedaitinh12 commented 3 years ago

I seen new issues after HolyWu archived repository here: https://forum.doom9.org/showthread.php?p=1943308#post1943308

Please can you fix it???

AkarinVS commented 3 years ago

Thanks for reporting this. I'm not familiar with DNX120.

I will see what the ffms2 developers come up with their https://github.com/FFMS/ffms2/issues/384 and then perhaps I can incorporate it here. Also the corresponding ffmpeg issue: https://trac.ffmpeg.org/ticket/9255.

Perhaps upstream ffmpeg will fix this issue and we just need to wait for the next release.

kedaitinh12 commented 3 years ago

Thanks, can you update for avisynth too??

AkarinVS commented 3 years ago

Yes, I will release a new AviSynth version when/if this is fixed.

kedaitinh12 commented 3 years ago

Wow, thanks very much

FranceBB commented 3 years ago

Great! On the other hand, nobody replied to me in the ffmpeg bugtracker any longer, so... shall we try to storm it up a little bit? I mean, get more people from Doom9 to here https://trac.ffmpeg.org/ticket/9255 trying to get them to fix it?

FranceBB commented 3 years ago

Besides, it's not just that one, also this one is a bug: https://forum.doom9.org/showthread.php?s=99240aeff3923b4183491c781f9014e2&p=1942428

and I opened the relative FFMpeg bug in their tracker, but again, no reply from them whatsoever: https://trac.ffmpeg.org/ticket/9219

however in this case I provided a working solution for FFMpeg that can be used by users, therefore I would suggest to implement the logic (if possible) in LWLibavAudioSource() to detect if it's an IPCM and not a standard PCM and append the relative codec info before calling the decoder, namely: -c:a pcm_s24be

Is something like this doable in the LSMASH Source code?

kedaitinh12 commented 3 years ago

@AkarinVS I seen you updated for avisynth. Thanks but you can update for x86 too?? Cause in avisynth many people still use x86 ver

AkarinVS commented 3 years ago

@kedaitinh12 I've built a 32-bit avisynth version from the master branch for release vA.3b, please help test if it's working properly (of course, this particular issue #3 is not yet fixed and I just wanted to make sure that I can build working AviSynth+ plugins). https://github.com/AkarinVS/L-SMASH-Works/releases/download/vA.3b/release-i686-avisynth.zip

Thanks!

kedaitinh12 commented 3 years ago

Ok, i will test

kedaitinh12 commented 3 years ago

I am getting this error message: "Script error: There is no function named 'LWLibavVideoSource'"

qyot27 commented 3 years ago

For C++ plugins to work in the standard builds of AviSynth+, you have to use the MSVC solution (or at least point meson at cl.exe and such).

The meson file in the AviSynth directory is for Linux, macOS, etc., where there aren't competing C++ compilers with incompatible name mangling and such.

It would (and does) work if AviSynth+ was built with GCC, like this test build I'd provided a couple years ago: https://www.mediafire.com/file/s88qcoqcp108a0a/avisynth%252B-gcc_r2831-g316b54aa-20190321.7z/file

But g++-built AviSynth+ can't load MSVC-built C++ plugins, just like MSVC-built AviSynth+ can't load g++-built plugins.

AkarinVS commented 3 years ago

Guess it's time to switch to msvc for building... The x64 abi should be pretty much compatible, but i686 abi differs a lot.

realfinder commented 3 years ago

or just use c api of AviSynth/AviSynth+ same as https://github.com/Asd-g/AviSynth-VMAF/commit/5c1a5e08fc6c8979dd3fec2a87c9cac81f082269

AkarinVS commented 3 years ago

As https://github.com/HomeOfAviSynthPlusEvolution/L-SMASH-Works/ has just released a new version with AVS support and cherry-picks all (?) my commits, I think AVS users could just follow their releases. That being said, if/when this is fixed, I will apply the fix to this repository and their repo should pick it up soon (if they haven't beaten me to it.) Now the chance of getting this fixed is doubled. ;-)

kedaitinh12 commented 3 years ago

Asd-g now fixed for DNXHD https://github.com/HomeOfAviSynthPlusEvolution/L-SMASH-Works/commit/e5bb1ecb71f0edb5b7632b1013faaed77277e2b4

kedaitinh12 commented 3 years ago

Thanks for your L-SMASH Works updated @AkarinVS

kedaitinh12 commented 3 years ago

And your new commit https://github.com/HomeOfAviSynthPlusEvolution/L-SMASH-Works/commit/d36219a5773b79b83659324a231662f2fa12bef7

Give error in avisynth https://github.com/HomeOfAviSynthPlusEvolution/L-SMASH-Works/issues/6

I don't know if this have same error in vs??

AkarinVS commented 3 years ago

@kedaitinh12 fixed.

AkarinVS commented 3 years ago

This issue is not yet fixed (applying https://github.com/HomeOfAviSynthPlusEvolution/L-SMASH-Works/commit/e5bb1ecb71f0edb5b7632b1013faaed77277e2b4 breaks reading the attached sample files.)

FranceBB commented 3 years ago

Fixed by ASD-G. See here: https://github.com/HomeOfAviSynthPlusEvolution/L-SMASH-Works/commit/e5bb1ecb71f0edb5b7632b1013faaed77277e2b4

AkarinVS commented 3 years ago

Thanks for the reminder. I have applied the FFmpeg patch and it should be picked up in the next release.

kedaitinh12 commented 3 years ago

Thanks