VidCoder icon indicating copy to clipboard operation
VidCoder copied to clipboard

VidCoder 6.xx no longer supports libdvdcss.lib for decoding DVDs

Open startfree0 opened this issue 4 years ago • 9 comments

Problem Description

Noticed that since VidCoder is based on Handbrake core, it has supported libdvdcss.lib for decoding DVDs until release versions of 6.xx. The last Beta version of VidCoder which supports libdvdcss.lib is 6.33. I know that VidCoder always says that they do not decrypt DVDs, but has done so using libdvdcss.lib until version 6.xx was released. Is this a bug or is libdvdcss.lib support disabled stating with version 6.xx or since Handbrake continues to support this lib will VidCoder fix this in the future. Just wondering. Thanks for your attention to this matter.

What version of VidCoder are you running?

6.43

Encode Log

No response

startfree0 avatar Nov 21 '21 20:11 startfree0

I didn't change anything major in 6.34, but that version did include an update to hb.dll . I've never done anything to explicitly support or block libdvdcss.lib .

I tested putting libdvdcss-2.dll from https://github.com/allienx/libdvdcss-dll in the VidCoder install directory and it seemed to work just fine.

RandomEngy avatar Nov 25 '21 22:11 RandomEngy

Sorry to say, but I ran some more tests and all versions higher than 6.33 failed, even 7.xx Beta. Might be my setup/hardware/OS... It works fine with latest Handbrake. I guess I can always go back to using Handbrake's inferior UI, Thanks anyway.

BTW, have you ever considered doing a Linux version of VidCoder? Handbtake has one....... just asking.

startfree0 avatar Nov 26 '21 01:11 startfree0

Two things to check:

  1. Are you using the x64 version of libdvdcss-2.dll from the source I linked?
  2. Are you sure you are putting the DLL in the right folder?

It's just odd that the DLL is working for me, and also that HandBrake and VidCoder are behaving differently for you when it is literally the same compiled code that is driving both.

There are also paid options to remove DRM that you can try out.

RandomEngy avatar Nov 26 '21 17:11 RandomEngy

As for the Linux version, I have considered it but decided against it as it would take more time than I have available. I've tried to convince the HandBrake team to adopt some of the interface improvements in VidCoder but they have been hostile to any kind of change.

RandomEngy avatar Nov 26 '21 17:11 RandomEngy

OK, understand your frustration with Handbrake folks regarding their UI. Have been using the correct libdvdcss-2.dll from Videolan github, and used the correct folder. BTW, I'm not a fan of your decision to change the "portable" version of VidCoder 6.xx to include .NET 5 runtime libs, to make it truly "portable". I prefer portable apps only to avoid installing them, as I already have .Net 5 & 6 installed on my machine. The 6.xx "portable" version literally acts as a "sandbox" in that it is self contained and does not look outside the package for any resources. That includes libdvdcss-2. I got around this by unpacking the "portable" 6.xx file to a folder (with 7-Zip), add the libdvdcss-2.lib file, and then it sees it, as confirmed by the 6.33 portable version I tested. VidCoder is not my primary ripping tool, so no great loss. If you prefer to carry this conversation offline, I can get into more detail than this forum cares about. Let me know.

startfree0 avatar Nov 26 '21 18:11 startfree0

As regards the Linux version, I only mentioned it because there is a different method those folks use for decrypting, which does not involve libdvdcss-2. We can discuss this offline if you prefer, as this is a bit off topic.

startfree0 avatar Nov 26 '21 18:11 startfree0

Was libdvdcss not working for the installer version as well for you? Ideally if HandBrake has some setting that's letting it work for them but not for VidCoder we could find it and tweak it. We are both WPF apps P-invoking into the same hb.dll.

As far as the portable version, I made the change to self-contained with the primary use case being portable: being able to run anywhere off of a USB stick. That's something that people have groused about before.

I'm not actually sure what the advantage is to the portable version if you're just using your home computer. I guess you skip the installer steps? But that doesn't take very long. The installer will also boot faster than the portable version because it doesn't have to extract all the binaries on the fly.

BTW not worried about off-topic conversation; I'm really the only person following all the issues.

RandomEngy avatar Nov 26 '21 19:11 RandomEngy

I knew you would ask about testing with the installer version, and yes, it failed for any installer version > 6.33. I prefer portable apps over installer apps because I can pick and choose where to put the files, and not worry about an installer spreading files all over my computer. Also, there are stories of files being left behind when uninstalling them. Best part of portable apps is that can have many different versions of same app on my machine, where installer apps remove previous version before installing a new version. Makes for easier side by side testing. I have always run your 6.xx "portable" apps by unpacking them first to a folder, (to use/see libdvdcss-2) and eliminate the wait for extracting on the fly.

I did notice one difference with Handbrake in the "Options --> Advanced --> Enable LibDVDNav" menu item. The description is different and may or may not work opposite of Handbrake. Not sure if this is cosmetic or not.

startfree0 avatar Nov 26 '21 20:11 startfree0

The LibDVDNav option checkbox difference is just cosmetic. We both call the same API but pass in the appropriate value, with LibDVDNav enabled by default.

For the VidCoder installer in particular, all the large files end up in Program Files/VidCoder or Program Files/VidCoder-Beta . Both the installer and portable version store a few temporary files (logs, static image cache) in %appdata%\VidCoder or %appdata%\VidCoder-Beta. The installer will ask you if you want to delete them when uninstalling, but they would get left there if you were using the portable version.

The side-by-side testing is definitely an advantage to the portable approach though.

As for your problem where it doesn't work with certain versions, not sure what to do with that. Normally I might try and figure out which commit in the HandBrake core broke it, but as far as I know they do not keep more than the latest snapshot around.

RandomEngy avatar Nov 27 '21 00:11 RandomEngy