|
|
Comments and Discussions
|
|
 |

|
Just compiled the Sample with VS2010 and SDK 7.1
replaced several places like this:
this->trackBarX1->Scroll += new System::EventHandler(this, &DirectShowVMR9::Form1::trackBarX1_Scroll);
It works but a hint is displayed:
warning D9035: Option "clr:oldsyntax" has been deprecated and will be removed in a future release
<CLRSupport>OldSyntax</CLRSupport>
Managed Extensions for C++ syntax is deprecated in Microsoft Visual C++ 2005 (and above)
After switching this to normal clr Support the line
public __gc class Form1 : public System::Windows::Forms::Form
shows error
Form1.h: error C4980: "__gc": use of this keyword requires /clr:oldSyntax
and
HRESULT renderFiles(String* file1, String* file2)
Form1.h: error C3699: "*": Diese Referenzierung kann nicht für den Typ "System::String" verwendet werden.
Compiler replaces "*" to ^"
|
|
|
|

|
Hi,
I'm Developing a live video streaming application in vc++ using DirectX VideoMixingRenderer7 filter. I can able to draw rubber band rectangle on video using DirectX SetAlphaBitmap() through my mouse move. if my video frame size(4CIF) is greater than my picture box control size, it's working fine. Suppose, my video frame size(CIF) is less than my picture box control size,
1) only 3 sides of the rectangle can be visible.
2) sometimes 2 sides only can be visible.
3) Above two context has been happen randomly.
Please, somebody help me out from this issue.
Thanx in advance,
Regards
Surez
|
|
|
|

|
HI all,
have you implemented such a livevideo rotation or flip H/V filter?
Any help would be appreciated.
giuegiu@hotmail.com
|
|
|
|

|
I want to show live videoin background of 3D object. do you know how to implements this?
Nothing is impossible
|
|
|
|

|
When I build the code in Visual Studio Team System 2008 then I encounter the follwing error in the event handler of the system class.
error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)c:\documents and settings\vmukti\desktop\directshowvmr9_src\Form1.h 384 DirectShowVMR9
|
|
|
|

|
Hello Mr Sameer
I need ur help regarding VFW ,becoz I guess you have used VFW and DirectShow,plz help me
I would like to know what is the purpose of VFW Format dialog box.I know Format dialog box is used to select the image dimensions and bit depth. But is it necessry to use it.As if you see skype only uses Vfw Source dialog box and not using display and format dialog boxes. (My query) Is it necessary to use format dialog box or not.?If not then why ? ,if yes why it is necessary ..
Kindly Help me..
Thanks in advance
|
|
|
|

|
Can you make your code to a wmp plugin? so,we can use your code in the wmp like substitle plugin,we don't want to rewrite a media player because
we have already a windows media player.
sunny_chn
|
|
|
|

|
Can anyone tell me the way to create a direct show filter for video cropping and video hue,saturation for particular selected area within the video.
gaurav mahajan
|
|
|
|

|
it is impossible to can with VB6 or VB.NET (studio 2005)
thanks
|
|
|
|

|
i m using vc2003 to compile ur project.
but i get a linking error,
Form1.obj : error LNK2001: unresolved external symbol __check_commonlanguageruntime_version
D:\DirectShowVMR9_src\Release\DirectShowVMR9.exe : fatal error LNK1120: 1 unresolved externals
when i was trying to compile a release build.
in debug build, everything is running well.
can u give me any suggestion ?
many many thanks.
jztan
|
|
|
|

|
Hi,
can I change merit value for ACM filter using filmerit_30en.exe or other similar stuff.
It seems to me not.
thanks
jdsc
|
|
|
|

|
EZGrabberMgr.obj : error LNK2001: unresolved external symbol _CLSID_NullRenderer
EZGrabberMgr.obj : error LNK2001: unresolved external symbol _IID_ISampleGrabber
EZGrabberMgr.obj : error LNK2001: unresolved external symbol _CLSID_SampleGrabber
EZGrabberMgr.obj : error LNK2001: unresolved external symbol _IID_ICaptureGraphBuilder2
i am using platform sdk release for windows Vista
i have also linked the libraries strmiids .lib ,strmbasd.lib ,dxguid.lib,
My include paths are also set
plz helpppp
|
|
|
|

|
Is there a way to have a single filter graph with both VMR7 and VMR9 filters. Coz, if I create such a graph, when I try deleting any of the filter through my code, the VMR7 filters stops playing.
Or is there any event that shall notify that the filter has stopped playing so that it can be handled when that notification or event occurs?
Any help will be welcome..
- Manu
|
|
|
|

|
I'm facing with issues while trying to continuously add and delete VMR9 filters in filter graphs for my application. But after creating and deleting some 53 VMR9s, my application stops connecting more VMR9s in the filter graph.
What actually happens is I add a VMR9 filter to the filter graph and establish connections. Then delete the graph, again create a new VMR9 and continue adding and deleting, till as many times it successfully adds and connects the filters. But after creating and connecting the 53rd VMR9 filter, DirectX fails to connect the filters in the graph eventhough it creates one.
It seems like some kind of memory leak, that doesnt not release the VMR9 filters, even though I've ensured in the code, that I release the filters. So, it creates the next VMR9 instead of recreating or reusing the last destroyed one.
Can anyone please suggest what should I do in order fix this issues.
|
|
|
|

|
Hello,
I want to save the result of the VMR9 mixing in a .avi file instead that on the screen.
How to get the output of the VMR9 ? And to redirect this resulting image in a file ?
Thank you,
Christophe,
CJ
|
|
|
|

|
open task manager on any other window while video is playing results in greenish lines on video window.
Can anybody reproduce the behaviour. I am using RenderStream to render video using BDA analog capture device on DELL D800 laptop.
Please any suggestions or solutions
Thanks in advance
Shovit
|
|
|
|

|
Sorry, firstly, thankyou for such a fine example to work with. Secondly, Can I change the VMR picture window to full screen? If so, how?
Thankyou once again, apologies for the initial abrupt question
Alan
-- modified at 10:40 Friday 6th October, 2006
|
|
|
|

|
Aoa,
Do you know how to enumerate a pin on a filter containing two pins in the same direction? I want to find 2nd output pin on a filter that has two output pins.
Thanks
|
|
|
|

|
Hello, this is a great project.
But is it possible to hear only the sound of one video???
Can i change it during playtime???
|
|
|
|

|
Assalamoalikum!
i have tried your code as the way it is
It gives no errors but i cant see the video ... now i am stuck
My scenario is that i have a preview mode and a capture mode
I have implemented "preview mode" through VMR in the preview window.
It works fine through it.
Now about the problem i am facing i have a child window that starts showing the same preview on button click in it( say "capture window").
I had implemented this scenario through GRABBER but i want to do it through VMR although i am running an instance of appilication in the same application and on the same dialog
Through your code i got no errors through out i mean till
m_hr=pMC->Run();
i get no errors still i cant preview the video
more over i am getting the rectangle of the child window as
RECT rcDest;
::GetClientRect (hWnd,&rcDest);
still i cant preview it how to proceed???
Thanks and regards
if you want to look through Code then its like
/*
m_DlghWnd: the handle of the dialog which have both child windows that is preview (for which i have written the code through VMR) and the capture window which will show the image stream on button click
hWnd: it is the handle of the child window in which i want to start the preview stream
Requirement: Both windows should be previewed after the button click
*/
HRESULT CCameraPreview::TestVideo(HWND m_DlghWnd,HWND hWnd)
{
r = new VMR9NormalizedRect;
r->left = 0;
r->top = 0;
r->right = 1;
r->bottom = 1;
pWC = NULL;
pMix = NULL;
pGB = NULL;
pVmr = NULL;
pConfig = NULL;
pMC = NULL;
pMS = NULL;
// create an instance of the Filter Graph Manager
m_hr=CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void **)&pGB);
// create an instance of the VMR9 filter
m_hr=CoCreateInstance(CLSID_VideoMixingRenderer9, NULL, CLSCTX_INPROC,
IID_IBaseFilter, (void**)&pVmr);
// add the VMR9 filter to the Graph Manager
m_hr=pGB->AddFilter(pVmr, L"Video");
// get a pointer to the IVMRFilterConfig9 interface
m_hr=pVmr->QueryInterface(IID_IVMRFilterConfig9, (void**)&pConfig);
// make sure VMR9 is in windowless mode
m_hr=pConfig->SetRenderingMode(VMR9Mode_Windowless);
// get a pointer to the IVMRWindowlessControl9 interface
m_hr=pVmr->QueryInterface(IID_IVMRWindowlessControl9, (void**)&pWC);
// explicitly convert System::Drawing::Rectangle type to RECT type
RECT rcDest;
::GetClientRect (hWnd,&rcDest);
// set destination rectangle for the video
m_hr=pWC->SetVideoPosition(NULL, &rcDest);
// specify the container window that the video should be clipped to
m_hr=pWC->SetVideoClippingWindow(hWnd);
// IVMRMixerControl manipulates video streams
m_hr=pVmr->QueryInterface(IID_IVMRMixerControl9, (void**)&pMix);
// IMediaSeeking seeks to a position in the video stream
m_hr=pGB->QueryInterface(IID_IMediaSeeking, (void **)&pMS);
// IMediaControl controls flow of data through the graph
m_hr=pGB->QueryInterface(IID_IMediaControl, (void **)&pMC);
m_hr=pMC->Run();
return m_hr;
-- modified at 3:45 Monday 4th September, 2006
Jabeen
|
|
|
|

|
aoa, MY IVMRMixerControl9 can't be initialized. When I build "Ticker9.dsw" sample of DX SDK, there is no problem with it. Its IVMRMixerControl9 gets perfectly initialized which means there is no problem in my graphics hardware and its driver. I have set "hardware accelaration" to full. When I run my program, the statement where I query for pMix (IVMRMixerContol9 variable) interface returns an error of E_NOINTERFACE. When I debug the program, debugger gives error "Expression can't be evaluated" for the initialization statement of pMix. I can't find any reason for this strange behavior. I am fed up with this problem. Plz tell me what can be the reason. There is no typographical mistake whatsoever in my program this time. The code is:
/******************************************************************************/ <b>w26.h</b> class CMainWnd : public CFrameWnd { public: CMainWnd(); ~CMainWnd(); DECLARE_MESSAGE_MAP() };
class CApp : public CWinApp { public: BOOL InitInstance(); }; /**************************************************************************/ <b>w26.cpp</b> //VMR9 multiple stream #include <afxwin.h> #include <dshow.h> #include <d3d9.h> //for IVMRFilterConfig9 #include <Vmr9.h> //for IVMRFilterConfig9 #include "w26.h" #include <dxutil.h> //for SAFE_RELEASE #include <vmrutil.h> //for VerifyVMR #pragma comment(lib, "quartz.lib") #pragma comment(lib, "strmiids.lib") #define FILENAME1 L"C:\\Badday.avi" #define FILENAME2 L"c:\\p.mpg" CApp app; CMainWnd::CMainWnd() { Create(NULL, "Videowindow"); } CMainWnd::~CMainWnd() {} BOOL CApp::InitInstance() { m_pMainWnd=new CMainWnd; m_pMainWnd->ShowWindow(m_nCmdShow); m_pMainWnd->UpdateWindow(); IGraphBuilder *pGraph=NULL; IMediaEvent *pEvent=NULL; IMediaControl *pControl=NULL; IBaseFilter *pVmr9=NULL; IBaseFilter *pSource1=NULL; IBaseFilter *pSource2=NULL; IVideoWindow *pVid=NULL; IVMRMixerControl9 *pMix=NULL; ICaptureGraphBuilder2 *pCapture=NULL; long evcode; //Initialize COM CoInitialize(NULL); if(!VerifyVMR()) { MessageBox(NULL, "VMR NOT FOUND ", "ERROR", MB_OK|MB_ICONEXCLAMATION); exit(1); } else MessageBox(NULL, "NO PROBLEM WITH VMR", "SUCCESS", MB_OK|MB_ICONEXCLAMATION);
//Create filter graph CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph); //create capture graph CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2, (void **)&pCapture); //set filter graph pCapture->SetFiltergraph(pGraph); //create VMR9 CoCreateInstance(CLSID_VideoMixingRenderer9, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void **)&pVmr9); //obtain mixer control interface HRESULT hr=pVmr9->QueryInterface(IID_IVMRMixerControl9, (void **)&pMix); if(hr==E_NOINTERFACE ) MessageBox(NULL, "E_NOINTERFACE PROBLEM\nFOR PMIX", "FAILED", MB_OK); else if(hr==E_POINTER) MessageBox(NULL, "E_POINTER PROBLEM\nFOR PMIX" , "FAILED", MB_OK);
//obtain media event interface pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent); //obtain media control interface pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl); //obtain video window interface pGraph->QueryInterface(IID_IVideoWindow, (void **)&pVid); //add vmr9 pGraph->AddFilter(pVmr9, L"VMR9"); //add source filter 1 pGraph->AddSourceFilter(FILENAME1, L"SOURCE", &pSource1); //add source filter 2 pGraph->AddSourceFilter(FILENAME2, L"SOURCE", &pSource2); //ERROR is at this location hr=pMix->SetAlpha(0, 0.5); if(hr==VFW_E_NOT_CONNECTED) MessageBox(NULL, "VFW_E_NOT_CONNECTED FOR SETALPHA", "FAILED", MB_OK); else MessageBox(NULL, "S_OK", "SUCCESS OF SETALPHA", MB_OK); hr=pMix->SetAlpha(1, 0.5);
//render audio and video of source 1 pCapture->RenderStream(NULL, NULL, pSource1, NULL, pVmr9); pCapture->RenderStream(NULL, &MEDIATYPE_Audio , pSource1, NULL, NULL); //render audio and video of source 2 pCapture->RenderStream(NULL, NULL, pSource2, NULL, pVmr9); pCapture->RenderStream(NULL, &MEDIATYPE_Audio , pSource2, NULL, NULL);
//video window's win_management pVid->put_Owner((OAHWND)m_pMainWnd->GetSafeHwnd()); pVid->put_WindowStyle(WS_CHILD|WS_CLIPSIBLINGS); RECT rect; m_pMainWnd->GetClientRect(&rect); pVid->SetWindowPosition(0,0, rect.right-rect.left, rect.bottom- rect.top); pVid->SetWindowForeground(OATRUE); pVid->put_Visible(OATRUE); //run graph pControl->Run(); pEvent->WaitForCompletion(INFINITE, &evcode); SAFE_RELEASE(pGraph); SAFE_RELEASE(pMix); SAFE_RELEASE(pVid); SAFE_RELEASE(pSource1); SAFE_RELEASE(pSource2); SAFE_RELEASE(pCapture); SAFE_RELEASE(pControl); CoUninitialize(); return 0; }
BEGIN_MESSAGE_MAP(CMainWnd, CFrameWnd) END_MESSAGE_MAP()
/**************************************************************************/ Thanks
-- modified at 22:13 Thursday 17th August, 2006
|
|
|
|

|
hi, I am new to DirectShow and have encountered a problem. I am trying to implement the following filter graph to render avi video only. source filter -> mpeg-1 stream splitter -> mpeg video decoder -> video renderer I get correct output when i use "Capture Graph builder" and apply the "renderstream" function. I want to use "Filter Graph Manager" to implement the above filter graph and manually connect the filters (not using renderfile). The problem is that MPEG-1 Stream Splitter has two pins of media types AMMEDIA_Audio and AMMEDIA_Video. I just want to use the video output pin only. I don't know exactly how to enumerate the pin for this media type. I have tried enummediatypes in my program but it doesn't work. I think there is some problem in the way I have used it. Can anyone please correct the following program for me? /**************************************************************************** Link -> 1)Strmiids.lib 2)Quartz.lib Manually building a filter graph for playing an "AVI video" (not audio). Source Filter -> MPEG-I Stream Splitter -> MPEG Video Decoder -> Video Renderer *****************************************************************************/ #include <iostream.h> #include <dshow.h> void CheckFailure(HRESULT); HRESULT GetUnconnectedPin(IBaseFilter *pFilter, PIN_DIRECTION PinDir, IPin **ppPin); /******************************************************************/ void main() { IGraphBuilder *pGraph=NULL; IBaseFilter *pSource=NULL; IBaseFilter *pmpegSplitter=NULL; IBaseFilter *pmviddecoder=NULL; IBaseFilter *pvidrenderer=NULL; IMediaControl *pControl = NULL; IMediaEvent *pEvent = NULL; HRESULT hr; IPin *InPin; IPin *OutPin; //initialize COM CoInitialize(NULL);
// Create the filter graph manager and query for interfaces. hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph); if (FAILED(hr)) { cout<<"ERROR - Could not create the Filter Graph Manager."<<endl; return; } hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl); hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
//STEP 1: Create filter instances /*hr=CoCreateInstance(CLSID_AsyncReader, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void **)&pSource); CheckFailure(hr);*/ hr=CoCreateInstance(CLSID_MPEG1Splitter, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void **)&pmpegSplitter); CheckFailure(hr); hr=CoCreateInstance(CLSID_CMpegVideoCodec, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void **)&pmviddecoder); CheckFailure(hr); hr=CoCreateInstance(CLSID_VideoRenderer, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void **)&pSource); CheckFailure(hr); //STEP 2: Add the filters pGraph->AddSourceFilter(L"C:\\Badday.avi", L"Source", &pSource); pGraph->AddFilter(pmpegSplitter, NULL); pGraph->AddFilter(pmviddecoder, NULL); pGraph->AddFilter(pvidrenderer, NULL); //STEP 3: Query pins for connction //1. find source output hr = GetUnconnectedPin(pSource, PINDIR_OUTPUT, &OutPin); //2. find mpegSplitter input hr = GetUnconnectedPin(pmpegSplitter, PINDIR_INPUT, &InPin); //connect 1 & 2 hr = pGraph->Connect(OutPin, InPin); InPin->Release(); OutPin->Release(); //3. find mpegSplitter output // hr = GetUnconnectedPin(pmpegSplitter, PINDIR_OUTPUT, &OutPin); IEnumPins *pEnum = 0; IEnumMediaTypes *pmedia=NULL; AM_MEDIA_TYPE *pmt=NULL; hr = pmpegSplitter->EnumPins(&pEnum); while (pEnum->Next(1, &OutPin, NULL) == S_OK) { // hr=OutPin->ConnectionMediaType(pmt); hr=OutPin->EnumMediaTypes(&pmedia); hr=pmedia->Next(1, &pmt, NULL); PIN_DIRECTION ThisPinDir; OutPin->QueryDirection(&ThisPinDir); if (ThisPinDir == PINDIR_OUTPUT) { if(pmt->majortype == MEDIATYPE_Video) { pEnum->Release(); pmedia->Release(); break; } } } //4. find mpeg video decoder input hr = GetUnconnectedPin(pmviddecoder, PINDIR_INPUT, &InPin); //connect 3 & 4 pGraph->Connect(OutPin, InPin); InPin->Release(); OutPin->Release();
//5. find mpeg video decoder output hr = GetUnconnectedPin(pmviddecoder, PINDIR_OUTPUT, &OutPin); //6. find video renderer input hr = GetUnconnectedPin(pvidrenderer, PINDIR_INPUT, &InPin); //connect 5 & 6 pGraph->Connect(OutPin, InPin); InPin->Release(); OutPin->Release(); //STEP 4: Run the graph hr = pControl->Run(); if (SUCCEEDED(hr)) { // Wait for completion. long evCode; pEvent->WaitForCompletion(INFINITE, &evCode); } //STEP : Release all resources pGraph->Release(); pControl->Release(); pEvent->Release(); pSource->Release(); pmpegSplitter->Release(); pmviddecoder->Release(); pvidrenderer->Release(); CoUninitialize(); }
/******************************************************************/ HRESULT GetUnconnectedPin( IBaseFilter *pFilter, // Pointer to the filter. PIN_DIRECTION PinDir, // Direction of the pin to find. IPin **ppPin) // Receives a pointer to the pin. { *ppPin = 0; IEnumPins *pEnum = 0; IPin *pPin = 0; HRESULT hr = pFilter->EnumPins(&pEnum); if (FAILED(hr)) { return hr; } while (pEnum->Next(1, &pPin, NULL) == S_OK) { PIN_DIRECTION ThisPinDir; pPin->QueryDirection(&ThisPinDir); if (ThisPinDir == PinDir) { IPin *pTmp = 0; hr = pPin->ConnectedTo(&pTmp); if (SUCCEEDED(hr)) // Already connected, not the pin we want. { pTmp->Release(); } else // Unconnected, this is the pin we want. { pEnum->Release(); *ppPin = pPin; return S_OK; } } pPin->Release(); } pEnum->Release(); // Did not find a matching pin. return E_FAIL; } /******************************************************************/ void CheckFailure(HRESULT hr) { if(FAILED(hr)) exit(0); }
|
|
|
|

|
Hi,
I use on my application the IVideoWindow interface but I want to change the code to use the Video Mixing Renderer filter. How can I switch on the full screen mode ?
Thanks,
Gabriel
|
|
|
|

|
e:\down\codeproject\directshowvmr9_src\Form1.h(148) : error C2440: 'type cast' : cannot convert from 'System::EventHandler __gc *' to 'byte *'
Cannot convert a managed type to an unmanaged type
e:\down\codeproject\directshowvmr9_src\Form1.h(148) : error C3867: 'DirectShowVMR9::Form1::trackBarX1_Scroll': function call missing argument list; use '&DirectShowVMR9::Form1::trackBarX1_Scroll' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(148) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(167) : error C3867: 'DirectShowVMR9::Form1::trackBarY1_Scroll': function call missing argument list; use '&DirectShowVMR9::Form1::trackBarY1_Scroll' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(167) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(187) : error C3867: 'DirectShowVMR9::Form1::trackBarW1_Scroll': function call missing argument list; use '&DirectShowVMR9::Form1::trackBarW1_Scroll' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(187) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(207) : error C3867: 'DirectShowVMR9::Form1::trackBarH1_Scroll': function call missing argument list; use '&DirectShowVMR9::Form1::trackBarH1_Scroll' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(207) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(227) : error C3867: 'DirectShowVMR9::Form1::trackBarA1_Scroll': function call missing argument list; use '&DirectShowVMR9::Form1::trackBarA1_Scroll' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(227) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(271) : error C3867: 'DirectShowVMR9::Form1::buttonStop_Click': function call missing argument list; use '&DirectShowVMR9::Form1::buttonStop_Click' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(271) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(282) : error C3867: 'DirectShowVMR9::Form1::buttonClose_Click': function call missing argument list; use '&DirectShowVMR9::Form1::buttonClose_Click' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(282) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(293) : error C3867: 'DirectShowVMR9::Form1::buttonPlay_Click': function call missing argument list; use '&DirectShowVMR9::Form1::buttonPlay_Click' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(293) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(303) : error C3867: 'DirectShowVMR9::Form1::buttonOpen_Click': function call missing argument list; use '&DirectShowVMR9::Form1::buttonOpen_Click' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(303) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(313) : error C3867: 'DirectShowVMR9::Form1::buttonPause_Click': function call missing argument list; use '&DirectShowVMR9::Form1::buttonPause_Click' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(313) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(325) : error C3867: 'DirectShowVMR9::Form1::trackBarA2_Scroll': function call missing argument list; use '&DirectShowVMR9::Form1::trackBarA2_Scroll' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(325) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(345) : error C3867: 'DirectShowVMR9::Form1::trackBarH2_Scroll': function call missing argument list; use '&DirectShowVMR9::Form1::trackBarH2_Scroll' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(345) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(365) : error C3867: 'DirectShowVMR9::Form1::trackBarW2_Scroll': function call missing argument list; use '&DirectShowVMR9::Form1::trackBarW2_Scroll' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(365) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(384) : error C3867: 'DirectShowVMR9::Form1::trackBarY2_Scroll': function call missing argument list; use '&DirectShowVMR9::Form1::trackBarY2_Scroll' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(384) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(403) : error C3867: 'DirectShowVMR9::Form1::trackBarX2_Scroll': function call missing argument list; use '&DirectShowVMR9::Form1::trackBarX2_Scroll' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(403) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
e:\down\codeproject\directshowvmr9_src\Form1.h(456) : error C3867: 'DirectShowVMR9::Form1::Form1_Load': function call missing argument list; use '&DirectShowVMR9::Form1::Form1_Load' to create a pointer to member
e:\down\codeproject\directshowvmr9_src\Form1.h(456) : error C3350: 'System::EventHandler' : a delegate constructor expects 2 argument(s)
生成日志保存在“file://e:\down\codeproject\DirectShowVMR9_src\Debug\BuildLog.htm”
|
|
|
|

|
hi sameer,
Gr8 work man.
Can these interfaces b useful to me in mixing the text with video(like displaying subtitles). Can u suggest me some idea regarding this.
..JK
|
|
|
|

|
Thanks for posting the great sample. It will be a good resource to learn from. Do you have a blog?
Ron
|
|
|
|

|
ingnore this
OnlythruGrace
|
|
|
|

|
Oh, I forgot. After I am done I would like to capture the rendered video to a file.
Do the VMR7 or VMR9 have output pins. Or does it require geting the DDraw surface and pull the video from there.
If so how do you keep the audio sinked.
I want to be able to edit just a section one of the embedded video streams, without having to reprocess the entire video.
So I need to capture, cut, reinsert and splice.
Peter
check out the liitle people att http://curems.no-ip.org/grace.html
OnlythruGrace
|
|
|
|

|
This looks like the Blender sample that some with the SDK.
I tried to compile that and got stuck with it not being able to open some 64 bit lib file. When I tweaked it so it could open. I got another error message saying I had a conflict between 32 and 64 bit modes.
I am sure I just did set up the paths corredctly.
With you code I am getting compiler errors with all the System::EventHandler calls.
when I comment these out just to see if it will run. I get a cannot open input file 'ddraw.dll' linker error LNK1181.
Any clues?
I have managed to implement most of this in VMR7 from some windowed sample I made windowless. Since I managed to get all the paths right on that I don't think it will take me much to convert to VMR9.
I am looking to make a production system so I am not certain that I even want VMR9 because it can't use the video port manager. I thaough this might help speed things up if the graphic card could do some decoding, incodeing and other filtering. All this is for a client.
For my own interest I have made some green screen video with C## and dot .NET framework. It is nice but no of my friends or prospective viewers want to download and install .NET on their home computers.
That is what brought me to doing it in C++. I have a free copy of C++ express. When It loadied your demo software it did some conversions, which weren't exactly correct.
Any help would uh.. Help.
Thanks
OnlythruGrace
|
|
|
|

|
hi,
I would like to know,
what I have to do, to play a video in loop.
I mean, how can I detect the end and restart again?
Thanx 4 all, your code has helped me so much.
|
|
|
|

|
Hello !
Thanks for your very useful articles !
Using this method, can you assume that both video are synchronized ? (using same encoding properties for both videos) ?
Thanks in advance
Thomas.P
|
|
|
|

|
Hi,
This is a great article! Is there a way to stream the result? I want to add a compressor filter. After the video is compressed (for example with divx), I want to stream it over the internet.
Is this possible? If so, can you explain me how?
Thanks!
Geert
Want to spread the newest version of your software automatically for free? Use Updater!
Visit my website: www.gvhsoftware.org
|
|
|
|

|
when i was running a program using dshow.h , an error in strmif.h (Generated IDL header file for streams interfaces) which is included in dshow.h occured saying missing semicolon at line 1024 , but i didn't find any error , i don't know what to do ? can any one send me a working strmif.h file ?
|
|
|
|

|
could any one copy and paste the code for dshow.h here or attach dshow.h
|
|
|
|

|
i am developing an application which requires me to use VMR 9. But when i try to create it is throwing exception
" -2147220877 : Either Microsoft DirectDraw has not been installed or the video card capabilities are not suitable. Make sure the display is not in 16-color mode."
but i can see VMR 9 in the graphedit whihc means it is registered and my display settings is 32 bit color depth.
whut is causing the problem?
|
|
|
|

|
hi
this is agreat article
but please how i can mix between a video and atexture
what iwant exactly to render a 3d sceen on surface and then play video on this texture
or
simply render to window and play the movie with the rendered window as background
please any one help me
|
|
|
|

|
sir i m very thankfull thet you have given me so comprehansive answer, sir now i m facing an other problem that is my release version does not work ,i meanwhen i open my exe build in release verion mode then it does not show any display although it is loaded in the RAM and ots process are also created.. and the same exe when build in debug mode then work fine. now i m facing this problem .please help me becouse i want to build final application in release mode. one again thanks for the valuable help
kifayatullah
|
|
|
|

|
Asalam O Alaikum, It is a nice article and it has added a lot in my knowledge. I m facing a problem if u can help me in that I will be thanful to u. The problem is I want to play a 'video.dat' file in my c# program in fullscreen mode and also I want some text labels above that fullscreen movie, also I want to play another movie in that area. Thanks in anticipation. Fahad N. Abbasi
|
|
|
|

|
sir i have generated the Stream from A vedio capturing divice and now i want to paste a water mark so please help me
i have used sampleCB mathod to get data from filter graph.
i have also tried the way of displaying image and then paste a simple text by DrawText Method it works but there is bit flickring..
so please help me in this regard.
your batter advises are alway apprciated
thnkx..
kifayat
|
|
|
|

|
you have written a nice program,which is i expect so long.
i want to improve this program, to sperate the Form and the "myVMR9" class and reuse the "myVMR9" class to some other program.
How can i do that?
Once i write them sperately,errors follows,because i cannot manage the Form(managed code) and the "myVMR9" class(unmanaged code) to work together.
thanks!
|
|
|
|
|

|
Hi
I have experience a directshow link error LNK2001: unresolved external symbol _CLSID_NullRenderer when trying to complie my direct show code. I have included the dxsdk lib directory but still can't get it to link. Do you have any ideas on how to resolve this link problem.
Thanks for your help
Craig
|
|
|
|

|
i could not instantiate the video mixing renderer 9 filter. it says some other application may be using the filter.
how can i do it?
|
|
|
|

|
Have you considered multi-screen expansions of DirectShow to include spanning a single video over multiple screens (single source, infinite tee, clipping rectangles into multiple vmr's) and simultaneous playback on multiple screens (single source, infinite tee, multiple vmr's)?
|
|
|
|

|
hiii! i trying to make a overlay in a video please helpme who to do it, i not using mfc
tanks
|
|
|
|

|
hey...sam...!!! nice work......Team Evolution rocks....!!
now i guess, i am due for an article .... soon !!!! ;]
Shehryar Dahar
|
|
|
|

|
Good work Sam, keep it up!
samiKhan
|
|
|
|

|
Hello,
I would appreciate help, where can I find(download) the contents of the directorywhich are not found in my directx 9 sdk. Im trying to create a transform filter for my encoder application but Im missing this directory which contains some header files and libs which I need.
thanks
|
|
|
|

|
I've been into VMR9 developpment for some time, and I wrote my own filter to generate a video stream out of a still picture.
This is necessary if you want to blend a picture onto a video stream, without using the overlay bitmap feature. Still pictures don't generate frames, so there is nothing blend...
I was wondering if somebody wrote one of the following applications:
- custom vmr renderer with capability to render output into video file.
- custom vmr renderer with main output (screen) and preview output: the main output could go on a secondary monitor output and the preview output could go into a preview window.
Regards
Daniel
|
|
|
|
 |
|
|
General News Suggestion Question Bug Answer Joke Rant Admin
|
This article describes how to dynamically mix two video files (.mpeg, .mpg, .avi and .dat). Mixing involves alpha-blending and stretching/shrinking and positioning of the two video streams, individually, using DirectShow's VMR9 filter.
| Type | Article |
| Licence | |
| First Posted | 3 Jan 2005 |
| Views | 287,578 |
| Bookmarked | 90 times |
|
|