Commit 3b20eb25 authored by Mans Rullgard's avatar Mans Rullgard

avserver: move avserver-specific code from ffmdec.c to avserver.c

This way avserver only depends on the data structures of the ffm
demuxer, which it already does, and not also on private functions
being exported by the library.
Signed-off-by: 's avatarMans Rullgard <mans@mansr.com>
parent 07b3790d
......@@ -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)
......
......@@ -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 */
......@@ -24,39 +24,6 @@
#include "avformat.h"
#include "internal.h"
#include "ffm.h"
#if CONFIG_AVSERVER
#include <unistd.h>
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)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment