Commit 42df71d0 authored by Andreas Rheinhardt's avatar Andreas Rheinhardt Committed by Michael Niedermayer

avformat/flvenc: Avoid unnecessary seek

When shifting the already written data in order to write the keyframe
index, the flv muxer would first store the pre-shift size, then
calculate how big the index will be eventually, then perform some seeks
to update some size fields, then seek back to the end of the file to get
the new position, followed by a seek to the position where writing will
really start. Seeking back to the (already known) end position (that is
actually used to perform this seek) to get the end position is of course
unnecessary. It has been removed.
Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 61e0d719
......@@ -580,7 +580,7 @@ static int shift_data(AVFormatContext *s)
int n = 0;
int64_t metadata_size = 0;
FLVContext *flv = s->priv_data;
int64_t pos, pos_end = avio_tell(s->pb);
int64_t pos, pos_end = avio_tell(s->pb); /* Save the pre-shift size. */
uint8_t *buf, *read_buf[2];
int read_buf_id = 0;
int read_size[2];
......@@ -608,7 +608,6 @@ static int shift_data(AVFormatContext *s)
avio_seek(s->pb, flv->metadata_totalsize_pos, SEEK_SET);
avio_wb32(s->pb, flv->metadata_totalsize + 11 + metadata_size);
avio_seek(s->pb, pos_end, SEEK_SET);
/* Shift the data: the AVIO context of the output can only be used for
* writing, so we re-open the same output, but for reading. It also avoids
......@@ -621,9 +620,7 @@ static int shift_data(AVFormatContext *s)
goto end;
}
/* mark the end of the shift to up to the last data we wrote, and get ready
* for writing */
pos_end = avio_tell(s->pb);
/* Get ready for writing. */
avio_seek(s->pb, flv->keyframes_info_offset + metadata_size, SEEK_SET);
/* start reading at where the keyframe index information will be placed */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment