Quantcast
Channel: Media Foundation Development for Windows Desktop forum
Viewing all 1079 articles
Browse latest View live

Video with alpha channel ... comes out opaque

$
0
0
Hi,

   Got an uncompressed avi with ARGB frames, each with an alpha channel.

When I render this with media foundation, the frames are decoded, but the alpha seems to be ignored and the frames come out visible, but opaque.

Please could Microsoft supply a sample application that demonstrates video streams that include alpha channels decoding correctly.

Thank you.

Best regards,
Steve Williams
Advance Software


MFPlayer fails with no audio device

$
0
0
Hi,

    MFPlayer fails with playback error 0xC00D36FA when I open a video file on a machine with no audio device installed.

Your other example media foundation players gracefully degrade as expected & play back video with no sound on this system configuration.

Please could Microsoft upgrade MFPlayer so it also gracefully degrades & plays back video when no audio device is installed.

Thanks in advance.

Best regards,
Steve.

How can I create an MP4 container from an h.264 byte stream (Annex B)?

$
0
0

Basically, I have a neat H.264 byte stream in the form of I and P samples. I can play these samples using MediaStreamSource and MediaElement and they play good. I also need to save them as an MP4 file so that the same can be played later using Media Element or VLC. This is how I am trying to do it, using Media Foundation;

I create an IMFMediaSink from MFCreateMPEG4MediaSink; this is my code:

IMFMediaType *pMediaType = NULL;
	IMFByteStream *pByteStream = NULL;
	HRESULT hr = S_OK;
	if (SUCCEEDED(hr))
	{
		hr = MFCreateMediaType(&pMediaType);
	}

	pSeqHdr = reinterpret_cast<UINT8 *>(mSamplesQueue.SequenceHeader());
	if (SUCCEEDED(hr))
	{
		hr = pMediaType->SetBlob(MF_MT_MPEG_SEQUENCE_HEADER, pSeqHdr, 35);
	}
	UINT32 pcbBlobSize = {0};
	hr = pMediaType->GetBlobSize(MF_MT_MPEG_SEQUENCE_HEADER, &pcbBlobSize);

	/*if (SUCCEEDED(hr))
	{
		hr = pMediaType->SetUINT32(MF_MPEG4SINK_SPSPPS_PASSTHROUGH, TRUE);
	}*/
	if (SUCCEEDED(hr))
	{
		hr = pMediaType->SetGUID(MF_MT_MAJOR_TYPE, MFMediaType_Video);
	}
	if (SUCCEEDED(hr))
	{
		hr = pMediaType->SetGUID(MF_MT_SUBTYPE, VIDEO_INPUT_FORMAT);
	}
	if (SUCCEEDED(hr))
	{
		hr = MFSetAttributeRatio(pMediaType, MF_MT_FRAME_RATE, VIDEO_FPS, 1);
	}
	if (SUCCEEDED(hr))
	{
		hr = pMediaType->SetUINT32(MF_MT_AVG_BITRATE, VIDEO_BIT_RATE);
	}
	if (SUCCEEDED(hr))
	{
		hr = pMediaType->SetUINT32(MF_MT_INTERLACE_MODE, MFVideoInterlace_Progressive);
	}
	if (SUCCEEDED(hr))
	{
		hr = MFSetAttributeSize(pMediaType, MF_MT_FRAME_SIZE, VIDEO_WIDTH, VIDEO_HEIGHT);
	}
	if (SUCCEEDED(hr))
	{
		// Pixel aspect ratio
		hr = MFSetAttributeRatio(pMediaType, MF_MT_PIXEL_ASPECT_RATIO, 1, 1);
	}
	if (SUCCEEDED(hr))
	{
		hr = MFCreateFile(
			MF_ACCESSMODE_READWRITE,
			MF_OPENMODE_DELETE_IF_EXIST,
			MF_FILEFLAGS_NONE,
			L"output1.mp4",&pByteStream);
	}
	if (SUCCEEDED(hr))
	{
		hr = MFCreateMPEG4MediaSink(
			pByteStream,
			pMediaType,
			NULL,&pMediaSink);
	}

Then I create an IMFSinkWriter from this media sink using MFCreateSinkWriterFromMediaSink; this is my code:

if (SUCCEEDED(hr))
	{
		hr = MFCreateSinkWriterFromMediaSink(pMediaSink, NULL, &pSinkWriter);
	}
	// Tell the sink writer to start accepting data.
	if (SUCCEEDED(hr))
	{
		hr = pSinkWriter->BeginWriting();
	}

	if (SUCCEEDED(hr))
	{
		pSinkWriter->AddRef();
	}

And then I write every sample to the sink writer with IMFSinkWriter::WriteSample(0, IMFSample); this is my code:

IMFSample *pSample = NULL;
	IMFMediaBuffer *pBuffer = NULL;

	const DWORD cbBuffer = mSamplesQueue.GetNextSampleSize();
	UINT32 isIDR = mSamplesQueue.GetNextSampleIsIDR();
	BYTE *pData = NULL;

	// Create a new memory buffer.
	HRESULT hr = MFCreateMemoryBuffer(cbBuffer, &pBuffer);

	// Lock the buffer and copy the video frame to the buffer.
	if (SUCCEEDED(hr))
	{
		DWORD buffLen = cbBuffer;
		hr = pBuffer->Lock(&pData, &buffLen, 0);
	}
	if (SUCCEEDED(hr))
	{
		hr = mSamplesQueue.Dequeu(&pData);
	}
	if (pBuffer)
	{
		pBuffer->Unlock();
	}

	// Set the data length of the buffer.
	if (SUCCEEDED(hr))
	{
		hr = pBuffer->SetCurrentLength(cbBuffer);
	}

	// Create a media sample and add the buffer to the sample.
	if (SUCCEEDED(hr))
	{
		hr = MFCreateSample(&pSample);
	}
	if (SUCCEEDED(hr))
	{
		hr = pSample->AddBuffer(pBuffer);
	}

	// Set the time stamp and the duration.
	if (SUCCEEDED(hr))
	{
		hr = pSample->SetSampleTime(rtStart);
	}
	if (SUCCEEDED(hr))
	{
		hr = pSample->SetSampleDuration(rtDuration);
	}
	if (SUCCEEDED(hr))
	{
		hr = pSample->SetUINT32(MFSampleExtension_CleanPoint, isIDR);
	}
	//pSample->
	// Send the sample to the Sink Writer.
	if (SUCCEEDED(hr))
	{
		hr = pSinkWriter->WriteSample(0, pSample);
	}

	SafeRelease(&pSample);
	SafeRelease(&pBuffer);

The writing of samples is an iterative code that is called from every sample that I have (I am testing with 1k I and P samples). Now when I call the IMFSinkWriter::Finalize(), it tells me that "0xc00d4a45 : Sink could not create valid output file because required headers were not provided to the sink.". It does create an MP4 file with a very valid size (for my 1k samples, 4.6 MB). 

If it is asking for MF_MT_MPEG_SEQUENCE_HEADER then I am setting them with IMFMediaType::SetBlob(MF_MT_MPEG_SEQUENCE_HEADER, BYTE[], UINT32)

I checked the file with Elecard Video Format Analyzer and the header seems incomplete. 

Following is some of the trace from MFTrace tool:

9608,1F9C 07:24:57.37301 TraceOSVersion @ OS version (BuildLabEx): 9600.16422.amd64fre.winblue_gdr.131006-1505
9608,1F9C 07:24:57.37302 TraceMFDetoursVersion @ MFDetours version 1.0.0.1
9608,1F9C 07:24:57.37307 TraceEnabledKeywords @ Keywords and levels: Default 4, Detours 4, Kernel32Export 4, MFExport 4, MFPlatExport 4, MFPlayExport 4, MFReadWriteExport 4, Ole32Export 4, wmvCoreExport 4, MFPublic 4, IMFActivate 4, IMFAttributes 4, IMFClock 4, IMFMediaEventGenerator 4, IMFMediaSession 4, IMFMediaSink 4, IMFMediaSource 4, IMFMediaStream 4, IMFPMediaPlayer 4, IMFPMediaItem 4, IMFPMediaPlayerCallback 4, IMFPresentationClock 4
9608,1F9C 07:24:57.37315 TraceEnabledKeywords @ Keywords and levels: IMFQualityAdvise 4, IMFQualityAdvise2 4, IMFQualityManager 4, IMFSample 4, IMFSinkWriter 4, IMFSourceReader 4, IMFSourceReaderCallback 4, IMFSourceResolver 4, IMFStreamSink 4, IMFTopology 4, IMFTopologyNode 4, IMFTopoLoader 4, IMFTransform 4, IMediaObject 4, IMFSchemeHandler 4, IMFByteStream 4, IMFByteStreamHandler 4, IMFReadWriteClassFactory 4, IFilterGraph 4, IGraphBuilder 4
9608,1F9C 07:24:57.37316 TraceEnabledKeywords @ Keywords and levels: IMediaControl 4, IMemInputPin 4, IWMReader 4, IWMReaderCallback 4
9608,1F9C 07:24:57.37436 CMFMediaSessionDetours::Attach @012D88C0 Presentation clock @012D9718
9608,1F9C 07:24:57.37825 CMFPlatExportDetours::MFStartup @ Version=0x00020070, dwFlags=0x00000000
9608,1F9C 07:24:57.37860 CMFPlatExportDetours::MFCreateFile @ URL: 'output1.mp4'
9608,1F9C 07:24:57.38340 COle32ExportDetours::CoCreateInstance @ Created {A22C4FC7-6E91-4E1D-89E9-53B2667B72BA} MF MPEG4 Sink Class Factory (C:\Windows\System32\mfmp4srcsnk.dll) @012DC6C8 - traced interfaces: 
9608,1F9C 07:24:57.38436 CMFExportDetours::MFCreateMPEG4MediaSink @ New sink @012DC878
9608,1F9C 07:24:57.38470 COle32ExportDetours::CoCreateInstance @ Created {48E2ED0F-98C2-4A37-BED5-166312DDD83F} MFReadWrite Class Factory (C:\Windows\System32\mfreadwrite.dll) @012DC6C8 - traced interfaces: IMFReadWriteClassFactory @012DC6C8, 
9608,1F9C 07:24:57.38472 CMFReadWriteClassFactoryDetours::CreateInstanceFromObject @012DC6C8 Object @012DC878, <NULL>
9608,1F9C 07:24:57.38482 CMFReadWriteClassFactoryDetours::HandleObject @ New sink writer @012DD988
9608,1F9C 07:24:57.38495 CMFSinkWriterDetours::BeginWriting @012DD988 Began writing
9608,2BE8 07:24:57.38512 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,2BE8 07:24:57.38513 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,2BE8 07:24:57.38514 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=301 MEStreamSinkStarted, value (empty), 
9608,1F9C 07:24:57.38538 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @012DE808, Time 0ms, Duration 40ms, Buffers 1, Size 2261B, 
9608,1F9C 07:24:57.38540 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @012DE808, Time 0ms, Duration 40ms, Buffers 1, Size 2261B, 
9608,2BE8 07:24:57.38543 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @012DD558 size 24B
9608,25CC 07:24:57.38565 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 24B
9608,2BE8 07:24:57.38566 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D10B78 size 68B
9608,1F9C 07:24:57.38567 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10BC8, Time 40ms, Duration 40ms, Buffers 1, Size 1469B, 
9608,1F9C 07:24:57.38570 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10BC8, Time 40ms, Duration 40ms, Buffers 1, Size 1469B, 
9608,25CC 07:24:57.38572 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 68B
9608,2BE8 07:24:57.38573 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D0F6B4 size 16B
9608,25CC 07:24:57.38575 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 16B
9608,2BE8 07:24:57.38579 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,2BE8 07:24:57.38580 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38597 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11530, Time 80ms, Duration 40ms, Buffers 1, Size 1356B, 
9608,1F9C 07:24:57.38599 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11530, Time 80ms, Duration 40ms, Buffers 1, Size 1356B, 
9608,25CC 07:24:57.38602 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38618 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11A88, Time 120ms, Duration 40ms, Buffers 1, Size 1248B, 
9608,1F9C 07:24:57.38619 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11A88, Time 120ms, Duration 40ms, Buffers 1, Size 1248B, 
9608,2F44 07:24:57.38623 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38639 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11F98, Time 160ms, Duration 40ms, Buffers 1, Size 1176B, 
9608,1F9C 07:24:57.38640 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11F98, Time 160ms, Duration 40ms, Buffers 1, Size 1176B, 
9608,25CC 07:24:57.38644 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38659 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D124A8, Time 200ms, Duration 40ms, Buffers 1, Size 1136B, 
9608,1F9C 07:24:57.38661 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D124A8, Time 200ms, Duration 40ms, Buffers 1, Size 1136B, 
9608,2F44 07:24:57.38664 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38680 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12978, Time 240ms, Duration 40ms, Buffers 1, Size 1068B, 
9608,1F9C 07:24:57.38682 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12978, Time 240ms, Duration 40ms, Buffers 1, Size 1068B, 
9608,25CC 07:24:57.38685 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38701 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12E58, Time 280ms, Duration 40ms, Buffers 1, Size 1088B, 
9608,1F9C 07:24:57.38703 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12E58, Time 280ms, Duration 40ms, Buffers 1, Size 1088B, 
9608,2F44 07:24:57.38706 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38722 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D13308, Time 320ms, Duration 40ms, Buffers 1, Size 1036B, 
9608,1F9C 07:24:57.38724 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D13308, Time 320ms, Duration 40ms, Buffers 1, Size 1036B, 
9608,25CC 07:24:57.38729 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D13508 size 10802B
9608,2BE8 07:24:57.38736 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 10802B
9608,2BE8 07:24:57.38737 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38744 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12E58, Time 360ms, Duration 40ms, Buffers 1, Size 1056B, 
9608,1F9C 07:24:57.38746 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12E58, Time 360ms, Duration 40ms, Buffers 1, Size 1056B, 
9608,2F44 07:24:57.38749 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38766 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12978, Time 400ms, Duration 40ms, Buffers 1, Size 1048B, 
9608,1F9C 07:24:57.38768 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12978, Time 400ms, Duration 40ms, Buffers 1, Size 1048B, 
9608,25CC 07:24:57.38771 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38787 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D124A8, Time 440ms, Duration 40ms, Buffers 1, Size 1004B, 
9608,1F9C 07:24:57.38788 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D124A8, Time 440ms, Duration 40ms, Buffers 1, Size 1004B, 
9608,2F44 07:24:57.38791 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38807 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11F98, Time 480ms, Duration 40ms, Buffers 1, Size 960B, 
9608,1F9C 07:24:57.38809 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11F98, Time 480ms, Duration 40ms, Buffers 1, Size 960B, 
9608,25CC 07:24:57.38812 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38828 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11A88, Time 520ms, Duration 40ms, Buffers 1, Size 1008B, 
9608,1F9C 07:24:57.38830 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11A88, Time 520ms, Duration 40ms, Buffers 1, Size 1008B, 
9608,2F44 07:24:57.38833 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38849 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11530, Time 560ms, Duration 40ms, Buffers 1, Size 988B, 
9608,1F9C 07:24:57.38851 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11530, Time 560ms, Duration 40ms, Buffers 1, Size 988B, 
9608,25CC 07:24:57.38854 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38870 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10BC8, Time 600ms, Duration 40ms, Buffers 1, Size 1172B, 
9608,1F9C 07:24:57.38871 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10BC8, Time 600ms, Duration 40ms, Buffers 1, Size 1172B, 
9608,2F44 07:24:57.38874 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38890 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @012DE808, Time 640ms, Duration 40ms, Buffers 1, Size 944B, 
9608,1F9C 07:24:57.38892 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @012DE808, Time 640ms, Duration 40ms, Buffers 1, Size 944B, 
9608,25CC 07:24:57.38896 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D13508 size 8272B
9608,2BE8 07:24:57.38901 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 8272B
9608,2BE8 07:24:57.38902 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38911 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10BC8, Time 680ms, Duration 40ms, Buffers 1, Size 980B, 
9608,1F9C 07:24:57.38913 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10BC8, Time 680ms, Duration 40ms, Buffers 1, Size 980B, 
9608,2F44 07:24:57.38916 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38932 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11530, Time 720ms, Duration 40ms, Buffers 1, Size 920B, 
9608,1F9C 07:24:57.38934 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11530, Time 720ms, Duration 40ms, Buffers 1, Size 920B, 
9608,25CC 07:24:57.38937 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38953 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11A88, Time 760ms, Duration 40ms, Buffers 1, Size 1008B, 
9608,1F9C 07:24:57.38955 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11A88, Time 760ms, Duration 40ms, Buffers 1, Size 1008B, 
9608,2F44 07:24:57.38958 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38974 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11F98, Time 800ms, Duration 40ms, Buffers 1, Size 884B, 
9608,1F9C 07:24:57.38975 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11F98, Time 800ms, Duration 40ms, Buffers 1, Size 884B, 
9608,25CC 07:24:57.38978 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.38995 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D124A8, Time 840ms, Duration 40ms, Buffers 1, Size 896B, 
9608,1F9C 07:24:57.38996 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D124A8, Time 840ms, Duration 40ms, Buffers 1, Size 896B, 
9608,2F44 07:24:57.38999 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39015 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12978, Time 880ms, Duration 40ms, Buffers 1, Size 868B, 
9608,1F9C 07:24:57.39017 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12978, Time 880ms, Duration 40ms, Buffers 1, Size 868B, 
9608,25CC 07:24:57.39020 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39036 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12E58, Time 920ms, Duration 40ms, Buffers 1, Size 928B, 
9608,1F9C 07:24:57.39037 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12E58, Time 920ms, Duration 40ms, Buffers 1, Size 928B, 
9608,2F44 07:24:57.39040 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39062 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D13308, Time 960ms, Duration 40ms, Buffers 1, Size 952B, 
9608,1F9C 07:24:57.39064 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D13308, Time 960ms, Duration 40ms, Buffers 1, Size 952B, 
9608,25CC 07:24:57.39069 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D13508 size 7428B
9608,2BE8 07:24:57.39075 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 7428B
9608,2BE8 07:24:57.39076 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39084 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12E58, Time 1000ms, Duration 40ms, Buffers 1, Size 980B, 
9608,1F9C 07:24:57.39086 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12E58, Time 1000ms, Duration 40ms, Buffers 1, Size 980B, 
9608,2F44 07:24:57.39090 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39106 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12978, Time 1040ms, Duration 40ms, Buffers 1, Size 992B, 
9608,1F9C 07:24:57.39108 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12978, Time 1040ms, Duration 40ms, Buffers 1, Size 992B, 
9608,25CC 07:24:57.39112 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39128 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D124A8, Time 1080ms, Duration 40ms, Buffers 1, Size 908B, 
9608,1F9C 07:24:57.39130 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D124A8, Time 1080ms, Duration 40ms, Buffers 1, Size 908B, 
9608,2F44 07:24:57.39133 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39150 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11F98, Time 1120ms, Duration 40ms, Buffers 1, Size 1008B, 
9608,1F9C 07:24:57.39151 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11F98, Time 1120ms, Duration 40ms, Buffers 1, Size 1008B, 
9608,25CC 07:24:57.39155 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39171 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11A88, Time 1160ms, Duration 40ms, Buffers 1, Size 1008B, 
9608,1F9C 07:24:57.39173 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11A88, Time 1160ms, Duration 40ms, Buffers 1, Size 1008B, 
9608,2F44 07:24:57.39176 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39193 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11530, Time 1200ms, Duration 40ms, Buffers 1, Size 988B, 
9608,1F9C 07:24:57.39195 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11530, Time 1200ms, Duration 40ms, Buffers 1, Size 988B, 
9608,25CC 07:24:57.39198 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39215 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10BC8, Time 1240ms, Duration 40ms, Buffers 1, Size 1052B, 
9608,1F9C 07:24:57.39216 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10BC8, Time 1240ms, Duration 40ms, Buffers 1, Size 1052B, 
9608,2F44 07:24:57.39220 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39236 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @012DE808, Time 1280ms, Duration 40ms, Buffers 1, Size 1561B, 
9608,1F9C 07:24:57.39238 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @012DE808, Time 1280ms, Duration 40ms, Buffers 1, Size 1561B, 
9608,25CC 07:24:57.39243 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D13508 size 7888B
9608,2BE8 07:24:57.39247 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 7888B
9608,2BE8 07:24:57.39248 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39259 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10BC8, Time 1320ms, Duration 40ms, Buffers 1, Size 2213B, 
9608,1F9C 07:24:57.39261 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10BC8, Time 1320ms, Duration 40ms, Buffers 1, Size 2213B, 
9608,2F44 07:24:57.39264 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39292 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11530, Time 1360ms, Duration 40ms, Buffers 1, Size 2697B, 
9608,1F9C 07:24:57.39294 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11530, Time 1360ms, Duration 40ms, Buffers 1, Size 2697B, 
9608,25CC 07:24:57.39299 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39313 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11A88, Time 1400ms, Duration 40ms, Buffers 1, Size 3115B, 
9608,1F9C 07:24:57.39315 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11A88, Time 1400ms, Duration 40ms, Buffers 1, Size 3115B, 
9608,2F44 07:24:57.39319 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39335 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11F98, Time 1440ms, Duration 40ms, Buffers 1, Size 4067B, 
9608,1F9C 07:24:57.39337 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11F98, Time 1440ms, Duration 40ms, Buffers 1, Size 4067B, 
9608,25CC 07:24:57.39341 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39359 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D124A8, Time 1480ms, Duration 40ms, Buffers 1, Size 4585B, 
9608,1F9C 07:24:57.39361 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D124A8, Time 1480ms, Duration 40ms, Buffers 1, Size 4585B, 
9608,2F44 07:24:57.39364 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39382 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12978, Time 1520ms, Duration 40ms, Buffers 1, Size 4957B, 
9608,1F9C 07:24:57.39384 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12978, Time 1520ms, Duration 40ms, Buffers 1, Size 4957B, 
9608,25CC 07:24:57.39387 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39404 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12E58, Time 1560ms, Duration 40ms, Buffers 1, Size 4753B, 
9608,1F9C 07:24:57.39406 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12E58, Time 1560ms, Duration 40ms, Buffers 1, Size 4753B, 
9608,2F44 07:24:57.39410 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39428 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D13308, Time 1600ms, Duration 40ms, Buffers 1, Size 5341B, 
9608,1F9C 07:24:57.39429 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D13308, Time 1600ms, Duration 40ms, Buffers 1, Size 5341B, 
9608,25CC 07:24:57.39436 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D1EA68 size 27948B
9608,2BE8 07:24:57.39444 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 27948B
9608,2BE8 07:24:57.39445 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39451 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12E58, Time 1640ms, Duration 40ms, Buffers 1, Size 4989B, 
9608,1F9C 07:24:57.39453 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12E58, Time 1640ms, Duration 40ms, Buffers 1, Size 4989B, 
9608,2F44 07:24:57.39457 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39475 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12978, Time 1680ms, Duration 40ms, Buffers 1, Size 5373B, 
9608,1F9C 07:24:57.39476 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12978, Time 1680ms, Duration 40ms, Buffers 1, Size 5373B, 
9608,25CC 07:24:57.39480 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39497 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D124A8, Time 1720ms, Duration 40ms, Buffers 1, Size 5777B, 
9608,1F9C 07:24:57.39499 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D124A8, Time 1720ms, Duration 40ms, Buffers 1, Size 5777B, 
9608,2F44 07:24:57.39503 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39521 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11F98, Time 1760ms, Duration 40ms, Buffers 1, Size 5839B, 
9608,1F9C 07:24:57.39523 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11F98, Time 1760ms, Duration 40ms, Buffers 1, Size 5839B, 
9608,25CC 07:24:57.39526 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39543 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11A88, Time 1800ms, Duration 40ms, Buffers 1, Size 6067B, 
9608,1F9C 07:24:57.39545 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11A88, Time 1800ms, Duration 40ms, Buffers 1, Size 6067B, 
9608,2F44 07:24:57.39548 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39567 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11530, Time 1840ms, Duration 40ms, Buffers 1, Size 6047B, 
9608,1F9C 07:24:57.39569 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11530, Time 1840ms, Duration 40ms, Buffers 1, Size 6047B, 
9608,25CC 07:24:57.39573 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39590 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10BC8, Time 1880ms, Duration 40ms, Buffers 1, Size 6463B, 
9608,1F9C 07:24:57.39592 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10BC8, Time 1880ms, Duration 40ms, Buffers 1, Size 6463B, 
9608,2F44 07:24:57.39596 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39613 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @012DE808, Time 1920ms, Duration 40ms, Buffers 1, Size 6023B, 
9608,1F9C 07:24:57.39615 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @012DE808, Time 1920ms, Duration 40ms, Buffers 1, Size 6023B, 
9608,25CC 07:24:57.39623 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D282B8 size 45896B
9608,2BE8 07:24:57.39629 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 45896B
9608,2BE8 07:24:57.39630 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39634 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11A88, Time 1960ms, Duration 40ms, Buffers 1, Size 4B, 
9608,1F9C 07:24:57.39636 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11A88, Time 1960ms, Duration 40ms, Buffers 1, Size 4B, 
9608,2F44 07:24:57.39639 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39659 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10BC8, Time 2000ms, Duration 40ms, Buffers 1, Size 26094B, 
9608,1F9C 07:24:57.39661 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10BC8, Time 2000ms, Duration 40ms, Buffers 1, Size 26094B, 
9608,25CC 07:24:57.39665 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39682 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11530, Time 2040ms, Duration 40ms, Buffers 1, Size 5537B, 
9608,1F9C 07:24:57.39684 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11530, Time 2040ms, Duration 40ms, Buffers 1, Size 5537B, 
9608,2F44 07:24:57.39687 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39705 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11F98, Time 2080ms, Duration 40ms, Buffers 1, Size 5201B, 
9608,1F9C 07:24:57.39707 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11F98, Time 2080ms, Duration 40ms, Buffers 1, Size 5201B, 
9608,25CC 07:24:57.39710 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39727 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D124A8, Time 2120ms, Duration 40ms, Buffers 1, Size 4821B, 
9608,1F9C 07:24:57.39729 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D124A8, Time 2120ms, Duration 40ms, Buffers 1, Size 4821B, 
9608,2F44 07:24:57.39733 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39750 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12978, Time 2160ms, Duration 40ms, Buffers 1, Size 5037B, 
9608,1F9C 07:24:57.39752 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12978, Time 2160ms, Duration 40ms, Buffers 1, Size 5037B, 
9608,25CC 07:24:57.39755 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39773 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12E58, Time 2200ms, Duration 40ms, Buffers 1, Size 5033B, 
9608,1F9C 07:24:57.39774 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12E58, Time 2200ms, Duration 40ms, Buffers 1, Size 5033B, 
9608,2F44 07:24:57.39778 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39796 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D13308, Time 2240ms, Duration 40ms, Buffers 1, Size 5129B, 
9608,1F9C 07:24:57.39797 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D13308, Time 2240ms, Duration 40ms, Buffers 1, Size 5129B, 
9608,25CC 07:24:57.39806 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D34CB8 size 57750B
9608,2BE8 07:24:57.39813 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 57750B
9608,2BE8 07:24:57.39814 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39820 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12978, Time 2280ms, Duration 40ms, Buffers 1, Size 4913B, 
9608,1F9C 07:24:57.39822 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12978, Time 2280ms, Duration 40ms, Buffers 1, Size 4913B, 
9608,2F44 07:24:57.39825 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39842 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12E58, Time 2320ms, Duration 40ms, Buffers 1, Size 4697B, 
9608,1F9C 07:24:57.39844 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D12E58, Time 2320ms, Duration 40ms, Buffers 1, Size 4697B, 
9608,25CC 07:24:57.39847 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39865 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D124A8, Time 2360ms, Duration 40ms, Buffers 1, Size 4311B, 
9608,1F9C 07:24:57.39867 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D124A8, Time 2360ms, Duration 40ms, Buffers 1, Size 4311B, 
9608,2F44 07:24:57.39870 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39887 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11F98, Time 2400ms, Duration 40ms, Buffers 1, Size 4267B, 
9608,1F9C 07:24:57.39889 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11F98, Time 2400ms, Duration 40ms, Buffers 1, Size 4267B, 
9608,25CC 07:24:57.39893 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39910 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11530, Time 2440ms, Duration 40ms, Buffers 1, Size 4271B, 
9608,1F9C 07:24:57.39912 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11530, Time 2440ms, Duration 40ms, Buffers 1, Size 4271B, 
9608,2F44 07:24:57.39915 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39933 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10BC8, Time 2480ms, Duration 40ms, Buffers 1, Size 4397B, 
9608,1F9C 07:24:57.39934 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10BC8, Time 2480ms, Duration 40ms, Buffers 1, Size 4397B, 
9608,25CC 07:24:57.39938 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.39971 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11A88, Time 2520ms, Duration 40ms, Buffers 1, Size 4361B, 
9608,1F9C 07:24:57.39973 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11A88, Time 2520ms, Duration 40ms, Buffers 1, Size 4361B, 
9608,1F9C 07:24:57.39994 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @012DE808, Time 2560ms, Duration 40ms, Buffers 1, Size 4429B, 
9608,1F9C 07:24:57.39996 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @012DE808, Time 2560ms, Duration 40ms, Buffers 1, Size 4429B, 
9608,1F9C 07:24:57.40017 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D107E0, Time 2600ms, Duration 40ms, Buffers 1, Size 4477B, 
9608,1F9C 07:24:57.40038 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10700, Time 2640ms, Duration 40ms, Buffers 1, Size 4533B, 
9608,1F9C 07:24:57.40063 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10070, Time 2680ms, Duration 40ms, Buffers 1, Size 4521B, 
9608,2F44 07:24:57.40063 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,2F44 07:24:57.40064 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D107E0, Time 2600ms, Duration 40ms, Buffers 1, Size 4477B, 
9608,2F44 07:24:57.40066 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,2F44 07:24:57.40068 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10700, Time 2640ms, Duration 40ms, Buffers 1, Size 4533B, 
9608,2F44 07:24:57.40072 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D34CB8 size 36346B
9608,2BE8 07:24:57.40082 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 36346B
9608,2BE8 07:24:57.40083 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,2BE8 07:24:57.40084 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10070, Time 2680ms, Duration 40ms, Buffers 1, Size 4521B, 
9608,2BE8 07:24:57.40085 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40086 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D102A0, Time 2720ms, Duration 40ms, Buffers 1, Size 4259B, 
9608,1F9C 07:24:57.40088 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D102A0, Time 2720ms, Duration 40ms, Buffers 1, Size 4259B, 
9608,2BE8 07:24:57.40091 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,2BE8 07:24:57.40092 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40111 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11A88, Time 2760ms, Duration 40ms, Buffers 1, Size 4131B, 
9608,1F9C 07:24:57.40113 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11A88, Time 2760ms, Duration 40ms, Buffers 1, Size 4131B, 
9608,25CC 07:24:57.40125 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40134 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10BC8, Time 2800ms, Duration 40ms, Buffers 1, Size 3951B, 
9608,1F9C 07:24:57.40137 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10BC8, Time 2800ms, Duration 40ms, Buffers 1, Size 3951B, 
9608,2F44 07:24:57.40140 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40157 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11530, Time 2840ms, Duration 40ms, Buffers 1, Size 3863B, 
9608,1F9C 07:24:57.40159 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11530, Time 2840ms, Duration 40ms, Buffers 1, Size 3863B, 
9608,25CC 07:24:57.40163 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40179 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11F98, Time 2880ms, Duration 40ms, Buffers 1, Size 3891B, 
9608,1F9C 07:24:57.40181 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11F98, Time 2880ms, Duration 40ms, Buffers 1, Size 3891B, 
9608,2F44 07:24:57.40187 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D34CB8 size 34164B
9608,2BE8 07:24:57.40193 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 34164B
9608,2BE8 07:24:57.40194 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40202 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11530, Time 2920ms, Duration 40ms, Buffers 1, Size 3639B, 
9608,1F9C 07:24:57.40204 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11530, Time 2920ms, Duration 40ms, Buffers 1, Size 3639B, 
9608,25CC 07:24:57.40208 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40225 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10BC8, Time 2960ms, Duration 40ms, Buffers 1, Size 3571B, 
9608,1F9C 07:24:57.40226 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10BC8, Time 2960ms, Duration 40ms, Buffers 1, Size 3571B, 
9608,2F44 07:24:57.40230 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40246 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11A88, Time 3000ms, Duration 40ms, Buffers 1, Size 3535B, 
9608,1F9C 07:24:57.40248 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11A88, Time 3000ms, Duration 40ms, Buffers 1, Size 3535B, 
9608,25CC 07:24:57.40252 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40268 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D102A0, Time 3040ms, Duration 40ms, Buffers 1, Size 3423B, 
9608,1F9C 07:24:57.40270 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D102A0, Time 3040ms, Duration 40ms, Buffers 1, Size 3423B, 
9608,2F44 07:24:57.40274 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40290 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10070, Time 3080ms, Duration 40ms, Buffers 1, Size 3419B, 
9608,1F9C 07:24:57.40292 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10070, Time 3080ms, Duration 40ms, Buffers 1, Size 3419B, 
9608,25CC 07:24:57.40296 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40312 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10700, Time 3120ms, Duration 40ms, Buffers 1, Size 3279B, 
9608,1F9C 07:24:57.40314 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10700, Time 3120ms, Duration 40ms, Buffers 1, Size 3279B, 
9608,2F44 07:24:57.40318 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40334 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D107E0, Time 3160ms, Duration 40ms, Buffers 1, Size 3291B, 
9608,1F9C 07:24:57.40336 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D107E0, Time 3160ms, Duration 40ms, Buffers 1, Size 3291B, 
9608,25CC 07:24:57.40340 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40356 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @012DE808, Time 3200ms, Duration 40ms, Buffers 1, Size 3159B, 
9608,1F9C 07:24:57.40358 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @012DE808, Time 3200ms, Duration 40ms, Buffers 1, Size 3159B, 
9608,2F44 07:24:57.40364 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D34CB8 size 28048B
9608,2BE8 07:24:57.40372 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 28048B
9608,2BE8 07:24:57.40372 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40378 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D107E0, Time 3240ms, Duration 40ms, Buffers 1, Size 3099B, 
9608,1F9C 07:24:57.40380 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D107E0, Time 3240ms, Duration 40ms, Buffers 1, Size 3099B, 
9608,25CC 07:24:57.40384 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40400 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10700, Time 3280ms, Duration 40ms, Buffers 1, Size 3127B, 
9608,1F9C 07:24:57.40403 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10700, Time 3280ms, Duration 40ms, Buffers 1, Size 3127B, 
9608,2F44 07:24:57.40406 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40423 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10070, Time 3320ms, Duration 40ms, Buffers 1, Size 2935B, 
9608,1F9C 07:24:57.40424 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10070, Time 3320ms, Duration 40ms, Buffers 1, Size 2935B, 
9608,25CC 07:24:57.40428 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40445 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D102A0, Time 3360ms, Duration 40ms, Buffers 1, Size 2987B, 
9608,1F9C 07:24:57.40446 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D102A0, Time 3360ms, Duration 40ms, Buffers 1, Size 2987B, 
9608,2F44 07:24:57.40450 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40476 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11A88, Time 3400ms, Duration 40ms, Buffers 1, Size 2889B, 
9608,1F9C 07:24:57.40478 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11A88, Time 3400ms, Duration 40ms, Buffers 1, Size 2889B, 
9608,25CC 07:24:57.40481 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40498 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10BC8, Time 3440ms, Duration 40ms, Buffers 1, Size 2597B, 
9608,1F9C 07:24:57.40499 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D10BC8, Time 3440ms, Duration 40ms, Buffers 1, Size 2597B, 
9608,2F44 07:24:57.40503 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40520 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11530, Time 3480ms, Duration 40ms, Buffers 1, Size 2469B, 
9608,1F9C 07:24:57.40521 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11530, Time 3480ms, Duration 40ms, Buffers 1, Size 2469B, 
9608,25CC 07:24:57.40525 CMFStreamSinkDetours::EndGetEvent @012DD1B8 Met=305 MEStreamSinkRequestSample, value (empty), 
9608,1F9C 07:24:57.40541 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D11F98, Time 3520ms, Duration 40ms, Buffers 1, Size 2297B, 
9608,1F9C 07:24:57.40543 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D11F98, Time 3520ms, Duration 40ms, Buffers 1, Size 2297B, 
9608,2F44 07:24:57.40548 CMFByteStreamDetours::BeginWrite @012DB3A8 buffer @02D34CB8 size 23262B
9608,1F9C 07:24:57.40563 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D124A8, Time 3560ms, Duration 40ms, Buffers 1, Size 2425B, 
9608,1F9C 07:24:57.40566 CMFStreamSinkDetours::ProcessSample @012DD1B8 Sample @02D124A8, Time 3560ms, Duration 40ms, Buffers 1, Size 2425B, 
9608,1F9C 07:24:57.40588 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12E58, Time 3600ms, Duration 40ms, Buffers 1, Size 2641B, 
9608,1F9C 07:24:57.40612 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D12978, Time 3640ms, Duration 40ms, Buffers 1, Size 3095B, 
9608,1F9C 07:24:57.40633 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D13308, Time 3680ms, Duration 40ms, Buffers 1, Size 3311B, 
9608,1F9C 07:24:57.40654 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D100E0, Time 3720ms, Duration 40ms, Buffers 1, Size 3075B, 
9608,1F9C 07:24:57.40680 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D10150, Time 3760ms, Duration 40ms, Buffers 1, Size 3147B, 
9608,1F9C 07:24:57.40704 CMFSinkWriterDetours::WriteSample @012DD988 Stream Index 0x0, Sample @02D101C0, Time 3800ms, Duration 40ms, Buffers 1, Size 3023B, 
9608,2BE8 07:24:57.40713 CMFByteStreamDetours::EndWrite @012DB3A8 wrote 23262B

...there is more of it...

Could I get some help finding out what I am missing or whether there is some better/other way of doing what I am trying to achieve?

Thanks!


Thanks, Manish


Need to stream UDP into Windows Media Foundation

$
0
0

There is a helpful package for WMF use in C# which I am attempting to modify to accept a streaming video over a very local network. This video can be accessed in my tests with VLC, but only via udp://@(address). The example code I'm working with is "BasicPlayback" for C# in WMF; it does not support UDP. All the help I can find online indicates either to use RTP or RTPS - the former of which is also unsupported, and the latter of which does not locate the stream when I try it - or gives me advice of adding a new scheme handler for UDP to the registry.

Unfortunately, Microsoft's "helpful" guide to scheme handling and using the IMF source resolver says to modify the registry and to use an enable command....but doesn't give me enough information to figure out how. The registry editing instructions are here: http (colon) (slash slash) msdn (dot) microsoft (dot) com (slash) en-us (slash) library (slash) windows (slash) desktop (slash) aa371872(v-vx.85) (dot) aspx ((apologies, but MS doesn't let me paste links yet)) but I have had no luck determining how to find out what UDP's CLSID is (or even if there's a specified one, or it's something I need to make up myself). The instructions for configuring a media source ( http (colon) (slash slash) msdn (dot) microsoft (dot) com (slash) en-us (slash) library (slash) windows (slash) desktop (slash) dd206738(v=vs.85) (dot) aspx ) rather unhelpfully demonstrate creating a pointer and using it as an argument, with no indication how to actually USE it. I may be missing something, so please do not hesitate to point out something that might seem obvious that I am missing.

Ultimately, what I need, again, is to be able to enter a udp://@(address) into the URL field of BasicPlayback and have it stream the video coming from that address. I am not opposed to writing my own scheme handler, if I could figure out what one even looks like; the code for existing ones is obfuscated behind dll reference files. I do not know C# well enough to know how to dig deeper than the interface definition, which only has the prototypes for the methods. Searching all files hasn't helped me locate overriding definitions or declarations, either.

Any advice or help is welcome. Thanks!

Video capture card in GraphEdit

$
0
0

Hi everyone,

I've got an AverMedia HD Live Gamer capture card for capturing an HDMI plugged video camera.

I've ensured that this capture card supports DirectShow so I've started to build a custom graph in GraphEdit in order to test it's working and then write the code in C++ for use it in my application.

I've connected the graph like that:

AverMedia HD Xbar (crossbar) >  AverMedia HD Capture > AverMedia Encoder H.264 > MPEG-2 Demultiplexer > Microsoft  DTV-DVD Video Decoder > VMR9 (pin: Input 1)

But always I try to run the graph i get the following error:

0x8007048F - Device not connected

Anyone knows why? How can I fix this error to get the capture card into DirectShow?

I don't need to write a file or decode / encode the video stream...only to display it in DirectShow.

A simple application but I cannot see what I'm doing wrong or I'm missing.

Thanks a lot,
Adrià.


P.D.: I've used both AverMedia REC Central and vMix applications and the capture card is working fine.

Windows 8.1 - Video Capture Start->Stop->Start

$
0
0

There is a bug in Media Foundation on Windows 8.1.  It's simple to reproduce, including in Topoedit.

Steps... 

-Add a video capture source (we've tried several - including the AVStream Simulated Hardware Sample)

-Add a EVR

-Connect them

-Play/Run/Start (observe that you get video)

-Stop

-Play/Run/Start (observe that you don't get video)

This was not a problem with Window 8.0.  

Draw analog values from windows media player

$
0
0

I would like to analog sound draw values from windows media player as when the video is being played. May i know if there is such function in visual studio 2012 which can help me do it. Will appreciate if any of your could provide me a link, so I can start a direction. I now totally lost with my project as where to start searching in the field of sound coding.

Thanks

Using the ID3D11VideoDecoder API with AVC/H.264

$
0
0

I am trying to get AVC/H264 decoding using the DX11 Video Decoding APIs working. Are there any code samples on how to correctly feed the DXVA2 structures into the buffers to get a correct output image? After days of fiddling around with SPS/PPS information stuffed into DXVA structs i got _some_ image output. But it's flickering and has tons of decoding artifacts.

The only information i found was on DXVA2 in ffmpeg and an MSDN article on how to use the API in general (to implement a MediaFoundation Filter). Then there's a MS PDF on DXVA2. 

Quite interessting that nobody seems to use it - at least in open source projects - while all GPU vendors implement in their drivers...

Any help or hints appreciated.

All the best,

Stephan


Using Integrated Camera on Lenovo X201 with Media Foundation

$
0
0

Hi, 

I am using the Integrated Camera on Lenovo x201 with Media Foundation.  It works fine the first time I try it , however the next time  even when I call release on the source reader object, it can not get the media source. 

_sourceReader->Release();
// Create a source reader for this file from MediaSource
hr = MFCreateSourceReaderFromMediaSource(_mSource,m_Attributes, &_sourceReader);
IMFMediaType* mType = NULL;
	hr = _sourceReader->GetCurrentMediaType(MF_SOURCE_READER_FIRST_VIDEO_STREAM, &mType);

It fails saying cannot open the device. If I restart my executable it works fine.

Thanks,

Manisha

The MathWorks

Dynamically changing multiple MF media sources

$
0
0

Hello everybody,

I'm working with MF topology that has multiple video sources. Until now I've been successfully usingMFCreateAggregateSource() to combine them into a single source, since MF can't handle multiple sources in one topology. But now I also want to be able to add/remove certain sources dynamically(without shutting down other sources). Aggregate Source doesn't seem to provide any mechanism  to perform dynamic changes on the underlying media sources. And I can't create a new Aggregate Source without shutting down the previous one (because some of the underlying sources are the same and it returns MF_E_MULTIPLE_SUBSCRIBERS). Hence I can't create a new topology to pass to Sequencer Source.


So what is the best way to go here? Is this even possible?


I've read this 7 year old topic (http://social.msdn.microsoft.com/Forums/en-US/aa0080f0-efd5-4a53-8e03-815cddca2ef8/mf-video-media-source-example), that looks relevant. I guess a custom source with dynamically changing set of streams can do the trick. (I also guess that Aggregate Source works the similar way). Is there a more convenient way other than implementing my own Aggregate Source from scratch?

Thanks in advance.

h.264 rtp ts stream and media foundation

$
0
0

Dear community,

I would need some help with the media foundation. I have the following scenario:

A rtp multicast ts stream has to be displayed with the WPF media element. I have found the Media Extension (Win8 Store App) example, that includes many examples for custom scheme handler and so on. My idea was to implement a custom (rtp://) scheme handler, that just "forwards" the byte stream to the decoders or just create a custom media source, that cares about decoding. Is this possible or do I need to implement all the decoding myself. As far as I understood the archirecture of  mf it should be possible to just forward the bytes to some mf component, because if i store the raw bytes on my hard disk and name the file something.mpg, the media element plays the stream.

Thanks in advance and sorry if I'm too naive :) but mf is "somewhat" complex... but the only solution to display the stream in a win8 app.

Michael

Draw analog values from windows media player

$
0
0

I would like to analog sound draw values from windows media player as when the video is being played. May i know if there is such function in visual studio 2012 which can help me do it. Will appreciate if any of your could provide me a link, so I can start a direction. I now totally lost with my project as where to start searching in the field of sound coding.

Thanks

Capture and write float PCM samples in MP4 using Source Reader / Sink writer

$
0
0

I have a problem with the sink writer to write AAC samples to MP4 sink.

I capture 44.1k stereo float samples.

I use a  IMFTransform resampler to convert them into PCM 16bits stereo samples.

These samples are sent to the MPEG4 sink writer (configured to encode them to AAC samples).

I call WriteSample without problems but nothing is written to the file.

Regards,

MFT - Custom overlays Question

$
0
0

Hello all,

I'm a little stumped on how to achieve my goal of combining Text overlay in a video stream. I'm currently reading and looking at the book "Developing Microsoft Media Foundation Applications" and getting a lot out of it, but in his Transform example he is just injecting a static image overlay to the input video stream of his Transform dll.

I understand the Transform plugins are isolated COM objects from all outside applications. Am I wrong in assuming this could be achieved by the calling application setting up 2 streams to the transform, 1 being the image of the text overlay, and the other being the video stream and then combining the 2 inside the Transform? Am I way off base in this theory or is there another way of sending custom data to the Transform (being the Text Image overlay) somehow other than a stream.

Thanks so much in advance for your responses!

-Brandon

SetItemInfo for a playlist directly...not through the embedded AxWindowsMediaPlayer1

$
0
0

I have a program that creates and accesses Windows Media Playlists (for audio / *.wma files).

Recently, I have tried to set attributes, other than: Title and Author. When I try using SetItemInfo("<attribute>","<attribute value>"), the <attribute> does not save back to the permanent *.wpl file. In other words, if I use for example:

wmpMyPlaylistCollection = AxWindowsMediaPlayer1.playlistCollection
wmpMyPLArray = wmpMyPlaylistCollection.getByName(<SomePlayListName>)

wmpMyPlaylist.setItemInfo("UserCustom1", "ThisIsATest")

and then try and access it:

Debug.Print("UserCustom1: " & wmpMyPlaylist.getItemInfo("UserCustom1"))

This is my output:

UserCustom1: ThisIsATest

And if I use the code:

For IX = 0 To wmpMyPlaylist.attributeCount - 1
  Debug.Print(IX & "). " & wmpMyPlaylist.attributeName(IX).ToString)
Next

one of the Debug.Print statements will produce: UserCustom1

However, if I go back and re-select the wmpMyPlaylist from the library via the first 2 lines of the code:

wmpMyPlaylistCollection = AxWindowsMediaPlayer1.playlistCollection
wmpMyPLArray = wmpMyPlaylistCollection.getByName(<SomePlayListName>)
Then:
Debug.Print("UserCustom1: " & wmpMyPlaylist.getItemInfo("UserCustom1"))

will produce:
UserCustom1: <and a blank here>

and the for next loop:

For IX = 0 To wmpMyPlaylist.attributeCount - 1
  Debug.Print(IX & "). " & wmpMyPlaylist.attributeName(IX).ToString)
Next

will not have the entry: UserCustom1

By doing some research, I found the MSDN Library entry for:

IWMPMedia::setItemInfo method

which states in the "Remarks" section:

If you embed the Windows Media Player control in your application, file attributes that you change will not be written to the digital media file until the user runs Windows Media Player.

So...how can I call the setItemInfo against the playlist, without running it through the embedded "AxWindowsMediaPlayer1".

Anybody know how to do this?

Thanks for your time in advance.



Paul D. Goldstein Forceware Systems, Inc.


Video Processor MFT missing

Need technique for removing frames from an MP4 video

$
0
0

I am currently prototyping the ability to remove sections from a video and saving the results using Media Foundation in a C++ program. There is a fundamental flaw in my approach that I'm hoping somebody will have a suggestion for a work-around, or at least an alternative idea that could be used instead (but it must be MF-based, DirectShow is not an option).

The initial approach chosen for the encoding involved the use of the "Source Reader plus Sink Writer" algorithm as briefly outlined in this article: http://msdn.microsoft.com/en-us/library/windows/desktop/ff485861(v=vs.85).aspx

Since there is no transcoding involved, the ReadSample+WriteSample loop is very fast since I can just use the source native MediaType in the sink writer. My initial thought was to just drop the samples[frames] that are within the interval to be cut out of the video. This turns out to be a bad idea because it doesn't take into consideration the compressed format of the video/audio streams. That is, that there are I-frames (a.k.a., key frames) and P-frames (partial frames) and the P-frames are highly dependent on the existence of the preceding I-frame.

In this example, choosing to discard arbitrarily (user) chosen frames, would result in incorrectly rendered frames following the discarded section. It would correct itself upon reaching the next key frame.

[ I ][ P ][ P ][ P ]  [ P ][ P ][ I ][ P ][ P ]  [ P ][ P ][ P ][ I ][ P ][ P ]
                         ^                               ^
                          x    <-   discard   ->   x

My hope was to try to either (a) force the next sample/frame after the cut section to be a key frame, or (b) manually insert a sample as a key frame into the output sequence that represents what the frame would have looked like at the end of the cut.

Regarding (a), this article suggests a way to do that with the MFSampleExtension_CleanPoint attribute, but setting that to TRUE with a sample that is a P-frame does not work (not surprising, I suppose).

And (b) could work, but the trick is to get the desired image and then encode it appropriately for the sink writer. Can't seem to get that to work (including leveraging an H.264 encoder).


So, the ReadSample+WriteSample loop doesn't seem promising. If so, what other approaches, using Media Foundation, would work for removing portions of a MP4 video?

Media Foundation is kind enough to provide these two nifty attributes for trimming: MF_TOPONODE_MEDIASTART and MF_TOPONODE_MEDIASTOP. But there are no equivalents for cutting sections out of the middle.

-----

This code snippet shows the relevant details of the process (omitting most comments, all error checking, and the sink writer creation and stream assignments wrapped in the custom CMFMP4SinkWriter class):

bool Transcode(
   const std::wstring& infile,
   const std::wstring& outfile,
   const std::vector<Interval>& segments )
{
  // 1. Create the IMFSourceReader from the input file

  ATL::CComPtr<IMFSourceReader> mediaSourceReader;
  MFCreateSourceReaderFromURL( infile.c_str(), NULL, &mediaSourceReader )

  // 2. Create the IMFSinkWriter from the output file

  CMFMP4SinkWriter sinkWriter( nullptr );
  sinkWriter.InitializeSinkWriter( outfile.c_str(), false, enableHwTransforms );
  int streamCount = 0;
  sinkWriter.AddMediaToSinkWriter( mediaSourceReader, streamCount );

  // 3. Loop through all the samples

  ProcessSamples( mediaSourceReader, sinkWriter, streamCount, segments );
}


void ProcessSamples( ... )
{
   // Read all samples from the source reader and pass them to the sink writer.

   sinkWriter.StartWriting();

   // Loop as long as there are unfinished (unread) streams (audio and video)
   //
   int nFinishedStreams = 0;

   while ( nFinishedStreams < streamCount )
   {
      ATL::CComPtr<IMFSample> sample;

      mediaSourceReader->ReadSample(
         (DWORD)MF_SOURCE_READER_ANY_STREAM,
         0, &streamIndex, &flags, &timestamp, &sample );

      if ( sample != NULL )
      {
         if ( IsUnCutSample( segments, timestamp, sample ) )
         {
            // Push the sample to the sink writer
            sinkWriter.WriteSample( streamIndex, sample );
         }
      }
      else if ( flags & MF_SOURCE_READERF_STREAMTICK )
      {
         sinkWriter.SendStreamTick( streamIndex, timestamp );
      }

      if ( flags & MF_SOURCE_READERF_ENDOFSTREAM )
      {
         sinkWriter.NotifyEndOfSegment( streamIndex );

         nFinishedStreams++;
      }
   }

   sinkWriter.FinalizeWrite();
}

Getting sound intensity values from playing a video on WMP

$
0
0

I would like to read analog sound intensity values from playing a video from windows media player that was created as a platform on Visual Studio 2012. May I know what program, protocol, function in Visual Studio that can help me to do it. Will appreciate if any, could provide me the link or direction. I am new to the sound development. 

Chaning the resolution of Photos

$
0
0

hi there

I am tasked with building a camera application for a tablet, using windows desktop.

I found this sample online, which does almost everything i need to, I adapted it to fit my needs, but i need to improve on it with 2 functionalities, which there seem to be close to no documentation or samples around the internet:

Change the resolution of the photo taken

Flip the preview and the photo as the tablet rotates

Thank you for your help.

Windows Media Player control with crossfading and auto sound leveling

$
0
0

Hi all,

I am using Windows Media Player control v.12.0.9600.16384 on my Windows Desktop application which is actually a custom mp3 player. How can I enableCrossfading feature on windows media player control with C#? Also, I want to enableAuto Sound Leveling which I think it should be a relative process to Crossfading. I searched a lot of articles and forums but I couldn't find any C# code about using these two features.

Thanks a lot,
Peter


Visual C# .NET programmer

Viewing all 1079 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>