Commit 0b33aafe authored by diego's avatar diego

COSMETICS: Remove all trailing whitespace.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@4749 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 5f9e4829
...@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based ...@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does. and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's 1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an you conspicuously and appropriately publish on each copy an
......
...@@ -11,7 +11,7 @@ version <next> ...@@ -11,7 +11,7 @@ version <next>
- Nullsoft Video (NSV) file demuxer - Nullsoft Video (NSV) file demuxer
- Shorten audio decoder - Shorten audio decoder
- LOCO video decoder - LOCO video decoder
- Apple Lossless Audio Codec (ALAC) decoder - Apple Lossless Audio Codec (ALAC) decoder
- Winnov WNV1 video decoder - Winnov WNV1 video decoder
- Autodesk Animator Studio Codec (AASC) decoder - Autodesk Animator Studio Codec (AASC) decoder
- Indeo 2 video decoder - Indeo 2 video decoder
......
This diff is collapsed.
1) Type './configure' create the configuration (use './configure 1) Type './configure' create the configuration (use './configure
--help' to have the configure options). --help' to have the configure options).
'configure' can be launched from another directory than the ffmpeg 'configure' can be launched from another directory than the ffmpeg
sources to put the objects at that place. In that case, use an sources to put the objects at that place. In that case, use an
......
...@@ -7,7 +7,7 @@ include config.mak ...@@ -7,7 +7,7 @@ include config.mak
VPATH=$(SRC_PATH) VPATH=$(SRC_PATH)
CFLAGS=$(OPTFLAGS) -I. -I$(SRC_PATH) -I$(SRC_PATH)/libavutil -I$(SRC_PATH)/libavcodec -I$(SRC_PATH)/libavformat -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE CFLAGS=$(OPTFLAGS) -I. -I$(SRC_PATH) -I$(SRC_PATH)/libavutil -I$(SRC_PATH)/libavcodec -I$(SRC_PATH)/libavformat -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE
LDFLAGS+= -g LDFLAGS+= -g
ifeq ($(TARGET_GPROF),yes) ifeq ($(TARGET_GPROF),yes)
CFLAGS+=-p CFLAGS+=-p
...@@ -75,7 +75,7 @@ ffmpeg$(EXESUF): ffmpeg_g$(EXESUF) ...@@ -75,7 +75,7 @@ ffmpeg$(EXESUF): ffmpeg_g$(EXESUF)
$(STRIP) $@ $(STRIP) $@
ffserver$(EXESUF): ffserver.o .libs ffserver$(EXESUF): ffserver.o .libs
$(CC) $(LDFLAGS) $(FFSLDFLAGS) -o $@ ffserver.o $(FFLIBS) $(EXTRALIBS) $(CC) $(LDFLAGS) $(FFSLDFLAGS) -o $@ ffserver.o $(FFLIBS) $(EXTRALIBS)
ffplay_g$(EXESUF): ffplay.o cmdutils.o .libs ffplay_g$(EXESUF): ffplay.o cmdutils.o .libs
$(CC) $(LDFLAGS) -o $@ ffplay.o cmdutils.o $(FFLIBS) $(EXTRALIBS) $(SDL_LIBS) $(CC) $(LDFLAGS) -o $@ ffplay.o cmdutils.o $(FFLIBS) $(EXTRALIBS) $(SDL_LIBS)
...@@ -94,10 +94,10 @@ cws2fws$(EXESUF): cws2fws.c ...@@ -94,10 +94,10 @@ cws2fws$(EXESUF): cws2fws.c
$(CC) $(SRC_PATH)/cws2fws.c -o cws2fws$(EXESUF) -lz $(CC) $(SRC_PATH)/cws2fws.c -o cws2fws$(EXESUF) -lz
ffplay.o: ffplay.c ffplay.o: ffplay.c
$(CC) $(CFLAGS) $(SDL_CFLAGS) -c -o $@ $< $(CC) $(CFLAGS) $(SDL_CFLAGS) -c -o $@ $<
%.o: %.c %.o: %.c
$(CC) $(CFLAGS) -c -o $@ $< $(CC) $(CFLAGS) -c -o $@ $<
videohook: .libs videohook: .libs
$(MAKE) -C vhook all $(MAKE) -C vhook all
......
...@@ -11,7 +11,7 @@ FFmpeg README ...@@ -11,7 +11,7 @@ FFmpeg README
* Read the file COPYING. ffmpeg and the associated libraries EXCEPT * Read the file COPYING. ffmpeg and the associated libraries EXCEPT
liba52 and libpostproc are licensed under the Lesser GNU General liba52 and libpostproc are licensed under the Lesser GNU General
Public License. Public License.
* liba52 and libpostproc are distributed under the GNU General Public * liba52 and libpostproc are distributed under the GNU General Public
License and their compilation and use is optional in ffmpeg. License and their compilation and use is optional in ffmpeg.
......
...@@ -8,37 +8,37 @@ ...@@ -8,37 +8,37 @@
#ifdef ENOENT #ifdef ENOENT
#undef ENOENT #undef ENOENT
#endif #endif
#define ENOENT 2 #define ENOENT 2
#ifdef EINTR #ifdef EINTR
#undef EINTR #undef EINTR
#endif #endif
#define EINTR 4 #define EINTR 4
#ifdef EIO #ifdef EIO
#undef EIO #undef EIO
#endif #endif
#define EIO 5 #define EIO 5
#ifdef EAGAIN #ifdef EAGAIN
#undef EAGAIN #undef EAGAIN
#endif #endif
#define EAGAIN 11 #define EAGAIN 11
#ifdef ENOMEM #ifdef ENOMEM
#undef ENOMEM #undef ENOMEM
#endif #endif
#define ENOMEM 12 #define ENOMEM 12
#ifdef EINVAL #ifdef EINVAL
#undef EINVAL #undef EINVAL
#endif #endif
#define EINVAL 22 #define EINVAL 22
#ifdef EPIPE #ifdef EPIPE
#undef EPIPE #undef EPIPE
#endif #endif
#define EPIPE 32 #define EPIPE 32
#endif /* BERRNO_H */ #endif /* BERRNO_H */
...@@ -7,4 +7,3 @@ sed 's/unsigned//g' |\ ...@@ -7,4 +7,3 @@ sed 's/unsigned//g' |\
sed 's/TYPE_AVRATIONAL/TYPE_RATIONAL/g'|\ sed 's/TYPE_AVRATIONAL/TYPE_RATIONAL/g'|\
sed 's/FLOAT_M/FLT_M/g'|\ sed 's/FLOAT_M/FLT_M/g'|\
sed 's/FF_OPT_TYPE_CHAR/FF_OPT_TYPE_STRING/g' sed 's/FF_OPT_TYPE_CHAR/FF_OPT_TYPE_STRING/g'
\ No newline at end of file
...@@ -64,7 +64,7 @@ void parse_options(int argc, char **argv, const OptionDef *options) ...@@ -64,7 +64,7 @@ void parse_options(int argc, char **argv, const OptionDef *options)
optindex = 1; optindex = 1;
while (optindex < argc) { while (optindex < argc) {
opt = argv[optindex++]; opt = argv[optindex++];
if (opt[0] == '-' && opt[1] != '\0') { if (opt[0] == '-' && opt[1] != '\0') {
po= find_option(options, opt + 1); po= find_option(options, opt + 1);
if (!po->name) if (!po->name)
...@@ -111,7 +111,7 @@ void print_error(const char *filename, int err) ...@@ -111,7 +111,7 @@ void print_error(const char *filename, int err)
fprintf(stderr, "%s: Incorrect image filename syntax.\n" fprintf(stderr, "%s: Incorrect image filename syntax.\n"
"Use '%%d' to specify the image number:\n" "Use '%%d' to specify the image number:\n"
" for img1.jpg, img2.jpg, ..., use 'img%%d.jpg';\n" " for img1.jpg, img2.jpg, ..., use 'img%%d.jpg';\n"
" for img001.jpg, img002.jpg, ..., use 'img%%03d.jpg'.\n", " for img001.jpg, img002.jpg, ..., use 'img%%03d.jpg'.\n",
filename); filename);
break; break;
case AVERROR_INVALIDDATA: case AVERROR_INVALIDDATA:
......
...@@ -555,7 +555,7 @@ for opt do ...@@ -555,7 +555,7 @@ for opt do
--enable-amr_nb-fixed) amr_nb_fixed="yes" --enable-amr_nb-fixed) amr_nb_fixed="yes"
;; ;;
--enable-amr_wb) amr_wb="yes" --enable-amr_wb) amr_wb="yes"
;; ;;
--enable-amr_if2) amr_if2="yes" --enable-amr_if2) amr_if2="yes"
;; ;;
--enable-sunmlib) sunmlib="yes" --enable-sunmlib) sunmlib="yes"
...@@ -629,13 +629,13 @@ if test "$gpl" != "yes"; then ...@@ -629,13 +629,13 @@ if test "$gpl" != "yes"; then
echo "libdts is under GPL and --enable-gpl is not specified." echo "libdts is under GPL and --enable-gpl is not specified."
fail="yes" fail="yes"
fi fi
if test "$faad" != "no" -o "$faadbin" != "no"; then if test "$faad" != "no" -o "$faadbin" != "no"; then
cat > $TMPC << EOF cat > $TMPC << EOF
#include <faad.h> #include <faad.h>
int main( void ) { return 0; } int main( void ) { return 0; }
EOF EOF
if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
cat > $TMPC << EOF cat > $TMPC << EOF
#include <faad.h> #include <faad.h>
...@@ -654,7 +654,7 @@ EOF ...@@ -654,7 +654,7 @@ EOF
echo "FAAD test failed." echo "FAAD test failed."
fi fi
fi fi
if test "$fail" = "yes"; then if test "$fail" = "yes"; then
exit 1 exit 1
...@@ -673,7 +673,7 @@ fi ...@@ -673,7 +673,7 @@ fi
# check iwmmxt support # check iwmmxt support
if test $iwmmxt = "default" -a $cpu = "armv4l"; then if test $iwmmxt = "default" -a $cpu = "armv4l"; then
cat > $TMPC << EOF cat > $TMPC << EOF
int main(void) { int main(void) {
__asm__ __volatile__ ("wunpckelub wr6, wr4"); __asm__ __volatile__ ("wunpckelub wr6, wr4");
} }
EOF EOF
...@@ -692,7 +692,7 @@ if test $targetos = Darwin; then ...@@ -692,7 +692,7 @@ if test $targetos = Darwin; then
else else
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`" gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
case "$gcc_version" in case "$gcc_version" in
*2.95*) *2.95*)
CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer" CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
;; ;;
*[34].*) *[34].*)
...@@ -784,7 +784,7 @@ if test $tune != "generic"; then ...@@ -784,7 +784,7 @@ if test $tune != "generic"; then
esac esac
fi fi
# AltiVec flags: The FSF version of GCC differs from the Apple version # AltiVec flags: The FSF version of GCC differs from the Apple version
if test $cpu = "powerpc"; then if test $cpu = "powerpc"; then
if test $altivec = "yes"; then if test $altivec = "yes"; then
if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
...@@ -1009,7 +1009,7 @@ done ...@@ -1009,7 +1009,7 @@ done
# currently only used on i386 for MMX builtins # currently only used on i386 for MMX builtins
cat > $TMPC << EOF cat > $TMPC << EOF
#include <xmmintrin.h> #include <xmmintrin.h>
int main(void) { int main(void) {
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
return 0; return 0;
#else #else
...@@ -1812,7 +1812,7 @@ includedir=\${prefix}/include ...@@ -1812,7 +1812,7 @@ includedir=\${prefix}/include
Name: libavutil Name: libavutil
Description: FFmpeg utility library Description: FFmpeg utility library
Version: $lavu_version Version: $lavu_version
Requires: Requires:
Conflicts: Conflicts:
Libs: -L\${libdir} -lavutil Libs: -L\${libdir} -lavutil
Cflags: -I\${includedir} -I\${includedir}/ffmpeg Cflags: -I\${includedir} -I\${includedir}/ffmpeg
...@@ -1827,7 +1827,7 @@ includedir=\${pcfiledir}/libavutil ...@@ -1827,7 +1827,7 @@ includedir=\${pcfiledir}/libavutil
Name: libavutil Name: libavutil
Description: FFmpeg utility library Description: FFmpeg utility library
Version: $lavu_version Version: $lavu_version
Requires: Requires:
Conflicts: Conflicts:
Libs: \${libdir}/${LIBPREF}avutil${LIBSUF} Libs: \${libdir}/${LIBPREF}avutil${LIBSUF}
Cflags: -I\${includedir} Cflags: -I\${includedir}
...@@ -1906,7 +1906,7 @@ includedir=\${prefix}/include ...@@ -1906,7 +1906,7 @@ includedir=\${prefix}/include
Name: libpostproc Name: libpostproc
Description: FFmpeg post processing library Description: FFmpeg post processing library
Version: $lavc_version Version: $lavc_version
Requires: Requires:
Conflicts: Conflicts:
Libs: -L\${libdir} -lpostproc Libs: -L\${libdir} -lpostproc
Cflags: -I\${includedir} -I\${includedir}/postproc Cflags: -I\${includedir} -I\${includedir}/postproc
...@@ -1921,7 +1921,7 @@ includedir=\${pcfiledir}/libavcodec/libpostproc ...@@ -1921,7 +1921,7 @@ includedir=\${pcfiledir}/libavcodec/libpostproc
Name: libpostproc Name: libpostproc
Description: FFmpeg post processing library Description: FFmpeg post processing library
Version: $lavc_version Version: $lavc_version
Requires: Requires:
Conflicts: Conflicts:
Libs: \${libdir}/${LIBPREF}postproc${LIBSUF} Libs: \${libdir}/${LIBPREF}postproc${LIBSUF}
Cflags: -I\${includedir} Cflags: -I\${includedir}
......
...@@ -28,7 +28,7 @@ main(int argc, char *argv[]) ...@@ -28,7 +28,7 @@ main(int argc, char *argv[])
printf("Usage: %s <infile.swf> <outfile.swf>\n", argv[0]); printf("Usage: %s <infile.swf> <outfile.swf>\n", argv[0]);
exit(1); exit(1);
} }
fd_in = open(argv[1], O_RDONLY); fd_in = open(argv[1], O_RDONLY);
if (fd_in < 0) if (fd_in < 0)
{ {
...@@ -43,7 +43,7 @@ main(int argc, char *argv[]) ...@@ -43,7 +43,7 @@ main(int argc, char *argv[])
close(fd_in); close(fd_in);
exit(1); exit(1);
} }
if (read(fd_in, &buf_in, 8) != 8) if (read(fd_in, &buf_in, 8) != 8)
{ {
printf("Header error\n"); printf("Header error\n");
...@@ -51,7 +51,7 @@ main(int argc, char *argv[]) ...@@ -51,7 +51,7 @@ main(int argc, char *argv[])
close(fd_out); close(fd_out);
exit(1); exit(1);
} }
if (buf_in[0] != 'C' || buf_in[1] != 'W' || buf_in[2] != 'S') if (buf_in[0] != 'C' || buf_in[1] != 'W' || buf_in[2] != 'S')
{ {
printf("Not a compressed flash file\n"); printf("Not a compressed flash file\n");
...@@ -61,7 +61,7 @@ main(int argc, char *argv[]) ...@@ -61,7 +61,7 @@ main(int argc, char *argv[])
fstat(fd_in, &statbuf); fstat(fd_in, &statbuf);
comp_len = statbuf.st_size; comp_len = statbuf.st_size;
uncomp_len = buf_in[4] | (buf_in[5] << 8) | (buf_in[6] << 16) | (buf_in[7] << 24); uncomp_len = buf_in[4] | (buf_in[5] << 8) | (buf_in[6] << 16) | (buf_in[7] << 24);
printf("Compressed size: %d Uncompressed size: %d\n", comp_len-4, uncomp_len-4); printf("Compressed size: %d Uncompressed size: %d\n", comp_len-4, uncomp_len-4);
// write out modified header // write out modified header
...@@ -72,20 +72,20 @@ main(int argc, char *argv[]) ...@@ -72,20 +72,20 @@ main(int argc, char *argv[])
zstream.zfree = NULL; zstream.zfree = NULL;
zstream.opaque = NULL; zstream.opaque = NULL;
inflateInit(&zstream); inflateInit(&zstream);
for (i = 0; i < comp_len-4;) for (i = 0; i < comp_len-4;)
{ {
int ret, len = read(fd_in, &buf_in, 1024); int ret, len = read(fd_in, &buf_in, 1024);
dbgprintf("read %d bytes\n", len); dbgprintf("read %d bytes\n", len);
last_out = zstream.total_out; last_out = zstream.total_out;
zstream.next_in = &buf_in[0]; zstream.next_in = &buf_in[0];
zstream.avail_in = len; zstream.avail_in = len;
zstream.next_out = &buf_out[0]; zstream.next_out = &buf_out[0];
zstream.avail_out = 1024; zstream.avail_out = 1024;
ret = inflate(&zstream, Z_SYNC_FLUSH); ret = inflate(&zstream, Z_SYNC_FLUSH);
if (ret == Z_STREAM_END || ret == Z_BUF_ERROR) if (ret == Z_STREAM_END || ret == Z_BUF_ERROR)
break; break;
...@@ -95,16 +95,16 @@ main(int argc, char *argv[]) ...@@ -95,16 +95,16 @@ main(int argc, char *argv[])
inflateEnd(&zstream); inflateEnd(&zstream);
exit(1); exit(1);
} }
dbgprintf("a_in: %d t_in: %d a_out: %d t_out: %d -- %d out\n", dbgprintf("a_in: %d t_in: %d a_out: %d t_out: %d -- %d out\n",
zstream.avail_in, zstream.total_in, zstream.avail_out, zstream.total_out, zstream.avail_in, zstream.total_in, zstream.avail_out, zstream.total_out,
zstream.total_out-last_out); zstream.total_out-last_out);
write(fd_out, &buf_out, zstream.total_out-last_out); write(fd_out, &buf_out, zstream.total_out-last_out);
i += len; i += len;
} }
if (zstream.total_out != uncomp_len-8) if (zstream.total_out != uncomp_len-8)
{ {
printf("Size mismatch (%d != %d), updating header...\n", printf("Size mismatch (%d != %d), updating header...\n",
...@@ -114,11 +114,11 @@ main(int argc, char *argv[]) ...@@ -114,11 +114,11 @@ main(int argc, char *argv[])
buf_in[1] = (zstream.total_out+8 >> 8) & 0xff; buf_in[1] = (zstream.total_out+8 >> 8) & 0xff;
buf_in[2] = (zstream.total_out+8 >> 16) & 0xff; buf_in[2] = (zstream.total_out+8 >> 16) & 0xff;
buf_in[3] = (zstream.total_out+8 >> 24) & 0xff; buf_in[3] = (zstream.total_out+8 >> 24) & 0xff;
lseek(fd_out, 4, SEEK_SET); lseek(fd_out, 4, SEEK_SET);
write(fd_out, &buf_in, 4); write(fd_out, &buf_in, 4);
} }
inflateEnd(&zstream); inflateEnd(&zstream);
close(fd_in); close(fd_in);
close(fd_out); close(fd_out);
......
...@@ -5,13 +5,13 @@ Fabrice's TODO list: (unordered) ...@@ -5,13 +5,13 @@ Fabrice's TODO list: (unordered)
------------------- -------------------
Short term: Short term:
- av_read_frame() API - av_read_frame() API
- seeking API and example in ffplay - seeking API and example in ffplay
- parse_only mode - parse_only mode
- use AVFMTCTX_DISCARD_PKT in ffplay so that DV has a chance to work - use AVFMTCTX_DISCARD_PKT in ffplay so that DV has a chance to work
- add RTSP regression test (both client and server) - add RTSP regression test (both client and server)
- make ffserver allocate AVFormatContext - make ffserver allocate AVFormatContext
- clean up (incompatible change, for 0.5.0): - clean up (incompatible change, for 0.5.0):
* AVStream -> AVComponent * AVStream -> AVComponent
* AVFormatContext -> AVInputStream/AVOutputStream * AVFormatContext -> AVInputStream/AVOutputStream
* suppress rate_emu from AVCodecContext * suppress rate_emu from AVCodecContext
...@@ -54,7 +54,7 @@ Francois' TODO list: (unordered, without any timeframe) ...@@ -54,7 +54,7 @@ Francois' TODO list: (unordered, without any timeframe)
Philip'a TODO list: (alphabetically ordered) (please help) Philip'a TODO list: (alphabetically ordered) (please help)
------------------ ------------------
- Add a multi-ffm filetype so that feeds can be recorded into multiple files rather - Add a multi-ffm filetype so that feeds can be recorded into multiple files rather
than one big file. than one big file.
- Authenticated users support -- where the authentication is in the URL - Authenticated users support -- where the authentication is in the URL
- Change ASF files so that the embedded timestamp in the frames is right rather - Change ASF files so that the embedded timestamp in the frames is right rather
than being an offset from the start of the stream than being an offset from the start of the stream
......
...@@ -53,7 +53,7 @@ Use @file{-} as filename. ...@@ -53,7 +53,7 @@ Use @file{-} as filename.
@section Why does ffmpeg not decode audio in VOB files ? @section Why does ffmpeg not decode audio in VOB files ?
The audio is AC3 (a.k.a. A/52). AC3 decoding is an optional component in ffmpeg The audio is AC3 (a.k.a. A/52). AC3 decoding is an optional component in ffmpeg
as the component that handles AC3 decoding (liba52) is currently released under as the component that handles AC3 decoding (liba52) is currently released under
the GPL. If you have liba52 installed on your system, enable AC3 decoding the GPL. If you have liba52 installed on your system, enable AC3 decoding
with @code{./configure --enable-a52}. Take care: by with @code{./configure --enable-a52}. Take care: by
enabling AC3, you automatically change the license of libavcodec from enabling AC3, you automatically change the license of libavcodec from
...@@ -61,7 +61,7 @@ LGPL to GPL. ...@@ -61,7 +61,7 @@ LGPL to GPL.
@section Which codecs are supported by Windows ? @section Which codecs are supported by Windows ?
Windows does not support standard formats like MPEG very well, unless you Windows does not support standard formats like MPEG very well, unless you
install some additional codecs install some additional codecs
The following list of video codecs should work on most Windows systems: The following list of video codecs should work on most Windows systems:
...@@ -79,8 +79,8 @@ only if you have some MPEG-4 codec installed like ffdshow or XviD ...@@ -79,8 +79,8 @@ only if you have some MPEG-4 codec installed like ffdshow or XviD
@item mpeg1 @item mpeg1
.mpg only .mpg only
@end table @end table
Note, ASF files often have .wmv or .wma extensions in Windows. It should also Note, ASF files often have .wmv or .wma extensions in Windows. It should also
be mentioned that Microsoft claims a patent on the ASF format, and may sue be mentioned that Microsoft claims a patent on the ASF format, and may sue
or threaten users who create ASF files with non-Microsoft software. It is or threaten users who create ASF files with non-Microsoft software. It is
strongly advised to avoid ASF where possible. strongly advised to avoid ASF where possible.
...@@ -95,7 +95,7 @@ if some MP3 codec like LAME is installed ...@@ -95,7 +95,7 @@ if some MP3 codec like LAME is installed
@section Why does the chrominance data seem to be sampled at a different time from the luminance data on bt8x8 captures on Linux? @section Why does the chrominance data seem to be sampled at a different time from the luminance data on bt8x8 captures on Linux?
This is a well-known bug in the bt8x8 driver. For 2.4.26 there is a patch at This is a well-known bug in the bt8x8 driver. For 2.4.26 there is a patch at
(@url{http://www.mplayerhq.hu/~michael/bttv-420-2.4.26.patch}). This may also (@url{http://www.mplayerhq.hu/~michael/bttv-420-2.4.26.patch}). This may also
apply cleanly to other 2.4-series kernels. apply cleanly to other 2.4-series kernels.
...@@ -132,8 +132,8 @@ Both XviD and DivX (version 4+) are implementations of the ISO MPEG-4 ...@@ -132,8 +132,8 @@ Both XviD and DivX (version 4+) are implementations of the ISO MPEG-4
standard (note that there are many other coding formats that use this standard (note that there are many other coding formats that use this
same standard). Thus, use '-vcodec mpeg4' to encode these formats. The same standard). Thus, use '-vcodec mpeg4' to encode these formats. The
default fourcc stored in an MPEG-4-coded file will be 'FMP4'. If you want default fourcc stored in an MPEG-4-coded file will be 'FMP4'. If you want
a different fourcc, use the '-vtag' option. E.g., '-vtag xvid' will a different fourcc, use the '-vtag' option. E.g., '-vtag xvid' will
force the fourcc 'xvid' to be stored as the video fourcc rather than the force the fourcc 'xvid' to be stored as the video fourcc rather than the
default. default.
@chapter Development @chapter Development
...@@ -149,7 +149,7 @@ it implemented is to undertake the task yourself. ...@@ -149,7 +149,7 @@ it implemented is to undertake the task yourself.
@section Are there examples illustrating how to use the FFmpeg libraries, particularly libavcodec and libavformat ? @section Are there examples illustrating how to use the FFmpeg libraries, particularly libavcodec and libavformat ?
Yes. Read the Developers Guide of the FFmpeg documentation. Alternatively, Yes. Read the Developers Guide of the FFmpeg documentation. Alternatively,
examine the source code for one of the many open source projects that examine the source code for one of the many open source projects that
already incorporate ffmpeg at (@url{projects.php}). already incorporate ffmpeg at (@url{projects.php}).
@section Can you support my C compiler XXX ? @section Can you support my C compiler XXX ?
...@@ -174,7 +174,7 @@ terms of portability. ...@@ -174,7 +174,7 @@ terms of portability.
@section Why not rewrite ffmpeg in object-oriented C++ ? @section Why not rewrite ffmpeg in object-oriented C++ ?
ffmpeg is already organized in a highly modular manner and does not need to ffmpeg is already organized in a highly modular manner and does not need to
be rewritten in a formal object language. Further, many of the developers be rewritten in a formal object language. Further, many of the developers
favor straight C; it works for them. For more arguments on this matter, favor straight C; it works for them. For more arguments on this matter,
read "Programming Religion" at (@url{http://lkml.org/faq/lkmlfaq-15.html}). read "Programming Religion" at (@url{http://lkml.org/faq/lkmlfaq-15.html}).
......
This diff is collapsed.
...@@ -158,6 +158,6 @@ V) Enabling the PMC on Linux ...@@ -158,6 +158,6 @@ V) Enabling the PMC on Linux
I don't know how to do it, sorry :-) Any idea very much welcome. I don't know how to do it, sorry :-) Any idea very much welcome.
-- --
Romain Dolbeau Romain Dolbeau
<romain@dolbeau.org> <romain@dolbeau.org>
...@@ -19,7 +19,7 @@ various FFmpeg APIs. ...@@ -19,7 +19,7 @@ various FFmpeg APIs.
@chapter Invocation @chapter Invocation
@section Syntax @section Syntax
@example @example
@c man begin SYNOPSIS @c man begin SYNOPSIS
ffplay [options] @file{input_file} ffplay [options] @file{input_file}
@c man end @c man end
......
...@@ -64,13 +64,13 @@ have a V4L video capture card): ...@@ -64,13 +64,13 @@ have a V4L video capture card):
@end example @end example
At this point you should be able to go to your Windows machine and fire up At this point you should be able to go to your Windows machine and fire up
Windows Media Player (WMP). Go to Open URL and enter Windows Media Player (WMP). Go to Open URL and enter
@example @example
http://<linuxbox>:8090/test.asf http://<linuxbox>:8090/test.asf
@end example @end example
You should (after a short delay) see video and hear audio. You should (after a short delay) see video and hear audio.
WARNING: trying to stream test1.mpg doesn't work with WMP as it tries to WARNING: trying to stream test1.mpg doesn't work with WMP as it tries to
transfer the entire file before starting to play. transfer the entire file before starting to play.
...@@ -78,7 +78,7 @@ The same is true of AVI files. ...@@ -78,7 +78,7 @@ 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 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 frame rates etc). Then install ffserver and ffmpeg, write a script to start
them up, and off you go. them up, and off you go.
...@@ -89,10 +89,10 @@ them up, and off you go. ...@@ -89,10 +89,10 @@ them up, and off you go.
Maybe you didn't install LAME, or got your ./configure statement wrong. Check Maybe you didn't install LAME, or got your ./configure statement wrong. Check
the ffmpeg output to see if a line referring to MP3 is present. If not, then the ffmpeg output to see if a line referring to MP3 is present. If not, then
your configuration was incorrect. If it is, then maybe your wiring is not your configuration was incorrect. If it is, then maybe your wiring is not
set up correctly. Maybe the sound card is not getting data from the right set up correctly. Maybe the sound card is not getting data from the right
input source. Maybe you have a really awful audio interface (like I do) input source. Maybe you have a really awful audio interface (like I do)
that only captures in stereo and also requires that one channel be flipped. that only captures in stereo and also requires that one channel be flipped.
If you are one of these people, then export 'AUDIO_FLIP_LEFT=1' before If you are one of these people, then export 'AUDIO_FLIP_LEFT=1' before
starting ffmpeg. starting ffmpeg.
@subsection The audio and video loose sync after a while. @subsection The audio and video loose sync after a while.
...@@ -114,7 +114,7 @@ I suspect that the new one is not available unless you have installed WMP 7]. ...@@ -114,7 +114,7 @@ I suspect that the new one is not available unless you have installed WMP 7].
@section What else can it do? @section What else can it do?
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 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. file. If they do not, then ffserver deletes the file before recording into it.
(Now that I write this, it seems broken). (Now that I write this, it seems broken).
...@@ -129,7 +129,7 @@ in browsers. These files are actually redirections to the underlying ASF ...@@ -129,7 +129,7 @@ in browsers. These files are actually redirections to the underlying ASF
or RM file. The reason for this is that the browser often fetches the or RM file. The reason for this is that the browser often fetches the
entire file before starting up the external viewer. The redirection files entire file before starting up the external viewer. The redirection files
are very small and can be transferred quickly. [The stream itself is are very small and can be transferred quickly. [The stream itself is
often 'infinite' and thus the browser tries to download it and never often 'infinite' and thus the browser tries to download it and never
finishes.] finishes.]
@section Tips @section Tips
...@@ -140,7 +140,7 @@ signal continuously. However, ffserver (by default) starts sending data ...@@ -140,7 +140,7 @@ signal continuously. However, ffserver (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
stream should start 5 seconds in the past -- and so the first 5 seconds 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.
...@@ -161,14 +161,14 @@ means that the timestamp in the encoded data stream gets behind realtime. ...@@ -161,14 +161,14 @@ means that the timestamp in the encoded data stream gets behind realtime.
This means that if you say 'Preroll 10', then when the stream gets 10 This means that if you say 'Preroll 10', then when the stream gets 10
or more seconds behind, there is no Preroll left. or more seconds behind, there is no Preroll left.
Fixing this requires a change in the internals of how timestamps are Fixing this requires a change in the internals of how timestamps are
handled. 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 ffserver, 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
of the following formats (the 'T' is literal): of the following formats (the 'T' is literal):
...@@ -178,7 +178,7 @@ of the following formats (the 'T' is literal): ...@@ -178,7 +178,7 @@ of the following formats (the 'T' is literal):
* YYYY-MM-DDTHH:MM:SSZ (UTC) * YYYY-MM-DDTHH:MM:SSZ (UTC)
@end example @end example
You can omit the YYYY-MM-DD, and then it refers to the current day. However You can omit the YYYY-MM-DD, and then it refers to the current day. However
note that @samp{?date=16:00:00} refers to 16:00 on the current day -- this note that @samp{?date=16:00:00} refers to 16:00 on the current day -- this
may be in the future and so is unlikely to be useful. may be in the future and so is unlikely to be useful.
...@@ -187,7 +187,7 @@ For example: @samp{http://localhost:8080/test.asf?date=2002-07-26T23:05:00}. ...@@ -187,7 +187,7 @@ For example: @samp{http://localhost:8080/test.asf?date=2002-07-26T23:05:00}.
@chapter Invocation @chapter Invocation
@section Syntax @section Syntax
@example @example
@c man begin SYNOPSIS @c man begin SYNOPSIS
ffserver [options] ffserver [options]
@c man end @c man end
......
...@@ -34,7 +34,7 @@ NoDaemon ...@@ -34,7 +34,7 @@ NoDaemon
# You must use 'ffmpeg' to send a live feed to ffserver. In this # You must use 'ffmpeg' to send a live feed to ffserver. 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 # ffserver can also do time shifting. It means that it can stream any
...@@ -88,7 +88,7 @@ Feed feed1.ffm ...@@ -88,7 +88,7 @@ Feed feed1.ffm
Format mpeg Format mpeg
# Bitrate for the audio stream. Codecs usually support only a few # Bitrate for the audio stream. Codecs usually support only a few
# different bitrates. # different bitrates.
AudioBitRate 32 AudioBitRate 32
# Number of audio channels: 1 = mono, 2 = stereo # Number of audio channels: 1 = mono, 2 = stereo
...@@ -123,7 +123,7 @@ VideoGopSize 12 ...@@ -123,7 +123,7 @@ VideoGopSize 12
# VideoHighQuality # VideoHighQuality
# Video4MotionVector # Video4MotionVector
# Choose your codecs: # Choose your codecs:
#AudioCodec mp2 #AudioCodec mp2
#VideoCodec mpeg1video #VideoCodec mpeg1video
...@@ -153,7 +153,7 @@ VideoGopSize 12 ...@@ -153,7 +153,7 @@ VideoGopSize 12
# stream basis. The first match defines the action. If there are no matches, # stream basis. The first match defines the action. If there are no matches,
# then the default is the inverse of the last ACL statement. # then the default is the inverse of the last ACL statement.
# #
# Thus 'ACL allow localhost' only allows access from localhost. # Thus 'ACL allow localhost' only allows access from localhost.
# 'ACL deny 1.0.0.0 1.255.255.255' would deny the whole of network 1 and # 'ACL deny 1.0.0.0 1.255.255.255' would deny the whole of network 1 and
# allow everybody else. # allow everybody else.
...@@ -181,7 +181,7 @@ VideoGopSize 12 ...@@ -181,7 +181,7 @@ VideoGopSize 12
#<Stream test.jpg> #<Stream test.jpg>
#Feed feed1.ffm #Feed feed1.ffm
#Format jpeg #Format jpeg
#VideoFrameRate 2 #VideoFrameRate 2
#VideoIntraOnly #VideoIntraOnly
##VideoSize 352x240 ##VideoSize 352x240
#NoAudio #NoAudio
...@@ -215,7 +215,7 @@ StartSendOnKey ...@@ -215,7 +215,7 @@ StartSendOnKey
</Stream> </Stream>
# MP3 audio # MP3 audio
#<Stream test.mp3> #<Stream test.mp3>
#Feed feed1.ffm #Feed feed1.ffm
...@@ -310,7 +310,7 @@ StartSendOnKey ...@@ -310,7 +310,7 @@ StartSendOnKey
# '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.
# #
# The 'NoLoop' option can be used to avoid looping when the stream is # The 'NoLoop' option can be used to avoid looping when the stream is
# terminated. # terminated.
......
...@@ -18,7 +18,7 @@ Any number of hook modules can be placed inline, and they are run in the ...@@ -18,7 +18,7 @@ Any number of hook modules can be placed inline, and they are run in the
order that they were specified on the ffmpeg command line. order that they were specified on the ffmpeg command line.
Three modules are provided and are described below. They are all intended to Three modules are provided and are described below. They are all intended to
be used as a base for your own modules. be used as a base for your own modules.
Modules are loaded using the -vhook option to ffmpeg. The value of this parameter Modules are loaded using the -vhook option to ffmpeg. The value of this parameter
is a space separated list of arguments. The first is the module name, and the rest is a space separated list of arguments. The first is the module name, and the rest
......
...@@ -229,7 +229,7 @@ while(<$inf>) { ...@@ -229,7 +229,7 @@ while(<$inf>) {
$inf = gensym(); $inf = gensym();
# Try cwd and $ibase. # Try cwd and $ibase.
open($inf, "<" . $1) open($inf, "<" . $1)
or open($inf, "<" . $ibase . "/" . $1) or open($inf, "<" . $ibase . "/" . $1)
or die "cannot open $1 or $ibase/$1: $!\n"; or die "cannot open $1 or $ibase/$1: $!\n";
next; next;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -69,7 +69,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, uint8 ...@@ -69,7 +69,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, uint8
unsigned int px_inc; unsigned int px_inc;
unsigned int planes = c->planes; unsigned int planes = c->planes;
unsigned char *planemap = c->planemap; unsigned char *planemap = c->planemap;
if(c->pic.data[0]) if(c->pic.data[0])
avctx->release_buffer(avctx, &c->pic); avctx->release_buffer(avctx, &c->pic);
......
...@@ -380,7 +380,7 @@ endif ...@@ -380,7 +380,7 @@ endif
ifeq ($(TARGET_ARCH_SPARC),yes) ifeq ($(TARGET_ARCH_SPARC),yes)
OBJS+=sparc/dsputil_vis.o OBJS+=sparc/dsputil_vis.o
sparc/%.o: sparc/%.c sparc/%.o: sparc/%.c
$(CC) -mcpu=ultrasparc -mtune=ultrasparc $(CFLAGS) -c -o $@ $< $(CC) -mcpu=ultrasparc -mtune=ultrasparc $(CFLAGS) -c -o $@ $<
endif endif
ifeq ($(TARGET_ARCH_SPARC64),yes) ifeq ($(TARGET_ARCH_SPARC64),yes)
CFLAGS+= -mcpu=ultrasparc -mtune=ultrasparc CFLAGS+= -mcpu=ultrasparc -mtune=ultrasparc
...@@ -430,7 +430,7 @@ libpostproc/libpostproc.a: ...@@ -430,7 +430,7 @@ libpostproc/libpostproc.a:
$(MAKE) -C libpostproc $(MAKE) -C libpostproc
%.o: %.c %.o: %.c
$(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
%.o: %.S %.o: %.S
$(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
......
...@@ -59,5 +59,5 @@ void ac3_common_init(void); ...@@ -59,5 +59,5 @@ void ac3_common_init(void);
void ac3_parametric_bit_allocation(AC3BitAllocParameters *s, uint8_t *bap, void ac3_parametric_bit_allocation(AC3BitAllocParameters *s, uint8_t *bap,
int8_t *exp, int start, int end, int8_t *exp, int start, int end,
int snroffset, int fgain, int is_lfe, int snroffset, int fgain, int is_lfe,
int deltbae,int deltnseg, int deltbae,int deltnseg,
uint8_t *deltoffst, uint8_t *deltlen, uint8_t *deltba); uint8_t *deltoffst, uint8_t *deltlen, uint8_t *deltba);
...@@ -78,7 +78,7 @@ static inline void float_to_int (float * _f, int16_t * s16, int nchannels) ...@@ -78,7 +78,7 @@ static inline void float_to_int (float * _f, int16_t * s16, int nchannels)
#define HEADER_SIZE 7 #define HEADER_SIZE 7
static int ac3_decode_frame(AVCodecContext *avctx, static int ac3_decode_frame(AVCodecContext *avctx,
void *data, int *data_size, void *data, int *data_size,
uint8_t *buf, int buf_size) uint8_t *buf, int buf_size)
{ {
......
This diff is collapsed.
...@@ -8,8 +8,8 @@ static const uint16_t ac3_freqs[3] = { 48000, 44100, 32000 }; ...@@ -8,8 +8,8 @@ static const uint16_t ac3_freqs[3] = { 48000, 44100, 32000 };
/* possible bitrates */ /* possible bitrates */
static const uint16_t ac3_bitratetab[19] = { static const uint16_t ac3_bitratetab[19] = {
32, 40, 48, 56, 64, 80, 96, 112, 128, 32, 40, 48, 56, 64, 80, 96, 112, 128,
160, 192, 224, 256, 320, 384, 448, 512, 576, 640 160, 192, 224, 256, 320, 384, 448, 512, 576, 640
}; };
/* AC3 MDCT window */ /* AC3 MDCT window */
...@@ -47,7 +47,7 @@ static const int16_t ac3_window[256] = { ...@@ -47,7 +47,7 @@ static const int16_t ac3_window[256] = {
32760,32761,32762,32763,32764,32764,32765,32765, 32760,32761,32762,32763,32764,32764,32765,32765,
32766,32766,32766,32766,32767,32767,32767,32767, 32766,32766,32766,32766,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,
}; };
static uint8_t masktab[253]; static uint8_t masktab[253];
...@@ -135,32 +135,32 @@ static const uint16_t hth[50][3]= { ...@@ -135,32 +135,32 @@ static const uint16_t hth[50][3]= {
}; };
static const uint8_t baptab[64]= { static const uint8_t baptab[64]= {
0, 1, 1, 1, 1, 1, 2, 2, 3, 3, 0, 1, 1, 1, 1, 1, 2, 2, 3, 3,
3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7,
7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12,
12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14,
14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
}; };
static const uint8_t sdecaytab[4]={ static const uint8_t sdecaytab[4]={
0x0f, 0x11, 0x13, 0x15, 0x0f, 0x11, 0x13, 0x15,
}; };
static const uint8_t fdecaytab[4]={ static const uint8_t fdecaytab[4]={
0x3f, 0x53, 0x67, 0x7b, 0x3f, 0x53, 0x67, 0x7b,
}; };
static const uint16_t sgaintab[4]= { static const uint16_t sgaintab[4]= {
0x540, 0x4d8, 0x478, 0x410, 0x540, 0x4d8, 0x478, 0x410,
}; };
static const uint16_t dbkneetab[4]= { static const uint16_t dbkneetab[4]= {
0x000, 0x700, 0x900, 0xb00, 0x000, 0x700, 0x900, 0xb00,
}; };
static const uint16_t floortab[8]= { static const uint16_t floortab[8]= {
0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, 0xf800, 0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, 0xf800,
}; };
...@@ -169,12 +169,12 @@ static const uint16_t fgaintab[8]= { ...@@ -169,12 +169,12 @@ static const uint16_t fgaintab[8]= {
}; };
static const uint8_t bndsz[50]={ static const uint8_t bndsz[50]={
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
3, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 24, 24, 24, 24, 24 3, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 24, 24, 24, 24, 24
}; };
static uint8_t bndtab[51]; static uint8_t bndtab[51];
/* fft & mdct sin cos tables */ /* fft & mdct sin cos tables */
static int16_t costab[64]; static int16_t costab[64];
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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