- write_data(f, free_data, 4);
-
- set_position(f, f->file_size);
- write_int32(f, new_moov_size + 8);
- write_data(f, "moov", 4);
- write_data(f, new_moov_data, new_moov_size);
- } else {
+ ret = write_data(f, "free", 4); /* rename old moov to free */
+ if (ret < 0)
+ goto free_moov;
+ set_position(f, f->file_size); /* write new moov atom at EOF */
+ } else /* overwrite old moov atom */