I'm trying to get the screen capture feature working on a Haswell platform. The sts = m_pmfxDEC->Query(&m_mfxVideoParams, &m_mfxVideoParams); line in CDecodingPipeline::AllocFrames() fails.
Actual decoding seems to work fine:
C:\Intel Media Samples 6.0.0.49\_bin\x64>sample_decode h264 -i "c:\Intel Media S
amples 6.0.0.49\_bin\content\test_stream.264" -o c:\temp\temp.yuv
Decoding Sample Version 6.0.0.49
Input video AVC
Output format YUV420
Resolution 176x96
Crop X,Y,W,H 0,0,0,0
Frame rate 30.00
Memory type system
MediaSDK impl hw
MediaSDK version 1.15
Decoding started
Frame number: 101, fps: 549.456, fread_fps: 0.000, fwrite_fps: 1716.894
Decoding finished
But when we try something like this (the readme is somewhat unclear how to use this particular option, but with or without -r it does the same )
C:\Intel Media Samples 6.0.0.49\_bin\x64>sample_decode capture -w 100 -h 100 -r
Return on error: error code -3, src\pipeline_decode.cpp 641 <-- this is the sts = m_pmfxDEC->Query(&m_mfxVideoParams, &m_mfxVideoParams);
Return on error: error code -3, src\pipeline_decode.cpp 287
Return on error: error code 1, src\sample_decode.cpp 496
C:\Program Files\Intel\Intel(R) Media Server Studio 2015 R4\Software Development
Kit\tools\mediasdk_sys_analyzer>mediasdk_system_analyzer_64.exe
Intel Media SDK System Analyzer (64 bit)
The following versions of Media SDK API are supported by platform/driver:
Version Target Supported Dec Enc
1.0 HW Yes X X
1.0 SW Yes X X
1.1 HW Yes X X
1.1 SW Yes X X
1.3 HW Yes X X
1.3 SW Yes X X
1.4 HW Yes X X
1.4 SW Yes X X
1.5 HW Yes X X
1.5 SW Yes X X
1.6 HW Yes X X
1.6 SW Yes X X
1.7 HW Yes X X
1.7 SW Yes X X
1.8 HW Yes X X
1.8 SW Yes X X
Graphics Devices:
Name Version State
Intel(R) HD Graphics 5000 10.18.14.4171 Active
System info:
CPU: Intel(R) Core(TM) i5-4250U CPU @ 1.30GHz
OS: Microsoft Windows 7 Ultimate
Arch: 64-bit
Installed Media SDK packages (be patient...processing takes some time):
Installed Media SDK DirectShow filters:
Installed Intel Media Foundation Transforms:
Intel« Hardware VC-1 Decoder MFT : {059A5BAE-5D7A-4C5E-8F7A-BFD57D1D6AAA}
Intel« Hardware H.264 Decoder MFT : {45E5CE07-5AC7-4509-94E9-62DB27CF8F96}
Intel« Hardware MPEG-2 Decoder MFT : {CD5BA7FF-9071-40E9-A462-8DC5152B1776}
Intel« Quick Sync Video H.264 Encoder MFT : {4BE8D3C0-0515-4A37-AD55-E4BAE19AF
471}
Intel« Hardware Preprocessing MFT : {EE69B504-1CBF-4EA6-8137-BB10F806B014}
Analysis complete... [press ENTER]
In a debugger:
mfxStatus CDecodingPipeline::AllocFrames()
{
...
sts = m_pmfxDEC->Query(&m_mfxVideoParams, &m_mfxVideoParams);
...
returns
MFX_ERR_UNSUPPORTED = -3, /* undeveloped feature */
m_mfxVideoParams is
- m_mfxVideoParams {reserved=0x00000000002ef778 reserved3=0 AsyncDepth=4 ...} mfxVideoParam
+ reserved 0x00000000002ef778 unsigned int [3]
reserved3 0 unsigned short
AsyncDepth 4 unsigned short
- mfx {reserved=0x00000000002ef788 LowPower=0 BRCParamMultiplier=0 ...} mfxInfoMFX
+ reserved 0x00000000002ef788 unsigned int [7]
LowPower 0 unsigned short
BRCParamMultiplier 0 unsigned short
+ FrameInfo {reserved=0x00000000002ef7a8 reserved4=0 BitDepthLuma=0 ...} mfxFrameInfo
CodecId 541283905 unsigned int
CodecProfile 100 unsigned short
CodecLevel 12 unsigned short
NumThread 0 unsigned short
TargetUsage 0 unsigned short
GopPicSize 0 unsigned short
GopRefDist 0 unsigned short
GopOptFlag 0 unsigned short
IdrInterval 0 unsigned short
RateControlMethod 0 unsigned short
InitialDelayInKB 0 unsigned short
QPI 0 unsigned short
Accuracy 0 unsigned short
BufferSizeInKB 0 unsigned short
TargetKbps 0 unsigned short
QPP 0 unsigned short
ICQQuality 0 unsigned short
MaxKbps 0 unsigned short
QPB 0 unsigned short
Convergence 0 unsigned short
NumSlice 0 unsigned short
NumRefFrame 0 unsigned short
EncodedOrder 0 unsigned short
DecodedOrder 0 unsigned short
ExtendedPicStruct 0 unsigned short
TimeStampCalc 0 unsigned short
SliceGroupsPresent 0 unsigned short
+ reserved2 0x00000000002ef7fe "" unsigned short [9]
JPEGChromaFormat 0 unsigned short
Rotation 0 unsigned short
JPEGColorFormat 0 unsigned short
InterleavedDec 0 unsigned short
+ reserved3 0x00000000002ef7fe "" unsigned short [9]
Interleaved 0 unsigned short
Quality 0 unsigned short
RestartInterval 0 unsigned short
+ reserved5 0x00000000002ef7fc "" unsigned short [10]
- vpp {reserved=0x00000000002ef788 In={...} Out={...} } mfxInfoVPP
+ reserved 0x00000000002ef788 unsigned int [8]
- In {reserved=0x00000000002ef7a8 reserved4=0 BitDepthLuma=0 ...} mfxFrameInfo
+ reserved 0x00000000002ef7a8 unsigned int [4]
reserved4 0 unsigned short
BitDepthLuma 0 unsigned short
BitDepthChroma 0 unsigned short
Shift 0 unsigned short
+ FrameId {TemporalId=0 PriorityId=0 DependencyId=0 ...} mfxFrameId
FourCC 842094158 unsigned int
Width 176 unsigned short
Height 96 unsigned short
CropX 0 unsigned short
CropY 0 unsigned short
CropW 176 unsigned short
CropH 96 unsigned short
BufferSize 6291632 unsigned __int64
reserved5 6291632 unsigned int
FrameRateExtN 60 unsigned int
FrameRateExtD 2 unsigned int
reserved3 0 unsigned short
AspectRatioW 1 unsigned short
AspectRatioH 1 unsigned short
PicStruct 1 unsigned short
ChromaFormat 1 unsigned short
reserved2 0 unsigned short
- Out {reserved=0x00000000002ef7ec reserved4=0 BitDepthLuma=0 ...} mfxFrameInfo
+ reserved 0x00000000002ef7ec unsigned int [4]
reserved4 0 unsigned short
BitDepthLuma 0 unsigned short
BitDepthChroma 0 unsigned short
Shift 0 unsigned short
+ FrameId {TemporalId=0 PriorityId=0 DependencyId=0 ...} mfxFrameId
FourCC 0 unsigned int
Width 0 unsigned short
Height 0 unsigned short
CropX 0 unsigned short
CropY 0 unsigned short
CropW 0 unsigned short
CropH 0 unsigned short
BufferSize 0 unsigned __int64
reserved5 0 unsigned int
FrameRateExtN 0 unsigned int
FrameRateExtD 0 unsigned int
reserved3 0 unsigned short
AspectRatioW 0 unsigned short
AspectRatioH 0 unsigned short
PicStruct 0 unsigned short
ChromaFormat 0 unsigned short
reserved2 0 unsigned short
Protected 0 unsigned short
IOPattern 32 unsigned short
+ ExtParam 0x0000000000000000 mfxExtBuffer * *
NumExtParam 0 unsigned short
reserved2 0 unsigned short
How would one use this feature correctly?