This project has moved. For the latest updates, please go here.

Disable check for hardware encoding

Jun 22, 2014 at 9:24 PM

Firstly let me say thank you for a truly useful piece of software. I've been a long-time user of MCEBuddy and it just keeps getting better and better.

After a long period of neglect I decided it was time to upgrade from 2.0.<something> to the latest donator release 2.3.15. I didn't want to disrupt the ongoing setup on my HTPC until I was comfortable I had the new SW running how I wanted it, so I first installed on another Windows7 machine. I have that machine working great with my preferred Handbrake-based profile which uses custom commands to load the converted file into iTunes on a mac.

I then migrated this to the HTPC and duplicated everything including the profile & mcebuddy.ini files, pointed the jobs to the right folders and away it went - until Handbrake crashed.

Here's the relevant section in the 'staging' (working) environment's log:

2014-06-21T22:44:56 MCEBuddy.AppWrapper.Handbrake --> HandBrake svn6167 (2014041701) - MinGW x86_64 -
2014-06-21T22:44:56 MCEBuddy.AppWrapper.Handbrake --> 4 CPUs detected
2014-06-21T22:44:56 MCEBuddy.AppWrapper.Handbrake --> Opening null...
2014-06-21T22:44:56 MCEBuddy.AppWrapper.Handbrake --> [22:44:56] CPU: Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz
2014-06-21T22:44:56 MCEBuddy.AppWrapper.Handbrake --> [22:44:56] - logical processor count: 4
2014-06-21T22:44:56 MCEBuddy.AppWrapper.Handbrake --> [22:44:56] OpenCL device #1: NVIDIA Corporation GeForce GTX 460
2014-06-21T22:44:56 MCEBuddy.AppWrapper.Handbrake --> [22:44:56] - OpenCL version: 1.1 CUDA
2014-06-21T22:44:56 MCEBuddy.AppWrapper.Handbrake --> [22:44:56] - driver version: 335.23
2014-06-21T22:44:56 MCEBuddy.AppWrapper.Handbrake --> [22:44:56] - device type: GPU
2014-06-21T22:44:56 MCEBuddy.AppWrapper.Handbrake --> [22:44:56] - supported: no
2014-06-21T22:44:56 MCEBuddy.AppWrapper.Handbrake --> [22:44:56] Intel Quick Sync Video support: no
2014-06-21T22:44:56 MCEBuddy.AppWrapper.Handbrake --> [22:44:56] hb_scan: path=null, title_index=1

You can see that it sees a GPU with v1.1 OpenCL and a CPU with no support of Intel Quick Sync. All proceeds as expected with SW-only encoding.

On the HTPC with the same input file, the log is quite different:

2014-06-21T22:07:19 MCEBuddy.AppWrapper.Handbrake --> HandBrake svn6167 (2014041701) - MinGW x86_64 -
2014-06-21T22:07:19 MCEBuddy.AppWrapper.Handbrake --> 2 CPUs detected
2014-06-21T22:07:19 MCEBuddy.AppWrapper.Handbrake --> Opening E:\MCEBuddy_tmp\working0\Movie- Star Trek- First Contact_ELEVEN_2014_06_21_21_58_03.ts...
2014-06-21T22:07:19 MCEBuddy.AppWrapper.Handbrake --> [22:07:19] CPU: Intel(R) Core(TM)2 CPU 6320 @ 1.86GHz
2014-06-21T22:07:19 MCEBuddy.AppWrapper.Handbrake --> [22:07:19] - logical processor count: 2
ERROR> 2014-06-21T22:07:22 MCEBuddy.Transcode.ConvertWithHandbrake --> Handbrake conversion failed
2014-06-21T22:07:22 MCEBuddy.Transcode.ConvertWithHandbrake --> Conversion: Percentage Complete 0
ERROR> 2014-06-21T22:07:22 MCEBuddy.Transcode.ConvertWithHandbrake --> Conversion of video failed
ERROR> 2014-06-21T22:07:22 MCEBuddy.Transcode.Convert --> Handbrake did not convert successfully, using fallback if configured
ERROR> 2014-06-21T22:07:22 MCEBuddy.Transcode.Convert --> Unable to convert file Movie- Star Trek- First Contact_ELEVEN_2014_06_21_21_58_03.ts using profile M4V Apple Normal MJH

You can see that as soon as it identifies my CPU it exits. The windows Event Viewer sheds some light:

Faulting application name: HandBrakeCLI.exe, version:, time stamp: 0x534f31ee
Faulting module name: amdocl64.dll, version: 10.0.1084.4, time stamp: 0x50d22720
Exception code: 0xc0000005
Fault offset: 0x0000000000062e07
Faulting process id: 0xecc
Faulting application start time: 0x01cf8d501dbf5819
Faulting application path: C:\Program Files\MCEBuddy2x\handbrake\HandBrakeCLI.exe
Faulting module path: C:\Windows\system32\amdocl64.dll

amdocl64.dll is provided by AMD as part of the drivers for my AMD graphics card in the HTPC. This is the key difference with the staging PC which has an nVidia card. I didn't expect any Hardware encoding for either machine, but it seems that if Handbrake checks for OpenCL support on the HTPC, the AMD graphics drivers cause it to crash.

I tried un-ticking the 'Hardware Encoding' setting in MCEBuddy, but no change. On the HTPC, Handbrake dies at the same point. On the Staging PC the log is still exactly the same and it still checks for OpenCL support.

I know this is an AMD bug, and MCEBuddy is not in control of whether Handbrake checks for OpenCL support or not, but I couldn't find any options in the Handbrake docs about this. Is there any way to truly disable hardware encoding AND the check for OpenCL support?
Jun 23, 2014 at 2:18 AM
Unfortunately no. The basic check will happen when handbrake starts. Here are your options

1. Update the Drivers (best option)
2. Download the latest nightly build of handbrake cli and replace it in the handbrake folder
3. Download handbrake 0.9.9 and use the CLI version (no hardware).

I would also highly recommend that you report the issue to the handbrake devs. They may want to fix the crash if possible for future builds.

Marked as answer by rboy1 on 6/27/2014 at 10:14 AM