Beispiel #1
0
void talkerStopStream(tl_state_t *pTLState)
{
	AVB_TRACE_ENTRY(AVB_TRACE_TL);

	if (!pTLState) {
		AVB_LOG_ERROR("Invalid TLState");
		AVB_TRACE_EXIT(AVB_TRACE_TL);
		return;
	}

	talker_data_t *pTalkerData = pTLState->pPvtTalkerData;
	if (!pTalkerData) {
		AVB_LOG_ERROR("Invalid listener data");
		AVB_TRACE_EXIT(AVB_TRACE_TL);
		return;
	}

	void *rawsock = NULL;
	if (pTalkerData->avtpHandle) {
		rawsock = ((avtp_stream_t*)pTalkerData->avtpHandle)->rawsock;
	}

	openavbTalkerAddStat(pTLState, TL_STAT_TX_CALLS, pTalkerData->cntWakes);
	openavbTalkerAddStat(pTLState, TL_STAT_TX_FRAMES, pTalkerData->cntFrames);
//	openavbTalkerAddStat(pTLState, TL_STAT_TX_LATE, 0);		// Can't calulate at this time
	openavbTalkerAddStat(pTLState, TL_STAT_TX_BYTES, openavbAvtpBytes(pTalkerData->avtpHandle));

	AVB_LOGF_INFO("TX "STREAMID_FORMAT", Totals: calls=%" PRIu64 ", frames=%" PRIu64 ", late=%" PRIu64 ", bytes=%" PRIu64 ", TXOutOfBuffs=%ld",
		STREAMID_ARGS(&pTalkerData->streamID),
		openavbTalkerGetStat(pTLState, TL_STAT_TX_CALLS),
		openavbTalkerGetStat(pTLState, TL_STAT_TX_FRAMES),
		openavbTalkerGetStat(pTLState, TL_STAT_TX_LATE),
		openavbTalkerGetStat(pTLState, TL_STAT_TX_BYTES),
		openavbRawsockGetTXOutOfBuffers(rawsock)
		);

	if (pTLState->bStreaming) {
		openavbAvtpShutdown(pTalkerData->avtpHandle);
		pTLState->bStreaming = FALSE;
	}

	AVB_TRACE_EXIT(AVB_TRACE_TL);
}
Beispiel #2
0
EXTERN_DLL_EXPORT U64 openavbTLStat(tl_handle_t handle, tl_stat_t stat)
{
	AVB_TRACE_ENTRY(AVB_TRACE_TL);
	U64 val = 0;

	tl_state_t *pTLState = (tl_state_t *)handle;

	if (!pTLState) {
		AVB_LOG_ERROR("Invalid handle");
		AVB_TRACE_EXIT(AVB_TRACE_TL);
		return 0;
	}

	if (pTLState->cfg.role == AVB_ROLE_TALKER) {
		val = openavbTalkerGetStat(pTLState, stat);
	}
	else if (pTLState->cfg.role == AVB_ROLE_LISTENER) {
		val = openavbListenerGetStat(pTLState, stat);
	}

	AVB_TRACE_EXIT(AVB_TRACE_TL);
	return val;
}