src/3rdparty/patches/libmng-1.0.10-endless-loop.patch
changeset 0 1918ee327afb
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 --- libmng_data.h.orig	2007-04-20 10:41:58.000000000 +0200
       
     2 +++ libmng_data.h	2007-07-14 00:00:00.000000000 +0200
       
     3 @@ -658,6 +658,9 @@
       
     4             mng_int32         iFrameclipb;
       
     5  
       
     6             mng_uint32        iNextdelay;         /* delay *after* next image */
       
     7 +
       
     8 +           mng_bool          bForcedelay;
       
     9 +           mng_uint32        iAccumdelay;
       
    10  #endif
       
    11  
       
    12  #ifndef MNG_SKIPCHUNK_SHOW
       
    13 --- libmng_display.c.orig	2007-04-20 10:41:58.000000000 +0200
       
    14 +++ libmng_display.c	2007-07-14 00:00:00.000000000 +0200
       
    15 @@ -384,8 +384,9 @@
       
    16  
       
    17    {
       
    18  #ifndef MNG_SKIPCHUNK_FRAM
       
    19 -    if (pData->iFramedelay > 0)        /* real delay ? */
       
    20 +    if (pData->iFramedelay > 0 || pData->bForcedelay) /* real delay ? */
       
    21      {                                  /* let the app refresh first ? */
       
    22 +      pData->bForcedelay = MNG_FALSE;
       
    23        if ((pData->bRunning) && (!pData->bSkipping) &&
       
    24            (pData->iUpdatetop < pData->iUpdatebottom) && (pData->iUpdateleft < pData->iUpdateright))
       
    25          if (!pData->fRefresh (((mng_handle)pData),
       
    26 @@ -455,6 +456,7 @@
       
    27        pData->iFrametime = pData->iFrametime + iWaitfor;
       
    28                                         /* setup for next delay */
       
    29      pData->iFramedelay = pData->iNextdelay;
       
    30 +    pData->iAccumdelay += pData->iFramedelay;
       
    31  #endif
       
    32    }
       
    33  
       
    34 @@ -3340,6 +3342,9 @@
       
    35    MNG_TRACE (pData, MNG_FN_PROCESS_DISPLAY_MEND, MNG_LC_START);
       
    36  #endif
       
    37  
       
    38 +  pData->bForcedelay = pData->iAccumdelay ? MNG_FALSE : MNG_TRUE;
       
    39 +  pData->iAccumdelay = 0;
       
    40 +
       
    41  #ifdef MNG_SUPPORT_DYNAMICMNG
       
    42    if (pData->bStopafterseek)           /* need to stop after this ? */
       
    43    {
       
    44 --- libmng_hlapi.c.orig	2007-07-06 18:23:04.000000000 +0200
       
    45 +++ libmng_hlapi.c	2007-07-14 00:00:00.000000000 +0200
       
    46 @@ -446,6 +446,9 @@
       
    47    pData->iFrameclipb           = 0;
       
    48  
       
    49    pData->iNextdelay            = 1;
       
    50 +
       
    51 +  pData->bForcedelay           = MNG_FALSE;
       
    52 +  pData->iAccumdelay           = 0;
       
    53  #endif
       
    54  
       
    55  #ifndef MNG_SKIPCHUNK_SHOW
       
    56 @@ -1737,6 +1740,9 @@
       
    57    pData->iFrameclipb           = 0;
       
    58  
       
    59    pData->iNextdelay            = 1;
       
    60 +
       
    61 +  pData->bForcedelay           = MNG_FALSE;
       
    62 +  pData->iAccumdelay           = 0;
       
    63  #endif
       
    64  
       
    65  #ifndef MNG_SKIPCHUNK_SHOW