summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Sousa Santos <thiagoss@redmoon.(none)>2009-11-16 14:57:53 -0300
committerThiago Sousa Santos <thiagoss@redmoon.(none)>2009-11-17 23:04:53 -0300
commitb53243fed3d1644aa3b219a6d3a36168939be831 (patch)
treed94e126e84c6dfd7128b47b97bc9a8b4bc05d331
parent1d155a6357f3e42786ffdb75c65274e82bed15c6 (diff)
qtmux: do not add size to the pointer variable
Do not wrongly add the result of the function to the pointer to the buffer size. Instead, check the result to see if the serialization was ok. Based on a patch by: "Carsten Kroll <car@ximidi.com>" Fixes #602106
-rw-r--r--gst/qtmux/atoms.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/gst/qtmux/atoms.c b/gst/qtmux/atoms.c
index a0844c2e9..57b9aa483 100644
--- a/gst/qtmux/atoms.c
+++ b/gst/qtmux/atoms.c
@@ -1909,11 +1909,15 @@ atom_stsd_copy_data (AtomSTSD * stsd, guint8 ** buffer, guint64 * size,
break;
default:
if (se->kind == VIDEO) {
- size += sample_entry_mp4v_copy_data ((SampleTableEntryMP4V *)
- walker->data, buffer, size, offset);
+ if (!sample_entry_mp4v_copy_data ((SampleTableEntryMP4V *)
+ walker->data, buffer, size, offset)) {
+ return 0;
+ }
} else if (se->kind == AUDIO) {
- size += sample_entry_mp4a_copy_data ((SampleTableEntryMP4A *)
- walker->data, buffer, size, offset);
+ if (!sample_entry_mp4a_copy_data ((SampleTableEntryMP4A *)
+ walker->data, buffer, size, offset)) {
+ return 0;
+ }
} else {
if (!atom_hint_sample_entry_copy_data (
(AtomHintSampleEntry *) walker->data, buffer, size, offset)) {