Browse Source

avformat/flvenc: flx flvflags no_metadata bug

When use flvflags no_metadata , the FLV header will be cover by write tailer
This commit fix the bug

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
tags/n3.3
Steven Liu 8 years ago
parent
commit
4e3cc4bdd8
1 changed files with 14 additions and 12 deletions
  1. +14
    -12
      libavformat/flvenc.c

+ 14
- 12
libavformat/flvenc.c View File

@@ -848,20 +848,22 @@ end:
avio_seek(pb, flv->datasize_offset, SEEK_SET);
put_amf_double(pb, flv->datasize);
}
if (!(flv->flags & FLV_NO_DURATION_FILESIZE)) {
/* update information */
if (avio_seek(pb, flv->duration_offset, SEEK_SET) < 0) {
av_log(s, AV_LOG_WARNING, "Failed to update header with correct duration.\n");
} else {
put_amf_double(pb, flv->duration / (double)1000);
}
if (avio_seek(pb, flv->filesize_offset, SEEK_SET) < 0) {
av_log(s, AV_LOG_WARNING, "Failed to update header with correct filesize.\n");
} else {
put_amf_double(pb, file_size);
if (!(flv->flags & FLV_NO_METADATA)) {
if (!(flv->flags & FLV_NO_DURATION_FILESIZE)) {
/* update information */
if (avio_seek(pb, flv->duration_offset, SEEK_SET) < 0) {
av_log(s, AV_LOG_WARNING, "Failed to update header with correct duration.\n");
} else {
put_amf_double(pb, flv->duration / (double)1000);
}
if (avio_seek(pb, flv->filesize_offset, SEEK_SET) < 0) {
av_log(s, AV_LOG_WARNING, "Failed to update header with correct filesize.\n");
} else {
put_amf_double(pb, file_size);
}
}
}
avio_seek(pb, file_size, SEEK_SET);
return 0;
}



Loading…
Cancel
Save