locked
Internal Exception with EVR`? RRS feed

  • Question

  • hi there,

    i´m playing with a c# / c++ interop scenario and things work fine. however, Visual Studio output window often shows some c++ exceptions. diving a little deeper usnig windbg brought me to the following stacktrace for the exception:

    (1530.5c8): C++ EH exception - code e06d7363 (first chance)
    First chance exceptions are reported before any exception handling.
    This exception may be expected and handled.
    eax=0c5bf884 ebx=103b8098 ecx=00000003 edx=00000000 esi=00000000 edi=05917f18
    eip=76fcb727 esp=0c5bf884 ebp=0c5bf8d4 iopl=0     nv up ei pl nz ac pe nc
    cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b       efl=00000216
    KERNELBASE!RaiseException+0x58:
    76fcb727 c9       leave
    0:008> !dumpstack
    OS Thread Id: 0x5c8 (8)
    Current frame: KERNELBASE!RaiseException+0x58
    ChildEBP RetAddr Caller,Callee
    0c5bf88c 76fcb727 KERNELBASE!RaiseException+0x58, calling ntdll!RtlRaiseException
    0c5bf8a8 542428df mf!MFLfx::CPoolLockT<0,1>::Lock+0x25, calling mf!LFPoolObjectLockAcquire
    0c5bf8c4 76ba9d45 msvcrt!malloc+0x8d
    0c5bf8d4 76bc359c msvcrt!_CxxThrowException+0x48, calling KERNEL32!RaiseExceptionStub
    0c5bf90c 59a556ad EVR!VideoOTAContainer::UpdateOTA+0x49, calling msvcrt!_CxxThrowException
    0c5bf92c 59a874ab EVR!std::_Allocate<std::_List_nod<CStreamOTA *,CThrowingAllocator<CStreamOTA *> >::_Node>+0x1a, calling EVR!operator new
    0c5bf934 542428df mf!MFLfx::CPoolLockT<0,1>::Lock+0x25, calling mf!LFPoolObjectLockAcquire
    0c5bf964 59a55766 EVR!std::list<CStreamOTA *,CThrowingAllocator<CStreamOTA *> >::_Buynode+0x32, calling EVR!std::_Construct<IUnknown *,IUnknown *>
    0c5bf97c 59a55a86 EVR!std::list<CProtection const *,CThrowingAllocator<CProtection const *> >::_Incsize+0x52, calling EVR!_EH_epilog3
    0c5bf980 59a55a48 EVR!std::list<CStreamOTA *,CThrowingAllocator<CStreamOTA *> >::_Insert+0x26, calling EVR!std::list<CStreamOTA *,CThrowingAllocator<CStreamOTA *> >::_Incsize
    0c5bf9a0 59a55648 EVR!VideoOTAContainer::NewStream+0x36, calling EVR!VideoOTAContainer::UpdateOTA
    0c5bf9b4 59a44168 EVR!CEVRNotifyEvent::AddRef+0x12, calling KERNEL32!InterlockedIncrementStub
    0c5bf9d0 59a55603 EVR!CStreamOTA::CStreamOTA+0x52, calling EVR!VideoOTAContainer::NewStream
    0c5bf9fc 59a54e68 EVR!VideoOTAContainer::CreateTrustedOutput+0x4b, calling EVR!CStreamOTA::CStreamOTA
    0c5bfa34 542ea7c3 mf!CMFVideoStream::CMFVideoStream+0x1e5
    0c5bfa54 542e66ee mf!CMFVideoRenderer::AddStreamSink+0x105, calling mf!CMFVideoStream::CMFVideoStream
    0c5bfa8c 542e6004 mf!CMFVideoRenderer::InitializeRenderer+0x465
    0c5bfaac 59a540b6 EVR!ComPtr<IVideoOTA>::CopyTo+0x3f
    0c5bfab4 59a5407c EVR!UnknownImpl<IVideoOTA>::Release+0x14, calling KERNEL32!InterlockedDecrementStub
    0c5bfb04 542e4864 mf!CMFVideoRenderer::AddRef+0x12, calling KERNEL32!InterlockedIncrementStub
    0c5bfb10 542e546a mf!CMFVideoRenderer::QueryInterface+0x177
    0c5bfb2c 542cfb7a mf!CMFVideoRendererActivate::InstantiateMediaObject+0xa4
    0c5bfb4c 542cf534 mf!CMFVideoRendererActivate::AddRef+0xd, calling mf!CMFActivate::_AddRef
    0c5bfb50 543b9bcf mf!LFPoolObjectLockRelease+0xed, calling KERNELBASE!GetCurrentThreadId
    0c5bfb6c 542d12ed mf!CMFActivate::DoActivate+0x28
    0c5bfb7c 542d12ad mf!CMFActivate::ActivateObject+0x16
    0c5bfb8c 5432c5c0 mf!CMediaSession::BindOutputNode+0x5b
    0c5bfbc0 5432d659 mf!CMediaSession::BindOutputNodes+0xa7, calling mf!CMediaSession::BindOutputNode
    0c5bfbf0 5432edcc mf!CMediaSession::OpQueueTopology+0x147, calling mf!CMediaSession::BindOutputNodes
    0c5bfc18 542428df mf!MFLfx::CPoolLockT<0,1>::Lock+0x25, calling mf!LFPoolObjectLockAcquire
    0c5bfc28 5432f2f4 mf!CMediaSession::DispatchOperation+0x2f, calling mf!CMediaSession::OpQueueTopology
    0c5bfc40 5444c7ec mf!COpQueue::ProcessMarshalledOperations+0x3f
    0c5bfc50 5444c823 mf!COpQueue::ProcessMarshalledOperationsAsyncCallback::Invoke+0x13, calling mf!COpQueue::ProcessMarshalledOperations
    0c5bfc5c 5a691f7b mfplat!CCompletionPort::InvokeCallback+0x12
    0c5bfc6c 5a691b3c mfplat!CWorkQueue::CThread::ThreadMain+0xa5
    0c5bfd74 5a698cab mfplat!CWorkQueue::CThread::ThreadFunc+0xd
    0c5bfd7c 76bb1287 msvcrt!_endthreadex+0x44
    0c5bfdb4 76bb1328 msvcrt!_endthreadex+0xce, calling msvcrt!_endthreadex+0x29
    0c5bfdbc 76493677 KERNEL32!BaseThreadInitThunk+0xe
    0c5bfdc8 77839d42 ntdll!__RtlUserThreadStart+0x70
    0c5bfe08 77839d15 ntdll!_RtlUserThreadStart+0x1b, calling ntdll!__RtlUserThreadStart
    

    it´s actually no problem as the video is rendered as excepted and things work fine, 

    however, it´d be nice to know what´s going on and whether i can avoid this exception to be thrown.

    maybe one of the MF gurus over here could bring in some light ;)

    regards from austria

    j.

    Friday, July 30, 2010 7:23 AM

Answers

  • On Fri, 30 Jul 2010 07:23:48 +0000, Joachim Kerschbaumer wrote:

    ...however, it´d be nice to know what´s going on and whether i can avoid this exception to be thrown...

    First chance exceptions are common in dshow where there is protected
    content or the potential for it (example: ASF decoders).  The first
    chance exceptions are there to make reverse engineering more
    difficult. I suspect what's going on here is the same thing.  It could
    be that DXVA or the protected media path is causing them in your case
    with the EVR.


    Please use Vote As Helpful (green up arrow at top-left of posts) and Mark As Answer where appropriate.
    My dshow site is http://tmhare.mvps.org.
    Tuesday, August 3, 2010 12:36 AM

All replies

  • On Fri, 30 Jul 2010 07:23:48 +0000, Joachim Kerschbaumer wrote:

    ...however, it´d be nice to know what´s going on and whether i can avoid this exception to be thrown...

    First chance exceptions are common in dshow where there is protected
    content or the potential for it (example: ASF decoders).  The first
    chance exceptions are there to make reverse engineering more
    difficult. I suspect what's going on here is the same thing.  It could
    be that DXVA or the protected media path is causing them in your case
    with the EVR.


    Please use Vote As Helpful (green up arrow at top-left of posts) and Mark As Answer where appropriate.
    My dshow site is http://tmhare.mvps.org.
    Tuesday, August 3, 2010 12:36 AM
  • hi there,

     

    thanks for your reply. well, as there is no protected media or directshow involved (just mf) i guess

    DVXA is the source of this exception then.  i was just courious, so i´ll just look away they occur next time;)

    thanks though

    Tuesday, August 3, 2010 6:41 AM