- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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);就会失败,是不是有什么限制?
同样,硬解时也是,当播放的视频路数比较多时,也会有问题。 d3d这块对处理的视频路数有限制?还是说对占用内存之类的有限制?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
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.
Regards,
Petter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
yes , hr = pSurface->LockRect(&locked, 0, 0) failed. hr == D3DERR_OUTOFVIDEOMEMORY . why only use 1G ram can D3DERR_OUTOFVIDEOMEMORY ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Yang,
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.
Regards,
Petter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Petter , thank you for your help.
i will try using the 64bit .
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page