From fa2e9c43f131747603268b06a4f901b8e61c241f Mon Sep 17 00:00:00 2001 From: Lyubomir Marinov <lyubomir.marinov@jitsi.org> Date: Fri, 24 May 2013 10:27:29 +0300 Subject: [PATCH] Fixes a failure of the video capture on Windows to set a specific video resolution. --- lib/native/windows-64/jndirectshow.dll | Bin 251310 -> 251339 bytes lib/native/windows/jndirectshow.dll | Bin 242309 -> 242361 bytes .../windows/directshow/DSCaptureDevice.cpp | 131 ++++++++----- .../windows/directshow/DSCaptureDevice.h | 22 ++- src/native/windows/directshow/DSManager.cpp | 35 ++-- ...ia_protocol_directshow_DSCaptureDevice.cpp | 65 ++++-- ...edia_protocol_directshow_DSCaptureDevice.h | 12 +- .../neomedia/codec/video/AVFrameFormat.java | 8 +- .../impl/neomedia/device/DeviceSystem.java | 8 +- .../neomedia/device/DirectShowSystem.java | 65 +++--- .../protocol/directshow/DSCaptureDevice.java | 29 ++- .../media/protocol/directshow/DataSource.java | 31 +-- .../protocol/directshow/DirectShowStream.java | 185 +++++++++++++++--- 13 files changed, 391 insertions(+), 200 deletions(-) diff --git a/lib/native/windows-64/jndirectshow.dll b/lib/native/windows-64/jndirectshow.dll index 06e7a87b0f5e032b010c5ecfafa7c18e87f22e25..3e5e5faa38e46728db0df559cbcb28edb0a4d840 100644 GIT binary patch delta 47230 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 delta 47088 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 diff --git a/lib/native/windows/jndirectshow.dll b/lib/native/windows/jndirectshow.dll index 3326eec6925c12f6feb090d8b69682b4c8f543a3..594fcdb4dc4b0e0e438b45e3f634daddbc4e631f 100644 GIT binary patch delta 54521 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 delta 54329 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 Z+pD~|Zhmdi&f+z#8~<>_h+I*h{{fj&Wn2IN diff --git a/src/native/windows/directshow/DSCaptureDevice.cpp b/src/native/windows/directshow/DSCaptureDevice.cpp index 2ee47577..d88899c8 100644 --- a/src/native/windows/directshow/DSCaptureDevice.cpp +++ b/src/native/windows/directshow/DSCaptureDevice.cpp @@ -63,6 +63,26 @@ STDMETHODIMP_(ULONG) DSGrabberCallback::Release() return 1; } +static void +_DeleteMediaType(AM_MEDIA_TYPE *mt) +{ + if (mt) + { + if (mt->cbFormat && mt->pbFormat) + { + ::CoTaskMemFree((LPVOID) mt->pbFormat); + mt->cbFormat = 0; + mt->pbFormat = NULL; + } + if (mt->pUnk) + { + mt->pUnk->Release(); + mt->pUnk = NULL; + } + ::CoTaskMemFree(mt); + } +} + DSCaptureDevice::DSCaptureDevice(const WCHAR* name) { if(name) @@ -124,84 +144,89 @@ const WCHAR* DSCaptureDevice::getName() const return m_name; } -bool DSCaptureDevice::setFormat(const DSFormat& format) +HRESULT DSCaptureDevice::setFormat(const DSFormat& format) { - HRESULT ret; + HRESULT hr; IAMStreamConfig* streamConfig = NULL; - AM_MEDIA_TYPE* mediaType = NULL; /* get the right interface to change capture settings */ - ret = m_captureGraphBuilder->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, - m_srcFilter, IID_IAMStreamConfig, (void**)&streamConfig); - - if(!FAILED(ret)) + hr + = m_captureGraphBuilder->FindInterface( + &PIN_CATEGORY_CAPTURE, + &MEDIATYPE_Video, + m_srcFilter, + IID_IAMStreamConfig, + (void**) &streamConfig); + if(SUCCEEDED(hr)) { - size_t bitCount = 0; int nb = 0; int size = 0; - BYTE* allocBytes = NULL; - AM_MEDIA_TYPE* mt; - bool found = false; + AM_MEDIA_TYPE* mediaType = NULL; + size_t bitCount = 0; - streamConfig->GetNumberOfCapabilities(&nb, &size); - allocBytes = new BYTE[size]; - - for(int i = 0 ; i < nb ; i++) + hr = streamConfig->GetNumberOfCapabilities(&nb, &size); + if (SUCCEEDED(hr) && nb) { - if(streamConfig->GetStreamCaps(i, &mt, allocBytes) == S_OK) - { - VIDEOINFOHEADER* hdr = (VIDEOINFOHEADER*)mt->pbFormat; + BYTE* scc = new BYTE[size]; - if(hdr) + if (scc) + { + for (int i = 0 ; i < nb ; i++) { - if((long)format.height == hdr->bmiHeader.biHeight && - (long)format.width == hdr->bmiHeader.biWidth) + AM_MEDIA_TYPE* mt; + + if (streamConfig->GetStreamCaps(i, &mt, scc) == S_OK) { - mediaType = mt; - if(format.pixelFormat == MEDIASUBTYPE_ARGB32.Data1 || - format.pixelFormat == MEDIASUBTYPE_RGB32.Data1) - { - bitCount = 32; - } - else if(format.pixelFormat == MEDIASUBTYPE_RGB24.Data1) + VIDEOINFOHEADER* hdr = (VIDEOINFOHEADER*) mt->pbFormat; + + if (hdr + && ((long) format.height + == hdr->bmiHeader.biHeight) + && ((long) format.width + == hdr->bmiHeader.biWidth)) { - bitCount = 24; + mediaType = mt; + if ((format.pixelFormat + == MEDIASUBTYPE_ARGB32.Data1) + || (format.pixelFormat + == MEDIASUBTYPE_RGB32.Data1)) + bitCount = 32; + else if (format.pixelFormat + == MEDIASUBTYPE_RGB24.Data1) + bitCount = 24; + else + bitCount = hdr->bmiHeader.biBitCount; + break; } else - { - bitCount = hdr->bmiHeader.biBitCount; - } - - found = true; - break; + _DeleteMediaType(mt); } } + + delete[] scc; } + else + hr = E_OUTOFMEMORY; } - if(found) + if (mediaType) { - ret = streamConfig->SetFormat(mediaType); - - if(FAILED(ret)) - { - fprintf(stderr, "Failed to set format\n"); - fflush(stderr); - } - else + hr = streamConfig->SetFormat(mediaType); + if (SUCCEEDED(hr)) { m_bitPerPixel = bitCount; m_format = format; m_format.mediaType = mediaType->subtype; } + _DeleteMediaType(mediaType); } - - delete allocBytes; + else if (SUCCEEDED(hr)) + hr = E_FAIL; streamConfig->Release(); } - return !FAILED(ret); + return hr; } DSGrabberCallback* DSCaptureDevice::getCallback() @@ -215,7 +240,7 @@ void DSCaptureDevice::setCallback(DSGrabberCallback* callback) m_sampleGrabber->SetCallback(callback, 0); } -bool DSCaptureDevice::initDevice(IMoniker* moniker) +HRESULT DSCaptureDevice::initDevice(IMoniker* moniker) { HRESULT ret = 0; @@ -338,7 +363,7 @@ bool DSCaptureDevice::initDevice(IMoniker* moniker) videoControl->Release(); } - return setFormat(m_formats.front()); + return S_OK; } void DSCaptureDevice::initSupportedFormats() @@ -416,14 +441,14 @@ bool DSCaptureDevice::buildGraph() return false; } -bool DSCaptureDevice::start() +HRESULT DSCaptureDevice::start() { - return m_graphController ? SUCCEEDED(m_graphController->Run()) : false; + return m_graphController ? m_graphController->Run() : E_FAIL; } -bool DSCaptureDevice::stop() +HRESULT DSCaptureDevice::stop() { - return m_graphController ? SUCCEEDED(m_graphController->Stop()) : false; + return m_graphController ? m_graphController->Stop() : E_FAIL; } DSFormat DSCaptureDevice::getFormat() const diff --git a/src/native/windows/directshow/DSCaptureDevice.h b/src/native/windows/directshow/DSCaptureDevice.h index 6af3ecbe..4c1f9830 100644 --- a/src/native/windows/directshow/DSCaptureDevice.h +++ b/src/native/windows/directshow/DSCaptureDevice.h @@ -109,18 +109,18 @@ public: /** * \brief Initialize the device. * \param moniker moniker of the capture device - * \return true if initialization succeed, false otherwise (in this - * case the capture device have to be deleted) + * \return S_OK or S_FALSE on success or an HRESULT value describing a + * failure */ - bool initDevice(IMoniker* moniker); + HRESULT initDevice(IMoniker* moniker); /** * \brief Set video format. * \param format video format - * \return true if change is successful, false otherwise (format unsupported, ...) - * \note This method stop stream so you have to call start() after. + * \return S_OK or S_FALSE on success or an HRESULT value describing a + * failure */ - bool setFormat(const DSFormat& format); + HRESULT setFormat(const DSFormat& format); /** * \brief Get list of supported formats. @@ -149,15 +149,17 @@ public: /** * \brief Start capture device. - * \return false if problem, true otherwise + * \return S_OK or S_FALSE on success or an HRESULT value describing a + * failure */ - bool start(); + HRESULT start(); /** * \brief Stop capture device. - * \return false if problem, true otherwise + * \return S_OK or S_FALSE on success or an HRESULT value describing a + * failure */ - bool stop(); + HRESULT stop(); /** * \brief Get current format. diff --git a/src/native/windows/directshow/DSManager.cpp b/src/native/windows/directshow/DSManager.cpp index ad90c639..8624777d 100644 --- a/src/native/windows/directshow/DSManager.cpp +++ b/src/native/windows/directshow/DSManager.cpp @@ -18,6 +18,7 @@ #include "DSManager.h" #include "DSCaptureDevice.h" #include <qedit.h> +#include <stdio.h> DSManager::DSManager() { @@ -74,15 +75,21 @@ void DSManager::initCaptureDevices() } /* get the available devices list */ - ret = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER, - IID_ICreateDevEnum, (void**)&devEnum); - + ret + = CoCreateInstance( + CLSID_SystemDeviceEnum, + NULL, + CLSCTX_INPROC_SERVER, + IID_ICreateDevEnum, + (void**) &devEnum); if(FAILED(ret)) return; - ret = devEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory, - &monikerEnum, 0); - + ret + = devEnum->CreateClassEnumerator( + CLSID_VideoInputDeviceCategory, + &monikerEnum, + 0); /* error or no devices */ if(FAILED(ret) || ret == S_FALSE) { @@ -119,7 +126,6 @@ void DSManager::initCaptureDevices() if(!FAILED(ret)) { VariantInit(&name); - ret = propertyBag->Read(L"FriendlyName", &name, 0); if(FAILED(ret)) { @@ -129,20 +135,15 @@ void DSManager::initCaptureDevices() continue; } - /* create a new capture device */ + /* + * Initialize a new DSCaptureDevice instance and add it to the list + * of DSCaptureDevice instances. + */ captureDevice = new DSCaptureDevice(name.bstrVal); - /* wprintf(L"%ws\n", name.bstrVal); */ - - if(captureDevice && captureDevice->initDevice(moniker)) - { - /* initialization success, add to the list */ + if(captureDevice && SUCCEEDED(captureDevice->initDevice(moniker))) m_devices.push_back(captureDevice); - } else - { - /* printf("failed to initialize device\n"); */ delete captureDevice; - } /* clean up */ VariantClear(&name); diff --git a/src/native/windows/directshow/org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice.cpp b/src/native/windows/directshow/org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice.cpp index 6f7926bf..bd816232 100644 --- a/src/native/windows/directshow/org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice.cpp +++ b/src/native/windows/directshow/org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice.cpp @@ -351,46 +351,69 @@ JNIEXPORT void JNICALL Java_org_jitsi_impl_neomedia_jmfext_media_protocol_direct * \param ptr native pointer of DSCaptureDevice * \param format DSFormat to set */ -JNIEXPORT void JNICALL Java_org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice_setFormat - (JNIEnv* env, jobject obj, jlong ptr, jobject format) +JNIEXPORT jint JNICALL +Java_org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice_setFormat + (JNIEnv* env, jobject obj, jlong ptr, jobject format) { - DSCaptureDevice* dev = reinterpret_cast<DSCaptureDevice*>(ptr); - DSFormat fmt; + DSCaptureDevice* thiz = reinterpret_cast<DSCaptureDevice*>(ptr); jclass clazz = env->GetObjectClass(format); + HRESULT hr; - if(clazz) + if (clazz) { - jfieldID fieldH = env->GetFieldID(clazz, "height", "I"); - jfieldID fieldW = env->GetFieldID(clazz, "width", "I"); - jfieldID fieldF = env->GetFieldID(clazz, "pixelFormat", "J"); - jlong f = env->GetLongField(format, fieldF); - jint w = env->GetIntField(format, fieldW); - jint h = env->GetIntField(format, fieldH); - - fmt.width = w; - fmt.height = h; - fmt.pixelFormat = (unsigned long)f; - - dev->setFormat(fmt); + jfieldID heightFieldID = env->GetFieldID(clazz, "height", "I"); + + if (heightFieldID) + { + jfieldID widthFieldID = env->GetFieldID(clazz, "width", "I"); + + if (widthFieldID) + { + jfieldID pixelFormatFieldID + = env->GetFieldID(clazz, "pixelFormat", "J"); + + if (pixelFormatFieldID) + { + DSFormat format_; + + format_.height = env->GetIntField(format, heightFieldID); + format_.pixelFormat + = (unsigned long) + (env->GetLongField(format, pixelFormatFieldID)); + format_.width = env->GetIntField(format, widthFieldID); + + hr = thiz->setFormat(format_); + } + else + hr = E_FAIL; + } + else + hr = E_FAIL; + } + else + hr = E_FAIL; } + else + hr = E_FAIL; + return hr; } -JNIEXPORT void JNICALL +JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice_start (JNIEnv *env, jobject obj, jlong ptr) { DSCaptureDevice *thiz = reinterpret_cast<DSCaptureDevice *>(ptr); - thiz->start(); + return (jint) (thiz->start()); } -JNIEXPORT void JNICALL +JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice_stop (JNIEnv *env, jobject obj, jlong ptr) { DSCaptureDevice *thiz = reinterpret_cast<DSCaptureDevice *>(ptr); - thiz->stop(); + return (jint) (thiz->stop()); } #ifdef __cplusplus diff --git a/src/native/windows/directshow/org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice.h b/src/native/windows/directshow/org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice.h index d0a90248..fba28a26 100644 --- a/src/native/windows/directshow/org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice.h +++ b/src/native/windows/directshow/org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice.h @@ -66,25 +66,25 @@ JNIEXPORT void JNICALL Java_org_jitsi_impl_neomedia_jmfext_media_protocol_direct /* * Class: org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice * Method: setFormat - * Signature: (JLorg/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DSFormat;)V + * Signature: (JLorg/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DSFormat;)I */ -JNIEXPORT void JNICALL Java_org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice_setFormat +JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice_setFormat (JNIEnv *, jobject, jlong, jobject); /* * Class: org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice * Method: start - * Signature: (J)V + * Signature: (J)I */ -JNIEXPORT void JNICALL Java_org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice_start +JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice_start (JNIEnv *, jobject, jlong); /* * Class: org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice * Method: stop - * Signature: (J)V + * Signature: (J)I */ -JNIEXPORT void JNICALL Java_org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice_stop +JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice_stop (JNIEnv *, jobject, jlong); #ifdef __cplusplus diff --git a/src/org/jitsi/impl/neomedia/codec/video/AVFrameFormat.java b/src/org/jitsi/impl/neomedia/codec/video/AVFrameFormat.java index 3df0d662..76ecce05 100644 --- a/src/org/jitsi/impl/neomedia/codec/video/AVFrameFormat.java +++ b/src/org/jitsi/impl/neomedia/codec/video/AVFrameFormat.java @@ -263,6 +263,12 @@ public boolean matches(Format format) @Override public String toString() { - return super.toString() + ", pixFmt= " + pixFmt; + StringBuilder s = new StringBuilder(super.toString()); + + if (pixFmt != NOT_SPECIFIED) + s.append(", pixFmt= ").append(pixFmt); + if (deviceSystemPixFmt != NOT_SPECIFIED) + s.append(", deviceSystemPixFmt= ").append(deviceSystemPixFmt); + return s.toString(); } } diff --git a/src/org/jitsi/impl/neomedia/device/DeviceSystem.java b/src/org/jitsi/impl/neomedia/device/DeviceSystem.java index f59fc39a..c55361e9 100644 --- a/src/org/jitsi/impl/neomedia/device/DeviceSystem.java +++ b/src/org/jitsi/impl/neomedia/device/DeviceSystem.java @@ -281,9 +281,9 @@ private static void initializeDeviceSystems(String[] classNames) { if (t instanceof ThreadDeath) throw (ThreadDeath) t; - else if (logger.isDebugEnabled()) + else { - logger.debug( + logger.warn( "Failed to initialize " + className, t); } @@ -311,9 +311,9 @@ else if (logger.isDebugEnabled()) { if (t instanceof ThreadDeath) throw (ThreadDeath) t; - else if (logger.isDebugEnabled()) + else { - logger.debug( + logger.warn( "Failed to reinitialize " + className, t); } diff --git a/src/org/jitsi/impl/neomedia/device/DirectShowSystem.java b/src/org/jitsi/impl/neomedia/device/DirectShowSystem.java index 9d2205e6..a58e8922 100644 --- a/src/org/jitsi/impl/neomedia/device/DirectShowSystem.java +++ b/src/org/jitsi/impl/neomedia/device/DirectShowSystem.java @@ -6,6 +6,8 @@ */ package org.jitsi.impl.neomedia.device; +import java.util.*; + import javax.media.*; import org.jitsi.impl.neomedia.*; @@ -66,47 +68,60 @@ protected void doInitialize() i++) { DSCaptureDevice device = devices[i]; - long pixelFormat = device.getFormat().getPixelFormat(); - int ffmpegPixFmt - = (int) DataSource.getFFmpegPixFmt(pixelFormat); - Format format = null; + DSFormat[] dsFormats = device.getSupportedFormats(); String name = device.getName(); - if(ffmpegPixFmt != FFmpeg.PIX_FMT_NONE) + if (dsFormats.length == 0) + { + logger.warn( + "Camera '" + name + + "' reported no supported formats."); + continue; + } + + List<Format> formats + = new ArrayList<Format>(dsFormats.length); + + for (DSFormat dsFormat : dsFormats) { - format = new AVFrameFormat(ffmpegPixFmt, (int) pixelFormat); + long pixelFormat = dsFormat.getPixelFormat(); + int ffmpegPixFmt + = (int) DataSource.getFFmpegPixFmt(pixelFormat); + + if (ffmpegPixFmt != FFmpeg.PIX_FMT_NONE) + { + Format format + = new AVFrameFormat( + ffmpegPixFmt, + (int) pixelFormat); + + if (!formats.contains(format)) + formats.add(format); + } } - else + if (formats.isEmpty()) { logger.warn( - "No support for this webcam: " + name + "(format " - + pixelFormat + " not supported)"); + "No support for the formats of camera '" + name + + "': " + Arrays.toString(dsFormats)); continue; } + Format[] formatsArray + = formats.toArray(new Format[formats.size()]); + if(logger.isInfoEnabled()) { - for(DSFormat f : device.getSupportedFormats()) - { - if(f.getWidth() != 0 && f.getHeight() != 0) - { - logger.info( - "Webcam available resolution for " + name - + ":" + f.getWidth() + "x" - + f.getHeight()); - } - } + logger.info( + "Support for the formats of camera '" + name + + "': " + Arrays.toString(formatsArray)); } CaptureDeviceInfo cdi = new CaptureDeviceInfo( name, - new MediaLocator( - LOCATOR_PROTOCOL + ':' + name), - new Format[] { format }); - - if(logger.isInfoEnabled()) - logger.info("Found[" + i + "]: " + cdi.getName()); + new MediaLocator(LOCATOR_PROTOCOL + ':' + name), + formatsArray); CaptureDeviceManager.addDevice(cdi); captureDeviceInfoIsAdded = true; diff --git a/src/org/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DSCaptureDevice.java b/src/org/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DSCaptureDevice.java index 4ded2837..631155e2 100644 --- a/src/org/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DSCaptureDevice.java +++ b/src/org/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DSCaptureDevice.java @@ -34,6 +34,10 @@ public static abstract class GrabberDelegate */ private static final DSFormat EMPTY_FORMATS[] = new DSFormat[0]; + public static final int S_FALSE = 1; + + public static final int S_OK = 0; + /** * Get bytes from <tt>buf</tt> native pointer and copy them * to <tt>ptr</tt> byte native pointer. @@ -141,7 +145,7 @@ public String getName() */ public DSFormat[] getSupportedFormats() { - DSFormat formats[] = getSupportedFormats(ptr); + DSFormat[] formats = getSupportedFormats(ptr); return (formats == null) ? EMPTY_FORMATS : formats; } @@ -174,10 +178,13 @@ public void setDelegate(GrabberDelegate delegate) * Set format to use with this capture device. * * @param format format to set + * @return an <tt>HRESULT</tt> value indicating whether the specified + * <tt>format</tt> was successfully set or describing a failure + * */ - public void setFormat(DSFormat format) + public int setFormat(DSFormat format) { - setFormat(ptr, format); + return setFormat(ptr, format); } /** @@ -185,20 +192,22 @@ public void setFormat(DSFormat format) * * @param ptr native pointer of <tt>DSCaptureDevice</tt> * @param format format to set + * @return an <tt>HRESULT</tt> value indicating whether the specified + * <tt>format</tt> was successfully set or describing a failure */ - private native void setFormat(long ptr, DSFormat format); + private native int setFormat(long ptr, DSFormat format); - public void start() + public int start() { - start(ptr); + return start(ptr); } - private native void start(long ptr); + private native int start(long ptr); - public void stop() + public int stop() { - stop(ptr); + return stop(ptr); } - private native void stop(long ptr); + private native int stop(long ptr); } diff --git a/src/org/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DataSource.java b/src/org/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DataSource.java index 800c71aa..c26d6111 100644 --- a/src/org/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DataSource.java +++ b/src/org/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DataSource.java @@ -417,31 +417,10 @@ protected Format setFormat( int streamIndex, Format oldValue, Format newValue) { - if (newValue instanceof AVFrameFormat) - { - AVFrameFormat avFrameFormat = (AVFrameFormat) newValue; - long pixFmt = avFrameFormat.getDeviceSystemPixFmt(); - - if (pixFmt != -1) - { - Dimension size = avFrameFormat.getSize(); - - /* - * We will set the native format in doStart() because a - * connect-disconnect-connect sequence of the native capture - * device may reorder its formats in a different way. - * Consequently, in the absence of further calls to - * setFormat() by JMF, a crash may occur later (typically, - * during scaling) because of a wrong format. - */ - if (size != null) - { - // This DataSource supports setFormat. - return newValue; - } - } - } - - return super.setFormat(streamIndex, oldValue, newValue); + // This DataSource supports setFormat. + return + DirectShowStream.isSupportedFormat(newValue) + ? newValue + : super.setFormat(streamIndex, oldValue, newValue); } } diff --git a/src/org/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DirectShowStream.java b/src/org/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DirectShowStream.java index f338b19e..03f34c6e 100644 --- a/src/org/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DirectShowStream.java +++ b/src/org/jitsi/impl/neomedia/jmfext/media/protocol/directshow/DirectShowStream.java @@ -15,6 +15,7 @@ import org.jitsi.impl.neomedia.codec.video.*; import org.jitsi.impl.neomedia.jmfext.media.protocol.*; +import org.jitsi.util.*; /** * Implements a <tt>PushBufferStream</tt> using DirectShow. @@ -25,6 +26,13 @@ public class DirectShowStream extends AbstractPushBufferStream { + /** + * The <tt>Logger</tt> used by the <tt>DirectShowStream</tt> class and its + * instances to print out debugging information. + */ + private static final Logger logger + = Logger.getLogger(DirectShowStream.class); + /** * The indicator which determines whether {@link #grabber} * automatically drops late frames. If <tt>false</tt>, we have to drop them @@ -132,30 +140,7 @@ private void connect() if (device == null) throw new IOException("device == null"); else - { - Format format = getFormat(); - - if (format instanceof AVFrameFormat) - { - AVFrameFormat avFrameFormat = (AVFrameFormat) format; - Dimension size = avFrameFormat.getSize(); - - if (size == null) - throw new IOException("format.size == null"); - else - { - device.setFormat( - new DSFormat( - size.width, size.height, - avFrameFormat.getDeviceSystemPixFmt())); - this.format = format; - } - } - else - throw new IOException("!(format instanceof AVFrameFormat)"); - device.setDelegate(grabber); - } } /** @@ -198,6 +183,88 @@ protected Format doGetFormat() return (format == null) ? super.doGetFormat() : format; } + /** + * {@inheritDoc} + * + * Overrides the super implementation to enable setting the <tt>Format</tt> + * of this <tt>DirectShowStream</tt> after the <tt>DataSource</tt> which + * provides it has been connected. + */ + @Override + protected Format doSetFormat(Format format) + { + if (isSupportedFormat(format)) + { + if (device == null) + return format; + else + { + try + { + setDeviceFormat(format); + } + catch (IOException ioe) + { + logger.error( + "Failed to set format on DirectShowStream: " + + format, + ioe); + /* + * Ignore the exception because the method is to report + * failures by returning null (which will be achieved + * outside the catch block). + */ + } + return format.matches(this.format) ? format : null; + } + } + else + return super.doSetFormat(format); + } + + /** + * Determines whether a specific <tt>Format</tt> appears to be suitable for + * attempts to be set on <tt>DirectShowStream</tt> instances. + * <p> + * <b>Note</b>: If the method returns <tt>true</tt>, an actual attempt to + * set the specified <tt>format</tt> on an specific + * <tt>DirectShowStream</tt> instance may still fail but that will be + * because the finer-grained properties of the <tt>format</tt> are not + * supported by that <tt>DirectShowStream</tt> instance. + * </p> + * + * @param format the <tt>Format</tt> to be checked whether it appears to be + * suitable for attempts to be set on <tt>DirectShowStream</tt> instances + * @return <tt>true</tt> if the specified <tt>format</tt> appears to be + * suitable for attempts to be set on <tt>DirectShowStream</tt> instance; + * otherwise, <tt>false</tt> + */ + static boolean isSupportedFormat(Format format) + { + if (format instanceof AVFrameFormat) + { + AVFrameFormat avFrameFormat = (AVFrameFormat) format; + long pixFmt = avFrameFormat.getDeviceSystemPixFmt(); + + if (pixFmt != -1) + { + Dimension size = avFrameFormat.getSize(); + + /* + * We will set the native format in doStart() because a + * connect-disconnect-connect sequence of the native capture + * device may reorder its formats in a different way. + * Consequently, in the absence of further calls to + * setFormat() by JMF, a crash may occur later (typically, + * during scaling) because of a wrong format. + */ + if (size != null) + return true; + } + } + return false; + } + /** * Process received frames from DirectShow capture device * @@ -484,6 +551,55 @@ void setDevice(DSCaptureDevice device) } } + /** + * Sets a specific <tt>Format</tt> on the <tt>DSCaptureDevice</tt> of this + * instance. + * + * @param format the <tt>Format</tt> to set on the <tt>DSCaptureDevice</tt> + * of this instance + * @throws IOException if setting the specified <tt>format</tt> on the + * <tt>DSCaptureDevice</tt> of this instance fails + */ + private void setDeviceFormat(Format format) + throws IOException + { + if (format == null) + throw new IOException("format == null"); + else if (format instanceof AVFrameFormat) + { + AVFrameFormat avFrameFormat = (AVFrameFormat) format; + Dimension size = avFrameFormat.getSize(); + + if (size == null) + throw new IOException("format.size == null"); + else + { + int hresult + = device.setFormat( + new DSFormat( + size.width, size.height, + avFrameFormat.getDeviceSystemPixFmt())); + + switch (hresult) + { + case DSCaptureDevice.S_FALSE: + case DSCaptureDevice.S_OK: + this.format = format; + if (logger.isDebugEnabled()) + { + logger.debug( + "Set format on DirectShowStream: " + format); + } + break; + default: + throwNewHResultException(hresult); + } + } + } + else + throw new IOException("!(format instanceof AVFrameFormat)"); + } + /** * Starts the transfer of media data from this <tt>PushBufferStream</tt>. * @@ -500,6 +616,8 @@ public void start() try { + setDeviceFormat(getFormat()); + if(!automaticallyDropsLateVideoFrames) { if (transferDataThread == null) @@ -517,8 +635,7 @@ public void run() } } - if (device != null) - device.start(); + device.start(); started = true; } @@ -541,8 +658,7 @@ public void stop() { try { - if (device != null) - device.stop(); + device.stop(); transferDataThread = null; @@ -570,4 +686,19 @@ public void stop() byteBufferPool.drain(); } } + + /** + * Throws a new <tt>IOException</tt> the detail message of which describes + * a specific <tt>HRESULT</tt> value indicating a failure. + * + * @param hresult the <tt>HRESUlT</tt> to be described by the detail message + * of the new <tt>IOException</tt> to be thrown + * @throws IOException + */ + private void throwNewHResultException(int hresult) + throws IOException + { + throw new IOException( + "HRESULT 0x" + Long.toHexString(hresult & 0xffffffffL)); + } } -- GitLab