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
This commit is contained in:
Thiago Sousa Santos 2009-11-16 14:57:53 -03:00 committed by Tim-Philipp Müller
parent 8d80e93512
commit 2f90d33509

View file

@ -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)) {