OSDN Git Service

Change ffm_write_write_index to return int, and return if error occured.
authorPatrik Kullman <patrik@yes.nu>
Thu, 12 Feb 2009 02:15:07 +0000 (02:15 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Thu, 12 Feb 2009 02:15:07 +0000 (02:15 +0000)
Patch by Patrik Kullman, patrik at yes dot nu

Originally committed as revision 17172 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/avformat.h
libavformat/ffmdec.c

index a1a9b60..bb03e40 100644 (file)
@@ -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);
 
 /**
index 9951d75..6f96c71 100644 (file)
@@ -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)