I have a player control like this my source filter ----- intel media sdk h264 decoder filter -----evr。 32 bit
in my pc can use 7 player controls play 7 way hd videos, if i want play 8 way hd videos ,there have some problems
eg: 1、 I set decoder with MFX_IMPL_SOFTWARE, when playback D3DFrameAllocator::LockFrame(mfxMemId mid, mfxFrameData *ptr) can be called, if More than 8 way hd video hr = pSurface->LockRect(&locked, 0, 0) failed. (LockRect in LockFrame), and hr = -2005532292。
if less than 7 way hd video, there no problems
2、 I set decoder with MFX_IMPL_HARDWARE, when more than 8 way hd video m_decoderService->CreateSurface() offen failed which in d3d_allocator.cpp, and when stop the 8 way video at the same time, there have problem The memory access conflict. if less than 7 way hd video, there no problems.
My English is relatively poor, thank you.
我使用dshow写了个播放控件， my source filter ----- intel media sdk h264 decoder filter -----evr。 这个控件是32位的，可以播放收到的h264视频，想播放几路视频，就要用几个这样的控件，如果播放的视频路数少的话、占的内存和cpu都比较少，这样没问题。如果我的电脑软解播放7路高清，cpu就超过了90%，这时如再多播放一路高清的话，d3d_allocator.cpp内的D3DFrameAllocator::LockFrame内的hr = pSurface->LockRect(&locked, 0, 0);就会失败，是不是有什么限制？
based on the return error code and the fact that you are processing several streams at once it looks like you are running out of memory.
I suggest adding more physical memory to the machine and also exploring moving to 64 bit OS.
hi Petter , thank you for your answer.
my pc: CPU: Intel(R) core(TM) i7-3770k CPU @3.50GHz 3.90GHz RAM:4G
one way video is my source filter----intel h264 decoder filter----evr
in picture one. run one process--"test.exe", it play 6 way hd video, it is OK, the" test.exe" process use 700M ram. but if play 7 way hd video,it will occur above problem. A 32-bit program, there should be 2G space.
in picture two, run two "test.exe" process, one process play 6 way hd video,It is OK, So i guess , the limit is d3d device or d3d Surface in one process?
Based on the info you provided it seems pretty clear the issue is that your are running out of memory.
Depending on your 32bit Windows OS configuration it is quite common that the OS will not allocate the full 1792MB of memory to Intel HD Graphics. Some more info here on how to check how much memory is dedicated to the graphics part: http://www.intel.com/support/graphics/sb/CS-033984.htm
I recommend exploring using a 64 bit OS and using more RAM.