bool MediaSourceV4L2::CloseGrabDevice() { bool tResult = false; LOG(LOG_VERBOSE, "Going to close"); if (mMediaType == MEDIA_AUDIO) { LOG(LOG_ERROR, "Wrong media type"); return false; } if (mMediaSourceOpened) { CloseAll(); // Free the frames av_free(mRGBFrame); av_free(mSourceFrame); tResult = true; }else LOG(LOG_INFO, "...wasn't open"); mGrabbingStopped = false; mSupportsMultipleInputChannels = false; mMediaType = MEDIA_UNKNOWN; ResetPacketStatistic(); return tResult; }
bool WaveOutPulseAudio::CloseWaveOutDevice() { bool tResult = false; int tRes; LOG(LOG_VERBOSE, "Going to close.."); if (mWaveOutOpened) { StopFilePlayback(); Stop(); if (mOutputStream != NULL) { LOG(LOG_VERBOSE, "..draining stream"); if (pa_simple_drain(mOutputStream, &tRes) < 0) { LOG(LOG_ERROR, "Couldn't drain the output stream because %s(%d)", pa_strerror(tRes), tRes); } LOG(LOG_VERBOSE, "..closing stream"); pa_simple_free(mOutputStream); } LOG(LOG_INFO, "...closed"); mWaveOutOpened = false; tResult = true; }else LOG(LOG_INFO, "...wasn't open"); ResetPacketStatistic(); return tResult; }
PacketStatistic::PacketStatistic(std::string pName) { mStreamDataType = DATA_TYPE_UNKNOWN; mStreamOutgoing = false; ResetPacketStatistic(); AssignStreamName(pName); if (SVC_PACKET_STATISTIC.RegisterPacketStatistic(this) != this) LOG(LOG_ERROR, "Error when registering packet statistic"); }