BLACKMAGIC DECKLINK CAMERA ISN'T WORKING
Opened this issue · 10 comments
What steps will reproduce the problem?
1.i selected Blackmagic Decklink camera
2.trying to call start function of Aforge.Net's videocapture device's Start
3.Returned error with Unable to cast COM object of type 'System.__ComObject' to
interface type 'AForge.Video.DirectShow.Internals.IAMVideoControl'.
This operation failed because the QueryInterface call on the COM component for
the interface with IID '{6A2E0670-28E4-11D0-A18C-00A0C9118956}'
failed due to the following error: No such interface supported (Exception from
HRESULT: 0x80004002 (E_NOINTERFACE))
I can't get frames from this camera at any cost...but it is giving only black
frmaes
What version of the product are you using?
Please provide any additional information below.
Original issue reported on code.google.com by Jenifer....@mamigoinc.com
on 24 Oct 2013 at 7:11
Attachments:
I am using 2.2.5 version of Aforge
Original comment by Jenifer....@mamigoinc.com
on 24 Oct 2013 at 7:11
Since I don't have this camera to try, cannot debug this issue on my side.
Does it work fine with other software (like Skype, for example)?
Original comment by andrew.k...@gmail.com
on 24 Oct 2013 at 7:16
i have downloaded the project solution for Video.DirectShow and tried to debug
the code...Let me post that part of code
Type type = Type.GetTypeFromCLSID( Clsid.CaptureGraphBuilder2 );
if ( type == null )
throw new ApplicationException( "Failed creating capture graph builder" );
// create capture graph builder
captureGraphObject = Activator.CreateInstance( type );
captureGraph = (ICaptureGraphBuilder2) captureGraphObject;
// get type of filter graph
type = Type.GetTypeFromCLSID( Clsid.FilterGraph );
if ( type == null )
throw new ApplicationException( "Failed creating filter graph" );
// create filter graph
graphObject = Activator.CreateInstance( type );
graph = (IFilterGraph2) graphObject;
// set filter graph to the capture graph builder
captureGraph.SetFiltergraph( (IGraphBuilder) graph );
// create source device's object
sourceObject = FilterInfo.CreateFilter( deviceMoniker );
if ( sourceObject == null )
throw new ApplicationException( "Failed creating device object for moniker" );
// get base filter interface of source device
sourceBase = (IBaseFilter) sourceObject;
// get video control interface of the device
try
{
videoControl = (IAMVideoControl) sourceObject;
}
catch(Exception exMsg)
{
MessageBox.Show(exMsg.Message);
}
this is part of code inside "Workthread" function inside VideoCaptureDevice
class.hence at the line of this "videoControl = (IAMVideoControl)
sourceObject;" this Blackmagic device is getting failed giving the error like
"Unable to cast COM object of type 'System.__ComObject' to interface type
'AForge.Video.DirectShow.Internals.IAMVideoControl'. This operation failed
because the QueryInterface call on the COM component for the interface with IID
'{6A2E0670-28E4-11D0-A18C-00A0C9118956}' failed due to the following error: No
such interface supported (Exception from HRESULT: 0x80004002
(E_NOINTERFACE))."...But for other devices it is getting passed
Original comment by Jenifer....@mamigoinc.com
on 24 Oct 2013 at 9:12
IAMVideoControl us not needed to have video output. As you can see, the
original code is:
// get video control interface of the device
try
{
videoControl = (IAMVideoControl) sourceObject;
}
catch
{
// some camera drivers may not support IAMVideoControl interface
}
So if you camera does not support IAMVideoControl, it is not a showstopper. The
issues must be somewhere else. But don't have the camera to debug.
Original comment by andrew.k...@gmail.com
on 24 Oct 2013 at 10:50
Thanks for your reply....Ok...I have added the class i attached ...this is my
code i have added for test:
[TestMethod()]
public void testCameraInterface()
{
Assert.AreEqual(true, camDev.Init("DECKLINK VIDEO CAPTURE"));//U2 EE CAM//DECKLINK VIDEO CAPTURE
camDev.Start();
System.Threading.Thread.Sleep(4000);
if (camDev.bitmap != null)
camDev.bitmap.Save(@"C:\Users\developer\Documents\Mamigo\Test\Sample00.jpg");
else
Assert.Fail();
camDev.Stop();
}
camDev is the object of Cameradevice class i have attached...Hence i have
bitmap object which is to grab frame but returns null...I have one more info to
give...In third party softwares like Flash Media Encoder,Black Magic SDK and
all work fine only with their own properties like in
resolution-1920x1080
video format-HD1080i 59.94-8-bit 4:2:2YUV
FRMAERATE:29.97
this device dint work with any other configuration...I think now you can figure
out issue,,,
Original comment by Jenifer....@mamigoinc.com
on 24 Oct 2013 at 12:22
Attachments:
Original comment by andrew.k...@gmail.com
on 5 Nov 2013 at 1:47
- Changed state: NoEquipment
Have you solved the problem?
Original comment by gdy4m...@gmail.com
on 9 Feb 2015 at 2:36
See the status. Don't have this camera, so not doing anything until then.
Original comment by andrew.k...@gmail.com
on 9 Feb 2015 at 3:00
I have remote access to computer with attached camera. Can I help you to solve
this problem? For example I can debug source code and write log
Original comment by gdy4m...@gmail.com
on 9 Feb 2015 at 3:08
Hi there
I was thinking that I'm the only one who faced such problem and can't find
solution.
Andrew, I beg you to help...
I can provide remote access for debugging or everything you need to solve this
*** problem.
Regards, Mike
Original comment by DieselBY...@gmail.com
on 10 Feb 2015 at 9:39