Commit 3db32ec1 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit 'bf5f46b4'

* commit 'bf5f46b4':
  APIChanges: add entry for av_read_packet deprecation
  mxfdec: fix typo in mxf_read_seek()
  avserver: use freopen to redirect stdin/out/err to /dev/null
  avserver: remove daemon mode
  configure: Check for -Werror parameters on clang
  doxygen: remove obsolete options from Doxyfile
  configure: Add option to disable all command line programs

Conflicts:
	Changelog
	configure
	doc/APIchanges
	doc/ffserver.conf
	doc/ffserver.texi
	ffserver.c
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 92648107 bf5f46b4
...@@ -23,6 +23,7 @@ version <next>: ...@@ -23,6 +23,7 @@ version <next>:
- field filter ported from libmpcodecs - field filter ported from libmpcodecs
- AVR demuxer - AVR demuxer
- geq filter ported from libmpcodecs - geq filter ported from libmpcodecs
- remove ffserver daemon mode
version 1.0: version 1.0:
......
...@@ -101,6 +101,13 @@ Configuration options: ...@@ -101,6 +101,13 @@ Configuration options:
--enable-gray enable full grayscale support (slower color) --enable-gray enable full grayscale support (slower color)
--disable-swscale-alpha disable alpha channel support in swscale --disable-swscale-alpha disable alpha channel support in swscale
Program options:
--disable-programs do not build command line programs
--disable-ffmpeg disable ffmpeg build
--disable-ffplay disable ffplay build
--disable-ffprobe disable ffprobe build
--disable-ffserver disable ffserver build
Documentation options: Documentation options:
--disable-doc do not build documentation --disable-doc do not build documentation
--disable-htmlpages do not build HTML documentation pages --disable-htmlpages do not build HTML documentation pages
...@@ -109,10 +116,6 @@ Documentation options: ...@@ -109,10 +116,6 @@ Documentation options:
--disable-txtpages do not build text documentation pages --disable-txtpages do not build text documentation pages
Component options: Component options:
--disable-ffmpeg disable ffmpeg build
--disable-ffplay disable ffplay build
--disable-ffprobe disable ffprobe build
--disable-ffserver disable ffserver 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
...@@ -2200,6 +2203,9 @@ for opt do ...@@ -2200,6 +2203,9 @@ for opt do
;; ;;
--enable-debug=*) debuglevel="$optval" --enable-debug=*) debuglevel="$optval"
;; ;;
--disable-programs)
disable $PROGRAM_LIST
;;
--disable-everything) --disable-everything)
map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
;; ;;
...@@ -3954,6 +3960,8 @@ elif enabled llvm_gcc; then ...@@ -3954,6 +3960,8 @@ elif enabled llvm_gcc; then
elif enabled clang; then elif enabled clang; then
check_cflags -mllvm -stack-alignment=16 check_cflags -mllvm -stack-alignment=16
check_cflags -Qunused-arguments check_cflags -Qunused-arguments
check_cflags -Werror=implicit-function-declaration
check_cflags -Werror=missing-prototypes
elif enabled armcc; then elif enabled armcc; then
# 2523: use of inline assembler is deprecated # 2523: use of inline assembler is deprecated
add_cflags -W${armcc_opt},--diag_suppress=2523 add_cflags -W${armcc_opt},--diag_suppress=2523
......
...@@ -291,6 +291,10 @@ API changes, most recent first: ...@@ -291,6 +291,10 @@ API changes, most recent first:
2012-01-24 - 0c3577b - lavfi 2.60.100 2012-01-24 - 0c3577b - lavfi 2.60.100
Add avfilter_graph_dump. Add avfilter_graph_dump.
2012-03-20 - 3c90cc2 - lavfo 54.2.0
Deprecate av_read_packet(), use av_read_frame() with
AVFMT_FLAG_NOPARSE | AVFMT_FLAG_NOFILLIN in AVFormatContext.flags
2012-03-05 - lavc 54.8.0 2012-03-05 - lavc 54.8.0
6699d07 Add av_get_exact_bits_per_sample() 6699d07 Add av_get_exact_bits_per_sample()
9524cf7 Add av_get_audio_frame_duration() 9524cf7 Add av_get_audio_frame_duration()
......
...@@ -489,12 +489,6 @@ MAX_INITIALIZER_LINES = 30 ...@@ -489,12 +489,6 @@ MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES SHOW_USED_FILES = YES
# If the sources in your project are distributed over multiple directories
# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
# in the documentation. The default is NO.
SHOW_DIRECTORIES = NO
# Set the SHOW_FILES tag to NO to disable the generation of the Files page. # Set the SHOW_FILES tag to NO to disable the generation of the Files page.
# This will remove the Files entry from the Quick Index and from the # This will remove the Files entry from the Quick Index and from the
# Folder Tree View (if specified). The default is YES. # Folder Tree View (if specified). The default is YES.
...@@ -847,12 +841,6 @@ HTML_COLORSTYLE_GAMMA = 80 ...@@ -847,12 +841,6 @@ HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = YES HTML_TIMESTAMP = YES
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
HTML_ALIGN_MEMBERS = YES
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the # documentation will contain sections that can be hidden and shown after the
# page has loaded. For this to work a browser that supports # page has loaded. For this to work a browser that supports
...@@ -1033,11 +1021,6 @@ ENUM_VALUES_PER_LINE = 4 ...@@ -1033,11 +1021,6 @@ ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO GENERATE_TREEVIEW = NO
# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
# and Class Hierarchy pages using a tree view instead of an ordered list.
USE_INLINE_TREES = NO
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree # used to set the initial width (in pixels) of the frame in which the tree
# is shown. # is shown.
......
...@@ -25,10 +25,6 @@ MaxBandwidth 1000 ...@@ -25,10 +25,6 @@ MaxBandwidth 1000
# '-' is the standard output. # '-' is the standard output.
CustomLog - CustomLog -
# Suppress that if you want to launch ffserver as a daemon.
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
......
...@@ -28,11 +28,6 @@ several live feeds, streaming from files and time shifting on live feeds ...@@ -28,11 +28,6 @@ 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 ffserver.conf).
ffserver runs in daemon mode by default; that is, it puts itself in
the background and detaches from its TTY, unless it is launched in
debug mode or a NoDaemon option is specified in the configuration
file.
This documentation covers only the streaming aspects of ffserver / This documentation covers only the streaming aspects of ffserver /
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.html} for more etc. are not covered here. Read @file{ffmpeg.html} for more
...@@ -267,8 +262,7 @@ within the various <Stream> sections. Since ffserver will not launch ...@@ -267,8 +262,7 @@ within the various <Stream> sections. Since ffserver 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.
rather than as a daemon.
@end table @end table
@c man end @c man end
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#endif #endif
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h>
#include "libavformat/avformat.h" #include "libavformat/avformat.h"
// FIXME those are internal headers, ffserver _really_ shouldn't use them // FIXME those are internal headers, ffserver _really_ shouldn't use them
#include "libavformat/ffm.h" #include "libavformat/ffm.h"
...@@ -306,12 +307,10 @@ static int rtp_new_av_stream(HTTPContext *c, ...@@ -306,12 +307,10 @@ static int rtp_new_av_stream(HTTPContext *c,
HTTPContext *rtsp_c); HTTPContext *rtsp_c);
static const char *my_program_name; static const char *my_program_name;
static const char *my_program_dir;
static const char *config_filename = "/etc/ffserver.conf"; static const char *config_filename = "/etc/ffserver.conf";
static int ffserver_debug; static int ffserver_debug;
static int ffserver_daemon;
static int no_launch; static int no_launch;
static int need_to_start_children; static int need_to_start_children;
...@@ -522,19 +521,12 @@ static void start_children(FFStream *feed) ...@@ -522,19 +521,12 @@ static void start_children(FFStream *feed)
close(i); close(i);
if (!ffserver_debug) { if (!ffserver_debug) {
i = open("/dev/null", O_RDWR); if (!freopen("/dev/null", "r", stdin))
if (i != -1) { http_log("failed to redirect STDIN to /dev/null\n;");
dup2(i, 0); if (!freopen("/dev/null", "w", stdout))
dup2(i, 1); http_log("failed to redirect STDOUT to /dev/null\n;");
dup2(i, 2); if (!freopen("/dev/null", "w", stderr))
close(i); http_log("failed to redirect STDERR to /dev/null\n;");
}
}
/* This is needed to make relative pathnames work */
if (chdir(my_program_dir) < 0) {
http_log("chdir failed\n");
exit(1);
} }
signal(SIGPIPE, SIG_DFL); signal(SIGPIPE, SIG_DFL);
...@@ -4122,8 +4114,6 @@ static int parse_ffconfig(const char *filename) ...@@ -4122,8 +4114,6 @@ static int parse_ffconfig(const char *filename)
if (resolve_host(&my_http_addr.sin_addr, arg) != 0) { if (resolve_host(&my_http_addr.sin_addr, arg) != 0) {
ERROR("%s:%d: Invalid host/IP address: %s\n", arg); ERROR("%s:%d: Invalid host/IP address: %s\n", arg);
} }
} else if (!av_strcasecmp(cmd, "NoDaemon")) {
ffserver_daemon = 0;
} else if (!av_strcasecmp(cmd, "RTSPPort")) { } else if (!av_strcasecmp(cmd, "RTSPPort")) {
get_arg(arg, sizeof(arg), &p); get_arg(arg, sizeof(arg), &p);
val = atoi(arg); val = atoi(arg);
...@@ -4694,7 +4684,6 @@ static void handle_child_exit(int sig) ...@@ -4694,7 +4684,6 @@ static void handle_child_exit(int sig)
static void opt_debug(void) static void opt_debug(void)
{ {
ffserver_debug = 1; ffserver_debug = 1;
ffserver_daemon = 0;
logfilename[0] = '-'; logfilename[0] = '-';
} }
...@@ -4725,8 +4714,6 @@ int main(int argc, char **argv) ...@@ -4725,8 +4714,6 @@ int main(int argc, char **argv)
show_banner(argc, argv, options); show_banner(argc, argv, options);
my_program_name = argv[0]; my_program_name = argv[0];
my_program_dir = getcwd(0, 0);
ffserver_daemon = 1;
parse_options(NULL, argc, argv, options, NULL); parse_options(NULL, argc, argv, options, NULL);
...@@ -4758,37 +4745,9 @@ int main(int argc, char **argv) ...@@ -4758,37 +4745,9 @@ int main(int argc, char **argv)
compute_bandwidth(); compute_bandwidth();
/* put the process in background and detach it from its TTY */
if (ffserver_daemon) {
int pid;
pid = fork();
if (pid < 0) {
perror("fork");
exit(1);
} else if (pid > 0) {
/* parent : exit */
exit(0);
} else {
/* child */
setsid();
close(0);
open("/dev/null", O_RDWR);
if (strcmp(logfilename, "-") != 0) {
close(1);
dup(0);
}
close(2);
dup(0);
}
}
/* signal init */ /* signal init */
signal(SIGPIPE, SIG_IGN); signal(SIGPIPE, SIG_IGN);
if (ffserver_daemon)
chdir("/");
if (http_server() < 0) { if (http_server() < 0) {
http_log("Could not start server\n"); http_log("Could not start server\n");
exit(1); exit(1);
......
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