bool VideoTheoraPlayer::writeVideo() {
    if (!_texture) {
        return STATUS_FAILED;
    }

    _texture->startPixelOp();

    writeAlpha();
    if (_alphaImage) {
        _texture->putSurface(_surface, true);
    } else {
        _texture->putSurface(_surface, false);
    }

    //RenderFrame(_texture, &yuv);

    _texture->endPixelOp();
    _videoFrameReady = true;
    return STATUS_OK;
}
Пример #2
0
int  main(int npar, char ** parch)
{
  double buff;
  int i,j,k;
  int nx, nt, NfMx;
  char c;
  char *cteq="CTEQ";
  double *q,*x,*d;
  char version[30];
  int ordr, nf,nf6,nf5,nf4,nf3;
  double ordrf, nff;
  double Mc,Mb,Mt;
  double lambda,L6,L5,L4,L3;
  int Ncteq;
  char names[4][10]={"(6 -6)", "(5 -5)", "(4 -4)", "(3 -3)"};
  char * p;
  
  do scanf("%c",&c); while(c!=':');
  scanf("%s",version);
  p=strstr(version,".tbl");
  if(p) p[0]=0; 
  for(i=0;i<4;i++) 
  if(toupper(version[i]) !=cteq[i]) {fprintf(stderr,"Non expected file format\n"); return 1;}  
  Ncteq=version[4]-'0';
  switch(Ncteq)
  { case 5: Ncteq=4; break;
    case 4:
    case 6: break;
    default:{fprintf(stderr,"Unknown version CTEQ%d \n",Ncteq); return 2;}
  }
                    
  skipline(2);
  if(6!=scanf("%lf %lf %lf %*lf %*lf %*lf %lf %lf %lf", &ordrf, &nff,&lambda,&Mc,&Mb,&Mt )) goto errExit; 
  nf=nff; ordr=ordrf;
  skipline(2);
  if(3!=scanf("%d %d %d",&nx,&nt,&NfMx))goto errExit;
  printf("#distribution \"%s(proton)\"    2212 =>    ",version);
  for(i= 6-NfMx; i<4;i++) printf(" %s",names[i]);
  printf(" -1 -2 21 2 1 \n");

  printf("#distribution \"%s(anti-proton)\" -2212 =>  ",version);
  for(i=6-NfMx; i<4;i++) printf(" %s",names[i]);
  printf(" 1 2 21 -2 -1\n");
    
  skipline(2);
  scanf("%lf",&buff);  printf("\n#q_min %.5E\n", buff); 
  scanf("%lf",&buff); /* printf("\n#q_max %.5E\n", buff); */
  skipline(1);
  q=(double *)malloc(sizeof(double)*(nt+1));
  
    
  for(i=0;i<=nt;i++) scanf("%lf",q+i);
  printf("\n#Q_grid\n"); 
  for(i=0,j=1;i<=nt;i++,j++) 
  {  printf(" %.5E",q[i]); 
     if(j==10) {printf("\n"); j=0;}
  }   
  printf("\n");  

  writeAlpha(stdout,nf,ordr,lambda,NfMx,Mc,Mb,Mt,nt+1,q);

/*
  nf6=nf; L6=lambda;
  if(nf6==6) {nf5=5; L5=findLambda(5,ordr, alpha(6, ordr,L6, 175.) ,175.);}
        else {nf5=nf;L5=lambda;}
  if(nf5==5) {nf4=4; L4=findLambda(4,ordr, alpha(5, ordr,L5, 4.5 ) ,4.5);}
        else {nf4=nf;L4=lambda;}
  if(nf4==4) {nf3=3; L3=findLambda(3,ordr, alpha(4, ordr,L4, 1.4 ) ,1.4);}
        else {nf3=nf;L3=lambda;}

  printf("\n#Alpha\n");
  for(i=0,j=1;i<=nt;i++,j++) 
  {  double al;
     double Q=q[i];
           if(Q<1.4)  al=alpha(nf3, ordr, L3, Q);
     else  if(Q<4.5)  al=alpha(nf4, ordr, L4, Q);
     else  if(Q<175.) al=alpha(nf5, ordr, L5, Q);
     else             al=alpha(nf6, ordr, L6, Q);
     printf(" %.5E",al);
     if(j==10) {printf("\n"); j=0;}
  }   
  printf("\n");  
*/

  skipline(2);
  scanf("%lf",&buff);  printf("\n#x_min %.5E\n", buff);  
  skipline(1);
  printf("\n#X_grid\n");
  for(i=0,j=1;i<=nx;i++,j++) 
  {  scanf("%lf",&buff);     
     printf(" %.5E ",buff); 
     if(j==10) {printf("\n"); j=0;}
  }     
  printf("\n");

  skipline(2);
  
  printf("\n#Interpolation CTEQ%d  %f ",Ncteq,lambda); 
  for(k=0;k<3+NfMx;k++) 
  {  printf("\n#%d-parton\n",k+1);
     for(j=0;j<nt+1;j++) 
     { for(i=0;i<nx+1;i++) {scanf("%lf",&buff); printf(" %.5E",buff);} 
       printf("\n");
     }  
  }
  return 0;
 errExit:
  fprintf(stderr,"%d", ftell(stdin));
       
}
Пример #3
0
int  main(int npar, char ** parch)
{
  int i,j;
  int NfMx=5;
  double q[NQ]= { 1.25,1.5,2.,2.5,3.2,4.,5.,6.4,8.,10.,12.,18.,
                  26.,40.,64.,100.,160.,240.,400.,640.,1e3,1800.,3200.,5600.,1e4,
                  1.8e4,3.2e4,5.6e4,1e5,1.8e5,3.2e5,5.6e5,1e6,1.8e6,3.2e6,5.6e6,1e7};
  double x[NX]={ 1e-5,2e-5,4e-5,6e-5,8e-5,1e-4,2e-4,4e-4,6e-4,
                 8e-4,.001,.002,.004,.006,.008,.01,.014,.02,.03,.04,.06,.08,.1,
                 .125,.15,.175,.2,.225,.25,.275,.3,.325,.35,.375,.4,.425,.45,.475,
                 .5,.525,.55,.575,.6,.65,.7,.75,.8,.9,1. };

  char * version;
  double Mc=sqrt(2.045);
  double Mb=sqrt(18.5);
  double Mt=175;
  
  char names[4][10]={"(6 -6)", "(5 -5)", "(4 -4)", "(3 -3)"};
  double f1[49*37],f2[49*37],f3[49*37],f4[49*37], f5[49*37],f6[49*37],f7[49*37],f8[49*37];

  if( npar!=2 && npar!=5 ) 
  { fprintf(stderr,"This routine needs 1 parameters: identifier of the set, or 4 parameters:\n"
                   "1. the identifier; 2. nf; 3. order (lo, nlo,nnlo); 4. alpha_QCD(MZ)\n");  
    return 1;
  }
  
  version=parch[1];
  
  printf("#distribution \"%s(proton)\"  2212 =>    ",version);
  for(i= 6-NfMx; i<4;i++) printf(" %s",names[i]);
  printf(" -1 -2 21 2 1 \n");

  printf("#distribution \"%s(anti-proton)\" -2212 => ",version);
  for(i=6-NfMx; i<4;i++) printf(" %s",names[i]);
  printf(" 1 2 21 -2 -1\n");

  printf("\n#Q_grid\n"); 
  for(i=0;i<NQ;i++) q[i]=sqrt(q[i]); 
  for(i=0,j=1;i<NQ;i++,j++) 
  {  printf(" %.9E",q[i]); 
     if(j==10) {printf("\n"); j=0;}
  }

  if(npar==5)
  {
     int ordr, nf, nfMx;
     double lambda, alphMZ;

     if(sscanf(parch[2],"%d",  &nf)!=1 || nf>6 || nf<4)
     { fprintf(stderr,"Second parameter should be a hole number between 4 and 6\n");
       exit(1);
     }
          if(strcmp(parch[3],"lo")==0)    ordr=1;
     else if(strcmp(parch[3],"nlo")==0)   ordr=2;
     else if(strcmp(parch[3],"nnlo")==0)  ordr=3;
     else 
     { fprintf(stderr,"Third parameter should be 'lo', 'nlo', or 'nnlo' \n");
       exit(1);
     }        
     if(sscanf(parch[4],"%lf", &alphMZ)!=1 || alphMZ<0.09 || alphMZ>0.15)
     { fprintf(stderr,"Fourth parameter should be a  number between 0.09 and 0.15\n");
       exit(1);
     } 
     if(nf==6){nf=5;nfMx=6;} else nfMx=nf;
     lambda=findLambda(nf,ordr,alphMZ,91.187);
     writeAlpha(stdout,nf,ordr,lambda,nfMx,Mc,Mb,Mt,NQ,q);
  }  

  printf("\n#X_grid\n");
  for(i=0,j=1;i<NX;i++,j++) 
  {
     printf(" %.5E",x[i]); 
     if(j==10) {printf("\n"); j=0;}
  }     
  printf("\n");

  printf("\n#Interpolation MRST2001\n"); 

  for(i=0; i<NX-1; ++i) for(j=0; j<NQ;++j) 
  {  int k=i+j*NX;
     scanf("%lf %lf %lf %lf %lf %lf %lf %lf",f1+k,f2+k,f3+k,f4+k,f5+k,f7+k,f6+k,f8+k);
  }
 

   /* notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea */

/*(b,B) (c,C) (s,S) D U G u d */
           
    printf("\n#q_threshold %.7E\n",Mb);
    printf("\n#1-parton\n");
    for(j=0;j<NQ;j++)
    { for(i=0;i<NX-1;i++)  printf(" %.8E",f7[j*NX+i]/x[i]);
      printf(" 0.\n");
    }

    printf("\n#q_threshold %.7E\n",Mc);
    printf("\n#2-parton\n");
    for(j=0;j<NQ;j++)
    { for(i=0;i<NX-1;i++)  printf(" %.6E",f5[j*NX+i]/x[i]);
      printf(" 0.\n");
    }

    printf("\n#q_threshold 0\n");
    printf("\n#3-parton\n");
    for(j=0;j<NQ;j++)
    { for(i=0;i<NX-1;i++)  printf(" %.6E",f6[j*NX+i]/x[i]);
      printf(" 0.\n");
    }

    printf("\n#4-parton\n");
    for(j=0;j<NQ;j++)
    { for(i=0;i<NX-1;i++)  printf(" %.6E",f8[j*NX+i]/x[i]);
      printf(" 0.\n");
    }

    printf("\n#5-parton\n");
    for(j=0;j<NQ;j++)
    { for(i=0;i<NX-1;i++)  printf(" %.6E",f4[j*NX+i]/x[i]);
      printf(" 0.\n");
    }

    printf("\n#6-parton\n");
    for(j=0;j<NQ;j++)
    { for(i=0;i<NX-1;i++)  printf(" %.6E",f3[j*NX+i]/x[i]);
      printf(" 0.\n");
    }

    printf("\n#7-parton\n");
    for(j=0;j<NQ;j++)
    { for(i=0;i<NX-1;i++)  printf(" %.6E",(f1[j*NX+i]+f4[j*NX+i])/x[i]);
      printf(" 0.\n");
    }

    printf("\n#8-parton\n");
    for(j=0;j<NQ;j++)
    { for(i=0;i<NX-1;i++)  printf(" %.6E",(f2[j*NX+i]+f8[j*NX+i])/x[i]);
      printf(" 0.\n");
    }
    return 0;
}