From 2947e7b7a7378e4899c57a86f029fb20dc0f010c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Axelsson?= Date: Thu, 13 Dec 2012 14:48:25 +0100 Subject: flvenc: don't write random data if seek fails The FLV muxer tries to update the header in write_trailer, which is impossible if writing to a pipe or network stream. Don't write header data if seek to header fails. Signed-off-by: Michael Niedermayer --- libavformat/flvenc.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'libavformat/flvenc.c') diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c index c528bf5bef..6ee0dd3077 100644 --- a/libavformat/flvenc.c +++ b/libavformat/flvenc.c @@ -426,10 +426,14 @@ static int flv_write_trailer(AVFormatContext *s) file_size = avio_tell(pb); /* update information */ - avio_seek(pb, flv->duration_offset, SEEK_SET); - put_amf_double(pb, flv->duration / (double)1000); - avio_seek(pb, flv->filesize_offset, SEEK_SET); - put_amf_double(pb, file_size); + 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; -- cgit v1.2.1