comparison stream/tvi_dshow.c @ 25126:8152446e42b1

Move requested format at top and shift all oters down This method is better with recent negotiation code: requested formats will be checked first.
author voroshil
date Sat, 24 Nov 2007 07:28:05 +0000
parents a1e6345207a1
children 6e039dd0b5d8
comparison
equal deleted inserted replaced
25125:a1e6345207a1 25126:8152446e42b1
3139 { 3139 {
3140 switch (cmd) { 3140 switch (cmd) {
3141 /* need rewrite */ 3141 /* need rewrite */
3142 case TVI_CONTROL_VID_SET_FORMAT: 3142 case TVI_CONTROL_VID_SET_FORMAT:
3143 { 3143 {
3144 int fcc, i; 3144 int fcc, i,j;
3145 void* tmp; 3145 void* tmp,*tmp2;
3146 int result = TVI_CONTROL_TRUE; 3146 int result = TVI_CONTROL_TRUE;
3147 3147
3148 if (priv->state) 3148 if (priv->state)
3149 return TVI_CONTROL_FALSE; 3149 return TVI_CONTROL_FALSE;
3150 fcc = *(int *) arg; 3150 fcc = *(int *) arg;
3183 priv->chains[0]->arpmt[i+1] = NULL; 3183 priv->chains[0]->arpmt[i+1] = NULL;
3184 3184
3185 result = TVI_CONTROL_FALSE; 3185 result = TVI_CONTROL_FALSE;
3186 } 3186 }
3187 3187
3188 tmp = priv->chains[0]->arpmt[0]; 3188
3189 priv->chains[0]->arpmt[0] = priv->chains[0]->arpmt[i]; 3189 tmp=priv->chains[0]->arpmt[i];
3190 priv->chains[0]->arpmt[i] = tmp; 3190 tmp2=priv->chains[0]->arStreamCaps[i];
3191 3191 for(j=i; j>0; j--)
3192 tmp = priv->chains[0]->arStreamCaps[0]; 3192 {
3193 priv->chains[0]->arStreamCaps[0] = priv->chains[0]->arStreamCaps[i]; 3193 priv->chains[0]->arpmt[j] = priv->chains[0]->arpmt[j-1];
3194 priv->chains[0]->arStreamCaps[i] = tmp; 3194 priv->chains[0]->arStreamCaps[j] = priv->chains[0]->arStreamCaps[j-1];
3195 }
3196 priv->chains[0]->arpmt[0] = tmp;
3197 priv->chains[0]->arStreamCaps[0] = tmp2;
3195 3198
3196 priv->chains[0]->nFormatUsed = 0; 3199 priv->chains[0]->nFormatUsed = 0;
3197 3200
3198 if (priv->chains[0]->pmt) 3201 if (priv->chains[0]->pmt)
3199 DeleteMediaType(priv->chains[0]->pmt); 3202 DeleteMediaType(priv->chains[0]->pmt);