Browse Source

Don't seek when streamed

Originally committed as revision 10383 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
David Conrad 18 years ago
parent
commit
ac9e1177b3
1 changed files with 6 additions and 0 deletions
  1. +6
    -0
      libavformat/matroskaenc.c

+ 6
- 0
libavformat/matroskaenc.c View File

@@ -215,6 +215,10 @@ static void end_ebml_master(ByteIOContext *pb, ebml_master master)
{ {
offset_t pos = url_ftell(pb); offset_t pos = url_ftell(pb);


// leave the unknown size for masters when streaming
if (url_is_streamed(pb))
return;

url_fseek(pb, master.pos - master.sizebytes, SEEK_SET); url_fseek(pb, master.pos - master.sizebytes, SEEK_SET);
put_ebml_size(pb, pos - master.pos, master.sizebytes); put_ebml_size(pb, pos - master.pos, master.sizebytes);
url_fseek(pb, pos, SEEK_SET); url_fseek(pb, pos, SEEK_SET);
@@ -767,6 +771,7 @@ static int mkv_write_trailer(AVFormatContext *s)


end_ebml_master(pb, mkv->cluster); end_ebml_master(pb, mkv->cluster);


if (!url_is_streamed(pb)) {
cuespos = mkv_write_cues(pb, mkv->cues, s->nb_streams); cuespos = mkv_write_cues(pb, mkv->cues, s->nb_streams);
second_seekhead = mkv_write_seekhead(pb, mkv->cluster_seekhead); second_seekhead = mkv_write_seekhead(pb, mkv->cluster_seekhead);


@@ -790,6 +795,7 @@ static int mkv_write_trailer(AVFormatContext *s)
put_ebml_binary(pb, MATROSKA_ID_SEGMENTUID, segment_uid, 16); put_ebml_binary(pb, MATROSKA_ID_SEGMENTUID, segment_uid, 16);
} }
url_fseek(pb, currentpos, SEEK_SET); url_fseek(pb, currentpos, SEEK_SET);
}


end_ebml_master(pb, mkv->segment); end_ebml_master(pb, mkv->segment);
av_free(mkv->md5_ctx); av_free(mkv->md5_ctx);


Loading…
Cancel
Save