Welcome to LEAD Support Forum Login | Register | Faq  

    LEAD Support Forum
  Resource to find answers and post technical questions about LEAD products.
Search    
   

Re: MPEG-4 Decoder, IVideoWindow::put_Owner() and VMR-9 Renderer ...
Started by ZebZiggle at 08-27-2008 15:23. Topic has 7 replies.

Print Search « Previous Thread Next Thread »
  08-27-2008, 15:23
ZebZiggle is not online. Last active: 8/27/2008 8:16:49 PM ZebZiggle

Not Ranked
Joined on 08-27-2008
Posts 4
MPEG-4 Decoder, IVideoWindow::put_Owner() and VMR-9 Renderer ...
Reply Quote
Hi, I'm using the evaluation version of your DirectShow filters.

I'm able to make your product work with MPEG-2, but no luck with MPEG-4. When I try to IVideoWindow::put_Owner() I get a "hr 0x80040209 An interface has too many methods to fire events from"  error. The reason I assume is that the renderer is getting a format that it doesn't understand. The same configuration works fine with the MPEG-2 decoder.

The current filter graph contains: The LeadTools Network Source, Demux, MPEG-4 Decoder and the Microsoft VMR-9 renderer.

Do you have any examples of using the VMR-9 renderer with your Network source and MPEG-4 decoder?

Any idea what might be causing the above error?

Thanks!

   Report 
  08-27-2008, 16:49
GregR is not online. Last active: 1/2/2009 9:03:27 AM GregR



Top 10 Posts
Joined on 05-31-2006
In House
Posts 1,816
Re: MPEG-4 Decoder, IVideoWindow::put_Owner() and VMR-9 Renderer ...
Reply Quote
I'm sorry, but we do not give support for low level DirectShow programming.  Our SDK is a high level DirectShow SDK which is designed to eliminate the need for programming in low level DirectShow.

If you explain in more detail what you're trying to accomplish I could point you in the right direction of how to implement it using our controls (ltmmCaptureCtrl, ltmmPlayCtrl, etc.).

Greg Ross
LEADTOOLS Technical Support
   Report 
  08-28-2008, 8:35
ZebZiggle is not online. Last active: 8/27/2008 8:16:49 PM ZebZiggle

Not Ranked
Joined on 08-27-2008
Posts 4
Re: MPEG-4 Decoder, IVideoWindow::put_Owner() and VMR-9 Renderer ...
Reply Quote
This is certainly not low level DirectShow ... this is as high level as you can get.

I'm just doing:

AddFilter( leadtools network clsid );
AddFilter( leadtools demux );
AddFilter( leadtools mpeg 4 decoder );
AddFilter( microsoft dmr9 renderer )

get output pin from network filter
pin.
Render();

That's all pretty normal stuff. Same as the final steps required to render it to a window, you have to do a putOwner() call on the IVideoWindow from the graph builder.

Boom! Fails on the putOwner() call with "hr 0x80040209 An interface has too many methods to fire events from" ... with other codecs you would expect to see an E_NOINTERFACE if the IVideoWindow is not connected to the renderer.

That's not low level.

I'm streaming an MPEG 4 file using VLC and UDP Mpeg TS format.

What more would you like?

What I'd like to see is some sort of example of DirectShow MPEG-4 network stream rendering from LeadTools so I can reference something that supposedly works. Do you have any such examples. I can't find one single directshow example anywhere in your SDK.



   Report 
  08-28-2008, 8:59
ZebZiggle is not online. Last active: 8/27/2008 8:16:49 PM ZebZiggle

Not Ranked
Joined on 08-27-2008
Posts 4
Re: MPEG-4 Decoder, IVideoWindow::put_Owner() and VMR-9 Renderer ...
Reply Quote
I should also mention that I've tried the VMR-7 and VMR-7 Mixing Renderers as well with the same results.

   Report 
  08-28-2008, 9:35
GregR is not online. Last active: 1/2/2009 9:03:27 AM GregR



Top 10 Posts
Joined on 05-31-2006
In House
Posts 1,816
Re: MPEG-4 Decoder, IVideoWindow::put_Owner() and VMR-9 Renderer ...
Reply Quote
I apologize if I wasn't more clear, I'll admit that low-level can be a subjective term.  What I meant by "low-level" is that it appears you are not using our SDK and are building your graph manually.  We do not provide this kind of support because our SDK is designed to do all this for you.

Is this stream an MPEG2 Transport Stream with MPEG 4 compressed video?  If so, our player control can connect to the stream directly with the SourceFile property.  Take a look at the MPEG2 Transport Demo that ships with the SDK and click on File -> Open Stream and enter the IP and port.

Greg Ross
LEADTOOLS Technical Support
   Report 
  08-28-2008, 10:12
ZebZiggle is not online. Last active: 8/27/2008 8:16:49 PM ZebZiggle

Not Ranked
Joined on 08-27-2008
Posts 4
Re: MPEG-4 Decoder, IVideoWindow::put_Owner() and VMR-9 Renderer ...
Reply Quote
Yes, it's MPEG2 TS with MPEG4 compressed video. I've also tried your DADA_h264.mp4 file.

I connect to the source like this:

    CComPtr<IFileSourceFilter> file_source_filter;
    this->filter->QueryInterface(IID_IFileSourceFilter, (void **)&file_source_filter);

    std::ostringstream os;
    os << "udp://" << ip_address.c_str() << ':' << config.port;
    std::string temp(os.str());
    CComBSTR ip(temp.c_str());

    AM_MEDIA_TYPE *media_type = NULL;
    file_source_filter->Load(ip, media_type);

I don't know what you mean by "building the graph manually". I defer all this to the DirectShow ::Render() method. All I do is add the filters to the graph, but I don't connect them together (auto-connect mode).

What other way is there to create the graph? Is there a LeadTools preferred way to do this?

------

When I run the C++ version of Mpeg 2 transport and do File Open and point to my stream I get an exception:

Unhandled exception at 0x024dfeb4 in MPEG2Transport.exe: 0xC0000094: Integer division by zero.

using your DADA_H264.mp4 file I get this:

     LDECAAC.dll!024dfeb4()    
     [Frames below may be incorrect and/or missing, no symbols loaded for LDECAAC.dll]   
     LDECAAC.dll!024e391e()    
     LDECAAC.dll!024dd5d9()    
     LDECAAC.dll!024e01e6()    
     LMMpgDmxT.dll!01ee74f4()    
     LMMpgDmxT.dll!01ed72a8()    
     LMMpgDmxT.dll!01ed8321()    
     LMMpgDmxT.dll!01ed9597()    
     LMMpgDmxT.dll!01eda51b()    
     LMMpgDmxT.dll!01eda80f()    
     LMMpgDmxT.dll!01edaa2c()    
     LMMpgDmxT.dll!01edabbf()    
     LMMpgDmxT.dll!01ed6a92()    
     kernel32.dll!7c80b713()    

Output window:

'MPEG2Transport.exe': Unloaded 'C:\WINDOWS\system32\wdmaud.drv'
Warning: no message line prompt for ID 0xE001.
Warning: no message line prompt for ID 0x0430.
Warning: no message line prompt for ID 0xE001.
 In CompleteConnect
The thread 'Win32 Thread' (0x628) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0xb7c) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0xdf4) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0xc0c) has exited with code 0 (0x0).

Using my clean MP4 file I get this:

>    LDECAAC.dll!0205feb4()    
     [Frames below may be incorrect and/or missing, no symbols loaded for LDECAAC.dll]   
     LDECAAC.dll!0206391e()    
     LDECAAC.dll!0205d5d9()    
     LDECAAC.dll!020601e6()    
     LMMpgDmxT.dll!01ee74f4()    
     LMMpgDmxT.dll!01ed72a8()    
     LMMpgDmxT.dll!01ed6a92()    
     kernel32.dll!7c80b713()    


'MPEG2Transport.exe': Unloaded 'C:\WINDOWS\system32\wdmaud.drv'
Warning: no message line prompt for ID 0xE001.
Warning: no message line prompt for ID 0x0430.
Warning: no message line prompt for ID 0xE001.
 In CompleteConnect
The thread 'Win32 Thread' (0xef0) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0xb58) has exited with code 0 (0x0).


   Report 
  08-28-2008, 11:22
GregR is not online. Last active: 1/2/2009 9:03:27 AM GregR



Top 10 Posts
Joined on 05-31-2006
In House
Posts 1,816
Re: MPEG-4 Decoder, IVideoWindow::put_Owner() and VMR-9 Renderer ...
Reply Quote
Ok, you're still using Microsoft DirectShow classes and methods.  We only provide support for using our SDK.  It's still possible to purchase the SDK and use our filters, but we can't debug and help with the actual programming if you aren't using the objects provided in our SDK (ltmmCaptureCtrl, ltmmPlayCtrl, etc.).

I'm not familiar with VLC.  I downloaded the VLC media player application.  How are you using this (or something else) to create the MPEG2 TS stream that you are unable to play with our MPEG2 Transport demo?

Greg Ross
LEADTOOLS Technical Support
   Report 
  08-28-2008, 13:57
Otis is not online. Last active: 1/8/2009 3:14:03 PM Otis



Top 10 Posts
Joined on 10-19-2004
Charlotte, NC
Posts 309
Re: MPEG-4 Decoder, IVideoWindow::put_Owner() and VMR-9 Renderer ...
Reply Quote
To add to Greg's comments, we designed an SDK for the specific reason that DirectShow does not automatically handle all of the pin connecting and media type negotiations, thus the problem you are having. As a toolkit provider, we do the nasty work under the hood so that it is easy to use in our interface. To debug problems using DirectShow directly and provide solutions not using our SDK would contradict the point of our SDK and most people would see no reason in purchasing our SDK.

For our codecs and filters, we do document all of the interfaces, methods, properties, etc necessary to use them in DirectShow as we have many customers doing this, but in doing this, we assume you have are well versed in DirectShow since we provide no code for DirectShow level code.

I hope you can understand this.
Otis Goodwin
LEAD Developer Support
   Report 
Post
LEAD Support Fo... » Enduser » Multimedia Code... » Re: MPEG-4 Decoder, IVideoWindow::put_Owner() and VMR-9 Renderer ...

Powered by Community Server, by Telligent Systems