From 6fcce4f995df3c6c44b16a810b772f529e9aa6bf Mon Sep 17 00:00:00 2001 From: Patrik Kullman <patrik@yes.nu> Date: Thu, 12 Feb 2009 02:15:07 +0000 Subject: [PATCH] Change ffm_write_write_index to return int, and return if error occured. Patch by Patrik Kullman, patrik at yes dot nu Originally committed as revision 17172 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/avformat.h | 2 +- libavformat/ffmdec.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index a1a9b601efe..bb03e4009ce 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -1180,7 +1180,7 @@ int64_t av_gettime(void); /* ffm-specific for ffserver */ #define FFM_PACKET_SIZE 4096 int64_t ffm_read_write_index(int fd); -void ffm_write_write_index(int fd, int64_t pos); +int ffm_write_write_index(int fd, int64_t pos); void ffm_set_write_index(AVFormatContext *s, int64_t pos, int64_t file_size); /** diff --git a/libavformat/ffmdec.c b/libavformat/ffmdec.c index 9951d756eac..6f96c719ab2 100644 --- a/libavformat/ffmdec.c +++ b/libavformat/ffmdec.c @@ -34,7 +34,7 @@ int64_t ffm_read_write_index(int fd) return AV_RB64(buf); } -void ffm_write_write_index(int fd, int64_t pos) +int ffm_write_write_index(int fd, int64_t pos) { uint8_t buf[8]; int i; @@ -42,7 +42,9 @@ void ffm_write_write_index(int fd, int64_t pos) for(i=0;i<8;i++) buf[i] = (pos >> (56 - i * 8)) & 0xff; lseek(fd, 8, SEEK_SET); - write(fd, buf, 8); + if (write(fd, buf, 8) != 8) + return AVERROR(EIO); + return 8; } void ffm_set_write_index(AVFormatContext *s, int64_t pos, int64_t file_size) -- GitLab