bool csMovieRecorder::HandleStartFrame (iEvent& /*event*/) { SetupPlugin(); // don't use VC here - we need 'real' ticks. frameStartTime = csGetTicks(); return false; }
bool csMovieRecorder::EatKey (iEvent& event) { SetupPlugin(); bool down = csKeyEventHelper::GetEventType (&event) == csKeyEventTypeDown; csKeyModifiers m; csKeyEventHelper::GetModifiers (&event, m); bool alt = m.modifiers[csKeyModifierTypeAlt] != 0; bool ctrl = m.modifiers[csKeyModifierTypeCtrl] != 0; bool shift = m.modifiers[csKeyModifierTypeShift] != 0; utf32_char key = csKeyEventHelper::GetCookedCode (&event); if (down && (key == keyRecord.code) && (alt == keyRecord.alt) && (ctrl == keyRecord.ctrl) && (shift == keyRecord.shift)) { if (IsRecording()) Stop(); else Start(); return true; } if (down && key==keyPause.code && alt==keyPause.alt && ctrl==keyPause.ctrl && shift==keyPause.shift) { if (IsPaused()) UnPause(); else Pause(); return true; } return false; }
NS_IMETHODIMP PluginStreamListener::OnStartRequest(nsIRequest* request, nsISupports *ctxt) { // Have to set up our plugin stuff before we call OnStartRequest, so // that the plugin listener can get that call. nsresult rv = SetupPlugin(); NS_ASSERTION(NS_FAILED(rv) || mNextStream, "We should have a listener by now"); nsresult rv2 = MediaDocumentStreamListener::OnStartRequest(request, ctxt); return NS_SUCCEEDED(rv) ? rv2 : rv; }
void csMovieRecorder::Start(void) { SetupPlugin(); if (IsPaused()) { UnPause(); return; } if (IsRecording()) Stop(); movieFileName = recordingFile != "" ? recordingFile : captureFormat.FindNextFilename (VFS); // If the config specified 0x0, that means we use the current resolution unscaled int w = recordWidth ? recordWidth : G2D->GetWidth(); int h = recordHeight ? recordHeight : G2D->GetHeight(); numFrames = 0; totalFrameEncodeTime = totalFrameTime = totalWriteToDiskTime = 0; minFrameEncodeTime = minFrameTime = minWriteToDiskTime = (csTicks)-1; maxFrameEncodeTime = maxFrameTime = maxWriteToDiskTime = 0; movieFile = VFS->Open (movieFileName, VFS_FILE_WRITE | VFS_FILE_UNCOMPRESSED); if (!movieFile) { Report (CS_REPORTER_SEVERITY_WARNING, "Couldn't open file %s for recording", CS::Quote::Single (movieFileName.GetData())); return; } fakeTicksPerFrame = (1000 / frameRate); ffakeClockTicks = fakeClockTicks; frameStartTime = csGetTicks(); writer = new NuppelWriter(w, h, &WriterCallback, this, frameRate, rtjQuality, useRTJpeg, useLZO, useRGB); Report (CS_REPORTER_SEVERITY_NOTIFY, "Video recorder started - %s", movieFileName.GetData()); }