/* Destroys and cleans up the input stream */ void destroyInputStream(void) { PLINKED_BLOCKING_QUEUE_ENTRY entry, nextEntry; if (oaesContext != NULL) { // FIXME: This crashes trying to free ctx->key // oaes_free(oaesContext); oaesContext = NULL; } entry = LbqDestroyLinkedBlockingQueue(&packetQueue); while (entry != NULL) { nextEntry = entry->flink; // The entry is stored in the data buffer free(entry->data); entry = nextEntry; } initialized = 0; }
/* Cleans up control stream */ void destroyControlStream(void) { PltCloseEvent(&invalidateRefFramesEvent); freeFrameInvalidationList(LbqDestroyLinkedBlockingQueue(&invalidReferenceFrameTuples)); }
// Tear down the audio stream once we're done with it void destroyAudioStream(void) { if ((AudioCallbacks.capabilities & CAPABILITY_DIRECT_SUBMIT) == 0) { freePacketList(LbqDestroyLinkedBlockingQueue(&packetQueue)); } RtpqCleanupQueue(&rtpReorderQueue); }
/* Tear down the audio stream once we're done with it */ void destroyAudioStream(void) { callbacks.release(); freePacketList(LbqDestroyLinkedBlockingQueue(&packetQueue)); }