summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--contrib/mp4v2/A01-divide-zero.patch22
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