Re #1213: added printing error message when fails to open DirectShow device
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3505 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjmedia/src/pjmedia-videodev/dshow_dev.c b/pjmedia/src/pjmedia-videodev/dshow_dev.c
index 600e419..71fb998 100644
--- a/pjmedia/src/pjmedia-videodev/dshow_dev.c
+++ b/pjmedia/src/pjmedia-videodev/dshow_dev.c
@@ -38,6 +38,7 @@
#pragma comment(lib, "Strmiids.lib")
#pragma comment(lib, "Rpcrt4.lib")
+#pragma comment(lib, "Quartz.lib")
#define THIS_FILE "dshow_dev.c"
#define DEFAULT_CLOCK_RATE 90000
@@ -701,8 +702,14 @@
IPin_Release(sinkpin);
if (vi)
CoTaskMemFree(vi);
- if (FAILED(hr))
- return hr;
+ if (FAILED(hr)) {
+ char msg[80];
+ if (AMGetErrorText(hr, msg, sizeof(msg))) {
+ PJ_LOG(4,(THIS_FILE, "Error creating filter graph: %s (hr=0x%x)",
+ msg, hr));
+ }
+ return PJ_EUNKNOWN;
+ }
return PJ_SUCCESS;
}
@@ -770,7 +777,7 @@
on_error:
dshow_stream_destroy((pjmedia_vid_dev_stream *)strm);
- return PJ_EUNKNOWN;
+ return status;
}
/* API: Get stream info. */
@@ -849,7 +856,11 @@
continue;
hr = IMediaFilter_Run(stream->dgraph[i].media_filter, 0);
if (FAILED(hr)) {
- return hr;
+ char msg[80];
+ if (AMGetErrorText(hr, msg, sizeof(msg))) {
+ PJ_LOG(4,(THIS_FILE, "Error starting media: %s", msg));
+ }
+ return PJ_EUNKNOWN;
}
}