|
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 |