Handle reuse of limelight-common for another stream

This commit is contained in:
Cameron Gutman 2014-08-30 16:39:26 -07:00
parent cff7ec1d10
commit dc926946dd
3 changed files with 21 additions and 7 deletions

View File

@ -70,6 +70,7 @@ void destroyInputStream(void) {
if (oaesContext != NULL) if (oaesContext != NULL)
{ {
oaes_free(oaesContext); oaes_free(oaesContext);
oaesContext = NULL;
} }
entry = LbqDestroyLinkedBlockingQueue(&packetQueue); entry = LbqDestroyLinkedBlockingQueue(&packetQueue);
@ -80,6 +81,8 @@ void destroyInputStream(void) {
free(entry); free(entry);
entry = nextEntry; entry = nextEntry;
} }
initialized = 0;
} }
static void inputSendThreadProc(void* context) { static void inputSendThreadProc(void* context) {

View File

@ -5,10 +5,10 @@
static SOCKET sock = INVALID_SOCKET; static SOCKET sock = INVALID_SOCKET;
static IP_ADDRESS remoteAddr; static IP_ADDRESS remoteAddr;
static int currentSeqNumber = 1; static int currentSeqNumber;
static char rtspTargetUrl[256]; static char rtspTargetUrl[256];
static char sessionIdString[16]; static char sessionIdString[16];
static int hasSessionId = 0; static int hasSessionId;
static char responseBuffer[RTSP_MAX_RESP_SIZE]; static char responseBuffer[RTSP_MAX_RESP_SIZE];
/* GFE 2.1.1 */ /* GFE 2.1.1 */
@ -280,6 +280,8 @@ int performRtspHandshake(IP_ADDRESS addr, PSTREAM_CONFIGURATION streamConfigPtr)
remoteAddr = addr; remoteAddr = addr;
inaddr.S_un.S_addr = addr; inaddr.S_un.S_addr = addr;
sprintf(rtspTargetUrl, "rtsp://%s", inet_ntoa(inaddr)); sprintf(rtspTargetUrl, "rtsp://%s", inet_ntoa(inaddr));
currentSeqNumber = 1;
hasSessionId = 0;
{ {
RTSP_MESSAGE response; RTSP_MESSAGE response;

View File

@ -6,14 +6,14 @@
static PLENTRY nalChainHead; static PLENTRY nalChainHead;
static int nalChainDataLength; static int nalChainDataLength;
static int nextFrameNumber = 1; static int nextFrameNumber;
static int nextPacketNumber; static int nextPacketNumber;
static int startFrameNumber = 1; static int startFrameNumber;
static int waitingForNextSuccessfulFrame; static int waitingForNextSuccessfulFrame;
static int waitingForIdrFrame = 1; static int waitingForIdrFrame;
static int gotNextFrameStart; static int gotNextFrameStart;
static int lastPacketInStream = 0; static int lastPacketInStream;
static int decodingFrame = 0; static int decodingFrame;
static LINKED_BLOCKING_QUEUE decodeUnitQueue; static LINKED_BLOCKING_QUEUE decodeUnitQueue;
static unsigned int nominalPacketDataLength; static unsigned int nominalPacketDataLength;
@ -30,6 +30,15 @@ typedef struct _BUFFER_DESC {
void initializeVideoDepacketizer(int pktSize) { void initializeVideoDepacketizer(int pktSize) {
LbqInitializeLinkedBlockingQueue(&decodeUnitQueue, 15); LbqInitializeLinkedBlockingQueue(&decodeUnitQueue, 15);
nominalPacketDataLength = pktSize - sizeof(NV_VIDEO_PACKET); nominalPacketDataLength = pktSize - sizeof(NV_VIDEO_PACKET);
nextFrameNumber = 1;
nextPacketNumber = 0;
startFrameNumber = 1;
waitingForNextSuccessfulFrame = 0;
waitingForIdrFrame = 1;
gotNextFrameStart = 0;
lastPacketInStream = 0;
decodingFrame = 0;
} }
/* Free malloced memory in AvcFrameState*/ /* Free malloced memory in AvcFrameState*/