- data_pos = s->buf_ptr - start_ptr;
- rm->data_pos = data_pos;
- data_offset_ptr[0] = data_pos >> 24;
- data_offset_ptr[1] = data_pos >> 16;
- data_offset_ptr[2] = data_pos >> 8;
- data_offset_ptr[3] = data_pos;
+ rm->data_pos = avio_tell(s);
+ if (avio_seek(s, data_offset, SEEK_SET) >= 0) {
+ avio_wb32(s, rm->data_pos);
+ avio_seek(s, rm->data_pos, SEEK_SET);
+ }