summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Nevala <samuel.nevala@intopalo.com>2015-09-23 09:41:19 +0300
committerSamuel Nevala <samuel.nevala@intopalo.com>2015-09-30 09:46:26 +0000
commit12512d557f976983117bed8a35d585a902893b0b (patch)
tree371216831ae42d72f2f5b3785d50ddfbc9c68f93
parentf6082d46326055712fe772d1973b2de94f028a08 (diff)
Revert: "winrt: fix camera preview on Lumia 630"
This reverts commit be0a231be4ed28474271fb29f44e1eb3270f35b7. Moving blitting away from the camera device removed the need to lock buffer. Change-Id: I3a0e983d9ff2135e32e3e352c443ca653c1dd017 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
-rw-r--r--src/plugins/winrt/qwinrtcameracontrol.cpp43
1 files changed, 1 insertions, 42 deletions
diff --git a/src/plugins/winrt/qwinrtcameracontrol.cpp b/src/plugins/winrt/qwinrtcameracontrol.cpp
index b503007c3..764c23860 100644
--- a/src/plugins/winrt/qwinrtcameracontrol.cpp
+++ b/src/plugins/winrt/qwinrtcameracontrol.cpp
@@ -55,11 +55,6 @@
#include <windows.storage.streams.h>
#include <windows.media.devices.h>
-#ifdef Q_OS_WINPHONE
-#include <Windows.Security.ExchangeActiveSyncProvisioning.h>
-using namespace ABI::Windows::Security::ExchangeActiveSyncProvisioning;
-#endif
-
using namespace Microsoft::WRL;
using namespace Microsoft::WRL::Wrappers;
using namespace ABI::Windows::Devices::Enumeration;
@@ -200,21 +195,9 @@ private:
class MediaStream : public RuntimeClass<RuntimeClassFlags<WinRtClassicComMix>, IMFStreamSink, IMFMediaEventGenerator, IMFMediaTypeHandler>
{
- enum Flags { NoFlag = 0, BufferLockRequired = 1 };
-
- template <int n>
- static Flags bufferLockRequired(const wchar_t (&blackListName)[n], const HString &deviceModel)
- {
- quint32 deviceNameLength;
- const wchar_t *deviceName = deviceModel.GetRawBuffer(&deviceNameLength);
- if (n - 1 <= deviceNameLength && !wmemcmp(blackListName, deviceName, n - 1))
- return BufferLockRequired;
- return NoFlag;
- }
-
public:
MediaStream(IMFMediaType *type, IMFMediaSink *mediaSink, QWinRTCameraVideoRendererControl *videoRenderer)
- : m_type(type), m_sink(mediaSink), m_videoRenderer(videoRenderer), m_flags(NoFlag)
+ : m_type(type), m_sink(mediaSink), m_videoRenderer(videoRenderer)
{
Q_ASSERT(m_videoRenderer);
@@ -225,19 +208,6 @@ public:
Q_ASSERT_SUCCEEDED(hr);
hr = MFAllocateSerialWorkQueue(MFASYNC_CALLBACK_QUEUE_STANDARD, &m_workQueueId);
Q_ASSERT_SUCCEEDED(hr);
-
-#ifdef Q_OS_WINPHONE
- // Workaround for certain devices which fail to blit software buffers without first mapping them
- ComPtr<IEasClientDeviceInformation> deviceInfo;
- hr = RoActivateInstance(HString::MakeReference(RuntimeClass_Windows_Security_ExchangeActiveSyncProvisioning_EasClientDeviceInformation).Get(),
- &deviceInfo);
- Q_ASSERT_SUCCEEDED(hr);
- HString deviceModel;
- hr = deviceInfo->get_SystemSku(deviceModel.GetAddressOf());
- Q_ASSERT_SUCCEEDED(hr);
- m_flags |= bufferLockRequired(L"NOKIA RM-976", deviceModel);
- m_flags |= bufferLockRequired(L"NOKIA RM-1019", deviceModel);
-#endif
}
~MediaStream()
@@ -311,16 +281,6 @@ public:
hr = buffer.As(&buffer2d);
RETURN_HR_IF_FAILED("Failed to cast camera sample buffer to 2D buffer");
-#ifdef Q_OS_WINPHONE
- if (m_flags & BufferLockRequired) {
- BYTE *bytes;
- LONG stride;
- hr = buffer2d->Lock2D(&bytes, &stride);
- RETURN_HR_IF_FAILED("Failed to lock camera frame buffer");
- hr = buffer2d->Unlock2D();
- RETURN_HR_IF_FAILED("Failed to unlock camera frame buffer");
- }
-#endif
m_pendingSamples.deref();
m_videoRenderer->queueBuffer(buffer2d.Get());
@@ -394,7 +354,6 @@ private:
QWinRTCameraVideoRendererControl *m_videoRenderer;
QAtomicInt m_pendingSamples;
- quint32 m_flags;
};
class MediaSink : public RuntimeClass<RuntimeClassFlags<WinRtClassicComMix>, IMediaExtension, IMFMediaSink, IMFClockStateSink>