Print Live Streams Example for C++

HRESULT PrintLiveStream(IltmsLiveStream* stream) 
{ 
   HRESULT hr; 
   // print the live stream's properties to stdout 
   _tprintf(_T("--- Live Stream ---\n\n")); 
   { 
      CComBSTR v; 
      hr = stream->get_Path(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("Path = \"%s\"\n"), (LPCTSTR)CString(v)); 
   } 
   { 
      CComPtr devices; 
      long selection; 
      CComBSTR v; 
      hr = stream->get_VideoDevices(&devices); 
      if (FAILED(hr)) 
         goto error; 
      hr = devices->get_Selection(&selection); 
      if (FAILED(hr)) 
         goto error; 
      if (selection < 0) 
      { 
         v = L""; 
      } 
      else 
      { 
         CComPtr device; 
         hr = devices->Item(selection, &device); 
         if (FAILED(hr)) 
            goto error; 
         hr = device->get_FriendlyName(&v); 
         if (FAILED(hr)) 
            goto error; 
      } 
      _tprintf(_T("Video Device = \"%s\"\n"), (LPCTSTR)CString(v)); 
   } 
   { 
      CComPtr devices; 
      long selection; 
      CComBSTR v; 
      hr = stream->get_AudioDevices(&devices); 
      if (FAILED(hr)) 
         goto error; 
      hr = devices->get_Selection(&selection); 
      if (FAILED(hr)) 
         goto error; 
      if (selection < 0) 
      { 
         v = L""; 
      } 
      else 
      { 
         CComPtr device; 
         hr = devices->Item(selection, &device); 
         if (FAILED(hr)) 
            goto error; 
         hr = device->get_FriendlyName(&v); 
         if (FAILED(hr)) 
            goto error; 
      } 
      _tprintf(_T("Audio Device = \"%s\"\n"), (LPCTSTR)CString(v)); 
   } 
   { 
      long v; 
      hr = stream->get_VideoWidth(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("Video Width = %ld\n"), v); 
   } 
   { 
      long v; 
      hr = stream->get_VideoHeight(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("Video Height = %ld\n"), v); 
   } 
   { 
      VARIANT_BOOL v; 
      hr = stream->get_UseVideoInputSize(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("UseVideoInputSize = %s\n"), (v == VARIANT_TRUE) ? _T("true") : _T("false")); 
   } 
   { 
      double v; 
      hr = stream->get_VideoFrameRate(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("VideoFrameRate = %g\n"), v); 
   } 
   { 
      VARIANT_BOOL v; 
      hr = stream->get_UseVideoInputFrameRate(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("UseVideoInputFrameRate = %s\n"), (v == VARIANT_TRUE) ? _T("true") : _T("false")); 
   } 
   { 
      long v; 
      hr = stream->get_VideoBitRate(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("VideoBitRate = %ld\n"), v); 
   } 
   { 
      VARIANT_BOOL v; 
      hr = stream->get_QSVAcceleration(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("QSVAcceleration = %s\n"), (v == VARIANT_TRUE) ? _T("true") : _T("false")); 
   } 
   { 
      VARIANT_BOOL v; 
      hr = stream->get_CUDAAcceleration(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("CUDAAcceleration = %s\n"), (v == VARIANT_TRUE) ? _T("true") : _T("false")); 
   } 
   { 
      CComPtr audiotypes; 
      long selection; 
      CComBSTR v; 
      hr = stream->get_AudioTypes(&audiotypes); 
      if (FAILED(hr)) 
         goto error; 
      hr = audiotypes->get_Selection(&selection); 
      if (FAILED(hr)) 
         goto error; 
      if (selection < 0) 
      { 
         v = L""; 
      } 
      else 
      { 
         CComPtr audiotype; 
         hr = audiotypes->Item(selection, &audiotype); 
         if (FAILED(hr)) 
            goto error; 
         hr = audiotype->get_FriendlyName(&v); 
         if (FAILED(hr)) 
            goto error; 
      } 
      _tprintf(_T("Audio Type = \"%s\"\n"), (LPCTSTR)CString(v)); 
   } 
   { 
      VARIANT_BOOL v; 
      hr = stream->get_UseDeviceEncoding(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("UseDeviceEncoding = %s\n"), (v == VARIANT_TRUE) ? _T("true") : _T("false")); 
   } 
   { 
      double v; 
      hr = stream->get_MinimumFragmentDuration(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("MinimumFragmentDuration = %g\n"), v); 
   } 
   { 
      VARIANT_BOOL v; 
      hr = stream->get_Enable(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("Enable = %s\n"), (v == VARIANT_TRUE) ? _T("true") : _T("false")); 
   } 
   { 
      VARIANT_BOOL v; 
      hr = stream->get_ActivateOnDemand(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("ActivateOnDemand = %s\n"), (v == VARIANT_TRUE) ? _T("true") : _T("false")); 
   } 
   { 
      LONG v; 
      hr = stream->get_IdleTimeOut(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("IdleTimeOut = %ld\n"), v); 
   } 
   { 
      VARIANT_BOOL v; 
      hr = stream->get_QSVDecoding(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("QSVDecoding = %s\n"), (v == VARIANT_TRUE) ? _T("true") : _T("false")); 
   } 
   { 
      VARIANT_BOOL v; 
      hr = stream->get_CUDADecoding(&v); 
      if (FAILED(hr)) 
         goto error; 
      _tprintf(_T("CUDADecoding = %s\n"), (v == VARIANT_TRUE) ? _T("true") : _T("false")); 
   } 
   { 
      VARIANT_BOOL v; 
      hr = stream->get_HasVideoDeviceURL(&v); 
      if (FAILED(hr)) 
         goto error; 
      if (v != VARIANT_FALSE) 
      { 
         CComBSTR v; 
         hr = stream->get_VideoDeviceURL(&v); 
         if (FAILED(hr)) 
            goto error; 
         _tprintf(_T("VideoDeviceURL = \"%s\"\n"), (LPCTSTR)CString(v)); 
      } 
   } 
error: 
   _tprintf(_T("\n")); 
   return hr; 
} 
HRESULT PrintLiveStreams(IltmsServer* server) 
{ 
   HRESULT hr; 
   long count; 
   CComPtr streams; 
   hr = server->GetLiveStreams(&streams); 
   if (FAILED(hr)) 
      goto error; 
   hr = streams->get_Count(&count); 
   if (FAILED(hr)) 
      goto error; 
   for (long index = 0; index < count; index++) 
   { 
      CComPtr stream; 
      hr = streams->GetLiveStream(index, &stream); 
      if (FAILED(hr)) 
         goto error; 
      hr = PrintLiveStream(stream); 
      if (FAILED(hr)) 
         goto error; 
   } 
error: 
   return hr; 
} 
/**/ 

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
LEADTOOLS Media Streaming C API Help
Click or drag to resize