sorry for my error in the post
Everyone does it at the start. No problems.
i want to understand this: ( line 582 )
hr = CDSUtils::ConnectFilters(m_pGraph, pInfiniteT, NULL, m_pVideoRenderer, NULL);
Does what it looks like. Finds the output pin on the InfiniteTee, and connects it to the input pin on the VideoRender. It's such an amazingly useful function that I've never understood why the DirectShow API doesn't have similar in it. Nearly every DirectShow application you find on the net will have this function, or similar, implemented somewhere. I expected DSPack to already have this helper function, but, yeah..., couldn't find it...
In the DeckLink SDK folder, find Win\DirectShow\Samples\Common\Utils.cpp. The single line above calls one of the functions in this file.
In there, you will find two functions named ConnectFilters. Both do the same job, just with different parameters. You should be able to simplify this by using the DSPack PinEnum (and in fact there was an example of a very similar function in the earlier code you posted (DecklinkKeyDSPackTest.zip) that uses PinEnum)
in "DecklinkPlaybackDlg.cpp" filter is used (Sample Grabber), in DSPack there (TSampleGrabber component) this can be used to resize video?
I've been asking myself the very same question. I've only ever used it to grab a bitmap. There's nothing about resizing in the documentation, but I can't see why DeckLink have put it in the graph...
If this works for resize video, you can help to write code?
Nope... I'm on a vessel off New Zealand working 12 hours a day, 7 days a week. Helping out here during coffee breaks (errr, and when no-one is looking) :-) And no, no need to apologise, I'm loving this puzzle :-)
BUT
the same result with:
DecklinkPlayback.exe
This actually changes everything
Is the card actually capable of what you're trying to do? I would send Blackmagic an email confirming this. If their own sample code doesn't do the job...
UPDATE 1: Oh, you still have one option to play with. Load the correct graph into GraphEdit, and ensure one of the non-working video files are at the front. Now right-click on random output pins and choose properties. See if you can find one that allows you to resize the video and that works when you click play (should be the output of the decklink decoder, but you never know)... If that works, we'll find some code that edits the MediaType a pin exports...
UPDATE 2:
Note: my project takes 4 seconds to start video after clicking play.
this can be unseated by filters, and intelligent connection takes a long time
Yes, I wondered. There's a note in the DeckLink sample code...
//-----------------------------------------------------------------------------
// CreateGraph
// Build a playback graph. This is a fairly crude implementation, it could be improved
// by searching for audio and video pins and connecting appropriately rather than relying
// too heavily on intelligent connect of the graph.
// Also as the infinite T is used for preview it is invariably connected BEFORE any decoder
// filters. Rendering to Decklink and preview requires two decoder instances which is not
// very efficient.
Let's get the graph working first, before we optimise...