|
@@ -270,7 +270,6 @@ static int reset(struct easycap *peasycap)
|
|
|
|
|
|
peasycap->video_eof = 0;
|
|
|
peasycap->audio_eof = 0;
|
|
|
- do_gettimeofday(&peasycap->timeval7);
|
|
|
/*---------------------------------------------------------------------------*/
|
|
|
/*
|
|
|
* RESTORE INPUT AND FORCE REFRESH OF STANDARD, FORMAT, ETC.
|
|
@@ -1215,10 +1214,6 @@ int easycap_dqbuf(struct easycap *peasycap, int mode)
|
|
|
int
|
|
|
field2frame(struct easycap *peasycap)
|
|
|
{
|
|
|
- struct timeval timeval;
|
|
|
- long long int above, below;
|
|
|
- u32 remainder;
|
|
|
- struct signed_div_result sdr;
|
|
|
|
|
|
void *pex, *pad;
|
|
|
int kex, kad, mex, mad, rex, rad, rad2;
|
|
@@ -1576,52 +1571,11 @@ field2frame(struct easycap *peasycap)
|
|
|
if (peasycap->field_read == peasycap->field_fill)
|
|
|
SAM("WARNING: on exit, filling field buffer %i\n",
|
|
|
peasycap->field_read);
|
|
|
-/*---------------------------------------------------------------------------*/
|
|
|
-/*
|
|
|
- * CALCULATE VIDEO STREAMING RATE
|
|
|
- */
|
|
|
-/*---------------------------------------------------------------------------*/
|
|
|
- do_gettimeofday(&timeval);
|
|
|
- if (peasycap->timeval6.tv_sec) {
|
|
|
- below = ((long long int)(1000000)) *
|
|
|
- ((long long int)(timeval.tv_sec -
|
|
|
- peasycap->timeval6.tv_sec)) +
|
|
|
- (long long int)(timeval.tv_usec - peasycap->timeval6.tv_usec);
|
|
|
- above = (long long int)1000000;
|
|
|
-
|
|
|
- sdr = signed_div(above, below);
|
|
|
- above = sdr.quotient;
|
|
|
- remainder = (u32)sdr.remainder;
|
|
|
-
|
|
|
- JOM(8, "video streaming at %3lli.%03i fields per second\n",
|
|
|
- above, (remainder/1000));
|
|
|
- }
|
|
|
- peasycap->timeval6 = timeval;
|
|
|
|
|
|
if (caches)
|
|
|
JOM(8, "%i=caches\n", caches);
|
|
|
return 0;
|
|
|
}
|
|
|
-/*****************************************************************************/
|
|
|
-struct signed_div_result
|
|
|
-signed_div(long long int above, long long int below)
|
|
|
-{
|
|
|
- struct signed_div_result sdr;
|
|
|
-
|
|
|
- if (((0 <= above) && (0 <= below)) || ((0 > above) && (0 > below))) {
|
|
|
- sdr.remainder = (unsigned long long int) do_div(above, below);
|
|
|
- sdr.quotient = (long long int) above;
|
|
|
- } else {
|
|
|
- if (0 > above)
|
|
|
- above = -above;
|
|
|
- if (0 > below)
|
|
|
- below = -below;
|
|
|
- sdr.remainder = (unsigned long long int) do_div(above, below);
|
|
|
- sdr.quotient = -((long long int) above);
|
|
|
- }
|
|
|
- return sdr;
|
|
|
-}
|
|
|
-/*****************************************************************************/
|
|
|
/*---------------------------------------------------------------------------*/
|
|
|
/*
|
|
|
* DECIMATION AND COLOURSPACE CONVERSION.
|
|
@@ -2755,8 +2709,6 @@ static void easycap_complete(struct urb *purb)
|
|
|
wake_up_interruptible
|
|
|
(&(peasycap->
|
|
|
wq_video));
|
|
|
- do_gettimeofday
|
|
|
- (&peasycap->timeval7);
|
|
|
} else {
|
|
|
peasycap->video_junk++;
|
|
|
if (bad & 0x0010)
|