- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
from a few months, I'm using Intel Quick Sync for my job.
Here is what I do :
- in an application, I vpp + encode some video stream and store in to files
- in another application, I read this file, look for a keyframe and start : decode + vpp the stream and display it
Environment :
- pc1 : Windows 10 / 64 bits / i7-6950X / driver = (nvidia)
- pc2 : Windows 10 / 64 bits / i7-5600U / driver = intel graphics HD 520 v 20.19.15.4483
- pc3 : Windows 7 / 64 bits / i7-5600U / driver = intel graphics HD 5500 v20.19.15.4501
I'm sure my encoded stream is valid since I can decode almost evrywhere (pc1 with impl = auto = software / pc2 with both implementations software and auto=hardware / pc3 with implementation = software). But I can't decode it on the pc3 with implementation = auto = hardware.
The error I get happens when calling MFXVideoDECODE::QueryIOSurf()
mfxInitParam initParam = { 0 }; initParam.Version.Major = 1; initParam.Version.Minor = 0; initParam.Implementation = myImplParam; //I control it and can have AUTO/SOFTWARE/HARDWARE mfxStatus sts; MFXVideoSession hSession; sts = hSession.InitEx(initParam); if (MFX_ERR_NONE != sts) //treat error and exit PrintSessionAndImpl(hSession); MFXVideoDECODE* phDecode = new MFXVideoDECODE(hSession); sts = phDecode->DecodeHeader(&hBitstream, &hVideoParamDecode); if (MFX_WRN_PARTIAL_ACCELERATION == sts) //ignore if (MFX_ERR_NONE > sts) //treat error and exit PrintDecodeParam(hVideoParamDecode); mfxFrameAllocRequest hFrameAllocRequestDecode; memset(&hFrameAllocRequestDecode, 0, sizeof(hFrameAllocRequestDecode)); sts = phDecode->QueryIOSurf(&hVideoParamDecode, &hFrameAllocRequestDecode); PrintFrameAllocRequest(hFrameAllocRequestDecode); if (MFX_WRN_PARTIAL_ACCELERATION == sts) //ignore if (MFX_ERR_NONE != sts) //treat error and exit
My printing functions give me the following results :
session.QueryIMPL() succeeded : impl = 0x302 = HARDWARE | VIA_D3D11
session.QueryVersion() succeeded : version = 1.19
videoParamDecode.mfx.CodecId = AVC
videoParamDecode.mfx.CodecLevel = 22
videoParamDecode.mfx.CodecProfile = 0x64 = 100
videoParamDecode.mfx.DecodedOrder = 0
videoParamDecode.mfx.ExtendedPicStruct = 0
videoParamDecode.mfx.TimeStampCalc = 0
videoParamDecode.mfx.SliceGroupsPresent = 0
videoParamDecode.mfx.MaxDecFrameBuffering = 2
videoParamDecode.mfx.EnableReallocRequest = 0
videoParamDecode.mfx.BRCParamMultiplier = 0
videoParamDecode.mfx.FrameInfo.FourCC = NV12
videoParamDecode.mfx.FrameInfo.AspectRatioW = 1
videoParamDecode.mfx.FrameInfo.AspectRatioH = 1
videoParamDecode.mfx.FrameInfo.ChromaFormat = 1
videoParamDecode.mfx.FrameInfo.PicStruct = 1
videoParamDecode.mfx.FrameInfo.FrameRateExtN = 10
videoParamDecode.mfx.FrameInfo.FrameRateExtD = 2
videoParamDecode.mfx.FrameInfo.CropX = 0
videoParamDecode.mfx.FrameInfo.CropY = 0
videoParamDecode.mfx.FrameInfo.CropW = 640
videoParamDecode.mfx.FrameInfo.CropH = 480
videoParamDecode.mfx.FrameInfo.Width = 640
videoParamDecode.mfx.FrameInfo.Height = 480
videoParamDecode.AsyncDepth = 4
videoParamDecode.IOPattern = 0x20
frameAllocRequestDecode.AllocId = 0
frameAllocRequestDecode.Info.FourCC =
frameAllocRequestDecode.Info.AspectRatioW = 0
frameAllocRequestDecode.Info.AspectRatioH = 0
frameAllocRequestDecode.Info.ChromaFormat = 0
frameAllocRequestDecode.Info.PicStruct = 0
frameAllocRequestDecode.Info.FrameRateExtN = 0
frameAllocRequestDecode.Info.FrameRateExtD = 0
frameAllocRequestDecode.Info.CropX = 0
frameAllocRequestDecode.Info.CropY = 0
frameAllocRequestDecode.Info.CropW = 0
frameAllocRequestDecode.Info.CropH = 0
frameAllocRequestDecode.Info.Width = 0
frameAllocRequestDecode.Info.Height = 0
frameAllocRequestDecode.Type = 0x0 =
frameAllocRequestDecode.NumFrameMin = 0
frameAllocRequestDecode.NumFrameSuggested = 0
dec.QueryIOSurf() FAILED with sts = 0xffffffff = -1
Since it works on almost every use case, I wonder if this is a bug coming form using Hardware + Windows 7...
Anyone has an idea ?
Cheers,
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
i also forgot to mention than I have run the tool mediasdk_system_analyzer_64.exe
It gave me the entiere list supported, both hw and sw, dec and enc :
Version Target Supported Dec Enc
1.0 HW Yes X X
1.0 SW Yes X X
................(all the same)
1.19 HW Yes X X
1.19 SW Yes X X
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
After a while, I stopped investigating on this problem.
Then, I got another bug :
https://software.intel.com/en-us/forums/intel-media-sdk/topic/735733
I solved my bug by recompiling mfx_dispatch in Visual Studio 2015 in /MT mode and _ALLOW_RUNTIME_LIBRARY_MISMATCH
(So I can mix my application, which needs to be in /MD and /Mdd).
Doing so, it solved the bug from this thread : it now works on Windows 7 as on Windows 10.
(but I still consider the other one as being a bug : there should not have differences between mfx_dispatch /MD and /MT !)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
We apologize for the slow response- i am happy you solved your issue and will report the other issue to the development group.
Thanks,
Stav
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page