本文整理汇总了C++中ComPtr::AddStream方法的典型用法代码示例。如果您正苦于以下问题:C++ ComPtr::AddStream方法的具体用法?C++ ComPtr::AddStream怎么用?C++ ComPtr::AddStream使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ComPtr
的用法示例。
在下文中一共展示了ComPtr::AddStream方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CHK
// Create the Sink Writer
//
ComPtr<IMFByteStream> spOutputByteStream;
CHK(MFCreateMFByteStreamOnStreamEx((IUnknown*)outputStream, &spOutputByteStream));
ComPtr<IMFAttributes> spWriterAttributes;
CHK(MFCreateAttributes(&spWriterAttributes, 10));
CHK(spWriterAttributes->SetUnknown(MF_SINK_WRITER_D3D_MANAGER, spDeviceManager.Get()));
CHK(spWriterAttributes->SetUINT32(MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS, true));
ComPtr<IMFSinkWriter> spSinkWriter;
CHK(MFCreateSinkWriterFromURL(L".mp4", spOutputByteStream.Get(), spWriterAttributes.Get(), &spSinkWriter));
DWORD streamIndex;
CHK(spSinkWriter->AddStream(spTypeOut.Get(), &streamIndex));
CHK(spSinkWriter->SetInputMediaType(streamIndex, spTypeShared.Get(), nullptr));
//
// Write some data
//
CHK(spSinkWriter->BeginWriting());
ComPtr<IMFSample> spSample;
DWORD flags = 0;
double progress = 0.;
long long time = 0;
while (!token.is_canceled() && (time < DURATION) && !(flags & MF_SOURCE_READERF_ENDOFSTREAM))
{