Esempio n. 1
0
static void StopRecording(void)
{
    if(suppressMovieStop)
        return;
    resetDMCacc=movieSyncHackOn=0;
    DoEncode(0,0,1);   /* Write a dummy timestamp value so that the movie will keep
                       "playing" after user input has stopped. */
// finish header
    FlushHeader();

// FIXME:  truncate movie to length
// ftruncate();
    fclose(slots[current - 1]);
    MovieStatus[current - 1] = 1;
    current=0;
    FCEU_DispMessage("Movie recording stopped.");
}
tbool CExportDSPTask::DoEncode_InALoop(tbool bWrite)
{
	tbool bDone = false;
	tbool bSuccess = true;
	tuint32 uiTimeMS0 = ITime::GetTimeMS();
	
	tint32 iActionOrderSave = miActionOrder;
	do {
		if (!DoEncode(bWrite)) {
			bSuccess = false;
		}
		else {
			tuint32 uiDiff = ITime::GetTimeMS() - uiTimeMS0;
			if ((uiDiff >= kiStopAfterProcessingMS) || (miActionOrder != iActionOrderSave)) {
				bDone = true;
			}
		}
	} while ((bSuccess) && (!bDone));

	return bSuccess;
}
tbool CExportClipTask::DoWork()
{
	tbool bSuccess = false;

	switch (miActionOrder) {
		case geExportClip_Before:
			{
				sOut = sDestFolder + sDestNameAndExt;

				if (bDoEncode) {
					mpEncoder = ac::IEncoder::Create(meCodecDst);

					if (meCodecDst == ac::geAudioCodecWave)
						msProgress = "Exporting";
					else
						msProgress = "Compressing";
				}
				if (bDoCopy)
					msProgress = "Copying";
				if (IsSilence()) {
					msProgress += " silent bit";
				}
				else {
					msProgress += std::string(" '") + sClipName + "'";
					muiProgressIx = 0;
					muiProgressTarget = muiDuration - muiStartIx;
				}

				miActionOrder++;
				bSuccess = (mpEncoder != NULL); //true;
			}
			break;

		case geExportClip_Action:
			{
				if (bDoEncode) {
					bSuccess = DoEncode();
				}
				else if (bDoCopy) {
					bSuccess = DoCopy();
				}
			}
			break;

		case geExportClip_After:
			{
				msProgress = "Export done";
				muiProgressIx = muiProgressTarget = 1;

				miActionOrder++;
				bSuccess = true;
			}
			break;

		default:
			// Why are we here?
			break;

	}

	if (!bSuccess) {
		miActionOrder = geExportClip_Done;
	}
	return bSuccess;
} // DoWork