8 #ifndef META_OCEAN_MEDIA_MF_UTILITIES_H
9 #define META_OCEAN_MEDIA_MF_UTILITIES_H
25 namespace MediaFoundation
47 inline bool operator()(
const GUID& object0,
const GUID& object1)
const;
53 typedef std::map<GUID, std::string, GUIDCompare>
IdMap;
177 static bool connectSelectedStream(IMFTopology* topology, IMFMediaSource* mediaSource, IMFActivate* sinkActivate,
const GUID& majorMediaType);
194 template <
typename T>
203 template <
typename T>
247 ocean_assert(
sizeof(object0) ==
sizeof(uint64_t) * 2);
249 const uint64_t* value0 = (
const uint64_t*)(&object0);
250 const uint64_t* value1 = (
const uint64_t*)(&object1);
252 return value0[0] < value1[0] || (value0[0] == value1[0] && value0[1] < value1[1]);
255 template <
typename T>
263 if (S_OK == node->GetObject(&
object.resetObject()))
265 object->QueryInterface(IID_PPV_ARGS(&result.
resetObject()));
271 template <
typename T>
274 ocean_assert(mediaEvent);
277 PropVariantInit(&variant);
281 if (S_OK == mediaEvent->GetValue(&variant))
283 variant.punkVal->QueryInterface(__uuidof(T), (
void**)(&result.
resetObject()));
286 PropVariantClear(&variant);
PixelFormat
Definition of all pixel formats available in the Ocean framework.
Definition: Frame.h:183
PixelOrigin
Defines different types of frame origin positions.
Definition: Frame.h:1046
This class wraps an unmanaged object (or reference) which needs to be released after usage.
Definition: ScopedObject.h:166
T & resetObject(const bool needsRelease=true)
Releases the current wrapped object and returns a new wrapped object.
Definition: ScopedObject.h:488
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15