//---BITRATE-CALCULATOR-HEADER--------------------------------------

#define ExtendMode      0x10       // Modalità Extended: è settata dal modo 'perfezionista'
#define DoublePass      0x8        // Modalità Doppia Passata, codec ver. 5.0.2 e precedenti
#define SinglePass      0x4        // Modalità Singola Passata, codec ver. 5.0.2 e precedenti
#define NewSinglePass   0x2        // Modalità Singola Passata, codec ver. 5.0.3 e successive
#define NewMultiplePass 0x1        // Modalità Multipla Passata, codec ver. 5.0.3 e successive

//---BITRATE-CALCULATOR-ENGINE--------------------------------------

double BitCalcEngine(int modalita,    //
                     int Minuti,      // Durata totale del video clip
                     int Audio,       // Bitrate (in kbps) dello stream audio
                     int Finale,      // Dimensione finale (in MB) del video clip (immagini + sonoro)
                     double Fattore)  // Di solito ignorato. Si usa solo nell'extended mode
{
  double Video;

  if (modalita&SinglePass)      Fattore= -0.03;
  if (modalita&DoublePass)      Fattore=  0.008;
  if (modalita&NewSinglePass)   Fattore= -0.02;
  if (modalita&NewMultiplePass) Fattore=  0.007;

  double a=Minuti*15.0;

  if (a!=0)
    Video=(double)Finale*2097152/a/(1+Fattore)-(double)(Audio*1000);
  else
    Video=-1;

  return Video;
}
//------------------------------------------------------------------
