Template:AVO Sample of copying
From AVObjects Knowledge Base
(Difference between revisions)
(Created page with "for(int n = 0; n < nStreams; n++) { HRESULT hr = spDest->CanPutFrame(n, 0); if ( FAILED(hr) ) return hr; else if (hr != S_OK) continue; hr = spSource->CanG...") |
|||
(One intermediate revision by one user not shown) | |||
Line 1: | Line 1: | ||
+ | ===Copy frames for all streams from source object to dest object=== | ||
+ | |||
+ | <source lang=cpp> | ||
for(int n = 0; n < nStreams; n++) | for(int n = 0; n < nStreams; n++) | ||
{ | { | ||
Line 29: | Line 32: | ||
return hr; | return hr; | ||
} | } | ||
+ | </source> |
Latest revision as of 16:46, 9 July 2014
Copy frames for all streams from source object to dest object
for(int n = 0; n < nStreams; n++) { HRESULT hr = spDest->CanPutFrame(n, 0); if ( FAILED(hr) ) return hr; else if (hr != S_OK) continue; hr = spSource->CanGetFrame(n, 0); if ( FAILED(hr) ) return hr; else if (hr != S_OK) continue; DWORD cbActual = 0; REFERENCE_TIME tS = 0, tE = 0; DWORD dwFlags = 0; hr = spSource->GetFrame(n, m_pbBuffer, m_cbBuffer, &cbActual, &dwFlags, &tS, &tE, NULL); if (hr == S_OK) { hr = spDest->PutFrame(n, m_pbBuffer, cbActual, dwFlags, tS, tE, NULL); } else if (hr == HRESULT_FROM_WIN32(ERROR_HANDLE_EOF)) { hr = spDest->PutFrame(n, NULL, 0, 0, 0, 0, NULL); } if (FAILED(hr)) return hr; }