H264 QSV encoder with GopRefDist = 1 or 2 issue

H264 QSV encoder with GopRefDist = 1 or 2 issue

Hi,

I try to encode h264 1080i files with your QSV h264 encoder. If I set GopRefDist equal to 1 or 2 I receive a MFX_ERR_DEVICE_FAILED on the SyncOperation() Call . If I try same setting with the SW encoder it works. If I try the QSV encoder with GopRefDist equal to 3 it works.

This bug happens only in HD (1080i30M or 720P50), NTSC works well.

My implementation is based on IntelMedia SDK 2013 R2 with driver 9.18.10.3165 on windows 7 OS.

I attached the 2 log files generated with your tool that show the problem.

Do you know why I receive this error?

Thanks

Karine

9 帖子 / 0 全新
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项

I attache the log files into QSV_GopRefDist.zip file

Hi Karine,

Unfortunately the zip file did not get attached to the post. Can you try to attach it again please.

There are some known driver install issues with the 9.18.10.3165 driver. You may have run into issues related to mismatching Media SDK HW DLL and graphics driver.

If you share the encoder configuration details with us we will try to replicate on our side. It will help us determine if that is the case or if something else is going on.

Regards,
Petter 

Sorry I had some proxy problem. This is the zip file.

附件: 

附件尺寸
下载 qsv-goprefdist.zip26.88 KB

Hi Petter,

We are about to release a new product including your Intel Media h264 encoders (SW and QSV), we are using IntelMediaSDK2013 R2 with the 9.18.10.3165 driver. Regarding your latest comment in this post do you think we use a good combination of driver-library or do you suggest us something better for h264 encoders?

Thanks

Karine

 

 

Hi Karine,

I extracted the parameters you used for encode and VPP from the log you provided and ran a similar workload here locally without issues. I tested with both 3165 and a more recent internal driver.

Looking at the log it seems that you may have encountered the known driver installer issue. For driver 3165, the Media SDK HW DLL should have version number 57405, but your log indicates that the system is using 55492. Non-compatible Media SDK DLL/driver tend to result in weird device type issues, like the one you have encountered.

Could you please try to uninstall the graphics driver completely, and remove the Media SDK DLL (*mfx*) files from ".../Program Files/Intel Media SDK/" folder, then reinstall the driver.

Let us know how it works.

We hope to release an new driver version on Intel.com shortly fixing these installer issues.

Regards,
Petter 

Hi Petter,

I uninstall then reinstall my driver to have the good version of Media SDK DLL/diriver, you now can see in the log that I use the 57405 version but I still repro the MFX_ERR_DEVICE_FAILED on the SyncOperation().

Please see the attached file.

 

Thanks

Karine

附件: 

附件尺寸
下载 intelqsv.log258.36 KB

Hi Karine,

Thanks for reporting the result. I'm surprised to hear that you still encounter the device failure issue.

I did try the same vpp+encoder workload config here yesterday and did not see any issues. I did this by making some slight modifications to the Media SDK tutorial sample from here: http://software.intel.com/en-us/articles/intel-media-sdk-tutorial-simple-6-encode-d3d-vpp-preproc

Could you please try to see if you can replicate the same issue on your machine my making appropriate modifications to that tutorial sample? By doing this we can try to isolate if this is somehow machine dependent or something related to the way your application is using Media SDK and the HW.

Regards,
Petter 

Hi Petter,

I used the simple_6_encode_d3d_vpp_preproc sample app to reproduce the issue and  I found what I do wrong.

The problem was in the allocation surface, see following code if you want to repro:

if( EncRequest.NumFrameSuggested < VPPRequest[1].NumFrameSuggested )    

{ memcpy(&(EncRequest), &(VPPRequest[1]), sizeof(mfxFrameAllocRequest)); }  <- this is the problem in my case

// Determine the required number of surfaces for VPP input and for VPP output (encoder input)    

mfxU16 nSurfNumVPPIn = VPPRequest[0].NumFrameSuggested + 1;    

mfxU16 nSurfNumVPPOutEnc = EncRequest.NumFrameSuggested +1;

VPPRequest[0].NumFrameSuggested = nSurfNumVPPIn;    

EncRequest.NumFrameSuggested = nSurfNumVPPOutEnc;

Now I do change my code to do:

mfxU16 nSurfNumVPPOutEnc = EncRequest.NumFrameSuggested + VPPRequest[1].NumFrameSuggested;

And it works.

Thanks for your help.

Karine

发表评论

登录添加评论。还不是成员?立即加入