Merge "webmdshow clean up: clang-format vp9decoder/vp9decoderfilter.{c,h}pp"diff --git a/common/cenumpins.hpp b/common/cenumpins.hpp
index fdce756..873d584 100644
--- a/common/cenumpins.hpp
+++ b/common/cenumpins.hpp
@@ -7,9 +7,12 @@
// be found in the AUTHORS file in the root of the source tree.
#pragma once
-#include "tenumxxx.hpp"
+#include <strmif.h>
+
#include <vector>
+#include "tenumxxx.hpp"
+
class CEnumPins : public TEnumXXX<IEnumPins, IPin*>
{
virtual ~CEnumPins();
diff --git a/vp9decoder/dllentry.cpp b/vp9decoder/dllentry.cpp
index d072912..7e90c40 100644
--- a/vp9decoder/dllentry.cpp
+++ b/vp9decoder/dllentry.cpp
@@ -5,206 +5,180 @@
// tree. An additional intellectual property rights grant can be found
// in the file PATENTS. All contributing project authors may
// be found in the AUTHORS file in the root of the source tree.
-
+#include <comdef.h>
#include <strmif.h>
+#include <uuids.h>
+
+#include <cassert>
+
#include "cfactory.hpp"
#include "comreg.hpp"
-#include "vp9decoderidl.h"
-#include <cassert>
-#include <comdef.h>
-#include <uuids.h>
#include "graphutil.hpp"
+#include "vp9decoderidl.h"
#include "webmtypes.hpp"
HMODULE g_hModule;
static ULONG s_cLock;
-namespace VP9DecoderLib
-{
- HRESULT CreateInstance(
- IClassFactory*,
- IUnknown*,
- const IID&,
- void**);
+namespace VP9DecoderLib {
+HRESULT CreateInstance(IClassFactory*, IUnknown*, const IID&, void**);
-} //end namespace VP9DecoderLib
-
+} // namespace VP9DecoderLib
static CFactory s_factory(&s_cLock, &VP9DecoderLib::CreateInstance);
+BOOL APIENTRY DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID) {
+ switch (dwReason) {
+ case DLL_PROCESS_ATTACH:
+ g_hModule = hModule;
+ break;
-BOOL APIENTRY DllMain(
- HINSTANCE hModule,
- DWORD dwReason,
- LPVOID)
-{
- switch (dwReason)
- {
- case DLL_PROCESS_ATTACH:
- {
- g_hModule = hModule;
- break;
- }
- case DLL_THREAD_ATTACH:
- case DLL_THREAD_DETACH:
- case DLL_PROCESS_DETACH:
- default:
- break;
- }
+ case DLL_THREAD_ATTACH:
+ case DLL_THREAD_DETACH:
+ case DLL_PROCESS_DETACH:
+ default:
+ break;
+ }
- return TRUE;
+ return TRUE;
}
+STDAPI DllCanUnloadNow() { return s_cLock ? S_FALSE : S_OK; }
+STDAPI DllGetClassObject(const CLSID& clsid, const IID& iid, void** ppv) {
+ if (clsid == CLSID_VP9Decoder)
+ return s_factory.QueryInterface(iid, ppv);
-STDAPI DllCanUnloadNow()
-{
- return s_cLock ? S_FALSE : S_OK;
+ return CLASS_E_CLASSNOTAVAILABLE;
}
+STDAPI DllUnregisterServer() {
+ const GraphUtil::IFilterMapper2Ptr pMapper(CLSID_FilterMapper2);
+ assert(bool(pMapper));
-STDAPI DllGetClassObject(
- const CLSID& clsid,
- const IID& iid,
- void** ppv)
-{
- if (clsid == CLSID_VP9Decoder)
- return s_factory.QueryInterface(iid, ppv);
+ HRESULT hr = pMapper->UnregisterFilter(&CLSID_LegacyAmFilterCategory, 0,
+ CLSID_VP9Decoder);
+ assert(SUCCEEDED(hr));
+ if (FAILED(hr))
+ return hr;
- return CLASS_E_CLASSNOTAVAILABLE;
+ hr = ComReg::UnRegisterCoclass(CLSID_VP9Decoder);
+ assert(SUCCEEDED(hr));
+ if (FAILED(hr))
+ return hr;
+
+ std::wstring filename;
+
+ hr = ComReg::ComRegGetModuleFileName(g_hModule, filename);
+ assert(SUCCEEDED(hr));
+ assert(!filename.empty());
+ if (FAILED(hr) || filename.empty())
+ return hr;
+
+ hr = ComReg::UnRegisterTypeLibResource(filename.c_str());
+ assert(SUCCEEDED(hr));
+ if (FAILED(hr))
+ return hr;
+
+ return S_OK; // TODO
}
+STDAPI DllRegisterServer() {
+ std::wstring filename_;
-STDAPI DllUnregisterServer()
-{
- const GraphUtil::IFilterMapper2Ptr pMapper(CLSID_FilterMapper2);
- assert(bool(pMapper));
+ HRESULT hr = ComReg::ComRegGetModuleFileName(g_hModule, filename_);
+ assert(SUCCEEDED(hr));
+ assert(!filename_.empty());
+ if (FAILED(hr))
+ return hr;
- HRESULT hr = pMapper->UnregisterFilter(
- &CLSID_LegacyAmFilterCategory,
- 0,
- CLSID_VP9Decoder);
-
- //TODO
- //assert(SUCCEEDED(hr));
-
- hr = ComReg::UnRegisterCoclass(CLSID_VP9Decoder);
-
- std::wstring filename_;
-
- hr = ComReg::ComRegGetModuleFileName(g_hModule, filename_);
- assert(SUCCEEDED(hr));
- assert(!filename_.empty());
-
- const wchar_t* const filename = filename_.c_str();
-
- hr = ComReg::UnRegisterTypeLibResource(filename);
-
- return S_OK; //TODO
-}
-
-
-STDAPI DllRegisterServer()
-{
- std::wstring filename_;
-
- HRESULT hr = ComReg::ComRegGetModuleFileName(g_hModule, filename_);
- assert(SUCCEEDED(hr));
- assert(!filename_.empty());
-
- const wchar_t* const filename = filename_.c_str();
+ const wchar_t* const filename = filename_.c_str();
#if _DEBUG
- const wchar_t friendlyname[] = L"WebM VP9 Decoder Filter (Debug)";
+ const wchar_t friendlyname[] = L"WebM VP9 Decoder Filter (Debug)";
#else
- const wchar_t friendlyname[] = L"WebM VP9 Decoder Filter";
+ const wchar_t friendlyname[] = L"WebM VP9 Decoder Filter";
#endif
- hr = DllUnregisterServer();
- assert(SUCCEEDED(hr));
-
- hr = ComReg::RegisterTypeLibResource(filename, 0);
- assert(SUCCEEDED(hr));
-
- hr = ComReg::RegisterCoclass(
- CLSID_VP9Decoder,
- friendlyname,
- filename,
- L"Webm.VP9Decoder",
- L"Webm.VP9Decoder.1",
- false, //not insertable
- false, //not a control
- ComReg::kBoth, //DShow filters must support "both"
- LIBID_VP9DecoderLib, //typelib
- 0, //no version specified
- 0); //no toolbox bitmap
-
- assert(SUCCEEDED(hr));
-
- const GraphUtil::IFilterMapper2Ptr pMapper(CLSID_FilterMapper2);
- assert(bool(pMapper));
-
- enum { cPins = 2 };
- REGFILTERPINS pins[cPins];
-
- REGFILTERPINS& inpin = pins[0];
-
- enum { nInpinMediaTypes = 1 };
- const REGPINTYPES inpinMediaTypes[nInpinMediaTypes] =
- {
- { &MEDIATYPE_Video, &WebmTypes::MEDIASUBTYPE_VP90 }
- };
-
- inpin.strName = 0; //obsolete
- inpin.bRendered = FALSE; //TODO: ?
- inpin.bOutput = FALSE;
- inpin.bZero = FALSE;
- inpin.bMany = FALSE;
- inpin.clsConnectsToFilter = 0; //obsolete
- inpin.strConnectsToPin = 0; //obsolete
- inpin.nMediaTypes = nInpinMediaTypes;
- inpin.lpMediaType = inpinMediaTypes;
-
- REGFILTERPINS& outpin = pins[1];
-
- enum { nOutpinMediaTypes = 7 };
- const REGPINTYPES outpinMediaTypes[nOutpinMediaTypes] =
- {
- { &MEDIATYPE_Video, &MEDIASUBTYPE_NV12 },
- { &MEDIATYPE_Video, &MEDIASUBTYPE_YV12 },
- { &MEDIATYPE_Video, &WebmTypes::MEDIASUBTYPE_I420 },
- { &MEDIATYPE_Video, &MEDIASUBTYPE_UYVY },
- { &MEDIATYPE_Video, &MEDIASUBTYPE_YUY2 },
- { &MEDIATYPE_Video, &MEDIASUBTYPE_YUYV },
- { &MEDIATYPE_Video, &MEDIASUBTYPE_YVYU }
- };
-
- outpin.strName = 0; //obsolete
- outpin.bRendered = FALSE; //always FALSE for outpins
- outpin.bOutput = TRUE;
- outpin.bZero = FALSE;
- outpin.bMany = FALSE;
- outpin.clsConnectsToFilter = 0; //obsolete
- outpin.strConnectsToPin = 0; //obsolete
- outpin.nMediaTypes = nOutpinMediaTypes;
- outpin.lpMediaType = outpinMediaTypes;
-
- //pin setup complete
-
- REGFILTER2 filter;
-
- filter.dwVersion = 1;
- filter.dwMerit = MERIT_NORMAL;
- filter.cPins = cPins;
- filter.rgPins = pins;
-
- hr = pMapper->RegisterFilter(
- CLSID_VP9Decoder,
- friendlyname,
- 0,
- &CLSID_LegacyAmFilterCategory,
- 0,
- &filter);
-
+ hr = DllUnregisterServer();
+ assert(SUCCEEDED(hr));
+ if (FAILED(hr))
return hr;
+
+ hr = ComReg::RegisterTypeLibResource(filename, 0);
+ assert(SUCCEEDED(hr));
+ if (FAILED(hr))
+ return hr;
+
+ hr = ComReg::RegisterCoclass(
+ CLSID_VP9Decoder, friendlyname, filename, L"Webm.VP9Decoder",
+ L"Webm.VP9Decoder.1",
+ false, // not insertable
+ false, // not a control
+ ComReg::kBoth, // DShow filters must support "both"
+ LIBID_VP9DecoderLib, // typelib
+ 0, // no version specified
+ 0); // no toolbox bitmap
+
+ assert(SUCCEEDED(hr));
+ if (FAILED(hr))
+ return hr;
+
+ const GraphUtil::IFilterMapper2Ptr pMapper(CLSID_FilterMapper2);
+ assert(pMapper != NULL);
+ if (pMapper == NULL)
+ return E_FAIL;
+
+
+ // Describe the input and output pins.
+ enum { cPins = 2 };
+ REGFILTERPINS pins[cPins];
+
+ REGFILTERPINS& inpin = pins[0];
+
+ enum { nInpinMediaTypes = 1 };
+ const REGPINTYPES inpinMediaTypes[nInpinMediaTypes] = {
+ {&MEDIATYPE_Video, &WebmTypes::MEDIASUBTYPE_VP90}};
+
+ inpin.strName = 0; // obsolete
+ inpin.bRendered = FALSE; // TODO: ?
+ inpin.bOutput = FALSE;
+ inpin.bZero = FALSE;
+ inpin.bMany = FALSE;
+ inpin.clsConnectsToFilter = 0; // obsolete
+ inpin.strConnectsToPin = 0; // obsolete
+ inpin.nMediaTypes = nInpinMediaTypes;
+ inpin.lpMediaType = inpinMediaTypes;
+
+ REGFILTERPINS& outpin = pins[1];
+
+ enum { nOutpinMediaTypes = 7 };
+ const REGPINTYPES outpinMediaTypes[nOutpinMediaTypes] = {
+ {&MEDIATYPE_Video, &MEDIASUBTYPE_NV12},
+ {&MEDIATYPE_Video, &MEDIASUBTYPE_YV12},
+ {&MEDIATYPE_Video, &WebmTypes::MEDIASUBTYPE_I420},
+ {&MEDIATYPE_Video, &MEDIASUBTYPE_UYVY},
+ {&MEDIATYPE_Video, &MEDIASUBTYPE_YUY2},
+ {&MEDIATYPE_Video, &MEDIASUBTYPE_YUYV},
+ {&MEDIATYPE_Video, &MEDIASUBTYPE_YVYU}};
+
+ outpin.strName = 0; // obsolete
+ outpin.bRendered = FALSE; // always FALSE for outpins
+ outpin.bOutput = TRUE;
+ outpin.bZero = FALSE;
+ outpin.bMany = FALSE;
+ outpin.clsConnectsToFilter = 0; // obsolete
+ outpin.strConnectsToPin = 0; // obsolete
+ outpin.nMediaTypes = nOutpinMediaTypes;
+ outpin.lpMediaType = outpinMediaTypes;
+
+ // Register the filter.
+ REGFILTER2 filter = {0};
+ filter.dwVersion = 1;
+ filter.dwMerit = MERIT_NORMAL;
+ filter.cPins = cPins;
+ filter.rgPins = pins;
+
+ return pMapper->RegisterFilter(CLSID_VP9Decoder, friendlyname, 0,
+ &CLSID_LegacyAmFilterCategory, 0, &filter);
}