@@ -14,7 +14,7 @@ doxy | |||||
ffmpeg | ffmpeg | ||||
avplay | avplay | ||||
avprobe | avprobe | ||||
ffserver | |||||
avserver | |||||
libavcodec/*_tablegen | libavcodec/*_tablegen | ||||
libavcodec/*_tables.c | libavcodec/*_tables.c | ||||
libavcodec/*_tables.h | libavcodec/*_tables.h | ||||
@@ -5,7 +5,7 @@ releases are sorted from youngest to oldest. | |||||
version <next>: | version <next>: | ||||
- BWF muxer | - BWF muxer | ||||
- Flash Screen Video 2 decoder | - Flash Screen Video 2 decoder | ||||
- ffplay/ffprobe renamed to avplay/avprobe | |||||
- ffplay/ffprobe/ffserver renamed to avplay/avprobe/avserver | |||||
version 0.7: | version 0.7: | ||||
@@ -55,7 +55,7 @@ COMPILE_S = $(call COMPILE,AS) | |||||
PROGS-$(CONFIG_FFMPEG) += ffmpeg | PROGS-$(CONFIG_FFMPEG) += ffmpeg | ||||
PROGS-$(CONFIG_AVPLAY) += avplay | PROGS-$(CONFIG_AVPLAY) += avplay | ||||
PROGS-$(CONFIG_AVPROBE) += avprobe | PROGS-$(CONFIG_AVPROBE) += avprobe | ||||
PROGS-$(CONFIG_FFSERVER) += ffserver | |||||
PROGS-$(CONFIG_AVSERVER) += avserver | |||||
PROGS := $(PROGS-yes:%=%$(EXESUF)) | PROGS := $(PROGS-yes:%=%$(EXESUF)) | ||||
OBJS = $(PROGS-yes:%=%.o) cmdutils.o | OBJS = $(PROGS-yes:%=%.o) cmdutils.o | ||||
@@ -64,7 +64,7 @@ HOSTPROGS := $(TESTTOOLS:%=tests/%) | |||||
TOOLS = qt-faststart trasher | TOOLS = qt-faststart trasher | ||||
TOOLS-$(CONFIG_ZLIB) += cws2fws | TOOLS-$(CONFIG_ZLIB) += cws2fws | ||||
BASENAMES = ffmpeg avplay avprobe ffserver | |||||
BASENAMES = ffmpeg avplay avprobe avserver | |||||
ALLPROGS = $(BASENAMES:%=%$(EXESUF)) | ALLPROGS = $(BASENAMES:%=%$(EXESUF)) | ||||
ALLMANPAGES = $(BASENAMES:%=%.1) | ALLMANPAGES = $(BASENAMES:%=%.1) | ||||
@@ -118,7 +118,7 @@ $(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D)))) | |||||
avplay.o: CFLAGS += $(SDL_CFLAGS) | avplay.o: CFLAGS += $(SDL_CFLAGS) | ||||
avplay$(EXESUF): FF_EXTRALIBS += $(SDL_LIBS) | avplay$(EXESUF): FF_EXTRALIBS += $(SDL_LIBS) | ||||
ffserver$(EXESUF): LDFLAGS += $(FFSERVERLDFLAGS) | |||||
avserver$(EXESUF): LDFLAGS += $(AVSERVERLDFLAGS) | |||||
$(PROGS): %$(EXESUF): %.o cmdutils.o $(FF_DEP_LIBS) | $(PROGS): %$(EXESUF): %.o cmdutils.o $(FF_DEP_LIBS) | ||||
$(LD) $(LDFLAGS) -o $@ $< cmdutils.o $(FF_EXTRALIBS) | $(LD) $(LDFLAGS) -o $@ $< cmdutils.o $(FF_EXTRALIBS) | ||||
@@ -59,7 +59,7 @@ | |||||
#include "cmdutils.h" | #include "cmdutils.h" | ||||
const char program_name[] = "ffserver"; | |||||
const char program_name[] = "avserver"; | |||||
const int program_birth_year = 2000; | const int program_birth_year = 2000; | ||||
static const OptionDef options[]; | static const OptionDef options[]; | ||||
@@ -200,7 +200,7 @@ typedef struct IPAddressACL { | |||||
struct in_addr last; | struct in_addr last; | ||||
} IPAddressACL; | } IPAddressACL; | ||||
/* description of each stream of the ffserver.conf file */ | |||||
/* description of each stream of the avserver.conf file */ | |||||
typedef struct FFStream { | typedef struct FFStream { | ||||
enum StreamType stream_type; | enum StreamType stream_type; | ||||
char filename[1024]; /* stream filename */ | char filename[1024]; /* stream filename */ | ||||
@@ -299,10 +299,10 @@ static int rtp_new_av_stream(HTTPContext *c, | |||||
static const char *my_program_name; | static const char *my_program_name; | ||||
static const char *my_program_dir; | static const char *my_program_dir; | ||||
static const char *config_filename = "/etc/ffserver.conf"; | |||||
static const char *config_filename = "/etc/avserver.conf"; | |||||
static int ffserver_debug; | |||||
static int ffserver_daemon; | |||||
static int avserver_debug; | |||||
static int avserver_daemon; | |||||
static int no_launch; | static int no_launch; | ||||
static int need_to_start_children; | static int need_to_start_children; | ||||
@@ -320,7 +320,7 @@ static AVLFG random_state; | |||||
static FILE *logfile = NULL; | static FILE *logfile = NULL; | ||||
/* FIXME: make ffserver work with IPv6 */ | |||||
/* FIXME: make avserver work with IPv6 */ | |||||
/* resolve host with also IP address parsing */ | /* resolve host with also IP address parsing */ | ||||
static int resolve_host(struct in_addr *sin_addr, const char *hostname) | static int resolve_host(struct in_addr *sin_addr, const char *hostname) | ||||
{ | { | ||||
@@ -480,7 +480,7 @@ static void start_children(FFStream *feed) | |||||
for (i = 3; i < 256; i++) | for (i = 3; i < 256; i++) | ||||
close(i); | close(i); | ||||
if (!ffserver_debug) { | |||||
if (!avserver_debug) { | |||||
i = open("/dev/null", O_RDWR); | i = open("/dev/null", O_RDWR); | ||||
if (i != -1) { | if (i != -1) { | ||||
dup2(i, 0); | dup2(i, 0); | ||||
@@ -620,7 +620,7 @@ static int http_server(void) | |||||
return -1; | return -1; | ||||
} | } | ||||
http_log("FFserver started.\n"); | |||||
http_log("AVserver started.\n"); | |||||
start_children(first_feed); | start_children(first_feed); | ||||
@@ -664,7 +664,7 @@ static int http_server(void) | |||||
poll_entry->events = POLLOUT; | poll_entry->events = POLLOUT; | ||||
poll_entry++; | poll_entry++; | ||||
} else { | } else { | ||||
/* when ffserver is doing the timing, we work by | |||||
/* when avserver is doing the timing, we work by | |||||
looking at which packet need to be sent every | looking at which packet need to be sent every | ||||
10 ms */ | 10 ms */ | ||||
delay1 = 10; /* one tick wait XXX: 10 ms assumed */ | delay1 = 10; /* one tick wait XXX: 10 ms assumed */ | ||||
@@ -1480,7 +1480,7 @@ static int http_parse_request(HTTPContext *c) | |||||
av_strlcpy(c->protocol, protocol, sizeof(c->protocol)); | av_strlcpy(c->protocol, protocol, sizeof(c->protocol)); | ||||
if (ffserver_debug) | |||||
if (avserver_debug) | |||||
http_log("%s - - New connection: %s %s\n", inet_ntoa(c->from_addr.sin_addr), cmd, url); | http_log("%s - - New connection: %s %s\n", inet_ntoa(c->from_addr.sin_addr), cmd, url); | ||||
/* find the filename and the optional info string in the request */ | /* find the filename and the optional info string in the request */ | ||||
@@ -1643,7 +1643,7 @@ static int http_parse_request(HTTPContext *c) | |||||
"Content-type: video/x-ms-asf\r\n" | "Content-type: video/x-ms-asf\r\n" | ||||
"\r\n" | "\r\n" | ||||
"<ASX Version=\"3\">\r\n" | "<ASX Version=\"3\">\r\n" | ||||
//"<!-- Autogenerated by ffserver -->\r\n" | |||||
//"<!-- Autogenerated by avserver -->\r\n" | |||||
"<ENTRY><REF HREF=\"http://%s/%s%s\"/></ENTRY>\r\n" | "<ENTRY><REF HREF=\"http://%s/%s%s\"/></ENTRY>\r\n" | ||||
"</ASX>\r\n", hostbuf, filename, info); | "</ASX>\r\n", hostbuf, filename, info); | ||||
break; | break; | ||||
@@ -1652,7 +1652,7 @@ static int http_parse_request(HTTPContext *c) | |||||
"HTTP/1.0 200 RAM Follows\r\n" | "HTTP/1.0 200 RAM Follows\r\n" | ||||
"Content-type: audio/x-pn-realaudio\r\n" | "Content-type: audio/x-pn-realaudio\r\n" | ||||
"\r\n" | "\r\n" | ||||
"# Autogenerated by ffserver\r\n" | |||||
"# Autogenerated by avserver\r\n" | |||||
"http://%s/%s%s\r\n", hostbuf, filename, info); | "http://%s/%s%s\r\n", hostbuf, filename, info); | ||||
break; | break; | ||||
case REDIR_ASF: | case REDIR_ASF: | ||||
@@ -3458,7 +3458,7 @@ static int rtp_new_av_stream(HTTPContext *c, | |||||
} | } | ||||
/********************************************************************/ | /********************************************************************/ | ||||
/* ffserver initialization */ | |||||
/* avserver initialization */ | |||||
static AVStream *add_av_stream1(FFStream *stream, AVCodecContext *codec, int copy) | static AVStream *add_av_stream1(FFStream *stream, AVCodecContext *codec, int copy) | ||||
{ | { | ||||
@@ -3914,10 +3914,10 @@ static void load_module(const char *filename) | |||||
return; | return; | ||||
} | } | ||||
init_func = dlsym(dll, "ffserver_module_init"); | |||||
init_func = dlsym(dll, "avserver_module_init"); | |||||
if (!init_func) { | if (!init_func) { | ||||
fprintf(stderr, | fprintf(stderr, | ||||
"%s: init function 'ffserver_module_init()' not found\n", | |||||
"%s: init function 'avserver_module_init()' not found\n", | |||||
filename); | filename); | ||||
dlclose(dll); | dlclose(dll); | ||||
} | } | ||||
@@ -3926,7 +3926,7 @@ static void load_module(const char *filename) | |||||
} | } | ||||
#endif | #endif | ||||
static int ffserver_opt_default(const char *opt, const char *arg, | |||||
static int avserver_opt_default(const char *opt, const char *arg, | |||||
AVCodecContext *avctx, int type) | AVCodecContext *avctx, int type) | ||||
{ | { | ||||
int ret = 0; | int ret = 0; | ||||
@@ -3936,7 +3936,7 @@ static int ffserver_opt_default(const char *opt, const char *arg, | |||||
return ret; | return ret; | ||||
} | } | ||||
static int ffserver_opt_preset(const char *arg, | |||||
static int avserver_opt_preset(const char *arg, | |||||
AVCodecContext *avctx, int type, | AVCodecContext *avctx, int type, | ||||
enum CodecID *audio_id, enum CodecID *video_id) | enum CodecID *audio_id, enum CodecID *video_id) | ||||
{ | { | ||||
@@ -3967,7 +3967,7 @@ static int ffserver_opt_preset(const char *arg, | |||||
*video_id = opt_video_codec(tmp2); | *video_id = opt_video_codec(tmp2); | ||||
}else if(!strcmp(tmp, "scodec")){ | }else if(!strcmp(tmp, "scodec")){ | ||||
/* opt_subtitle_codec(tmp2); */ | /* opt_subtitle_codec(tmp2); */ | ||||
}else if(ffserver_opt_default(tmp, tmp2, avctx, type) < 0){ | |||||
}else if(avserver_opt_default(tmp, tmp2, avctx, type) < 0){ | |||||
fprintf(stderr, "%s: Invalid option or argument: '%s', parsed as '%s' = '%s'\n", filename, line, tmp, tmp2); | fprintf(stderr, "%s: Invalid option or argument: '%s', parsed as '%s' = '%s'\n", filename, line, tmp, tmp2); | ||||
ret = 1; | ret = 1; | ||||
break; | break; | ||||
@@ -3979,7 +3979,7 @@ static int ffserver_opt_preset(const char *arg, | |||||
return ret; | return ret; | ||||
} | } | ||||
static AVOutputFormat *ffserver_guess_format(const char *short_name, const char *filename, | |||||
static AVOutputFormat *avserver_guess_format(const char *short_name, const char *filename, | |||||
const char *mime_type) | const char *mime_type) | ||||
{ | { | ||||
AVOutputFormat *fmt = av_guess_format(short_name, filename, mime_type); | AVOutputFormat *fmt = av_guess_format(short_name, filename, mime_type); | ||||
@@ -4066,7 +4066,7 @@ static int parse_ffconfig(const char *filename) | |||||
ERROR("%s:%d: Invalid host/IP address: %s\n", arg); | ERROR("%s:%d: Invalid host/IP address: %s\n", arg); | ||||
} | } | ||||
} else if (!strcasecmp(cmd, "NoDaemon")) { | } else if (!strcasecmp(cmd, "NoDaemon")) { | ||||
ffserver_daemon = 0; | |||||
avserver_daemon = 0; | |||||
} else if (!strcasecmp(cmd, "RTSPPort")) { | } else if (!strcasecmp(cmd, "RTSPPort")) { | ||||
get_arg(arg, sizeof(arg), &p); | get_arg(arg, sizeof(arg), &p); | ||||
val = atoi(arg); | val = atoi(arg); | ||||
@@ -4103,7 +4103,7 @@ static int parse_ffconfig(const char *filename) | |||||
} else | } else | ||||
max_bandwidth = llval; | max_bandwidth = llval; | ||||
} else if (!strcasecmp(cmd, "CustomLog")) { | } else if (!strcasecmp(cmd, "CustomLog")) { | ||||
if (!ffserver_debug) | |||||
if (!avserver_debug) | |||||
get_arg(logfilename, sizeof(logfilename), &p); | get_arg(logfilename, sizeof(logfilename), &p); | ||||
} else if (!strcasecmp(cmd, "<Feed")) { | } else if (!strcasecmp(cmd, "<Feed")) { | ||||
/*********************************************/ | /*********************************************/ | ||||
@@ -4227,7 +4227,7 @@ static int parse_ffconfig(const char *filename) | |||||
} | } | ||||
} | } | ||||
stream->fmt = ffserver_guess_format(NULL, stream->filename, NULL); | |||||
stream->fmt = avserver_guess_format(NULL, stream->filename, NULL); | |||||
avcodec_get_context_defaults2(&video_enc, AVMEDIA_TYPE_VIDEO); | avcodec_get_context_defaults2(&video_enc, AVMEDIA_TYPE_VIDEO); | ||||
avcodec_get_context_defaults2(&audio_enc, AVMEDIA_TYPE_AUDIO); | avcodec_get_context_defaults2(&audio_enc, AVMEDIA_TYPE_AUDIO); | ||||
audio_id = CODEC_ID_NONE; | audio_id = CODEC_ID_NONE; | ||||
@@ -4267,7 +4267,7 @@ static int parse_ffconfig(const char *filename) | |||||
/* jpeg cannot be used here, so use single frame jpeg */ | /* jpeg cannot be used here, so use single frame jpeg */ | ||||
if (!strcmp(arg, "jpeg")) | if (!strcmp(arg, "jpeg")) | ||||
strcpy(arg, "mjpeg"); | strcpy(arg, "mjpeg"); | ||||
stream->fmt = ffserver_guess_format(arg, NULL, NULL); | |||||
stream->fmt = avserver_guess_format(arg, NULL, NULL); | |||||
if (!stream->fmt) { | if (!stream->fmt) { | ||||
ERROR("Unknown Format: %s\n", arg); | ERROR("Unknown Format: %s\n", arg); | ||||
} | } | ||||
@@ -4430,7 +4430,7 @@ static int parse_ffconfig(const char *filename) | |||||
avctx = &audio_enc; | avctx = &audio_enc; | ||||
type = AV_OPT_FLAG_AUDIO_PARAM; | type = AV_OPT_FLAG_AUDIO_PARAM; | ||||
} | } | ||||
if (ffserver_opt_default(arg, arg2, avctx, type|AV_OPT_FLAG_ENCODING_PARAM)) { | |||||
if (avserver_opt_default(arg, arg2, avctx, type|AV_OPT_FLAG_ENCODING_PARAM)) { | |||||
ERROR("AVOption error: %s %s\n", arg, arg2); | ERROR("AVOption error: %s %s\n", arg, arg2); | ||||
} | } | ||||
} else if (!strcasecmp(cmd, "AVPresetVideo") || | } else if (!strcasecmp(cmd, "AVPresetVideo") || | ||||
@@ -4447,7 +4447,7 @@ static int parse_ffconfig(const char *filename) | |||||
audio_enc.codec_id = audio_id; | audio_enc.codec_id = audio_id; | ||||
type = AV_OPT_FLAG_AUDIO_PARAM; | type = AV_OPT_FLAG_AUDIO_PARAM; | ||||
} | } | ||||
if (ffserver_opt_preset(arg, avctx, type|AV_OPT_FLAG_ENCODING_PARAM, &audio_id, &video_id)) { | |||||
if (avserver_opt_preset(arg, avctx, type|AV_OPT_FLAG_ENCODING_PARAM, &audio_id, &video_id)) { | |||||
ERROR("AVPreset error: %s\n", arg); | ERROR("AVPreset error: %s\n", arg); | ||||
} | } | ||||
} else if (!strcasecmp(cmd, "VideoTag")) { | } else if (!strcasecmp(cmd, "VideoTag")) { | ||||
@@ -4638,14 +4638,14 @@ static void handle_child_exit(int sig) | |||||
static void opt_debug(void) | static void opt_debug(void) | ||||
{ | { | ||||
ffserver_debug = 1; | |||||
ffserver_daemon = 0; | |||||
avserver_debug = 1; | |||||
avserver_daemon = 0; | |||||
logfilename[0] = '-'; | logfilename[0] = '-'; | ||||
} | } | ||||
static void show_help(void) | static void show_help(void) | ||||
{ | { | ||||
printf("usage: ffserver [options]\n" | |||||
printf("usage: avserver [options]\n" | |||||
"Hyper fast multi format Audio/Video streaming server\n"); | "Hyper fast multi format Audio/Video streaming server\n"); | ||||
printf("\n"); | printf("\n"); | ||||
show_help_options(options, "Main options:\n", 0, 0); | show_help_options(options, "Main options:\n", 0, 0); | ||||
@@ -4655,7 +4655,7 @@ static const OptionDef options[] = { | |||||
#include "cmdutils_common_opts.h" | #include "cmdutils_common_opts.h" | ||||
{ "n", OPT_BOOL, {(void *)&no_launch }, "enable no-launch mode" }, | { "n", OPT_BOOL, {(void *)&no_launch }, "enable no-launch mode" }, | ||||
{ "d", 0, {(void*)opt_debug}, "enable debug mode" }, | { "d", 0, {(void*)opt_debug}, "enable debug mode" }, | ||||
{ "f", HAS_ARG | OPT_STRING, {(void*)&config_filename }, "use configfile instead of /etc/ffserver.conf", "configfile" }, | |||||
{ "f", HAS_ARG | OPT_STRING, {(void*)&config_filename }, "use configfile instead of /etc/avserver.conf", "configfile" }, | |||||
{ NULL }, | { NULL }, | ||||
}; | }; | ||||
@@ -4669,7 +4669,7 @@ int main(int argc, char **argv) | |||||
my_program_name = argv[0]; | my_program_name = argv[0]; | ||||
my_program_dir = getcwd(0, 0); | my_program_dir = getcwd(0, 0); | ||||
ffserver_daemon = 1; | |||||
avserver_daemon = 1; | |||||
parse_options(argc, argv, options, NULL); | parse_options(argc, argv, options, NULL); | ||||
@@ -4703,7 +4703,7 @@ int main(int argc, char **argv) | |||||
compute_bandwidth(); | compute_bandwidth(); | ||||
/* put the process in background and detach it from its TTY */ | /* put the process in background and detach it from its TTY */ | ||||
if (ffserver_daemon) { | |||||
if (avserver_daemon) { | |||||
int pid; | int pid; | ||||
pid = fork(); | pid = fork(); | ||||
@@ -4730,7 +4730,7 @@ int main(int argc, char **argv) | |||||
/* signal init */ | /* signal init */ | ||||
signal(SIGPIPE, SIG_IGN); | signal(SIGPIPE, SIG_IGN); | ||||
if (ffserver_daemon) | |||||
if (avserver_daemon) | |||||
chdir("/"); | chdir("/"); | ||||
if (http_server() < 0) { | if (http_server() < 0) { |
@@ -83,7 +83,7 @@ Configuration options: | |||||
--disable-ffmpeg disable ffmpeg build | --disable-ffmpeg disable ffmpeg build | ||||
--disable-avplay disable avplay build | --disable-avplay disable avplay build | ||||
--disable-avprobe disable avprobe build | --disable-avprobe disable avprobe build | ||||
--disable-ffserver disable ffserver build | |||||
--disable-avserver disable avserver build | |||||
--disable-avdevice disable libavdevice build | --disable-avdevice disable libavdevice build | ||||
--disable-avcodec disable libavcodec build | --disable-avcodec disable libavcodec build | ||||
--disable-avformat disable libavformat build | --disable-avformat disable libavformat build | ||||
@@ -915,7 +915,7 @@ CONFIG_LIST=" | |||||
ffmpeg | ffmpeg | ||||
avplay | avplay | ||||
avprobe | avprobe | ||||
ffserver | |||||
avserver | |||||
fft | fft | ||||
frei0r | frei0r | ||||
golomb | golomb | ||||
@@ -1492,8 +1492,8 @@ ffmpeg_select="buffer_filter" | |||||
avplay_deps="avcodec avformat swscale sdl" | avplay_deps="avcodec avformat swscale sdl" | ||||
avplay_select="rdft" | avplay_select="rdft" | ||||
avprobe_deps="avcodec avformat" | avprobe_deps="avcodec avformat" | ||||
ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer" | |||||
ffserver_extralibs='$ldl' | |||||
avserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer" | |||||
avserver_extralibs='$ldl' | |||||
doc_deps="texi2html" | doc_deps="texi2html" | ||||
@@ -1637,7 +1637,7 @@ enable fastdiv | |||||
enable ffmpeg | enable ffmpeg | ||||
enable avplay | enable avplay | ||||
enable avprobe | enable avprobe | ||||
enable ffserver | |||||
enable avserver | |||||
enable network | enable network | ||||
enable optimizations | enable optimizations | ||||
enable postproc | enable postproc | ||||
@@ -1648,7 +1648,7 @@ enable swscale_alpha | |||||
# build settings | # build settings | ||||
SHFLAGS='-shared -Wl,-soname,$$(@F)' | SHFLAGS='-shared -Wl,-soname,$$(@F)' | ||||
FFSERVERLDFLAGS=-Wl,-E | |||||
AVSERVERLDFLAGS=-Wl,-E | |||||
LIBPREF="lib" | LIBPREF="lib" | ||||
LIBSUF=".a" | LIBSUF=".a" | ||||
FULLNAME='$(NAME)$(BUILDSUF)' | FULLNAME='$(NAME)$(BUILDSUF)' | ||||
@@ -2355,7 +2355,7 @@ case $target_os in | |||||
host_libs= | host_libs= | ||||
;; | ;; | ||||
sunos) | sunos) | ||||
FFSERVERLDFLAGS="" | |||||
AVSERVERLDFLAGS="" | |||||
SHFLAGS='-shared -Wl,-h,$$(@F)' | SHFLAGS='-shared -Wl,-h,$$(@F)' | ||||
enabled x86 && SHFLAGS="-mimpure-text $SHFLAGS" | enabled x86 && SHFLAGS="-mimpure-text $SHFLAGS" | ||||
network_extralibs="-lsocket -lnsl" | network_extralibs="-lsocket -lnsl" | ||||
@@ -2400,7 +2400,7 @@ case $target_os in | |||||
SLIBSUF=".dylib" | SLIBSUF=".dylib" | ||||
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)' | SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)' | ||||
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)' | SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)' | ||||
FFSERVERLDFLAGS=-Wl,-bind_at_load | |||||
AVSERVERLDFLAGS=-Wl,-bind_at_load | |||||
objformat="macho" | objformat="macho" | ||||
enabled x86_64 && objformat="macho64" | enabled x86_64 && objformat="macho64" | ||||
enabled_any pic shared || | enabled_any pic shared || | ||||
@@ -2472,7 +2472,7 @@ case $target_os in | |||||
add_cppflags -D_GNU_SOURCE | add_cppflags -D_GNU_SOURCE | ||||
add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap | add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap | ||||
SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf' | SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf' | ||||
FFSERVERLDFLAGS="" | |||||
AVSERVERLDFLAGS="" | |||||
LIBSUF="_s.a" | LIBSUF="_s.a" | ||||
SLIBPREF="" | SLIBPREF="" | ||||
SLIBSUF=".dll" | SLIBSUF=".dll" | ||||
@@ -3218,7 +3218,7 @@ AS_O=$CC_O | |||||
CC_O=$CC_O | CC_O=$CC_O | ||||
DLLTOOL=$dlltool | DLLTOOL=$dlltool | ||||
LDFLAGS=$LDFLAGS | LDFLAGS=$LDFLAGS | ||||
FFSERVERLDFLAGS=$FFSERVERLDFLAGS | |||||
AVSERVERLDFLAGS=$AVSERVERLDFLAGS | |||||
SHFLAGS=$SHFLAGS | SHFLAGS=$SHFLAGS | ||||
YASMFLAGS=$YASMFLAGS | YASMFLAGS=$YASMFLAGS | ||||
BUILDSUF=$build_suffix | BUILDSUF=$build_suffix | ||||
@@ -170,7 +170,7 @@ Seek to percentage in file corresponding to fraction of width. | |||||
@settitle AVplay media player | @settitle AVplay media player | ||||
@c man begin SEEALSO | @c man begin SEEALSO | ||||
ffmpeg(1), avprobe(1), ffserver(1) and the Libav HTML documentation | |||||
ffmpeg(1), avprobe(1), avserver(1) and the Libav HTML documentation | |||||
@c man end | @c man end | ||||
@c man begin AUTHORS | @c man begin AUTHORS | ||||
@@ -122,7 +122,7 @@ with name "STREAM". | |||||
@settitle avprobe media prober | @settitle avprobe media prober | ||||
@c man begin SEEALSO | @c man begin SEEALSO | ||||
ffmpeg(1), avplay(1), ffserver(1) and the Libav HTML documentation | |||||
ffmpeg(1), avplay(1), avserver(1) and the Libav HTML documentation | |||||
@c man end | @c man end | ||||
@c man begin AUTHORS | @c man begin AUTHORS | ||||
@@ -12,7 +12,7 @@ BindAddress 0.0.0.0 | |||||
# MaxClients maximum limit. | # MaxClients maximum limit. | ||||
MaxHTTPConnections 2000 | MaxHTTPConnections 2000 | ||||
# Number of simultaneous requests that can be handled. Since FFServer | |||||
# Number of simultaneous requests that can be handled. Since AVServer | |||||
# is very fast, it is more likely that you will want to leave this high | # is very fast, it is more likely that you will want to leave this high | ||||
# and use MaxBandwidth, below. | # and use MaxBandwidth, below. | ||||
MaxClients 1000 | MaxClients 1000 | ||||
@@ -25,24 +25,24 @@ MaxBandwidth 1000 | |||||
# '-' is the standard output. | # '-' is the standard output. | ||||
CustomLog - | CustomLog - | ||||
# Suppress that if you want to launch ffserver as a daemon. | |||||
# Suppress that if you want to launch avserver as a daemon. | |||||
NoDaemon | NoDaemon | ||||
################################################################## | ################################################################## | ||||
# Definition of the live feeds. Each live feed contains one video | # Definition of the live feeds. Each live feed contains one video | ||||
# and/or audio sequence coming from an ffmpeg encoder or another | # and/or audio sequence coming from an ffmpeg encoder or another | ||||
# ffserver. This sequence may be encoded simultaneously with several | |||||
# avserver. This sequence may be encoded simultaneously with several | |||||
# codecs at several resolutions. | # codecs at several resolutions. | ||||
<Feed feed1.ffm> | <Feed feed1.ffm> | ||||
# You must use 'ffmpeg' to send a live feed to ffserver. In this | |||||
# You must use 'ffmpeg' to send a live feed to avserver. In this | |||||
# example, you can type: | # example, you can type: | ||||
# | # | ||||
# ffmpeg http://localhost:8090/feed1.ffm | # ffmpeg http://localhost:8090/feed1.ffm | ||||
# ffserver can also do time shifting. It means that it can stream any | |||||
# avserver can also do time shifting. It means that it can stream any | |||||
# previously recorded live stream. The request should contain: | # previously recorded live stream. The request should contain: | ||||
# "http://xxxx?date=[YYYY-MM-DDT][[HH:]MM:]SS[.m...]".You must specify | # "http://xxxx?date=[YYYY-MM-DDT][[HH:]MM:]SS[.m...]".You must specify | ||||
# a path where the feed is stored on disk. You also specify the | # a path where the feed is stored on disk. You also specify the | ||||
@@ -69,7 +69,7 @@ ACL allow 127.0.0.1 | |||||
################################################################## | ################################################################## | ||||
# Now you can define each stream which will be generated from the | # Now you can define each stream which will be generated from the | ||||
# original audio and video stream. Each format has a filename (here | # original audio and video stream. Each format has a filename (here | ||||
# 'test1.mpg'). FFServer will send this stream when answering a | |||||
# 'test1.mpg'). AVServer will send this stream when answering a | |||||
# request containing this filename. | # request containing this filename. | ||||
<Stream test1.mpg> | <Stream test1.mpg> | ||||
@@ -334,7 +334,7 @@ StartSendOnKey | |||||
# multicast address with MulticastAddress. The port and the TTL can | # multicast address with MulticastAddress. The port and the TTL can | ||||
# also be set. | # also be set. | ||||
# | # | ||||
# An SDP file is automatically generated by ffserver by adding the | |||||
# An SDP file is automatically generated by avserver by adding the | |||||
# 'sdp' extension to the stream name (here | # 'sdp' extension to the stream name (here | ||||
# http://localhost:8090/test1-sdp.sdp). You should usually give this | # http://localhost:8090/test1-sdp.sdp). You should usually give this | ||||
# file to your player to play the stream. | # file to your player to play the stream. |
@@ -1,8 +1,8 @@ | |||||
\input texinfo @c -*- texinfo -*- | \input texinfo @c -*- texinfo -*- | ||||
@settitle ffserver Documentation | |||||
@settitle avserver Documentation | |||||
@titlepage | @titlepage | ||||
@center @titlefont{ffserver Documentation} | |||||
@center @titlefont{avserver Documentation} | |||||
@end titlepage | @end titlepage | ||||
@top | @top | ||||
@@ -15,37 +15,37 @@ The generic syntax is: | |||||
@example | @example | ||||
@c man begin SYNOPSIS | @c man begin SYNOPSIS | ||||
ffserver [options] | |||||
avserver [options] | |||||
@c man end | @c man end | ||||
@end example | @end example | ||||
@chapter Description | @chapter Description | ||||
@c man begin DESCRIPTION | @c man begin DESCRIPTION | ||||
ffserver is a streaming server for both audio and video. It supports | |||||
avserver is a streaming server for both audio and video. It supports | |||||
several live feeds, streaming from files and time shifting on live feeds | several live feeds, streaming from files and time shifting on live feeds | ||||
(you can seek to positions in the past on each live feed, provided you | (you can seek to positions in the past on each live feed, provided you | ||||
specify a big enough feed storage in ffserver.conf). | |||||
specify a big enough feed storage in avserver.conf). | |||||
ffserver runs in daemon mode by default; that is, it puts itself in | |||||
avserver runs in daemon mode by default; that is, it puts itself in | |||||
the background and detaches from its TTY, unless it is launched in | the background and detaches from its TTY, unless it is launched in | ||||
debug mode or a NoDaemon option is specified in the configuration | debug mode or a NoDaemon option is specified in the configuration | ||||
file. | file. | ||||
This documentation covers only the streaming aspects of ffserver / | |||||
This documentation covers only the streaming aspects of avserver / | |||||
ffmpeg. All questions about parameters for ffmpeg, codec questions, | ffmpeg. All questions about parameters for ffmpeg, codec questions, | ||||
etc. are not covered here. Read @file{ffmpeg-doc.html} for more | etc. are not covered here. Read @file{ffmpeg-doc.html} for more | ||||
information. | information. | ||||
@section How does it work? | @section How does it work? | ||||
ffserver receives prerecorded files or FFM streams from some ffmpeg | |||||
avserver receives prerecorded files or FFM streams from some ffmpeg | |||||
instance as input, then streams them over RTP/RTSP/HTTP. | instance as input, then streams them over RTP/RTSP/HTTP. | ||||
An ffserver instance will listen on some port as specified in the | |||||
An avserver instance will listen on some port as specified in the | |||||
configuration file. You can launch one or more instances of ffmpeg and | configuration file. You can launch one or more instances of ffmpeg and | ||||
send one or more FFM streams to the port where ffserver is expecting | |||||
to receive them. Alternately, you can make ffserver launch such ffmpeg | |||||
send one or more FFM streams to the port where avserver is expecting | |||||
to receive them. Alternately, you can make avserver launch such ffmpeg | |||||
instances at startup. | instances at startup. | ||||
Input streams are called feeds, and each one is specified by a <Feed> | Input streams are called feeds, and each one is specified by a <Feed> | ||||
@@ -57,7 +57,7 @@ file. | |||||
@section Status stream | @section Status stream | ||||
ffserver supports an HTTP interface which exposes the current status | |||||
avserver supports an HTTP interface which exposes the current status | |||||
of the server. | of the server. | ||||
Simply point your browser to the address of the special status stream | Simply point your browser to the address of the special status stream | ||||
@@ -100,7 +100,7 @@ I understand that FreeBSD systems work just fine as well. | |||||
@section How do I make it work? | @section How do I make it work? | ||||
First, build the kit. It *really* helps to have installed LAME first. Then when | First, build the kit. It *really* helps to have installed LAME first. Then when | ||||
you run the ffserver ./configure, make sure that you have the | |||||
you run the avserver ./configure, make sure that you have the | |||||
@code{--enable-libmp3lame} flag turned on. | @code{--enable-libmp3lame} flag turned on. | ||||
LAME is important as it allows for streaming audio to Windows Media Player. | LAME is important as it allows for streaming audio to Windows Media Player. | ||||
@@ -110,7 +110,7 @@ As a simple test, just run the following two command lines where INPUTFILE | |||||
is some file which you can decode with ffmpeg: | is some file which you can decode with ffmpeg: | ||||
@example | @example | ||||
./ffserver -f doc/ffserver.conf & | |||||
./avserver -f doc/avserver.conf & | |||||
./ffmpeg -i INPUTFILE http://localhost:8090/feed1.ffm | ./ffmpeg -i INPUTFILE http://localhost:8090/feed1.ffm | ||||
@end example | @end example | ||||
@@ -129,8 +129,8 @@ The same is true of AVI files. | |||||
@section What happens next? | @section What happens next? | ||||
You should edit the ffserver.conf file to suit your needs (in terms of | |||||
frame rates etc). Then install ffserver and ffmpeg, write a script to start | |||||
You should edit the avserver.conf file to suit your needs (in terms of | |||||
frame rates etc). Then install avserver and ffmpeg, write a script to start | |||||
them up, and off you go. | them up, and off you go. | ||||
@section Troubleshooting | @section Troubleshooting | ||||
@@ -166,14 +166,14 @@ I suspect that the new one is not available unless you have installed WMP 7]. | |||||
You can replay video from .ffm files that was recorded earlier. | You can replay video from .ffm files that was recorded earlier. | ||||
However, there are a number of caveats, including the fact that the | However, there are a number of caveats, including the fact that the | ||||
ffserver parameters must match the original parameters used to record the | |||||
file. If they do not, then ffserver deletes the file before recording into it. | |||||
avserver parameters must match the original parameters used to record the | |||||
file. If they do not, then avserver deletes the file before recording into it. | |||||
(Now that I write this, it seems broken). | (Now that I write this, it seems broken). | ||||
You can fiddle with many of the codec choices and encoding parameters, and | You can fiddle with many of the codec choices and encoding parameters, and | ||||
there are a bunch more parameters that you cannot control. Post a message | there are a bunch more parameters that you cannot control. Post a message | ||||
to the mailing list if there are some 'must have' parameters. Look in | to the mailing list if there are some 'must have' parameters. Look in | ||||
ffserver.conf for a list of the currently available controls. | |||||
avserver.conf for a list of the currently available controls. | |||||
It will automatically generate the ASX or RAM files that are often used | It will automatically generate the ASX or RAM files that are often used | ||||
in browsers. These files are actually redirections to the underlying ASF | in browsers. These files are actually redirections to the underlying ASF | ||||
@@ -187,7 +187,7 @@ finishes.] | |||||
* When you connect to a live stream, most players (WMP, RA, etc) want to | * When you connect to a live stream, most players (WMP, RA, etc) want to | ||||
buffer a certain number of seconds of material so that they can display the | buffer a certain number of seconds of material so that they can display the | ||||
signal continuously. However, ffserver (by default) starts sending data | |||||
signal continuously. However, avserver (by default) starts sending data | |||||
in realtime. This means that there is a pause of a few seconds while the | in realtime. This means that there is a pause of a few seconds while the | ||||
buffering is being done by the player. The good news is that this can be | buffering is being done by the player. The good news is that this can be | ||||
cured by adding a '?buffer=5' to the end of the URL. This means that the | cured by adding a '?buffer=5' to the end of the URL. This means that the | ||||
@@ -195,13 +195,13 @@ stream should start 5 seconds in the past -- and so the first 5 seconds | |||||
of the stream are sent as fast as the network will allow. It will then | of the stream are sent as fast as the network will allow. It will then | ||||
slow down to real time. This noticeably improves the startup experience. | slow down to real time. This noticeably improves the startup experience. | ||||
You can also add a 'Preroll 15' statement into the ffserver.conf that will | |||||
You can also add a 'Preroll 15' statement into the avserver.conf that will | |||||
add the 15 second prebuffering on all requests that do not otherwise | add the 15 second prebuffering on all requests that do not otherwise | ||||
specify a time. In addition, ffserver will skip frames until a key_frame | |||||
specify a time. In addition, avserver will skip frames until a key_frame | |||||
is found. This further reduces the startup delay by not transferring data | is found. This further reduces the startup delay by not transferring data | ||||
that will be discarded. | that will be discarded. | ||||
* You may want to adjust the MaxBandwidth in the ffserver.conf to limit | |||||
* You may want to adjust the MaxBandwidth in the avserver.conf to limit | |||||
the amount of bandwidth consumed by live streams. | the amount of bandwidth consumed by live streams. | ||||
@section Why does the ?buffer / Preroll stop working after a time? | @section Why does the ?buffer / Preroll stop working after a time? | ||||
@@ -218,7 +218,7 @@ handled. | |||||
@section Does the @code{?date=} stuff work. | @section Does the @code{?date=} stuff work. | ||||
Yes (subject to the limitation outlined above). Also note that whenever you | Yes (subject to the limitation outlined above). Also note that whenever you | ||||
start ffserver, it deletes the ffm file (if any parameters have changed), | |||||
start avserver, it deletes the ffm file (if any parameters have changed), | |||||
thus wiping out what you had recorded before. | thus wiping out what you had recorded before. | ||||
The format of the @code{?date=xxxxxx} is fairly flexible. You should use one | The format of the @code{?date=xxxxxx} is fairly flexible. You should use one | ||||
@@ -246,26 +246,26 @@ For example: @samp{http://localhost:8080/test.asf?date=2002-07-26T23:05:00}. | |||||
@table @option | @table @option | ||||
@item -f @var{configfile} | @item -f @var{configfile} | ||||
Use @file{configfile} instead of @file{/etc/ffserver.conf}. | |||||
Use @file{configfile} instead of @file{/etc/avserver.conf}. | |||||
@item -n | @item -n | ||||
Enable no-launch mode. This option disables all the Launch directives | Enable no-launch mode. This option disables all the Launch directives | ||||
within the various <Stream> sections. Since ffserver will not launch | |||||
within the various <Stream> sections. Since avserver will not launch | |||||
any ffmpeg instances, you will have to launch them manually. | any ffmpeg instances, you will have to launch them manually. | ||||
@item -d | @item -d | ||||
Enable debug mode. This option increases log verbosity, directs log | Enable debug mode. This option increases log verbosity, directs log | ||||
messages to stdout and causes ffserver to run in the foreground | |||||
messages to stdout and causes avserver to run in the foreground | |||||
rather than as a daemon. | rather than as a daemon. | ||||
@end table | @end table | ||||
@c man end | @c man end | ||||
@ignore | @ignore | ||||
@setfilename ffserver | |||||
@settitle ffserver video server | |||||
@setfilename avserver | |||||
@settitle avserver video server | |||||
@c man begin SEEALSO | @c man begin SEEALSO | ||||
ffmpeg(1), avplay(1), avprobe(1), the @file{ffmpeg/doc/ffserver.conf} | |||||
ffmpeg(1), avplay(1), avprobe(1), the @file{ffmpeg/doc/avserver.conf} | |||||
example and the Libav HTML documentation | example and the Libav HTML documentation | ||||
@c man end | @c man end | ||||
@@ -164,7 +164,7 @@ Set the number of video frames to record. | |||||
@item -r @var{fps} | @item -r @var{fps} | ||||
Set frame rate (Hz value, fraction or abbreviation), (default = 25). | Set frame rate (Hz value, fraction or abbreviation), (default = 25). | ||||
@item -s @var{size} | @item -s @var{size} | ||||
Set frame size. The format is @samp{wxh} (ffserver default = 160x128, ffmpeg default = same as source). | |||||
Set frame size. The format is @samp{wxh} (avserver default = 160x128, ffmpeg default = same as source). | |||||
The following abbreviations are recognized: | The following abbreviations are recognized: | ||||
@table @samp | @table @samp | ||||
@item sqcif | @item sqcif | ||||
@@ -726,7 +726,7 @@ Set RTP payload size in bytes. | |||||
Read input at native frame rate. Mainly used to simulate a grab device. | Read input at native frame rate. Mainly used to simulate a grab device. | ||||
@item -loop_input | @item -loop_input | ||||
Loop over the input stream. Currently it works only for image | Loop over the input stream. Currently it works only for image | ||||
streams. This option is used for automatic FFserver testing. | |||||
streams. This option is used for automatic AVserver testing. | |||||
This option is deprecated, use -loop. | This option is deprecated, use -loop. | ||||
@item -loop_output @var{number_of_times} | @item -loop_output @var{number_of_times} | ||||
Repeatedly loop output for formats that support looping such as animated GIF | Repeatedly loop output for formats that support looping such as animated GIF | ||||
@@ -1079,7 +1079,7 @@ file to which you want to add them. | |||||
@settitle ffmpeg video converter | @settitle ffmpeg video converter | ||||
@c man begin SEEALSO | @c man begin SEEALSO | ||||
avplay(1), avprobe(1), ffserver(1) and the Libav HTML documentation | |||||
avplay(1), avprobe(1), avserver(1) and the Libav HTML documentation | |||||
@c man end | @c man end | ||||
@c man begin AUTHORS | @c man begin AUTHORS | ||||
@@ -91,7 +91,7 @@ library: | |||||
@item Electronic Arts cdata @tab @tab X | @item Electronic Arts cdata @tab @tab X | ||||
@item Electronic Arts Multimedia @tab @tab X | @item Electronic Arts Multimedia @tab @tab X | ||||
@tab Used in various EA games; files have extensions like WVE and UV2. | @tab Used in various EA games; files have extensions like WVE and UV2. | ||||
@item FFM (FFserver live feed) @tab X @tab X | |||||
@item FFM (AVserver live feed) @tab X @tab X | |||||
@item Flash (SWF) @tab X @tab X | @item Flash (SWF) @tab X @tab X | ||||
@item Flash 9 (AVM2) @tab X @tab X | @item Flash 9 (AVM2) @tab X @tab X | ||||
@tab Only embedded audio is decoded. | @tab Only embedded audio is decoded. | ||||
@@ -691,7 +691,7 @@ static OutputStream *new_output_stream(AVFormatContext *oc, int file_idx, AVCode | |||||
return ost; | return ost; | ||||
} | } | ||||
static int read_ffserver_streams(AVFormatContext *s, const char *filename) | |||||
static int read_avserver_streams(AVFormatContext *s, const char *filename) | |||||
{ | { | ||||
int i, err; | int i, err; | ||||
AVFormatContext *ic = NULL; | AVFormatContext *ic = NULL; | ||||
@@ -3766,9 +3766,9 @@ static void opt_output_file(const char *filename) | |||||
if (!strcmp(file_oformat->name, "ffm") && | if (!strcmp(file_oformat->name, "ffm") && | ||||
av_strstart(filename, "http:", NULL)) { | av_strstart(filename, "http:", NULL)) { | ||||
/* special case for files sent to ffserver: we get the stream | |||||
parameters from ffserver */ | |||||
int err = read_ffserver_streams(oc, filename); | |||||
/* special case for files sent to avserver: we get the stream | |||||
parameters from avserver */ | |||||
int err = read_avserver_streams(oc, filename); | |||||
if (err < 0) { | if (err < 0) { | ||||
print_error(filename, err); | print_error(filename, err); | ||||
ffmpeg_exit(1); | ffmpeg_exit(1); | ||||
@@ -1,5 +1,5 @@ | |||||
/* | /* | ||||
* FFM (ffserver live feed) common header | |||||
* FFM (avserver live feed) common header | |||||
* Copyright (c) 2001 Fabrice Bellard | * Copyright (c) 2001 Fabrice Bellard | ||||
* | * | ||||
* This file is part of Libav. | * This file is part of Libav. | ||||
@@ -1,5 +1,5 @@ | |||||
/* | /* | ||||
* FFM (ffserver live feed) demuxer | |||||
* FFM (avserver live feed) demuxer | |||||
* Copyright (c) 2001 Fabrice Bellard | * Copyright (c) 2001 Fabrice Bellard | ||||
* | * | ||||
* This file is part of Libav. | * This file is part of Libav. | ||||
@@ -23,7 +23,7 @@ | |||||
#include "libavutil/intfloat_readwrite.h" | #include "libavutil/intfloat_readwrite.h" | ||||
#include "avformat.h" | #include "avformat.h" | ||||
#include "ffm.h" | #include "ffm.h" | ||||
#if CONFIG_FFSERVER | |||||
#if CONFIG_AVSERVER | |||||
#include <unistd.h> | #include <unistd.h> | ||||
int64_t ffm_read_write_index(int fd) | int64_t ffm_read_write_index(int fd) | ||||
@@ -55,7 +55,7 @@ void ffm_set_write_index(AVFormatContext *s, int64_t pos, int64_t file_size) | |||||
ffm->write_index = pos; | ffm->write_index = pos; | ||||
ffm->file_size = file_size; | ffm->file_size = file_size; | ||||
} | } | ||||
#endif // CONFIG_FFSERVER | |||||
#endif // CONFIG_AVSERVER | |||||
static int ffm_is_avail_data(AVFormatContext *s, int size) | static int ffm_is_avail_data(AVFormatContext *s, int size) | ||||
{ | { | ||||
@@ -510,7 +510,7 @@ static int ffm_probe(AVProbeData *p) | |||||
AVInputFormat ff_ffm_demuxer = { | AVInputFormat ff_ffm_demuxer = { | ||||
.name = "ffm", | .name = "ffm", | ||||
.long_name = NULL_IF_CONFIG_SMALL("FFM (FFserver live feed) format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("FFM (AVserver live feed) format"), | |||||
.priv_data_size = sizeof(FFMContext), | .priv_data_size = sizeof(FFMContext), | ||||
.read_probe = ffm_probe, | .read_probe = ffm_probe, | ||||
.read_header = ffm_read_header, | .read_header = ffm_read_header, | ||||
@@ -1,5 +1,5 @@ | |||||
/* | /* | ||||
* FFM (ffserver live feed) muxer | |||||
* FFM (avserver live feed) muxer | |||||
* Copyright (c) 2001 Fabrice Bellard | * Copyright (c) 2001 Fabrice Bellard | ||||
* | * | ||||
* This file is part of Libav. | * This file is part of Libav. | ||||
@@ -242,7 +242,7 @@ static int ffm_write_trailer(AVFormatContext *s) | |||||
AVOutputFormat ff_ffm_muxer = { | AVOutputFormat ff_ffm_muxer = { | ||||
.name = "ffm", | .name = "ffm", | ||||
.long_name = NULL_IF_CONFIG_SMALL("FFM (FFserver live feed) format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("FFM (AVserver live feed) format"), | |||||
.mime_type = "", | .mime_type = "", | ||||
.extensions = "ffm", | .extensions = "ffm", | ||||
.priv_data_size = sizeof(FFMContext), | .priv_data_size = sizeof(FFMContext), | ||||
@@ -22,7 +22,7 @@ | |||||
/* Multipart JPEG */ | /* Multipart JPEG */ | ||||
#define BOUNDARY_TAG "ffserver" | |||||
#define BOUNDARY_TAG "avserver" | |||||
static int mpjpeg_write_header(AVFormatContext *s) | static int mpjpeg_write_header(AVFormatContext *s) | ||||
{ | { | ||||