diff options
-rw-r--r-- | contrib/mp4v2/A01-divide-zero.patch | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/contrib/mp4v2/A01-divide-zero.patch b/contrib/mp4v2/A01-divide-zero.patch new file mode 100644 index 000000000..4d6aa4d2a --- /dev/null +++ b/contrib/mp4v2/A01-divide-zero.patch @@ -0,0 +1,22 @@ +--- mp4v2-r355/src/mp4track.cpp 2012-01-05 15:44:29.000000000 +0100 ++++ mp4v2-r355/src/mp4track.cpp 2012-01-05 15:47:34.000000000 +0100 +@@ -819,13 +819,14 @@ + (thisSecStart + timeScale) - lastSampleTime; + // calculate the duration of the last sample + MP4Duration lastSampleDur = sampleTime - lastSampleTime; +- uint32_t overflow_bytes; + // now, calculate the number of bytes we overflowed. Round up. +- overflow_bytes = +- ((lastSampleSize * overflow_dur) + (lastSampleDur - 1)) / lastSampleDur; ++ if( lastSampleDur > 0 ) { ++ uint32_t overflow_bytes = 0; ++ overflow_bytes = ((lastSampleSize * overflow_dur) + (lastSampleDur - 1)) / lastSampleDur; + +- if (bytesThisSec - overflow_bytes > maxBytesPerSec) { +- maxBytesPerSec = bytesThisSec - overflow_bytes; ++ if (bytesThisSec - overflow_bytes > maxBytesPerSec) { ++ maxBytesPerSec = bytesThisSec - overflow_bytes; ++ } + } + + // now adjust the values for this sample. Remove the bytes |