FFmpeg is an integral component of ZM. Promote the appropriate libraries to required dependencies.
This reduces the possible build configurations greatly and thus maintenance burden.
FFmpeg is an integral component of ZM. Promote the appropriate libraries to required dependencies.
This reduces the possible build configurations greatly and thus maintenance burden.
With this commit a unified structure for includes is introduced.
The general rules:
* Only include what you need
* Include wherever possible in the cpp and forward-declare in the header
The includes are sorted in a local to global fashion. This means for the include order:
0. If cpp file: The corresponding h file and an empty line
1. Includes from the project sorted alphabetically
2. System/library includes sorted alphabetically
3. Conditional includes
~~~~
x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -I/usr/include -I/usr/include -D__STDC_CONSTANT_MACROS -Wall -finline-functions -fomit-frame-pointer -I/usr/include -D__STDC_CONSTANT_MACROS -D_FORTIFY_SOURCE=2 -D__STDC_CONSTANT_MACROS -D__STDC_CONSTANT_MACROS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -DZM_FFMPEG_CVS -DHAVE_LIBCRYPTO -MT zm_mpeg.o -MD -MP -MF .deps/zm_mpeg.Tpo -c -o zm_mpeg.o zm_mpeg.cpp
zm_mpeg.cpp: In member function ‘void VideoStream::SetupFormat()’:
zm_mpeg.cpp:112:56: error: format not a string literal and no format arguments [-Werror=format-security]
snprintf( s->filename, sizeof(s->filename), filename );
^
zm_mpeg.cpp:112:56: error: format not a string literal and no format arguments [-Werror=format-security]
~~~~
Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
* ZoneMinder compiles with ffmpeg 0.5..master
* Make VideoStream class able to stream through ffmpeg better.
* Ability to use fixed quality instead of fixed bitrate (by specifying bitrate 0...100)
* Format url parameter supports <format>/<encoder> syntax
Details:
- Redefine av_err2str to a to avoid compiler warning on newer g++'s
- When using rtp format; if ffmpeg does not have a default codec, use CODEC_ID_MPEG4. (because this is what the default is as of 2.2 when this code was written)
- Specify ofc->packet_size if rtp format is requested
- Video generated in a thread to guarantee a constant fps.
- Move _AVCODECID definition into zm_ffmpeg.h (and use instead of (AV)CodecID
- Call avformat_network_init because ffmpeg warns about it beeing required soon.
- increase VideoStream::video_outbuf_size to 4MiB to be able to encode larger pictures