diff --git a/avserver.c b/avserver.c index 6b01b15b6f..994edcd04c 100644 --- a/avserver.c +++ b/avserver.c @@ -39,6 +39,7 @@ #include "libavutil/avstring.h" #include "libavutil/lfg.h" #include "libavutil/dict.h" +#include "libavutil/intreadwrite.h" #include "libavutil/mathematics.h" #include "libavutil/random_seed.h" #include "libavutil/parseutils.h" @@ -323,6 +324,37 @@ static AVLFG random_state; static FILE *logfile = NULL; +static int64_t ffm_read_write_index(int fd) +{ + uint8_t buf[8]; + + lseek(fd, 8, SEEK_SET); + if (read(fd, buf, 8) != 8) + return AVERROR(EIO); + return AV_RB64(buf); +} + +static int ffm_write_write_index(int fd, int64_t pos) +{ + uint8_t buf[8]; + int i; + + for(i=0;i<8;i++) + buf[i] = (pos >> (56 - i * 8)) & 0xff; + lseek(fd, 8, SEEK_SET); + if (write(fd, buf, 8) != 8) + return AVERROR(EIO); + return 8; +} + +static void ffm_set_write_index(AVFormatContext *s, int64_t pos, + int64_t file_size) +{ + FFMContext *ffm = s->priv_data; + ffm->write_index = pos; + ffm->file_size = file_size; +} + /* FIXME: make avserver work with IPv6 */ /* resolve host with also IP address parsing */ static int resolve_host(struct in_addr *sin_addr, const char *hostname) diff --git a/libavformat/ffm.h b/libavformat/ffm.h index 6ce5e0408c..70c3e887a0 100644 --- a/libavformat/ffm.h +++ b/libavformat/ffm.h @@ -56,8 +56,4 @@ typedef struct FFMContext { uint8_t packet[FFM_PACKET_SIZE]; } FFMContext; -int64_t ffm_read_write_index(int fd); -int ffm_write_write_index(int fd, int64_t pos); -void ffm_set_write_index(AVFormatContext *s, int64_t pos, int64_t file_size); - #endif /* AVFORMAT_FFM_H */ diff --git a/libavformat/ffmdec.c b/libavformat/ffmdec.c index 50c7416811..e6730eb2f5 100644 --- a/libavformat/ffmdec.c +++ b/libavformat/ffmdec.c @@ -24,39 +24,6 @@ #include "avformat.h" #include "internal.h" #include "ffm.h" -#if CONFIG_AVSERVER -#include - -int64_t ffm_read_write_index(int fd) -{ - uint8_t buf[8]; - - lseek(fd, 8, SEEK_SET); - if (read(fd, buf, 8) != 8) - return AVERROR(EIO); - return AV_RB64(buf); -} - -int ffm_write_write_index(int fd, int64_t pos) -{ - uint8_t buf[8]; - int i; - - for(i=0;i<8;i++) - buf[i] = (pos >> (56 - i * 8)) & 0xff; - lseek(fd, 8, SEEK_SET); - 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) -{ - FFMContext *ffm = s->priv_data; - ffm->write_index = pos; - ffm->file_size = file_size; -} -#endif // CONFIG_AVSERVER static int ffm_is_avail_data(AVFormatContext *s, int size) {