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
parent 1d155a6357
commit b53243fed3

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