//////////////////////////////////////////////////// // stream reset void EQPacketStream::reset() { resetCache(); m_fragment.reset(); m_arqSeqExp = 0; m_arqSeqFound = false; stopDecode(); }
void quitDecode(PlayerControl * pc, DecoderControl * dc) { stopDecode(dc); pc->metadataState = PLAYER_METADATA_STATE_READ; pc->state = PLAYER_STATE_STOP; dc->seek = 0; pc->play = 0; pc->stop = 0; pc->pause = 0; kill(getppid(),SIGUSR1); }
int decodeSeek(PlayerControl * pc, DecoderControl * dc, OutputBuffer * cb, int * decodeWaitedOn, int * next) { int ret = -1; if(mpm_get_id(MPM_DECODE)>0) { if(dc->state==DECODE_STATE_STOP || dc->error || strcmp(dc->utf8url, pc->utf8url)!=0) { stopDecode(dc); *next = -1; cb->begin = 0; cb->end = 0; dc->error = 0; dc->start = 1; waitOnDecode(pc,dc,cb,decodeWaitedOn); } if(mpm_get_id(MPM_DECODE)>0 && dc->state!=DECODE_STATE_STOP && dc->seekable) { *next = -1; dc->seekWhere = pc->seekWhere; dc->seekError = 0; dc->seek = 1; while(mpm_get_id(MPM_DECODE)>0 && dc->seek) { // fprintf(stderr,"In decodeSeek Function sleep: \r\n"); // my_usleep(10000); } if(!dc->seekError) { pc->elapsedTime = dc->seekWhere; ret = 0; } } } pc->seek = 0; return ret; }