Ignore:
Timestamp:
Oct 1, 2008, 5:12:18 PM (16 years ago)
Author:
garnier
Message:

movie parameters imrovments

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc

    r850 r857  
    14861486    fMovieParametersDialog= new G4OpenGLQtMovieDialog(this,GLWindow);
    14871487    displayRecordingStatus();
     1488    fMovieParametersDialog->checkEncoderSwParameters();
     1489    fMovieParametersDialog->checkSaveFileNameParameters();
     1490    fMovieParametersDialog->checkTempFolderParameters();
    14881491    if (getEncoderPath() == "") {
    14891492      setRecordingInfos("mpeg_encode is needed to encode in video format. It is available here: http://bmrc.berkeley.edu/frame/research/mpeg/");
     
    21242127  if (fRecordFrameNumber >0) {
    21252128    // check parameters if they were modified (Re APPLY them...)
    2126     // It will enable/disable encode button
    2127     fMovieParametersDialog->checkAllParameters();
     2129    if (!(fMovieParametersDialog->checkEncoderSwParameters())) {
     2130      setRecordingStatus(BAD_ENCODER);
     2131    }  else if (!(fMovieParametersDialog->checkSaveFileNameParameters())) {
     2132      setRecordingStatus(BAD_OUTPUT);
     2133    }
    21282134  } else {
    21292135    resetRecording();
    21302136    setRecordingInfos("No frame to encode.");
     2137  }
     2138}
     2139
     2140/** Stop the video. Check all parameters and enable encoder button if all is ok.
     2141*/
     2142void G4OpenGLQtViewer::saveVideo() {
     2143
     2144  // if encoder parameter is wrong, display parameters dialog and return
     2145  if (!fMovieParametersDialog) {
     2146    showMovieParametersDialog();
     2147  }
     2148
     2149  fMovieParametersDialog->checkEncoderSwParameters();
     2150  fMovieParametersDialog->checkSaveFileNameParameters();
     2151 
     2152  if (fRecordingStep == STOP) {
     2153    setRecordingStatus(SAVE);
     2154    generateMpegEncoderParameters();
     2155    encodeVideo();
    21312156  }
    21322157}
     
    21382163   
    21392164  // first time, if temp parameter is wrong, display parameters dialog and return
    2140   if ( fRecordingStep == WAIT) {
     2165
     2166  if (( fRecordingStep == WAIT)) {
    21412167    if ( fRecordFrameNumber == 0) {
    2142       if (getTempFolderPath() == "") {
     2168      if (getTempFolderPath() == "") { // BAD_OUTPUT
    21432169        showMovieParametersDialog();
    21442170        setRecordingInfos("You should specified the temp folder in order to make movie");
     
    21592185    }
    21602186  }
    2161   if (fRecordingStep == WAIT) {
     2187  if ((fRecordingStep == WAIT)) {
    21622188    setRecordingStatus(START);
    21632189  } else if (fRecordingStep == START) {
     
    21702196}
    21712197
    2172 
    21732198void G4OpenGLQtViewer::setRecordingStatus(RECORDING_STEP step) {
    21742199
     
    21802205void G4OpenGLQtViewer::displayRecordingStatus() {
    21812206 
    2182   QString txt = "";
     2207  QString txtStatus = "";
    21832208  if (fRecordingStep == WAIT) {
    2184     txt  = "Waiting to start...";
     2209    txtStatus  = "Waiting to start...";
    21852210    fRecordFrameNumber = 0; // reset the frame number
    21862211  } else if (fRecordingStep == START) {
    2187     txt  = "Start Recording...";
     2212    txtStatus  = "Start Recording...";
    21882213  } else if (fRecordingStep == PAUSE) {
    2189     txt  = "Pause Recording...";
     2214    txtStatus  = "Pause Recording...";
    21902215  } else if (fRecordingStep == CONTINUE) {
    2191     txt  = "Continue Recording...";
     2216    txtStatus  = "Continue Recording...";
    21922217  } else if (fRecordingStep == STOP) {
    2193     txt  = "Stop Recording...";
     2218    txtStatus  = "Stop Recording...";
    21942219  } else if (fRecordingStep == READY_TO_ENCODE) {
    2195     txt  = "Ready to Encode...";
     2220    txtStatus  = "Ready to Encode...";
    21962221  } else if (fRecordingStep == ENCODING) {
    2197     txt  = "Encoding...";
     2222    txtStatus  = "Encoding...";
    21982223  } else if (fRecordingStep == FAILED) {
    2199     txt  = "Failed to encode...";
     2224    txtStatus  = "Failed to encode...";
     2225  } else if ((fRecordingStep == BAD_ENCODER)
     2226         || (fRecordingStep == BAD_OUTPUT)
     2227             || (fRecordingStep == BAD_TMP)) {
     2228    txtStatus  = "Correct above errors first";
    22002229  } else if (fRecordingStep == SUCCESS) {
    2201     txt  = "File encoded successfully";
     2230    txtStatus  = "File encoded successfully";
    22022231  } else {
    22032232  }
    22042233
    22052234  if (fMovieParametersDialog) {
    2206     fMovieParametersDialog->setRecordingStatus(txt);
    2207   } else {
    2208 #if QT_VERSION < 0x040000
    2209     G4cout << txt.ascii() << G4endl;
    2210 #else
    2211     G4cout << txt.toStdString().c_str() << G4endl;
     2235    fMovieParametersDialog->setRecordingStatus(txtStatus);
     2236  } else {
     2237#if QT_VERSION < 0x040000
     2238    G4cout << txtStatus.ascii() << G4endl;
     2239#else
     2240    G4cout << txtStatus.toStdString().c_str() << G4endl;
    22122241#endif
    22132242  }
     
    22832312  }
    22842313  fEncoderPath = path;
     2314
     2315  if ((fRecordingStep == BAD_ENCODER)) {
     2316    setRecordingStatus(STOP);
     2317  }
    22852318  return "";
    22862319}
     
    22942327}
    22952328
     2329bool G4OpenGLQtViewer::isPaused(){
     2330  if (fRecordingStep == PAUSE) {
     2331    return true;
     2332  }
     2333  return false;
     2334}
     2335
     2336bool G4OpenGLQtViewer::isEncoding(){
     2337  if (fRecordingStep == ENCODING) {
     2338    return true;
     2339  }
     2340  return false;
     2341}
     2342
     2343bool G4OpenGLQtViewer::isWaiting(){
     2344  if (fRecordingStep == WAIT) {
     2345    return true;
     2346  }
     2347  return false;
     2348}
     2349
    22962350bool G4OpenGLQtViewer::isStopped(){
    22972351  if (fRecordingStep == STOP) {
     
    22992353  }
    23002354  return false;
     2355}
     2356
     2357bool G4OpenGLQtViewer::isFailed(){
     2358  if (fRecordingStep == FAILED) {
     2359    return true;
     2360  }
     2361  return false;
     2362}
     2363
     2364bool G4OpenGLQtViewer::isSuccess(){
     2365  if (fRecordingStep == SUCCESS) {
     2366    return true;
     2367  }
     2368  return false;
     2369}
     2370
     2371bool G4OpenGLQtViewer::isBadEncoder(){
     2372  if (fRecordingStep == BAD_ENCODER) {
     2373    return true;
     2374  }
     2375  return false;
     2376}
     2377bool G4OpenGLQtViewer::isBadTmp(){
     2378  if (fRecordingStep == BAD_TMP) {
     2379    return true;
     2380  }
     2381  return false;
     2382}
     2383bool G4OpenGLQtViewer::isBadOutput(){
     2384  if (fRecordingStep == BAD_OUTPUT) {
     2385    return true;
     2386  }
     2387  return false;
     2388}
     2389
     2390void G4OpenGLQtViewer::setBadEncoder(){
     2391  fRecordingStep = BAD_ENCODER;
     2392  displayRecordingStatus();
     2393}
     2394void G4OpenGLQtViewer::setBadTmp(){
     2395  fRecordingStep = BAD_TMP;
     2396  displayRecordingStatus();
     2397}
     2398void G4OpenGLQtViewer::setBadOutput(){
     2399  fRecordingStep = BAD_OUTPUT;
     2400  displayRecordingStatus();
     2401}
     2402
     2403void G4OpenGLQtViewer::setWaiting(){
     2404  fRecordingStep = WAIT;
     2405  displayRecordingStatus();
    23012406}
    23022407
     
    23382443  }
    23392444 
     2445  if ((fRecordingStep == BAD_TMP)) {
     2446    setRecordingStatus(WAIT);
     2447  }
    23402448  fTempFolderPath = path;
    23412449  return "";
     
    23732481  }
    23742482 
     2483  if ((fRecordingStep == BAD_OUTPUT)) {
     2484    setRecordingStatus(STOP);
     2485  }
    23752486  fSaveFileName = path;
    23762487  return "";
     
    23892500QString G4OpenGLQtViewer::createTempFolder() {
    23902501  fMovieTempFolderPath = "";
    2391 
    23922502  //check
    23932503  QString tmp = setTempFolderPath(fTempFolderPath);
     
    26592769
    26602770  setRecordingInfos("Parameter file "+fParameterFileName+" generated in "+fMovieTempFolderPath);
     2771  printf("Parameter file %s  generated in %s\n",fParameterFileName.toStdString().c_str(),fMovieTempFolderPath.toStdString().c_str());
    26612772  setRecordingStatus(READY_TO_ENCODE);
    26622773  return true;
     
    27242835    setRecordingStatus(FAILED);
    27252836  }
    2726   setRecordingInfos(txt+removeTempFolder());
     2837  //  setRecordingInfos(txt+removeTempFolder());
    27272838}
    27282839
Note: See TracChangeset for help on using the changeset viewer.