mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-05-06 21:03:05 +00:00
remove mediastreamer2 and add it as a submodule instead.
This commit is contained in:
parent
967779a28c
commit
4cb987ed5f
180 changed files with 4 additions and 51250 deletions
3
.gitmodules
vendored
3
.gitmodules
vendored
|
|
@ -1,3 +1,6 @@
|
|||
[submodule "linphone/oRTP"]
|
||||
path = linphone/oRTP
|
||||
url = git://git.linphone.org/ortp.git
|
||||
[submodule "linphone/mediastreamer2"]
|
||||
path = linphone/mediastreamer2
|
||||
url = git://git.linphone.org/mediastreamer2.git
|
||||
|
|
|
|||
1
linphone/mediastreamer2
Submodule
1
linphone/mediastreamer2
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit d32cda04540a3a2b0604a3184a5fec8dbc6d7b18
|
||||
30
linphone/mediastreamer2/.gitignore
vendored
30
linphone/mediastreamer2/.gitignore
vendored
|
|
@ -1,30 +0,0 @@
|
|||
*.la
|
||||
*.lo
|
||||
.deps
|
||||
.libs
|
||||
Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
autom4te.cache
|
||||
compile
|
||||
config.guess
|
||||
config.h
|
||||
config.h.in
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
intltool-extract
|
||||
intltool-merge
|
||||
intltool-update
|
||||
libtool
|
||||
ltmain.sh
|
||||
mediastreamer-config.h
|
||||
mediastreamer-config.h.in
|
||||
mediastreamer.pc
|
||||
mediastreamer2.spec
|
||||
missing
|
||||
mkinstalldirs
|
||||
stamp-h1
|
||||
4
linphone/mediastreamer2/.indent.pro
vendored
4
linphone/mediastreamer2/.indent.pro
vendored
|
|
@ -1,4 +0,0 @@
|
|||
-kr
|
||||
--use-tabs
|
||||
--tab-size4
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
Simon MORLAT <simon dot morlat at linphone dot org>
|
||||
|
|
@ -1,340 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
|
||||
EXTRA_DIST=mediastreamer-config.h.in pkg.list autogen.sh mediastreamer.pc.in mediastreamer2.spec.in mediastreamer2.spec Makefile.macosx
|
||||
|
||||
SUBDIRS=src build include tests help
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = mediastreamer.pc
|
||||
|
||||
## oRTP packaging methods:
|
||||
|
||||
# `make rpm'
|
||||
|
||||
.phony: rpm
|
||||
|
||||
rpm:
|
||||
$(MAKE) dist
|
||||
# <https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=206841>
|
||||
TAR_OPTIONS=--wildcards rpmbuild -ta --clean --rmsource --rmspec $(PACKAGE)-$(VERSION).tar.gz
|
||||
|
||||
# `make package'
|
||||
|
||||
if WITH_EPM
|
||||
|
||||
.PHONY: package
|
||||
|
||||
PKG_NAME = $(PACKAGE)-$(VERSION)-$(RELEASE)
|
||||
BUILDROOT=`pwd`/epm-install
|
||||
|
||||
package: $(srcdir)/pkg.list $(srcdir)/configure
|
||||
[ -n "$(BUILDROOT)" ] && rm -rf $(BUILDROOT)/*
|
||||
[ -n "$(PKG_NAME).*" ] && rm -f $(PKG_NAME).*
|
||||
$(MAKE) install DESTDIR=$(BUILDROOT)
|
||||
$(MKEPMLIST) -u $(SYS_USER) -g $(SYS_GROUP) --prefix $(prefix) \
|
||||
$(BUILDROOT)/$(prefix) > files.list
|
||||
$(EPM) -v -f native -g -n -a $(ARCH) --keep-files --output-dir pkg \
|
||||
srcdir=$(srcdir) \
|
||||
top_srcdir=$(top_srcdir) \
|
||||
top_builddir=$(top_builddir) \
|
||||
PACKAGE=$(PACKAGE) \
|
||||
SUMMARY="$(SUMMARY)" \
|
||||
VERSION=$(ORTP_PKGCONFIG_VERSION) \
|
||||
RELEASE=$(RELEASE) \
|
||||
LICENSE="$(LICENSE)" \
|
||||
VENDOR="$(VENDOR)" \
|
||||
PACKAGER="$(PACKAGER)" \
|
||||
$(PACKAGE) $(srcdir)/pkg.list
|
||||
rm -rf $(BUILDROOT)
|
||||
mv -f pkg/$(PACKAGE)-$(ORTP_PKGCONFIG_VERSION)-$(RELEASE).$(EPM_PKG_EXT) $(PKG_NAME).$(ARCH).$(EPM_PKG_EXT)
|
||||
|
||||
clean-local:
|
||||
rm -rf pkg $(BUILDROOT)
|
||||
rm -f files.list
|
||||
|
||||
endif WITH_EPM
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
# MacOS X Temporary make file
|
||||
# H.M 2007.05.23
|
||||
|
||||
SPEEXDIR = ../../../speex-1.2beta1
|
||||
GSMDIR = ../../../gsm-1.0-pl12
|
||||
ORTPDIR = ../../oRTP
|
||||
|
||||
INCPATH = -I../include -I$(ORTPDIR)/include -I$(SPEEXDIR)/include -I$(GSMDIR)/inc/
|
||||
LIBPATH = -L. -L../../../gsm-1.0-pl12/lib
|
||||
FRAMEWORK = -framework CoreAudio -framework AudioToolbox -framework Carbon -framework AudioUnit
|
||||
CFLUGS = -g $(INCPATH) -DWORDS_BIGENDIAN -DDEBUG
|
||||
#CFLUGS = $(INCPATH) -DWORDS_BIGENDIAN
|
||||
|
||||
|
||||
LIBOBJ = mscommon.o msqueue.o msfilerec.o msfilter.o msspeex.o mssndcard.o alaw.o ulaw.o msconf.o msjoin.o msrtp.o ice.o tee.o gsm.o speexec.o audiostream.o msticker.o macsnd.o msfileplayer.o
|
||||
DYLIB = libms.dylib
|
||||
|
||||
all: echo
|
||||
|
||||
echo: ../tests/echo.c $(DYLIB)
|
||||
cc -c $(CFLUGS) ../tests/echo.c
|
||||
cc -o echo $(FRAMEWORK) $(LIBPATH) echo.o $(DYLIB) -lortp -lspeex -lgsm
|
||||
|
||||
clean:
|
||||
rm -rf *.o *.dylib
|
||||
|
||||
$(DYLIB): $(LIBOBJ) libortp.dylib libspeex.dylib
|
||||
cc -o $(DYLIB) $(FRAMEWORK) -dynamiclib -compatibility_version 1 -current_version 1 $(LIBOBJ) $(LIBPATH) -lortp -lspeex -lgsm
|
||||
|
||||
libortp.dylib:
|
||||
cp $(ORTPDIR)/src/.libs/libortp.dylib .
|
||||
install_name_tool -id @executable_path/libortp.dylib libortp.dylib
|
||||
|
||||
libspeex.dylib:
|
||||
cp $(SPEEXDIR)/libspeex/.libs/libspeex.dylib .
|
||||
install_name_tool -id @executable_path/libspeex.dylib libspeex.dylib
|
||||
|
||||
msfileplayer.o: msfileplayer.c
|
||||
gcc -c $(CFLUGS) msfileplayer.c
|
||||
msticker.o: msticker.c
|
||||
gcc -c $(CFLUGS) msticker.c
|
||||
audiostream.o: audiostream.c
|
||||
gcc -c $(CFLUGS) audiostream.c
|
||||
speexec.o: speexec.c
|
||||
gcc -c $(CFLUGS) speexec.c
|
||||
gsm.o: gsm.c
|
||||
gcc -c $(CFLUGS) gsm.c
|
||||
tee.o: tee.c
|
||||
gcc -c $(CFLUGS) tee.c
|
||||
ice.o: ice.c
|
||||
gcc -c $(CFLUGS) ice.c
|
||||
msrtp.o: msrtp.c
|
||||
gcc -c $(CFLUGS) msrtp.c
|
||||
msjoin.o: msjoin.c
|
||||
gcc -c $(CFLUGS) msjoin.c
|
||||
msconf.o: msconf.c
|
||||
gcc -c $(CFLUGS) msconf.c
|
||||
msfilter.o: msfilter.c
|
||||
gcc -c $(CFLUGS) msfilter.c
|
||||
alaw.o: alaw.c
|
||||
gcc -c $(CFLUGS) alaw.c
|
||||
ulaw.o: ulaw.c
|
||||
gcc -c $(CFLUGS) ulaw.c
|
||||
msfilerec.o: msfilerec.c
|
||||
gcc -c $(CFLUGS) msfilerec.c
|
||||
msspeex.o: msspeex.c
|
||||
gcc -c $(CFLUGS) msspeex.c
|
||||
mssndcard.o: mssndcard.c
|
||||
gcc -c $(CFLUGS) mssndcard.c
|
||||
msqueue.o: msqueue.c
|
||||
gcc -c $(CFLUGS) msqueue.c
|
||||
macsnd.o: macsnd.c
|
||||
gcc -c $(CFLUGS) macsnd.c
|
||||
|
||||
mscommon.o: mscommon.c
|
||||
gcc -c $(CFLUGS) -DPACKAGE_PLUGINS_DIR=\".\" mscommon.c
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
mediastreamer-2.3.2: ????????
|
||||
* use libv4l2 when possible to benefit from hardware pixel conversion
|
||||
* added jpeg over RTP support
|
||||
|
||||
mediastreamer-2.3.1: October 5, 2009
|
||||
* preserve ratio in windows video display (not yet implemented for linux/SDL)
|
||||
|
||||
mediastreamer-2.3.0: September 17, 2009
|
||||
* integrate directshow capture filter for mingw (was a plugin before)
|
||||
* builds on windows with mingw/msys using ./configure && make (see linphone's README.mingw)
|
||||
* new parametric equalizer filter (to modify gains per frequency bands), working with natural curves
|
||||
* new noise-gate feature added to MSVolume
|
||||
* list of soundcard dynamically updates on windows upon device plugs/unplugs
|
||||
* MSVolume echo limiter feature improved
|
||||
|
||||
mediastreamer-2.2.4: May 4, 2009
|
||||
* fix crash during video window resizing on windows
|
||||
* improve documentation
|
||||
* various little improvements
|
||||
|
||||
mediastreamer-2.2.3: 21, January 2009
|
||||
* rfc3984 support improved
|
||||
* webcam support on windows largely improved (vfw mode)
|
||||
* support for configuring video size up to svga
|
||||
* video output can automatically resize to the size of received video stream
|
||||
* fix crash when resizing video window
|
||||
* new MSWebcam object to provide Webcam management and MSFilter instantiation
|
||||
* alsa bugfixes
|
||||
|
||||
mediastreamer-2.2.2: 6, october 2008
|
||||
* new winsnd3.c file for support of soundcard under windows (seems to work a bit better)
|
||||
* bugfixes
|
||||
|
||||
mediastreamer-2.2.1: 25, january 2008
|
||||
* video output resizing
|
||||
* 4CIF and VGA support
|
||||
* bugfixes
|
||||
* added snow codec (experimental)
|
||||
* enable setting of max rtp payload size for all encoders
|
||||
|
||||
mediastreamer-2.2.0: 19, November 2007
|
||||
* new "no webcam" screen
|
||||
* bandwidth settings improvements
|
||||
* new REQ_VFU command to request a video encoder to send an I-frame
|
||||
(implemented for ffmpeg based encoders)
|
||||
* contributed macosx sound support
|
||||
* new MSVolume filter to make sound power measurements
|
||||
* rate control of ffmpeg video codecs
|
||||
|
||||
mediastreamer-2.1.0: 23, January 2007
|
||||
* add support for Video4Linux V2 cameras
|
||||
* support for mpjeg cameras
|
||||
* webcam support on windows operational
|
||||
* video window display ok on windows
|
||||
* fix bug with quickcam driver on linux
|
||||
* bandwidth setting improvements.
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
Project : mediastreamer2 - a modular sound and video processing and streaming
|
||||
Email : simon.morlat_at_linphone.org
|
||||
License : GPL
|
||||
Home Page : http://savannah.gnu.org/projects/linphone
|
||||
|
||||
Mediastreamer2 is a GPL licensed library to make audio and
|
||||
video real-time streaming and processing. Written in pure C,
|
||||
it is based upon the ortp library.
|
||||
|
||||
Design:
|
||||
------
|
||||
|
||||
Using mediastreamer2 will allow you to chain filters in a graph. Each
|
||||
filter will be responsible for doing some kind of processing and will
|
||||
deliver data to the next filter. As an example, you could get some
|
||||
data from network and unpack it in an RTP filter. This RTP filter will
|
||||
deliver the data to a decoder (speex, G711...) which will deliver it
|
||||
to a filter that is able to play the PCM data or record it into a .wav
|
||||
file.
|
||||
|
||||
There is a doxygen documentation for more information.
|
||||
|
||||
Features:
|
||||
--------
|
||||
|
||||
mediastreamer2 already provides a large set of filters.
|
||||
Here is a complete list of built-in filters.
|
||||
|
||||
All supported platforms:
|
||||
* RTP receiver
|
||||
* RTP sender
|
||||
* tee (duplicate data)
|
||||
|
||||
Audio Filters:
|
||||
* audio capture
|
||||
* audio playback
|
||||
* mme API (windows)
|
||||
* alsa API (linux)
|
||||
* oss API (linux)
|
||||
* arts API (linux)
|
||||
* portaudio API (macosx and other)
|
||||
* macsnd API (native macosx API -please do more testing...-)
|
||||
* aq (audio queue, macos API too)
|
||||
* several audio encoder/decoder: PCMU, PCMA, speex, gsm
|
||||
* wav file reader.
|
||||
* wav file recorder.
|
||||
* resampler.
|
||||
* conference bridge.
|
||||
* volume analyser, gain control, and automatic gain control.
|
||||
* acoustic echo canceller.
|
||||
* dtmf generation filter.
|
||||
* parametric equalizer, can be used to compensate the spectral response of a bad quality speaker or microphone
|
||||
|
||||
Video Filters:
|
||||
* video capture
|
||||
* v4w API (windows, deprecated)
|
||||
* directshow API (windows)
|
||||
* video4linux and video4linux2 APIs (linux)
|
||||
* video display
|
||||
* v4w API (windows)
|
||||
* SDL API (linux, macosx...)
|
||||
* several audio encoder/decoder: H263-1998, MP4V-ES, theora
|
||||
* image resizer.
|
||||
* format converter. (RBG24, I420...)
|
||||
|
||||
Plugin Filters:
|
||||
* iLBC decoder/encoder.
|
||||
* H264 codec, based on x264
|
||||
|
||||
|
||||
Note that, you can build your own components/filters to do your
|
||||
own processing or support other codecs.
|
||||
|
||||
Installation procedure:
|
||||
-----------------------
|
||||
|
||||
The program is known to run on linux, but might work
|
||||
on any unix and windows systems.
|
||||
|
||||
$> ./configure
|
||||
$> make
|
||||
$> su -c 'make install'
|
||||
|
||||
Contact information:
|
||||
--------------------
|
||||
|
||||
For more information on mediastreamer2, any contributions, or any remarks,
|
||||
you can contact me at <simon.morlat_at_linphone.org>.
|
||||
|
||||
Use the *linphone* mailing list for question about mediastreamer2.
|
||||
<linphone-developers@nongnu.org>.
|
||||
|
||||
Subscribe by writing to:
|
||||
<linphone-developers-request@nongnu.org> with a subject set to "subscribe".
|
||||
|
||||
Commercial support and licensing is provided by Belledonne Communications
|
||||
http://www.belledonne-communications.com
|
||||
|
||||
|
||||
|
|
@ -1,180 +0,0 @@
|
|||
dnl -*- autoconf -*-
|
||||
AC_DEFUN([MS_CHECK_DEP],[
|
||||
dnl $1=dependency description
|
||||
dnl $2=dependency short name, will be suffixed with _CFLAGS and _LIBS
|
||||
dnl $3=headers's place
|
||||
dnl $4=lib's place
|
||||
dnl $5=header to check
|
||||
dnl $6=lib to check
|
||||
dnl $7=function to check in library
|
||||
|
||||
dep_name=$2
|
||||
dep_headersdir=$3
|
||||
dep_libsdir=$4
|
||||
dep_header=$5
|
||||
dep_lib=$6
|
||||
dep_funclib=$7
|
||||
other_libs=$8
|
||||
|
||||
CPPFLAGS_save=$CPPFLAGS
|
||||
LDFLAGS_save=$LDFLAGS
|
||||
LIBS_save=$LIBS
|
||||
|
||||
case "$target_os" in
|
||||
*mingw*)
|
||||
ms_check_dep_mingw_found=yes
|
||||
;;
|
||||
esac
|
||||
if test "$ms_check_dep_mingw_found" != "yes" ; then
|
||||
CPPFLAGS=`echo "-I$dep_headersdir"|sed -e "s:-I/usr/include[\ ]*$::"`
|
||||
LDFLAGS=`echo "-L$dep_libsdir"|sed -e "s:-L/usr/lib\(64\)*[\ ]*::"`
|
||||
else
|
||||
CPPFLAGS="-I$dep_headersdir"
|
||||
LDFLAGS="-L$dep_libsdir"
|
||||
fi
|
||||
|
||||
|
||||
LIBS="-l$dep_lib"
|
||||
|
||||
|
||||
$2_CFLAGS="$CPPFLAGS"
|
||||
$2_LIBS="$LDFLAGS $LIBS"
|
||||
|
||||
AC_CHECK_HEADERS([$dep_header],[AC_CHECK_LIB([$dep_lib],[$dep_funclib],found=yes,found=no, [$other_libs])
|
||||
],found=no)
|
||||
|
||||
if test "$found" = "yes" ; then
|
||||
eval $2_found=yes
|
||||
else
|
||||
eval $2_found=no
|
||||
eval $2_CFLAGS=
|
||||
eval $2_LIBS=
|
||||
fi
|
||||
AC_SUBST($2_CFLAGS)
|
||||
AC_SUBST($2_LIBS)
|
||||
CPPFLAGS=$CPPFLAGS_save
|
||||
LDFLAGS=$LDFLAGS_save
|
||||
LIBS=$LIBS_save
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN([MS_CHECK_VIDEO],[
|
||||
|
||||
dnl conditionnal build of video support
|
||||
AC_ARG_ENABLE(video,
|
||||
[ --enable-video Turn on video support compiling],
|
||||
[case "${enableval}" in
|
||||
yes) video=true ;;
|
||||
no) video=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-video) ;;
|
||||
esac],[video=true])
|
||||
|
||||
AC_ARG_WITH( ffmpeg,
|
||||
[ --with-ffmpeg Sets the installation prefix of ffmpeg, needed for video support. [default=/usr] ],
|
||||
[ ffmpegdir=${withval}],[ ffmpegdir=/usr ])
|
||||
|
||||
if test "$video" = "true"; then
|
||||
|
||||
dnl test for ffmpeg presence
|
||||
PKG_CHECK_MODULES(FFMPEG, [libavcodec >= 51.0.0 ],ffmpeg_found=yes , ffmpeg_found=no)
|
||||
if test x$ffmpeg_found = xno ; then
|
||||
AC_MSG_ERROR([Could not find libavcodec (from ffmpeg) headers and library. This is mandatory for video support])
|
||||
fi
|
||||
PKG_CHECK_MODULES(SWSCALE, [libswscale >= 0.7.0 ],swscale_found=yes , swscale_found=no)
|
||||
if test x$swscale_found = xno ; then
|
||||
AC_MSG_ERROR([Could not find libswscale (from ffmpeg) headers and library. This is mandatory for video support])
|
||||
fi
|
||||
|
||||
dnl check for new/old ffmpeg header file layout
|
||||
CPPFLAGS_save=$CPPFLAGS
|
||||
CPPFLAGS="$FFMPEG_CFLAGS $CPPFLAGS"
|
||||
AC_CHECK_HEADERS(libavcodec/avcodec.h)
|
||||
CPPFLAGS=$CPPFLAGS_save
|
||||
|
||||
dnl to workaround a bug on debian and ubuntu, check if libavcodec needs -lvorbisenc to compile
|
||||
AC_CHECK_LIB(avcodec,avcodec_register_all, novorbis=yes , [
|
||||
LIBS="$LIBS -lvorbisenc"
|
||||
], $FFMPEG_LIBS )
|
||||
|
||||
dnl when swscale feature is not provided by
|
||||
dnl libswscale, its features are swallowed by
|
||||
dnl libavcodec, but without swscale.h and without any
|
||||
dnl declaration into avcodec.h (this is to be
|
||||
dnl considered as an ffmpeg bug).
|
||||
dnl
|
||||
dnl #if defined(HAVE_LIBAVCODEC_AVCODEC_H) && !defined(HAVE_LIBSWSCALE_SWSCALE_H)
|
||||
dnl # include "swscale.h" // private linhone swscale.h
|
||||
dnl #endif
|
||||
CPPFLAGS_save=$CPPFLAGS
|
||||
CPPFLAGS="$SWSCALE_CFLAGS $CPPFLAGS"
|
||||
AC_CHECK_HEADERS(libswscale/swscale.h)
|
||||
CPPFLAGS=$CPPFLAGS_save
|
||||
|
||||
AC_ARG_ENABLE(sdl,
|
||||
[ --disable-sdl Disable SDL support],
|
||||
[case "${enableval}" in
|
||||
yes) enable_sdl=true ;;
|
||||
no) enable_sdl=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --disable-sdl) ;;
|
||||
esac],[enable_sdl=true])
|
||||
|
||||
sdl_found=no
|
||||
if test "$enable_sdl" = "true"; then
|
||||
PKG_CHECK_MODULES(SDL, [sdl >= 1.2.0 ],sdl_found=yes,sdl_found=no)
|
||||
|
||||
if test "$sdl_found" = "no" && test "$mingw_found" != "yes"; then
|
||||
AC_MSG_ERROR([Could not find libsdl headers and library. This is mandatory for video support])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(theora,
|
||||
[ --disable-theora Disable theora support],
|
||||
[case "${enableval}" in
|
||||
yes) theora=true ;;
|
||||
no) theora=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --disable-theora) ;;
|
||||
esac],[theora=true])
|
||||
|
||||
if test x$theora = xtrue; then
|
||||
PKG_CHECK_MODULES(THEORA, [theora >= 1.0alpha7 ], [have_theora=yes],
|
||||
[have_theora=no])
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(x11,
|
||||
[ --disable-x11 Disable X11 support],
|
||||
[case "${enableval}" in
|
||||
yes) enable_x11=true ;;
|
||||
no) enable_x11=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
|
||||
esac],[enable_x11=true])
|
||||
|
||||
if test "$enable_x11" = "true"; then
|
||||
AC_CHECK_HEADERS(X11/Xlib.h)
|
||||
fi
|
||||
|
||||
VIDEO_CFLAGS=" $FFMPEG_CFLAGS -DVIDEO_ENABLED"
|
||||
VIDEO_LIBS=" $FFMPEG_LIBS $SWSCALE_LIBS"
|
||||
|
||||
if test "$sdl_found" = "yes" ; then
|
||||
VIDEO_CFLAGS="$VIDEO_CFLAGS $SDL_CFLAGS -DHAVE_SDL"
|
||||
VIDEO_LIBS="$VIDEO_LIBS $SDL_LIBS"
|
||||
fi
|
||||
|
||||
if test "${ac_cv_header_X11_Xlib_h}" = "yes" ; then
|
||||
VIDEO_LIBS="$VIDEO_LIBS -lX11"
|
||||
fi
|
||||
|
||||
if test "$mingw_found" = "yes" ; then
|
||||
VIDEO_LIBS="$VIDEO_LIBS -lvfw32"
|
||||
fi
|
||||
|
||||
case $target_os in
|
||||
*darwin*)
|
||||
LIBS="$LIBS -framework QuickTime"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
AC_SUBST(VIDEO_CFLAGS)
|
||||
AC_SUBST(VIDEO_LIBS)
|
||||
])
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
AM_VERSION="1.10"
|
||||
if ! type aclocal-$AM_VERSION 1>/dev/null 2>&1; then
|
||||
# automake-1.10 (recommended) is not available on Fedora 8
|
||||
AUTOMAKE=automake
|
||||
ACLOCAL=aclocal
|
||||
else
|
||||
ACLOCAL=aclocal-${AM_VERSION}
|
||||
AUTOMAKE=automake-${AM_VERSION}
|
||||
fi
|
||||
|
||||
if test -f /opt/local/bin/glibtoolize ; then
|
||||
# darwin
|
||||
LIBTOOLIZE=/opt/local/bin/glibtoolize
|
||||
else
|
||||
LIBTOOLIZE=libtoolize
|
||||
fi
|
||||
if test -d /opt/local/share/aclocal ; then
|
||||
ACLOCAL_ARGS="-I /opt/local/share/aclocal"
|
||||
fi
|
||||
|
||||
echo "Generating build scripts in mediastreamer..."
|
||||
set -x
|
||||
$LIBTOOLIZE --copy --force
|
||||
$ACLOCAL $ACLOCAL_ARGS
|
||||
autoheader
|
||||
$AUTOMAKE --force-missing --add-missing --copy
|
||||
autoconf
|
||||
|
||||
2
linphone/mediastreamer2/build/.gitignore
vendored
2
linphone/mediastreamer2/build/.gitignore
vendored
|
|
@ -1,2 +0,0 @@
|
|||
Makefile.in
|
||||
Makefile
|
||||
|
|
@ -1 +0,0 @@
|
|||
SUBDIRS= win32native win32-novideo wince winmob
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
Makefile.in
|
||||
Makefile
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
EXTRA_DIST=alldescs.h mediastreamer2.vcproj mediastream.vcproj mediastreamer2.def
|
||||
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
#include "mediastreamer2/msfilter.h"
|
||||
|
||||
extern MSFilterDesc ms_alaw_dec_desc;
|
||||
extern MSFilterDesc ms_alaw_enc_desc;
|
||||
extern MSFilterDesc ms_ulaw_dec_desc;
|
||||
extern MSFilterDesc ms_ulaw_enc_desc;
|
||||
extern MSFilterDesc ms_file_player_desc;
|
||||
extern MSFilterDesc ms_rtp_send_desc;
|
||||
extern MSFilterDesc ms_rtp_recv_desc;
|
||||
extern MSFilterDesc ms_dtmf_gen_desc;
|
||||
extern MSFilterDesc ms_file_rec_desc;
|
||||
extern MSFilterDesc ms_speex_dec_desc;
|
||||
extern MSFilterDesc ms_speex_enc_desc;
|
||||
extern MSFilterDesc ms_gsm_dec_desc;
|
||||
extern MSFilterDesc ms_gsm_enc_desc;
|
||||
extern MSFilterDesc ms_speex_ec_desc;
|
||||
extern MSFilterDesc ms_tee_desc;
|
||||
extern MSFilterDesc ms_conf_desc;
|
||||
//extern MSFilterDesc alsa_write_desc;
|
||||
//extern MSFilterDesc alsa_read_desc;
|
||||
//extern MSFilterDesc oss_read_desc;
|
||||
//extern MSFilterDesc oss_write_desc;
|
||||
//extern MSFilterDesc ms_arts_read_desc;
|
||||
//extern MSFilterDesc ms_arts_write_desc;
|
||||
//extern MSFilterDesc ms_v4l_desc;
|
||||
//extern MSFilterDesc ms_sdl_out_desc;
|
||||
//extern MSFilterDesc ms_h263_enc_desc;
|
||||
//extern MSFilterDesc ms_h263_dec_desc;
|
||||
extern MSFilterDesc ms_join_desc;
|
||||
extern MSFilterDesc ms_resample_desc;
|
||||
extern MSFilterDesc ms_volume_desc;
|
||||
extern MSFilterDesc ms_ice_desc;
|
||||
extern MSFilterDesc ms_equalizer_desc;
|
||||
MSFilterDesc * ms_filter_descs[]={
|
||||
&ms_alaw_dec_desc,
|
||||
&ms_alaw_enc_desc,
|
||||
&ms_ulaw_dec_desc,
|
||||
&ms_ulaw_enc_desc,
|
||||
&ms_file_player_desc,
|
||||
&ms_rtp_send_desc,
|
||||
&ms_rtp_recv_desc,
|
||||
&ms_dtmf_gen_desc,
|
||||
&ms_file_rec_desc,
|
||||
&ms_speex_dec_desc,
|
||||
&ms_speex_enc_desc,
|
||||
&ms_gsm_dec_desc,
|
||||
&ms_gsm_enc_desc,
|
||||
&ms_speex_ec_desc,
|
||||
&ms_tee_desc,
|
||||
&ms_conf_desc,
|
||||
//&alsa_write_desc,
|
||||
//&alsa_read_desc,
|
||||
//&oss_read_desc,
|
||||
//&oss_write_desc,
|
||||
//&ms_arts_read_desc,
|
||||
//&ms_arts_write_desc,
|
||||
//&ms_v4l_desc,
|
||||
//&ms_sdl_out_desc,
|
||||
//&ms_h263_enc_desc,
|
||||
//&ms_h263_dec_desc,
|
||||
&ms_join_desc,
|
||||
#ifndef DISABLE_RESAMPLE
|
||||
&ms_resample_desc,
|
||||
#endif
|
||||
&ms_volume_desc,
|
||||
&ms_ice_desc,
|
||||
&ms_equalizer_desc,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
|
@ -1,143 +0,0 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="mediastream"
|
||||
ProjectGUID="{92C82019-2DAC-4923-A05C-681AD5BDD04B}"
|
||||
Keyword="Win32Proj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="Debug"
|
||||
IntermediateDirectory="Debug"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""..\..";"..\..\..\oRTP\include""
|
||||
PreprocessorDefinitions="ICE_TEST;ORTP_INET6;WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="FALSE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
BufferSecurityCheck="TRUE"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/mediastream.pdb"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Ws2_32.lib Winmm.lib ortp.lib mediastreamer2.lib"
|
||||
OutputFile="$(OutDir)/mediastream.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories=""$(IntDir)/";"..\..\..\oRTP\build\win32native\debug""
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/mediastream.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="Release"
|
||||
IntermediateDirectory="Release"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="".";"..\..\..\oRTP\include""
|
||||
PreprocessorDefinitions="ICE_TEST;ORTP_INET6;WIN32;NDEBUG;_CONSOLE"
|
||||
MinimalRebuild="FALSE"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/mediastream.pdb"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Ws2_32.lib Winmm.lib ortp.lib mediastreamer2.lib"
|
||||
OutputFile="$(OutDir)/mediastream.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories=""$(IntDir)/";"..\..\..\oRTP\build\win32native\debug""
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
||||
<File
|
||||
RelativePath="..\..\tests\mediastream.c">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
LIBRARY mediastreamer2
|
||||
|
||||
EXPORTS
|
||||
|
||||
ms_init
|
||||
ms_exit
|
||||
|
||||
ms_filter_new
|
||||
ms_filter_new_from_desc
|
||||
ms_filter_destroy
|
||||
ms_filter_create_encoder
|
||||
ms_filter_create_decoder
|
||||
ms_filter_call_method
|
||||
ms_filter_call_method_noarg
|
||||
ms_filter_link
|
||||
ms_filter_unlink
|
||||
ms_filter_preprocess
|
||||
ms_filter_postprocess
|
||||
ms_filter_codec_supported
|
||||
ms_filter_register
|
||||
ms_filter_new_from_name
|
||||
ms_filter_set_notify_callback
|
||||
|
||||
ms_snd_card_new
|
||||
ms_snd_card_manager_destroy
|
||||
ms_snd_card_manager_reload
|
||||
ms_snd_card_manager_add_card
|
||||
ms_snd_card_manager_register_desc
|
||||
ms_snd_card_create_reader
|
||||
ms_snd_card_create_writer
|
||||
ms_snd_card_get_name
|
||||
ms_snd_card_get_string_id
|
||||
ms_snd_card_manager_get
|
||||
ms_snd_card_manager_get_default_card
|
||||
ms_snd_card_manager_get_default_capture_card
|
||||
ms_snd_card_manager_get_default_playback_card
|
||||
ms_snd_card_manager_get_card
|
||||
ms_snd_card_manager_get_list
|
||||
ms_snd_card_dup
|
||||
ms_snd_card_destroy
|
||||
ms_snd_card_set_level
|
||||
ms_snd_card_get_level
|
||||
ms_snd_card_set_capture
|
||||
ms_snd_card_set_control
|
||||
ms_snd_card_get_control
|
||||
|
||||
ms_ticker_new
|
||||
ms_ticker_set_name
|
||||
ms_ticker_destroy
|
||||
ms_ticker_attach
|
||||
ms_ticker_detach
|
||||
ms_ticker_set_time_func
|
||||
ms_ticker_print_graphs
|
||||
|
||||
ms_bufferizer_init
|
||||
ms_bufferizer_uninit
|
||||
ms_bufferizer_read
|
||||
ms_bufferizer_put
|
||||
ms_bufferizer_put_from_queue
|
||||
|
||||
audio_stream_start
|
||||
audio_stream_stop
|
||||
audio_stream_free
|
||||
create_duplex_rtpsession
|
||||
|
||||
ms_load_plugins
|
||||
|
||||
ms_is_ipv6
|
||||
|
||||
ms_sleep
|
||||
|
||||
ms_queue_init
|
||||
ms_queue_flush
|
||||
|
||||
ms_list_free
|
||||
ms_list_for_each
|
||||
ms_list_append
|
||||
ms_list_remove
|
||||
|
||||
ms_discover_mtu
|
||||
ms_set_mtu
|
||||
|
||||
|
|
@ -1,416 +0,0 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Name="mediastreamer2"
|
||||
ProjectGUID="{4A07BB2B-F56E-4F1B-A729-D28B782AC128}"
|
||||
RootNamespace="mediastreamer2"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="Debug"
|
||||
IntermediateDirectory="Debug"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
CharacterSet="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\win32-bin\include,".";"..\..\..\mediastreamer2\include";"..\..\..\oRTP\include";..\..\..\codecs\speex\include;..\..\..\codecs\gsm\inc"
|
||||
PreprocessorDefinitions="__DIRECTSOUND_ENABLED__;HAVE_SPEEXDSP;__VIDEO_DISABLED__;EMULATE_INTTYPES;AMD_HACK;CONF_GRAN_MAX=12;HAVE_SPEEX_NOISE;ICE_TEST;ORTP_INET6;WIN32;_DEBUG;_WINDOWS;_USRDLL;MEDIASTREAMER2_EXPORTS;WINDOW_NATIVE;_CRT_SECURE_NO_DEPRECATE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/libmediastreamer2.pdb"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
CompileAs="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="strmiids.lib Ws2_32.lib Winmm.lib ortp.lib libspeexd.lib libspeexdspd.lib libcmtd.lib"
|
||||
OutputFile="$(IntDir)/mediastreamer2.dll"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories=""..\..\..\oRTP\build\win32native\debug",..\..\..\codecs\speex\lib"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ModuleDefinitionFile="mediastreamer2.def"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/mediastreamer2.pdb"
|
||||
SubSystem="2"
|
||||
ImportLibrary="$(IntDir)/mediastreamer2.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="Release"
|
||||
IntermediateDirectory="Release"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\..\win32-bin\include,".";"..\..\..\mediastreamer2\include";"..\..\..\oRTP\include";..\..\..\codecs\speex\include;..\..\..\codecs\gsm\inc"
|
||||
PreprocessorDefinitions="__DIRECTSOUND_ENABLED__;HAVE_SPEEXDSP;__VIDEO_DISABLED__;CONF_GRAN_MAX=12;AMD_HACK;HAVE_SPEEX_NOISE;ICE_TEST;ORTP_INET6;WIN32;NDEBUG;_WINDOWS;_USRDLL;MEDIASTREAMER2_EXPORTS;WINDOW_NATIVE;_CRT_SECURE_NO_DEPRECATE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/libmediastreamer2.pdb"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
CallingConvention="0"
|
||||
CompileAs="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="strmiids.lib Ws2_32.lib Winmm.lib ortp.lib libspeex.lib libspeexdsp.lib libcmt.lib"
|
||||
OutputFile="$(IntDir)/mediastreamer2.dll"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories=""..\..\..\oRTP\build\win32native\release",..\..\..\codecs\speex\lib"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ModuleDefinitionFile="mediastreamer2.def"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
ImportLibrary="$(IntDir)/mediastreamer2.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\_kiss_fft_guts.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\alaw.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\audiostream.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\dsptools.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\dtmfgen.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\equalizer.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\gsm.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\ice.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\kiss_fft.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\kiss_fft.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\kiss_fftr.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\kiss_fftr.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\mscommon.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msconf.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msfileplayer_win.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msfilerec_win.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msfilter.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msjoin.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msqueue.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msresample.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msrtp.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\mssndcard.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msspeex.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msticker.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msvolume.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\mtu.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\speexec.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\tee.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\ulaw.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\winsnd2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\winsndds.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\alldescs.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\allfilters.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\dsptools.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\dtmfgen.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\g711common.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\ice.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\mediastream.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\mscommon.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msequalizer.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msfileplayer.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msfilerec.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msfilter.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msqueue.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msrtp.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\mssndcard.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msticker.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msvolume.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\rfc2429.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\waveheader.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\mediastreamer2.def"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
Makefile.in
|
||||
Makefile
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
EXTRA_DIST=alldescs.h mediastreamer2.vcproj mediastream.vcproj videodisplay.vcproj mediastreamer2.def
|
||||
|
||||
|
|
@ -1,90 +0,0 @@
|
|||
#include "mediastreamer2/msfilter.h"
|
||||
|
||||
extern MSFilterDesc ms_alaw_dec_desc;
|
||||
extern MSFilterDesc ms_alaw_enc_desc;
|
||||
extern MSFilterDesc ms_ulaw_dec_desc;
|
||||
extern MSFilterDesc ms_ulaw_enc_desc;
|
||||
extern MSFilterDesc ms_file_player_desc;
|
||||
extern MSFilterDesc ms_rtp_send_desc;
|
||||
extern MSFilterDesc ms_rtp_recv_desc;
|
||||
extern MSFilterDesc ms_dtmf_gen_desc;
|
||||
extern MSFilterDesc ms_file_rec_desc;
|
||||
extern MSFilterDesc ms_speex_dec_desc;
|
||||
extern MSFilterDesc ms_speex_enc_desc;
|
||||
extern MSFilterDesc ms_gsm_dec_desc;
|
||||
extern MSFilterDesc ms_gsm_enc_desc;
|
||||
extern MSFilterDesc ms_speex_ec_desc;
|
||||
extern MSFilterDesc ms_tee_desc;
|
||||
extern MSFilterDesc ms_void_sink_desc;
|
||||
extern MSFilterDesc ms_conf_desc;
|
||||
extern MSFilterDesc ms_v4w_desc;
|
||||
extern MSFilterDesc ms_video_out_desc;
|
||||
extern MSFilterDesc ms_h263_enc_desc;
|
||||
extern MSFilterDesc ms_h263_dec_desc;
|
||||
extern MSFilterDesc ms_h263_old_enc_desc;
|
||||
extern MSFilterDesc ms_h263_old_dec_desc;
|
||||
extern MSFilterDesc ms_mpeg4_enc_desc;
|
||||
extern MSFilterDesc ms_mpeg4_dec_desc;
|
||||
extern MSFilterDesc ms_snow_enc_desc;
|
||||
extern MSFilterDesc ms_snow_dec_desc;
|
||||
extern MSFilterDesc ms_theora_enc_desc;
|
||||
extern MSFilterDesc ms_theora_dec_desc;
|
||||
extern MSFilterDesc ms_mjpeg_enc_desc;
|
||||
extern MSFilterDesc ms_mjpeg_dec_desc;
|
||||
extern MSFilterDesc ms_size_conv_desc;
|
||||
extern MSFilterDesc ms_pix_conv_desc;
|
||||
extern MSFilterDesc ms_join_desc;
|
||||
extern MSFilterDesc ms_resample_desc;
|
||||
extern MSFilterDesc ms_volume_desc;
|
||||
extern MSFilterDesc ms_static_image_desc;
|
||||
extern MSFilterDesc ms_mire_desc;
|
||||
extern MSFilterDesc ms_vfw_desc;
|
||||
extern MSFilterDesc ms_ice_desc;
|
||||
extern MSFilterDesc ms_equalizer_desc;
|
||||
MSFilterDesc * ms_filter_descs[]={
|
||||
&ms_alaw_dec_desc,
|
||||
&ms_alaw_enc_desc,
|
||||
&ms_ulaw_dec_desc,
|
||||
&ms_ulaw_enc_desc,
|
||||
&ms_file_player_desc,
|
||||
&ms_rtp_send_desc,
|
||||
&ms_rtp_recv_desc,
|
||||
&ms_dtmf_gen_desc,
|
||||
&ms_file_rec_desc,
|
||||
&ms_speex_dec_desc,
|
||||
&ms_speex_enc_desc,
|
||||
&ms_gsm_dec_desc,
|
||||
&ms_gsm_enc_desc,
|
||||
&ms_speex_ec_desc,
|
||||
&ms_tee_desc,
|
||||
&ms_void_sink_desc,
|
||||
&ms_conf_desc,
|
||||
&ms_v4w_desc,
|
||||
&ms_video_out_desc,
|
||||
&ms_h263_old_enc_desc,
|
||||
&ms_h263_old_dec_desc,
|
||||
&ms_h263_enc_desc,
|
||||
&ms_h263_dec_desc,
|
||||
&ms_mpeg4_enc_desc,
|
||||
&ms_mpeg4_dec_desc,
|
||||
&ms_snow_enc_desc,
|
||||
&ms_snow_dec_desc,
|
||||
&ms_theora_enc_desc,
|
||||
&ms_theora_dec_desc,
|
||||
&ms_mjpeg_enc_desc,
|
||||
&ms_mjpeg_dec_desc,
|
||||
&ms_size_conv_desc,
|
||||
&ms_pix_conv_desc,
|
||||
&ms_join_desc,
|
||||
#ifndef NORESAMPLE
|
||||
&ms_resample_desc,
|
||||
#endif
|
||||
&ms_volume_desc,
|
||||
&ms_static_image_desc,
|
||||
&ms_mire_desc,
|
||||
&ms_vfw_desc,
|
||||
&ms_ice_desc,
|
||||
&ms_equalizer_desc,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
|
@ -1,211 +0,0 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Name="mediastream"
|
||||
ProjectGUID="{92C82019-2DAC-4923-A05C-681AD5BDD04B}"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="Debug"
|
||||
IntermediateDirectory="Debug"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="".";"..\..\include";"..\..\..\oRTP\include""
|
||||
PreprocessorDefinitions="VIDEO_ENABLED;OSIP_MT;ICE_TEST;ORTP_INET6;_CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="false"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
BufferSecurityCheck="true"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/mediastream.pdb"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Ws2_32.lib Winmm.lib ortp.lib mediastreamer2.lib"
|
||||
OutputFile="$(OutDir)/mediastream.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories=""$(IntDir)/";"..\..\..\oRTP\build\win32native\debug""
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/mediastream.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="Release"
|
||||
IntermediateDirectory="Release"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="".";"..\..\include";"..\..\..\oRTP\include""
|
||||
PreprocessorDefinitions="OSIP_MT;ICE_TEST;ORTP_INET6;_CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_CONSOLE"
|
||||
MinimalRebuild="false"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/mediastream.pdb"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Ws2_32.lib Winmm.lib ortp.lib mediastreamer2.lib"
|
||||
OutputFile="$(OutDir)/mediastream.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories=""$(IntDir)/";"..\..\..\oRTP\build\win32native\debug""
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\tests\mediastream.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
|
|
@ -1,117 +0,0 @@
|
|||
LIBRARY mediastreamer2
|
||||
|
||||
EXPORTS
|
||||
|
||||
ms_init
|
||||
ms_exit
|
||||
|
||||
ms_filter_new
|
||||
ms_filter_new_from_desc
|
||||
ms_filter_destroy
|
||||
ms_filter_create_encoder
|
||||
ms_filter_create_decoder
|
||||
ms_filter_call_method
|
||||
ms_filter_call_method_noarg
|
||||
ms_filter_link
|
||||
ms_filter_unlink
|
||||
ms_filter_preprocess
|
||||
ms_filter_postprocess
|
||||
ms_filter_codec_supported
|
||||
ms_filter_register
|
||||
ms_filter_new_from_name
|
||||
ms_filter_set_notify_callback
|
||||
|
||||
ms_snd_card_new
|
||||
ms_snd_card_manager_destroy
|
||||
ms_snd_card_manager_reload
|
||||
ms_snd_card_manager_add_card
|
||||
ms_snd_card_manager_register_desc
|
||||
ms_snd_card_create_reader
|
||||
ms_snd_card_create_writer
|
||||
ms_snd_card_get_name
|
||||
ms_snd_card_get_string_id
|
||||
ms_snd_card_manager_get
|
||||
ms_snd_card_manager_get_default_card
|
||||
ms_snd_card_manager_get_default_capture_card
|
||||
ms_snd_card_manager_get_default_playback_card
|
||||
ms_snd_card_manager_get_card
|
||||
ms_snd_card_manager_get_list
|
||||
ms_snd_card_dup
|
||||
ms_snd_card_destroy
|
||||
ms_snd_card_set_level
|
||||
ms_snd_card_get_level
|
||||
ms_snd_card_set_capture
|
||||
ms_snd_card_set_control
|
||||
ms_snd_card_get_control
|
||||
|
||||
ms_ticker_new
|
||||
ms_ticker_set_name
|
||||
ms_ticker_destroy
|
||||
ms_ticker_attach
|
||||
ms_ticker_detach
|
||||
ms_ticker_set_time_func
|
||||
ms_ticker_print_graphs
|
||||
|
||||
ms_bufferizer_init
|
||||
ms_bufferizer_uninit
|
||||
ms_bufferizer_read
|
||||
ms_bufferizer_put
|
||||
ms_bufferizer_put_from_queue
|
||||
|
||||
audio_stream_start
|
||||
audio_stream_stop
|
||||
audio_stream_free
|
||||
create_duplex_rtpsession
|
||||
|
||||
ms_load_plugins
|
||||
|
||||
ms_display_new
|
||||
ms_display_set_window_id
|
||||
ms_display_desc_set_default
|
||||
ms_display_destroy
|
||||
|
||||
video_preview_stop
|
||||
video_preview_start
|
||||
video_stream_new
|
||||
video_stream_start
|
||||
video_stream_stop
|
||||
video_stream_iterate
|
||||
video_stream_set_sent_video_size
|
||||
|
||||
ms_is_ipv6
|
||||
|
||||
yuv_buf_alloc
|
||||
yuv_buf_init_from_mblk
|
||||
yuv_buf_init_from_mblk_with_size
|
||||
|
||||
ms_sleep
|
||||
|
||||
ms_queue_init
|
||||
ms_queue_flush
|
||||
|
||||
rfc3984_init
|
||||
rfc3984_uninit
|
||||
rfc3984_pack
|
||||
rfc3984_unpack
|
||||
rfc3984_set_mode
|
||||
|
||||
ms_list_free
|
||||
ms_list_for_each
|
||||
ms_list_append
|
||||
ms_list_remove
|
||||
|
||||
ms_discover_mtu
|
||||
ms_set_mtu
|
||||
|
||||
ms_web_cam_new
|
||||
ms_web_cam_manager_reload
|
||||
ms_web_cam_manager_get_default_cam
|
||||
ms_web_cam_manager_get
|
||||
ms_web_cam_manager_get_list
|
||||
ms_web_cam_manager_get_cam
|
||||
ms_web_cam_manager_add_cam
|
||||
ms_web_cam_manager_register_desc
|
||||
ms_web_cam_create_reader
|
||||
ms_web_cam_get_driver_type
|
||||
ms_web_cam_get_name
|
||||
ms_web_cam_get_string_id
|
||||
|
|
@ -1,504 +0,0 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Name="mediastreamer2"
|
||||
ProjectGUID="{4A07BB2B-F56E-4F1B-A729-D28B782AC128}"
|
||||
RootNamespace="mediastreamer2"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="Debug"
|
||||
IntermediateDirectory="Debug"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
CharacterSet="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\portaudio\include;"..\..\..\win32-bin\include\baseclasses";"..\..\..\win32-bin\include";.;..\..\..\mediastreamer2\include;..\..\..\oRTP\include;..\..\..\codecs\speex\include;..\..\..\codecs\gsm\inc"
|
||||
PreprocessorDefinitions="__DIRECTSOUND_ENABLED__;__STDC_CONSTANT_MACROS;HAVE_LIBSWSCALE_SWSCALE_H;HAVE_LIBAVCODEC_AVCODEC_H;HAVE_SPEEXDSP;HAVE_DIRECTSHOW;VIDEO_ENABLED;AMD_HACK;ORTP_INET6;WIN32;_DEBUG;_WINDOWS;_USRDLL;MEDIASTREAMER2_EXPORTS;WINDOW_NATIVE;_CRT_SECURE_NO_DEPRECATE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/libmediastreamer2.pdb"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
CompileAs="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="swscale.lib avcodec-52.lib quartz.lib dmoguids.lib strmiids.lib strmbasd.lib libtheora.lib vfw32.lib Ws2_32.lib Winmm.lib ortp.lib libspeexd.lib libspeexdspd.lib libcmtd.lib"
|
||||
OutputFile="$(IntDir)/mediastreamer2.dll"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\..\win32-bin\lib,"..\..\..\oRTP\build\win32native\debug",..\..\..\codecs\speex\lib"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ModuleDefinitionFile="mediastreamer2.def"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/mediastreamer2.pdb"
|
||||
SubSystem="2"
|
||||
ImportLibrary="$(IntDir)/mediastreamer2.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="Release"
|
||||
IntermediateDirectory="Release"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\..\portaudio\include;"..\..\..\win32-bin\include\baseclasses";"..\..\..\win32-bin\include";.;..\..\..\mediastreamer2\include;..\..\..\oRTP\include;..\..\..\codecs\speex\include;..\..\..\codecs\gsm\inc"
|
||||
PreprocessorDefinitions="__DIRECTSOUND_ENABLED__;__STDC_CONSTANT_MACROS;HAVE_LIBSWSCALE_SWSCALE_H;HAVE_LIBAVCODEC_AVCODEC_H;HAVE_SPEEXDSP;HAVE_DIRECTSHOW;VIDEO_ENABLED;AMD_HACK;ORTP_INET6;WIN32;NDEBUG;_WINDOWS;_USRDLL;MEDIASTREAMER2_EXPORTS;WINDOW_NATIVE;_CRT_SECURE_NO_DEPRECATE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/libmediastreamer2.pdb"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="0"
|
||||
CallingConvention="0"
|
||||
CompileAs="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="swscale.lib avcodec-52.lib quartz.lib dmoguids.lib strmiids.lib strmbase.lib libtheora.lib vfw32.lib Ws2_32.lib Winmm.lib ortp.lib libspeex.lib libspeexdsp.lib libcmt.lib"
|
||||
OutputFile="$(IntDir)/mediastreamer2.dll"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\..\win32-bin\lib,"..\..\..\oRTP\build\win32native\release",..\..\..\codecs\speex\lib"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ModuleDefinitionFile="mediastreamer2.def"
|
||||
GenerateDebugInformation="false"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
ImportLibrary="$(IntDir)/mediastreamer2.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\alaw.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\audiostream.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\dsptools.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\dtmfgen.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\dxfilter.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\equalizer.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\gsm.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\ice.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\kiss_fft.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\kiss_fftr.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\mire.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\mscommon.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msconf.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msfileplayer_win.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msfilerec_win.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msfilter.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msjoin.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msqueue.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msresample.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msrtp.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\mssndcard.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msspeex.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msticker.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msvideo.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msvolume.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\mswebcam.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\mtu.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\nowebcam.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\pixconv.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\rfc3984.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\sizeconv.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\speexec.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\tee.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\theora.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\ulaw.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\videodec.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\videoenc.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\videoout.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\videostream.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\void.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\winsnd2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\winsndds.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\winvideo2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\winvideods.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\_kiss_fft_guts.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\alldescs.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\allfilters.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\dtmfgen.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\dxfilter.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\ffmpeg-priv.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\g711common.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\ice.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\kiss_fft.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\kiss_fftr.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\mediastream.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\mscommon.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msfileplayer.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msfilerec.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msfilter.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msqueue.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msrtp.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\mssndcard.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msticker.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msv4l.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msvideo.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msvideoout.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msvolume.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\mswebcam.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\nowebcam.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\rfc2429.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\vfw-missing.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\waveheader.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\mediastreamer2.def"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
|
|
@ -1,203 +0,0 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Name="videodisplay"
|
||||
ProjectGUID="{389D13D7-536A-4544-B0DB-DDE98CC53009}"
|
||||
RootNamespace="videodisplay"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="".";"..\..\include";"..\..\..\oRTP\include""
|
||||
PreprocessorDefinitions="OSIP_MT;EMULATE_INTTYPES;ORTP_INET6;_CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Ws2_32.lib Winmm.lib ortp.lib mediastreamer2.lib"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories=""$(IntDir)/";"..\..\..\oRTP\build\win32native\debug""
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="".";"..\..\include";"..\..\..\oRTP\include""
|
||||
PreprocessorDefinitions="OSIP_MT;EMULATE_INTTYPES;ORTP_INET6;_CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Ws2_32.lib Winmm.lib ortp.lib mediastreamer2.lib"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories=""$(IntDir)/";"..\..\..\oRTP\build\win32native\release""
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\tests\videodisplay.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
Makefile
|
||||
Makefile.in
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
EXTRA_DIST=alldescs.h mediastreamer2.vcproj mediastreamer2.def
|
||||
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
#include "mediastreamer2/msfilter.h"
|
||||
|
||||
extern MSFilterDesc ms_alaw_dec_desc;
|
||||
extern MSFilterDesc ms_alaw_enc_desc;
|
||||
extern MSFilterDesc ms_ulaw_dec_desc;
|
||||
extern MSFilterDesc ms_ulaw_enc_desc;
|
||||
extern MSFilterDesc ms_file_player_desc;
|
||||
extern MSFilterDesc ms_rtp_send_desc;
|
||||
extern MSFilterDesc ms_rtp_recv_desc;
|
||||
extern MSFilterDesc ms_dtmf_gen_desc;
|
||||
extern MSFilterDesc ms_file_rec_desc;
|
||||
extern MSFilterDesc ms_speex_dec_desc;
|
||||
extern MSFilterDesc ms_speex_enc_desc;
|
||||
//extern MSFilterDesc ms_gsm_dec_desc;
|
||||
//extern MSFilterDesc ms_gsm_enc_desc;
|
||||
extern MSFilterDesc ms_speex_ec_desc;
|
||||
extern MSFilterDesc ms_tee_desc;
|
||||
extern MSFilterDesc ms_conf_desc;
|
||||
//extern MSFilterDesc alsa_write_desc;
|
||||
//extern MSFilterDesc alsa_read_desc;
|
||||
//extern MSFilterDesc oss_read_desc;
|
||||
//extern MSFilterDesc oss_write_desc;
|
||||
//extern MSFilterDesc ms_arts_read_desc;
|
||||
//extern MSFilterDesc ms_arts_write_desc;
|
||||
//extern MSFilterDesc ms_v4l_desc;
|
||||
//extern MSFilterDesc ms_sdl_out_desc;
|
||||
//extern MSFilterDesc ms_h263_enc_desc;
|
||||
//extern MSFilterDesc ms_h263_dec_desc;
|
||||
extern MSFilterDesc ms_join_desc;
|
||||
extern MSFilterDesc ms_resample_desc;
|
||||
extern MSFilterDesc ms_volume_desc;
|
||||
extern MSFilterDesc ms_ice_desc;
|
||||
extern MSFilterDesc ms_void_sink_desc;
|
||||
MSFilterDesc * ms_filter_descs[]={
|
||||
&ms_alaw_dec_desc,
|
||||
&ms_alaw_enc_desc,
|
||||
&ms_ulaw_dec_desc,
|
||||
&ms_ulaw_enc_desc,
|
||||
&ms_file_player_desc,
|
||||
&ms_rtp_send_desc,
|
||||
&ms_rtp_recv_desc,
|
||||
&ms_dtmf_gen_desc,
|
||||
&ms_file_rec_desc,
|
||||
&ms_speex_dec_desc,
|
||||
&ms_speex_enc_desc,
|
||||
//&ms_gsm_dec_desc,
|
||||
//&ms_gsm_enc_desc,
|
||||
&ms_speex_ec_desc,
|
||||
&ms_tee_desc,
|
||||
&ms_conf_desc,
|
||||
//&alsa_write_desc,
|
||||
//&alsa_read_desc,
|
||||
//&oss_read_desc,
|
||||
//&oss_write_desc,
|
||||
//&ms_arts_read_desc,
|
||||
//&ms_arts_write_desc,
|
||||
//&ms_v4l_desc,
|
||||
//&ms_sdl_out_desc,
|
||||
//&ms_h263_enc_desc,
|
||||
//&ms_h263_dec_desc,
|
||||
&ms_join_desc,
|
||||
&ms_resample_desc,
|
||||
&ms_volume_desc,
|
||||
&ms_ice_desc,
|
||||
&ms_void_sink_desc,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
|
@ -1,129 +0,0 @@
|
|||
LIBRARY mediastreamer2
|
||||
|
||||
EXPORTS
|
||||
|
||||
ms_init
|
||||
ms_exit
|
||||
|
||||
ms_filter_new
|
||||
ms_filter_new_from_desc
|
||||
ms_filter_destroy
|
||||
ms_filter_create_encoder
|
||||
ms_filter_create_decoder
|
||||
ms_filter_call_method
|
||||
ms_filter_call_method_noarg
|
||||
ms_filter_link
|
||||
ms_filter_unlink
|
||||
ms_filter_preprocess
|
||||
ms_filter_postprocess
|
||||
ms_filter_codec_supported
|
||||
ms_filter_register
|
||||
ms_filter_new_from_name
|
||||
ms_filter_set_notify_callback
|
||||
ms_filter_get_encoder
|
||||
|
||||
ms_snd_card_new
|
||||
ms_snd_card_manager_destroy
|
||||
ms_snd_card_manager_reload
|
||||
ms_snd_card_manager_add_card
|
||||
ms_snd_card_manager_register_desc
|
||||
ms_snd_card_create_reader
|
||||
ms_snd_card_create_writer
|
||||
ms_snd_card_get_name
|
||||
ms_snd_card_get_string_id
|
||||
ms_snd_card_manager_get
|
||||
ms_snd_card_manager_get_default_card
|
||||
ms_snd_card_manager_get_default_capture_card
|
||||
ms_snd_card_manager_get_default_playback_card
|
||||
ms_snd_card_manager_get_card
|
||||
ms_snd_card_manager_get_list
|
||||
ms_snd_card_dup
|
||||
ms_snd_card_destroy
|
||||
ms_snd_card_set_level
|
||||
ms_snd_card_get_level
|
||||
ms_snd_card_set_capture
|
||||
ms_snd_card_set_control
|
||||
ms_snd_card_get_control
|
||||
|
||||
ms_web_cam_new
|
||||
ms_web_cam_manager_reload
|
||||
ms_web_cam_manager_get_default_cam
|
||||
ms_web_cam_manager_get
|
||||
ms_web_cam_manager_get_list
|
||||
ms_web_cam_manager_get_cam
|
||||
ms_web_cam_manager_add_cam
|
||||
ms_web_cam_manager_register_desc
|
||||
ms_web_cam_create_reader
|
||||
ms_web_cam_get_driver_type
|
||||
ms_web_cam_get_name
|
||||
ms_web_cam_get_string_id
|
||||
|
||||
ms_ticker_new
|
||||
ms_ticker_set_name
|
||||
ms_ticker_destroy
|
||||
ms_ticker_attach
|
||||
ms_ticker_detach
|
||||
ms_ticker_set_time_func
|
||||
ms_ticker_print_graphs
|
||||
|
||||
|
||||
ms_bufferizer_init
|
||||
ms_bufferizer_uninit
|
||||
ms_bufferizer_read
|
||||
ms_bufferizer_put
|
||||
ms_bufferizer_put_from_queue
|
||||
|
||||
ms_queue_init
|
||||
ms_queue_flush
|
||||
|
||||
rfc3984_init
|
||||
rfc3984_uninit
|
||||
rfc3984_pack
|
||||
rfc3984_unpack
|
||||
rfc3984_set_mode
|
||||
|
||||
ms_load_plugins
|
||||
|
||||
audio_stream_start
|
||||
audio_stream_alive
|
||||
audio_stream_enable_automatic_gain_control
|
||||
audio_stream_set_echo_canceler_params
|
||||
audio_stream_enable_gain_control
|
||||
audio_stream_enable_echo_limiter
|
||||
audio_stream_new
|
||||
audio_stream_set_rtcp_information
|
||||
audio_stream_start_with_files
|
||||
audio_stream_start_now
|
||||
audio_stream_set_relay_session_id
|
||||
audio_stream_play_received_dtmfs
|
||||
audio_stream_set_mic_gain
|
||||
audio_stream_stop
|
||||
audio_stream_play
|
||||
audio_stream_record
|
||||
ms_snd_card_get_capabilities
|
||||
ring_start_with_cb
|
||||
ring_start
|
||||
ring_stop
|
||||
audio_stream_send_dtmf
|
||||
ms_discover_mtu
|
||||
ms_set_mtu
|
||||
|
||||
ms_list_append
|
||||
ms_list_remove
|
||||
ms_list_free
|
||||
ms_list_for_each
|
||||
ms_list_find
|
||||
ms_list_for_each2
|
||||
ms_list_find_custom
|
||||
ms_list_size
|
||||
ms_list_nth_data
|
||||
ms_list_remove_link
|
||||
ms_list_index
|
||||
ms_list_prepend
|
||||
ms_list_position
|
||||
|
||||
ms_time
|
||||
ms_get_payload_max_size
|
||||
ms_sleep
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,2 +0,0 @@
|
|||
EXTRA_DIST=alldescs.h mediastreamer2.vcproj mediastreamer2.sln mediastreamer2.def
|
||||
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
#include "mediastreamer2/msfilter.h"
|
||||
|
||||
extern MSFilterDesc ms_alaw_dec_desc;
|
||||
extern MSFilterDesc ms_alaw_enc_desc;
|
||||
extern MSFilterDesc ms_ulaw_dec_desc;
|
||||
extern MSFilterDesc ms_ulaw_enc_desc;
|
||||
extern MSFilterDesc ms_file_player_desc;
|
||||
extern MSFilterDesc ms_rtp_send_desc;
|
||||
extern MSFilterDesc ms_rtp_recv_desc;
|
||||
extern MSFilterDesc ms_dtmf_gen_desc;
|
||||
extern MSFilterDesc ms_file_rec_desc;
|
||||
extern MSFilterDesc ms_speex_dec_desc;
|
||||
extern MSFilterDesc ms_speex_enc_desc;
|
||||
//extern MSFilterDesc ms_gsm_dec_desc;
|
||||
//extern MSFilterDesc ms_gsm_enc_desc;
|
||||
extern MSFilterDesc ms_speex_ec_desc;
|
||||
extern MSFilterDesc ms_tee_desc;
|
||||
extern MSFilterDesc ms_conf_desc;
|
||||
//extern MSFilterDesc alsa_write_desc;
|
||||
//extern MSFilterDesc alsa_read_desc;
|
||||
//extern MSFilterDesc oss_read_desc;
|
||||
//extern MSFilterDesc oss_write_desc;
|
||||
//extern MSFilterDesc ms_arts_read_desc;
|
||||
//extern MSFilterDesc ms_arts_write_desc;
|
||||
//extern MSFilterDesc ms_v4l_desc;
|
||||
//extern MSFilterDesc ms_sdl_out_desc;
|
||||
//extern MSFilterDesc ms_h263_enc_desc;
|
||||
//extern MSFilterDesc ms_h263_dec_desc;
|
||||
extern MSFilterDesc ms_join_desc;
|
||||
extern MSFilterDesc ms_resample_desc;
|
||||
extern MSFilterDesc ms_volume_desc;
|
||||
extern MSFilterDesc ms_ice_desc;
|
||||
extern MSFilterDesc ms_void_sink_desc;
|
||||
MSFilterDesc * ms_filter_descs[]={
|
||||
&ms_alaw_dec_desc,
|
||||
&ms_alaw_enc_desc,
|
||||
&ms_ulaw_dec_desc,
|
||||
&ms_ulaw_enc_desc,
|
||||
&ms_file_player_desc,
|
||||
&ms_rtp_send_desc,
|
||||
&ms_rtp_recv_desc,
|
||||
&ms_dtmf_gen_desc,
|
||||
&ms_file_rec_desc,
|
||||
&ms_speex_dec_desc,
|
||||
&ms_speex_enc_desc,
|
||||
//&ms_gsm_dec_desc,
|
||||
//&ms_gsm_enc_desc,
|
||||
&ms_speex_ec_desc,
|
||||
&ms_tee_desc,
|
||||
&ms_conf_desc,
|
||||
//&alsa_write_desc,
|
||||
//&alsa_read_desc,
|
||||
//&oss_read_desc,
|
||||
//&oss_write_desc,
|
||||
//&ms_arts_read_desc,
|
||||
//&ms_arts_write_desc,
|
||||
//&ms_v4l_desc,
|
||||
//&ms_sdl_out_desc,
|
||||
//&ms_h263_enc_desc,
|
||||
//&ms_h263_dec_desc,
|
||||
&ms_join_desc,
|
||||
&ms_resample_desc,
|
||||
&ms_volume_desc,
|
||||
&ms_ice_desc,
|
||||
&ms_void_sink_desc,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
|
@ -1,227 +0,0 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Name="echo"
|
||||
ProjectGUID="{B616AC95-748E-4CD5-89AC-772DC3C069D9}"
|
||||
RootNamespace="echo"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Windows Mobile 6 Professional SDK (ARMV4I)"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Windows Mobile 6 Professional SDK (ARMV4I)"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\oRTP\include"
|
||||
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;DEBUG;_CONSOLE;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;ORTP_INET6"
|
||||
MinimalRebuild="true"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES)"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions=" /subsystem:windowsce,5.02"
|
||||
AdditionalDependencies="mediastreamer2.lib oRTP.lib"
|
||||
OutputFile="$(OutDir)/echo.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories=""..\$(PlatformName)\$(ConfigurationName)";"..\..\..\..\oRTP\build\wince\$(PlatformName)\$(ConfigurationName)""
|
||||
DelayLoadDLLs="$(NOINHERIT)"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/echo.pdb"
|
||||
SubSystem="0"
|
||||
StackReserveSize="65536"
|
||||
StackCommitSize="4096"
|
||||
EntryPointSymbol="mainWCRTStartup"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Windows Mobile 6 Professional SDK (ARMV4I)"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
Optimization="2"
|
||||
FavorSizeOrSpeed="2"
|
||||
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;_CONSOLE;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES)"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions=" /subsystem:windowsce,5.02"
|
||||
OutputFile="$(OutDir)/echo.exe"
|
||||
LinkIncremental="1"
|
||||
DelayLoadDLLs="$(NOINHERIT)"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/echo.pdb"
|
||||
SubSystem="0"
|
||||
StackReserveSize="65536"
|
||||
StackCommitSize="4096"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
EntryPointSymbol="mainWCRTStartup"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\tests\echo.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
|
|
@ -1,129 +0,0 @@
|
|||
LIBRARY mediastreamer2
|
||||
|
||||
EXPORTS
|
||||
|
||||
ms_init
|
||||
ms_exit
|
||||
|
||||
ms_filter_new
|
||||
ms_filter_new_from_desc
|
||||
ms_filter_destroy
|
||||
ms_filter_create_encoder
|
||||
ms_filter_create_decoder
|
||||
ms_filter_call_method
|
||||
ms_filter_call_method_noarg
|
||||
ms_filter_link
|
||||
ms_filter_unlink
|
||||
ms_filter_preprocess
|
||||
ms_filter_postprocess
|
||||
ms_filter_codec_supported
|
||||
ms_filter_register
|
||||
ms_filter_new_from_name
|
||||
ms_filter_set_notify_callback
|
||||
ms_filter_get_encoder
|
||||
|
||||
ms_snd_card_new
|
||||
ms_snd_card_manager_destroy
|
||||
ms_snd_card_manager_reload
|
||||
ms_snd_card_manager_add_card
|
||||
ms_snd_card_manager_register_desc
|
||||
ms_snd_card_create_reader
|
||||
ms_snd_card_create_writer
|
||||
ms_snd_card_get_name
|
||||
ms_snd_card_get_string_id
|
||||
ms_snd_card_manager_get
|
||||
ms_snd_card_manager_get_default_card
|
||||
ms_snd_card_manager_get_default_capture_card
|
||||
ms_snd_card_manager_get_default_playback_card
|
||||
ms_snd_card_manager_get_card
|
||||
ms_snd_card_manager_get_list
|
||||
ms_snd_card_dup
|
||||
ms_snd_card_destroy
|
||||
ms_snd_card_set_level
|
||||
ms_snd_card_get_level
|
||||
ms_snd_card_set_capture
|
||||
ms_snd_card_set_control
|
||||
ms_snd_card_get_control
|
||||
|
||||
ms_web_cam_new
|
||||
ms_web_cam_manager_reload
|
||||
ms_web_cam_manager_get_default_cam
|
||||
ms_web_cam_manager_get
|
||||
ms_web_cam_manager_get_list
|
||||
ms_web_cam_manager_get_cam
|
||||
ms_web_cam_manager_add_cam
|
||||
ms_web_cam_manager_register_desc
|
||||
ms_web_cam_create_reader
|
||||
ms_web_cam_get_driver_type
|
||||
ms_web_cam_get_name
|
||||
ms_web_cam_get_string_id
|
||||
|
||||
ms_ticker_new
|
||||
ms_ticker_set_name
|
||||
ms_ticker_destroy
|
||||
ms_ticker_attach
|
||||
ms_ticker_detach
|
||||
ms_ticker_set_time_func
|
||||
ms_ticker_print_graphs
|
||||
|
||||
|
||||
ms_bufferizer_init
|
||||
ms_bufferizer_uninit
|
||||
ms_bufferizer_read
|
||||
ms_bufferizer_put
|
||||
ms_bufferizer_put_from_queue
|
||||
|
||||
ms_queue_init
|
||||
ms_queue_flush
|
||||
|
||||
rfc3984_init
|
||||
rfc3984_uninit
|
||||
rfc3984_pack
|
||||
rfc3984_unpack
|
||||
rfc3984_set_mode
|
||||
|
||||
ms_load_plugins
|
||||
|
||||
audio_stream_start
|
||||
audio_stream_alive
|
||||
audio_stream_enable_automatic_gain_control
|
||||
audio_stream_set_echo_canceler_params
|
||||
audio_stream_enable_gain_control
|
||||
audio_stream_enable_echo_limiter
|
||||
audio_stream_new
|
||||
audio_stream_set_rtcp_information
|
||||
audio_stream_start_with_files
|
||||
audio_stream_start_now
|
||||
audio_stream_set_relay_session_id
|
||||
audio_stream_play_received_dtmfs
|
||||
audio_stream_set_mic_gain
|
||||
audio_stream_stop
|
||||
audio_stream_play
|
||||
audio_stream_record
|
||||
ms_snd_card_get_capabilities
|
||||
ring_start_with_cb
|
||||
ring_start
|
||||
ring_stop
|
||||
audio_stream_send_dtmf
|
||||
ms_discover_mtu
|
||||
ms_set_mtu
|
||||
|
||||
ms_list_append
|
||||
ms_list_remove
|
||||
ms_list_free
|
||||
ms_list_for_each
|
||||
ms_list_find
|
||||
ms_list_for_each2
|
||||
ms_list_find_custom
|
||||
ms_list_size
|
||||
ms_list_nth_data
|
||||
ms_list_remove_link
|
||||
ms_list_index
|
||||
ms_list_prepend
|
||||
ms_list_position
|
||||
|
||||
ms_time
|
||||
ms_get_payload_max_size
|
||||
ms_sleep
|
||||
|
||||
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||
# Visual Studio 2008
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mediastreamer2", "mediastreamer2.vcproj", "{177F5AE2-A40C-4412-8F26-7F85FA32464E}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echo", "echo\echo.vcproj", "{B616AC95-748E-4CD5-89AC-772DC3C069D9}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
|
||||
Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I) = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
|
||||
Debug|Windows Mobile 6 Professional SDK (ARMV4I) = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
Debug|Windows Mobile 6 Standard SDK (ARMV4I) = Debug|Windows Mobile 6 Standard SDK (ARMV4I)
|
||||
Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
|
||||
Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I) = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
|
||||
Release|Windows Mobile 6 Professional SDK (ARMV4I) = Release|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
Release|Windows Mobile 6 Standard SDK (ARMV4I) = Release|Windows Mobile 6 Standard SDK (ARMV4I)
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Debug|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Standard SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Debug|Windows Mobile 6 Standard SDK (ARMV4I).Build.0 = Debug|Windows Mobile 6 Standard SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Debug|Windows Mobile 6 Standard SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 6 Standard SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Release|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Release|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Standard SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Release|Windows Mobile 6 Standard SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Standard SDK (ARMV4I)
|
||||
{177F5AE2-A40C-4412-8F26-7F85FA32464E}.Release|Windows Mobile 6 Standard SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 6 Standard SDK (ARMV4I)
|
||||
{B616AC95-748E-4CD5-89AC-772DC3C069D9}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{B616AC95-748E-4CD5-89AC-772DC3C069D9}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{B616AC95-748E-4CD5-89AC-772DC3C069D9}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{B616AC95-748E-4CD5-89AC-772DC3C069D9}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{B616AC95-748E-4CD5-89AC-772DC3C069D9}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{B616AC95-748E-4CD5-89AC-772DC3C069D9}.Debug|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{B616AC95-748E-4CD5-89AC-772DC3C069D9}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{B616AC95-748E-4CD5-89AC-772DC3C069D9}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{B616AC95-748E-4CD5-89AC-772DC3C069D9}.Release|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{B616AC95-748E-4CD5-89AC-772DC3C069D9}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{B616AC95-748E-4CD5-89AC-772DC3C069D9}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
{B616AC95-748E-4CD5-89AC-772DC3C069D9}.Release|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I)
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
@ -1,933 +0,0 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Name="mediastreamer2"
|
||||
ProjectGUID="{177F5AE2-A40C-4412-8F26-7F85FA32464E}"
|
||||
RootNamespace="mediastreamer2"
|
||||
Keyword="MFCDLLProj"
|
||||
TargetFrameworkVersion="131072"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
|
||||
/>
|
||||
<Platform
|
||||
Name="Windows Mobile 5.0 Smartphone SDK (ARMV4I)"
|
||||
/>
|
||||
<Platform
|
||||
Name="Windows Mobile 6 Standard SDK (ARMV4I)"
|
||||
/>
|
||||
<Platform
|
||||
Name="Windows Mobile 6 Professional SDK (ARMV4I)"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
|
||||
OutputDirectory="$(PlatformName)\Debug"
|
||||
IntermediateDirectory="$(PlatformName)\Debug"
|
||||
ConfigurationType="2"
|
||||
UseOfMFC="0"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
Optimization="2"
|
||||
FavorSizeOrSpeed="1"
|
||||
AdditionalIncludeDirectories=".;..\..\include;..\..\..\oRTP\include;..\..\..\codecs\speex\include"
|
||||
PreprocessorDefinitions="__VIDEO_DISABLED__;AMD_HACK;HAVE_SPEEX_NOISE;ORTP_INET6;MEDIASTREAMER2_EXPORT;_WIN32_WCE=$(CEVER);UNDER_CE=$(CEVER);WINCE;$(PLATFORMDEFINES);_DEBUG;_USRDLL;$(ARCHFAM);$(_ARCHFAM_);POCKETPC2003_UI_MODEL;POCKETPC2003_UI_MODEL"
|
||||
RuntimeLibrary="3"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/mediastreamer2.pdb"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG;_UNICODE;UNICODE;_WIN32_WCE;UNDER_CE"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions=" /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB"
|
||||
AdditionalDependencies=" ws2.lib iphlpapi.lib mmtimer.lib libcmtd.lib dmoguids.lib strmiids.lib strmbase.lib atlsd.lib d3dmx.lib"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ModuleDefinitionFile="mediastreamer2.def"
|
||||
GenerateDebugInformation="true"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory="%CSIDL_PROGRAM_FILES%\vbamsipua"
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)"
|
||||
OutputDirectory="$(PlatformName)\Debug"
|
||||
IntermediateDirectory="$(PlatformName)\Debug"
|
||||
ConfigurationType="2"
|
||||
UseOfMFC="0"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=".;..\..\include;..\..\..\oRTP\include;..\..\..\codecs\speex\include"
|
||||
PreprocessorDefinitions="__VIDEO_DISABLED__;ORTP_INET6;MEDIASTREAMER2_EXPORT;AMD_HACK;_WIN32_WCE=$(CEVER);UNDER_CE=$(CEVER);WINCE;$(PLATFORMDEFINES);_DEBUG;_USRDLL;$(ARCHFAM);$(_ARCHFAM_);SMARTPHONE2003_UI_MODEL;SMARTPHONE2003_UI_MODEL"
|
||||
RuntimeLibrary="3"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/mediastreamer2.pdb"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG;_UNICODE;UNICODE;_WIN32_WCE;UNDER_CE"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions=" /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB"
|
||||
AdditionalDependencies=" ws2.lib iphlpapi.lib mmtimer.lib libcmtd.lib dmoguids.lib strmiids.lib strmbase.lib atlsd.lib d3dmx.lib"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ModuleDefinitionFile="mediastreamer2.def"
|
||||
GenerateDebugInformation="true"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory="%CSIDL_PROGRAM_FILES%\vbamsipua"
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Windows Mobile 6 Standard SDK (ARMV4I)"
|
||||
OutputDirectory="Windows Mobile 6 Standard SDK (ARMV4I)\$(ConfigurationName)"
|
||||
IntermediateDirectory="Windows Mobile 6 Standard SDK (ARMV4I)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
UseOfMFC="0"
|
||||
UseOfATL="0"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
Optimization="2"
|
||||
FavorSizeOrSpeed="1"
|
||||
AdditionalIncludeDirectories=".;..\..\include;..\..\..\oRTP\include;..\..\..\codecs\speex\include"
|
||||
PreprocessorDefinitions="__VIDEO_DISABLED__;AMD_HACK;HAVE_SPEEX_NOISE;ORTP_INET6;MEDIASTREAMER2_EXPORT;_WIN32_WCE=$(CEVER);UNDER_CE=$(CEVER);WINCE;$(PLATFORMDEFINES);_DEBUG;_USRDLL;$(ARCHFAM);$(_ARCHFAM_)"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="3"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/mediastreamer2.pdb"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG;_UNICODE;UNICODE;_WIN32_WCE;UNDER_CE"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions=" /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB"
|
||||
AdditionalDependencies="atlsd.lib strmiids.lib dmoguids.lib strmbase.lib ws2.lib iphlpapi.lib mmtimer.lib libcmtd.lib"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ModuleDefinitionFile="mediastreamer2.def"
|
||||
GenerateDebugInformation="true"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
TargetMachine="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory="%CSIDL_PROGRAM_FILES%\amsipua"
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Windows Mobile 6 Professional SDK (ARMV4I)"
|
||||
OutputDirectory="Windows Mobile 6 Professional SDK (ARMV4I)\$(ConfigurationName)"
|
||||
IntermediateDirectory="Windows Mobile 6 Professional SDK (ARMV4I)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
UseOfMFC="0"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
Optimization="2"
|
||||
FavorSizeOrSpeed="1"
|
||||
AdditionalIncludeDirectories=".;"..\..\..\..\..\linphone-builder\speex\include";..\..;..\..\include;..\..\..\oRTP\include;..\..\..\codecs\speex\include"
|
||||
PreprocessorDefinitions="__VIDEO_DISABLED__;HAVE_SPEEX_NOISE;ORTP_INET6;MEDIASTREAMER2_EXPORT;_WIN32_WCE=$(CEVER);UNDER_CE=$(CEVER);WINCE;$(PLATFORMDEFINES);_DEBUG;_USRDLL;$(ARCHFAM);$(_ARCHFAM_)"
|
||||
RuntimeLibrary="3"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/mediastreamer2.pdb"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG;_UNICODE;UNICODE;_WIN32_WCE;UNDER_CE"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions=" /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB"
|
||||
AdditionalDependencies="ws2.lib iphlpapi.lib mmtimer.lib libcmtd.lib dmoguids.lib strmiids.lib strmbase.lib atlsd.lib d3dmx.lib ortp.lib libspeex.lib libspeexdsp.lib"
|
||||
AdditionalLibraryDirectories=""..\..\..\..\..\linphone-builder\speex\lib";"..\..\..\oRTP\build\wince\$(PlatformName)\$(ConfigurationName)";"..\..\..\..\..\linphone-builder\speex\win32\VS2008\libspeex\$(PlatformName)\Debug_RTL_dll""
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ModuleDefinitionFile="mediastreamer2.def"
|
||||
GenerateDebugInformation="true"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
TargetMachine="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
|
||||
OutputDirectory="$(PlatformName)\Release"
|
||||
IntermediateDirectory="$(PlatformName)\Release"
|
||||
ConfigurationType="2"
|
||||
UseOfMFC="0"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
AdditionalIncludeDirectories=".;..\..\include;..\..\..\oRTP\include;..\..\..\codecs\speex\include"
|
||||
PreprocessorDefinitions="__VIDEO_DISABLED__;AMD_HACK;HAVE_SPEEX_NOISE;ORTP_INET6;MEDIASTREAMER2_EXPORT;_WIN32_WCE=$(CEVER);UNDER_CE=$(CEVER);WINCE;$(PLATFORMDEFINES);NDEBUG;_USRDLL;$(ARCHFAM);$(_ARCHFAM_);POCKETPC2003_UI_MODEL;POCKETPC2003_UI_MODEL"
|
||||
RuntimeLibrary="2"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/mediastreamer2.pdb"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG;_UNICODE;UNICODE;_WIN32_WCE;UNDER_CE"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions=" /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB"
|
||||
AdditionalDependencies="ws2.lib iphlpapi.lib mmtimer.lib libcmt.lib dmoguids.lib strmiids.lib strmbase.lib atls.lib"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ModuleDefinitionFile="mediastreamer2.def"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory="\amsip"
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)"
|
||||
OutputDirectory="$(PlatformName)\Release"
|
||||
IntermediateDirectory="$(PlatformName)\Release"
|
||||
ConfigurationType="2"
|
||||
UseOfMFC="0"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
AdditionalIncludeDirectories=".;..\..\include;..\..\..\oRTP\include;..\..\..\codecs\speex\include"
|
||||
PreprocessorDefinitions="__VIDEO_DISABLED__;ORTP_INET6;MEDIASTREAMER2_EXPORT;AMD_HACK;_WIN32_WCE=$(CEVER);UNDER_CE=$(CEVER);WINCE;$(PLATFORMDEFINES);NDEBUG;_USRDLL;$(ARCHFAM);$(_ARCHFAM_);SMARTPHONE2003_UI_MODEL;SMARTPHONE2003_UI_MODEL"
|
||||
RuntimeLibrary="2"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/mediastreamer2.pdb"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG;_UNICODE;UNICODE;_WIN32_WCE;UNDER_CE"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions=" /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB"
|
||||
AdditionalDependencies="ws2.lib iphlpapi.lib mmtimer.lib libcmt.lib dmoguids.lib strmiids.lib strmbase.lib atls.lib"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ModuleDefinitionFile="mediastreamer2.def"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory="%CSIDL_PROGRAM_FILES%\vbamsipua"
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Windows Mobile 6 Standard SDK (ARMV4I)"
|
||||
OutputDirectory="Windows Mobile 6 Standard SDK (ARMV4I)\$(ConfigurationName)"
|
||||
IntermediateDirectory="Windows Mobile 6 Standard SDK (ARMV4I)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
UseOfMFC="0"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
AdditionalIncludeDirectories=".;..\..\include;..\..\..\oRTP\include;..\..\..\codecs\speex\include"
|
||||
PreprocessorDefinitions="__VIDEO_DISABLED__;AMD_HACK;HAVE_SPEEX_NOISE;ORTP_INET6;MEDIASTREAMER2_EXPORT;_WIN32_WCE=$(CEVER);UNDER_CE=$(CEVER);WINCE;$(PLATFORMDEFINES);NDEBUG;_USRDLL;$(ARCHFAM);$(_ARCHFAM_)"
|
||||
RuntimeLibrary="2"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/mediastreamer2.pdb"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG;_UNICODE;UNICODE;_WIN32_WCE;UNDER_CE"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions=" /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB"
|
||||
AdditionalDependencies="atls.lib strmiids.lib dmoguids.lib strmbase.lib ws2.lib iphlpapi.lib mmtimer.lib libcmt.lib"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ModuleDefinitionFile="mediastreamer2.def"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
TargetMachine="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory="%CSIDL_PROGRAM_FILES%\amsipua"
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Windows Mobile 6 Professional SDK (ARMV4I)"
|
||||
OutputDirectory="Windows Mobile 6 Professional SDK (ARMV4I)\$(ConfigurationName)"
|
||||
IntermediateDirectory="Windows Mobile 6 Professional SDK (ARMV4I)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
UseOfMFC="0"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
AdditionalIncludeDirectories=".;..\..\include;..\..\..\oRTP\include;..\..\..\codecs\speex\include"
|
||||
PreprocessorDefinitions="__VIDEO_DISABLED__;AMD_HACK;HAVE_SPEEX_NOISE;ORTP_INET6;MEDIASTREAMER2_EXPORT;_WIN32_WCE=$(CEVER);UNDER_CE=$(CEVER);WINCE;$(PLATFORMDEFINES);NDEBUG;_USRDLL;$(ARCHFAM);$(_ARCHFAM_);POCKETPC2003_UI_MODEL;POCKETPC2003_UI_MODEL"
|
||||
RuntimeLibrary="2"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
ProgramDataBaseFileName="$(IntDir)/mediastreamer2.pdb"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG;_UNICODE;UNICODE;_WIN32_WCE;UNDER_CE"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions=" /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB"
|
||||
AdditionalDependencies="ws2.lib iphlpapi.lib mmtimer.lib libcmt.lib dmoguids.lib strmiids.lib strmbase.lib atls.lib"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ModuleDefinitionFile="mediastreamer2.def"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
TargetMachine="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\alaw.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\audiostream.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\dsptools.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\dtmfgen.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\dxfilter.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\equalizer.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\ice.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\kiss_fft.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\kiss_fftr.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\mscommon.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msconf.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msfileplayer_win.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msfilerec_win.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msfilter.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msjoin.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msqueue.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msrtp.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\mssndcard.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msspeex.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msticker.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msvolume.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\mswebcam.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\mtu.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\speexec.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\tee.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\ulaw.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\wincevideods.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\winsnd3.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\alldescs.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\allfilters.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\dtmfgen.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\dxfilter.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\g711common.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\ice.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\mediastream.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\mscommon.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msfileplayer.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msfilerec.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msfilter.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msqueue.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msrtp.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\mssndcard.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\msticker.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\mediastreamer2\waveheader.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
|
|
@ -1,659 +0,0 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_INIT([mediastreamer],[2.3.1])
|
||||
|
||||
AC_MSG_NOTICE([$PACKAGE_NAME-$PACKAGE_VERSION A mediastreaming library for telephony application.])
|
||||
AC_MSG_NOTICE([licensed under the terms of the General Public License (GPL)])
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
|
||||
dnl Source packaging numbers
|
||||
MEDIASTREAMER_MAJOR_VERSION=$(echo $PACKAGE_VERSION | cut -d. -f1)
|
||||
MEDIASTREAMER_MINOR_VERSION=$(echo $PACKAGE_VERSION | cut -d. -f2)
|
||||
MEDIASTREAMER_MICRO_VERSION=$(echo $PACKAGE_VERSION | cut -d. -f3)
|
||||
MEDIASTREAMER_EXTRA_VERSION=$(echo $PACKAGE_VERSION | cut -d. -f4)
|
||||
|
||||
LIBMEDIASTREAMER_SO_CURRENT=0 dnl increment this number when you add/change/remove an interface
|
||||
LIBMEDIASTREAMER_SO_REVISION=1 dnl increment this number when you change source code, without changing interfaces; set to 0 when incrementing CURRENT
|
||||
LIBMEDIASTREAMER_SO_AGE=0 dnl increment this number when you add an interface, set to 0 if you remove an interface
|
||||
|
||||
LIBMEDIASTREAMER_SO_VERSION=$LIBMEDIASTREAMER_SO_CURRENT:$LIBMEDIASTREAMER_SO_REVISION:$LIBMEDIASTREAMER_SO_AGE
|
||||
MEDIASTREAMER_VERSION=${MEDIASTREAMER_MAJOR_VERSION}.${MEDIASTREAMER_MINOR_VERSION}.${MEDIASTREAMER_MICRO_VERSION}
|
||||
|
||||
if test -n "$MEDIASTREAMER_EXTRA_VERSION" ; then
|
||||
MEDIASTREAMER_VERSION="${MEDIASTREAMER_VERSION}.${MEDIASTREAMER_EXTRA_VERSION}"
|
||||
fi
|
||||
|
||||
AC_SUBST(LIBMEDIASTREAMER_SO_VERSION)
|
||||
AC_SUBST(MEDIASTREAMER_VERSION)
|
||||
|
||||
PACKAGE=mediastreamer
|
||||
|
||||
OS=`uname|sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
|
||||
AC_MSG_RESULT([Building Package on ${OS}])
|
||||
|
||||
AM_INIT_AUTOMAKE([tar-ustar])
|
||||
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],)
|
||||
AC_CONFIG_HEADERS(mediastreamer-config.h)
|
||||
AC_DEFINE_UNQUOTED(MEDIASTREAMER_MAJOR_VERSION,$MEDIASTREAMER_MAJOR_VERSION, [major version])
|
||||
AC_DEFINE_UNQUOTED(MEDIASTREAMER_MINOR_VERSION,$MEDIASTREAMER_MINOR_VERSION, [minor version])
|
||||
AC_DEFINE_UNQUOTED(MEDIASTREAMER_MICRO_VERSION,$MEDIASTREAMER_MICRO_VERSION, [micro version])
|
||||
AC_DEFINE_UNQUOTED(MEDIASTREAMER_VERSION,"$MEDIASTREAMER_VERSION",[MEDIASTREAMER version number])
|
||||
|
||||
MS_PUBLIC_CFLAGS=
|
||||
|
||||
AC_SUBST([mkdir_p])
|
||||
|
||||
AC_MSG_CHECKING([warning make an error on compilation])
|
||||
AC_ARG_ENABLE(strict,
|
||||
[ --enable-strict Enable error on compilation warning [default=no]],
|
||||
[wall_werror=$enableval],
|
||||
[
|
||||
if test "$USER" = "smorlat" ; then
|
||||
wall_werror=yes
|
||||
else
|
||||
wall_werror=no
|
||||
fi
|
||||
]
|
||||
)
|
||||
|
||||
CFLAGS="-DORTP_INET6 $CFLAGS "
|
||||
|
||||
dnl enable ipv6 support
|
||||
AC_ARG_ENABLE(ipv6,
|
||||
[ --enable-ipv6 Turn on ipv6 support],
|
||||
[case "${enableval}" in
|
||||
yes) ipv6=true;;
|
||||
no) ipv6=false;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-ipv6) ;;
|
||||
esac],[ipv6=true])
|
||||
if test x$ipv6 = xtrue ; then
|
||||
CFLAGS="$CFLAGS -DINET6"
|
||||
fi
|
||||
|
||||
|
||||
AC_ARG_ENABLE(debug,
|
||||
[ --enable-debug=[yes/no] enables the display of traces showing the execution of the library. [default=yes]],
|
||||
[case "${enableval}" in
|
||||
yes) debug_enabled=yes;;
|
||||
no) debug_enabled=no;;
|
||||
*) AC_MSG_ERROR("Bad value for --enable-debug");;
|
||||
esac],
|
||||
[debug_enabled=no] )
|
||||
|
||||
|
||||
dnl Checks for programs.
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
AC_PROG_OBJC
|
||||
AC_LIBTOOL_WIN32_DLL
|
||||
AC_PROG_LIBTOOL
|
||||
AC_ENABLE_SHARED(yes)
|
||||
AC_ENABLE_STATIC(no)
|
||||
|
||||
if test "$GCC" != "yes" ; then
|
||||
case $target_os in
|
||||
*hpux*)
|
||||
dnl we are probably using HPUX cc compiler, so add a +O2 to CFLAGS
|
||||
CFLAGS="$CFLAGS +O2 -g "
|
||||
;;
|
||||
esac
|
||||
else
|
||||
CFLAGS="$CFLAGS -Wall"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if test $debug_enabled = "yes"; then
|
||||
CFLAGS="$CFLAGS -g -DDEBUG"
|
||||
else
|
||||
CFLAGS="$CFLAGS -O2 -g "
|
||||
fi
|
||||
|
||||
dnl Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_HEADER_TIME
|
||||
AC_WORDS_BIGENDIAN
|
||||
if test x$ac_cv_c_bigendian = xyes ; then
|
||||
CFLAGS="$CFLAGS -D_BIGENDIAN "
|
||||
fi
|
||||
|
||||
if test $GCC = yes && test $wall_werror = yes; then
|
||||
CFLAGS="$CFLAGS -Werror "
|
||||
fi
|
||||
|
||||
macosx_found=no
|
||||
mingw32ce_found=no
|
||||
|
||||
dnl add thread flags
|
||||
case $target_os in
|
||||
*darwin*)
|
||||
MSPLUGINS_CFLAGS=""
|
||||
MSPLUGINS_LIBS="-dynamiclib"
|
||||
macosx_found=yes
|
||||
LIBS="$LIBS -framework CoreFoundation -framework AudioToolbox -framework CoreAudio"
|
||||
;;
|
||||
*mingw32ce)
|
||||
CFLAGS="$CFLAGS -DINET6 -DORTP_INET6 -D_WIN32_WINNT=0x0501 -D_WIN32_WCE -DORTP_STATIC"
|
||||
CXXFLAGS="$CXXFLAGS -DINET6 -DORTP_INET6 -D_WIN32_WINNT=0x0501 -DORTP_STATIC -D_WIN32_WCE"
|
||||
dnl ORTP_STATIC to tell ortp not to export its variable with dllexport, as if we were building statically, or dynamically on linux
|
||||
LIBS="$LIBS -lws2"
|
||||
mingw_found=yes
|
||||
mingw32ce_found=yes
|
||||
build_tests=no
|
||||
;;
|
||||
*mingw*)
|
||||
CFLAGS="$CFLAGS -DINET6 -DORTP_INET6 -D_WIN32_WINNT=0x0501 -DORTP_STATIC"
|
||||
CXXFLAGS="$CXXFLAGS -DINET6 -DORTP_INET6 -D_WIN32_WINNT=0x0501 -DORTP_STATIC"
|
||||
dnl ORTP_STATIC to tell ortp not to export its variable with dllexport, as if we were building statically, or dynamically on linux
|
||||
LIBS="$LIBS -lws2_32 -lwinmm "
|
||||
mingw_found=yes
|
||||
;;
|
||||
*)
|
||||
MSPLUGINS_CFLAGS="-pthread"
|
||||
MSPLUGINS_LIBS="-shared -pthread"
|
||||
CFLAGS="$CFLAGS -pthread -D_REENTRANT"
|
||||
LIBS="$LIBS -pthread -lpthread"
|
||||
;;
|
||||
esac
|
||||
|
||||
AM_CONDITIONAL(BUILD_MACOSX, test x$macosx_found = xyes)
|
||||
|
||||
AM_CONDITIONAL(BUILD_TESTS,test x$build_tests != xno)
|
||||
|
||||
AC_CONFIG_COMMANDS([libtool-hacking],[
|
||||
if test "$mingw_found" = "yes" ; then
|
||||
echo "Hacking libtool to work with mingw..."
|
||||
sed -e 's/\*\" \$a_deplib \"\*/\*/' < ./libtool > libtool.tmp
|
||||
cp -f ./libtool.tmp ./libtool
|
||||
rm -f ./libtool.tmp
|
||||
else
|
||||
echo "No need to hack libtool."
|
||||
fi
|
||||
], [mingw_found=$mingw_found])
|
||||
|
||||
|
||||
dnl prefer fixed point computations
|
||||
AC_ARG_ENABLE(fixed_point,
|
||||
[ --enable-fixed-point Turn on fixed point computations (default: guess)],
|
||||
[case "${enableval}" in
|
||||
yes) fixed_point=true;;
|
||||
no) fixed_point=false;;
|
||||
guess) fixed_point=guess;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-fixed-point) ;;
|
||||
esac],[fixed_point=guess])
|
||||
|
||||
if test "$fixed_point" = "guess" ; then
|
||||
AC_MSG_CHECKING([whether fixed point arithmetic is preferred])
|
||||
case ${target_cpu}${host_cpu} in
|
||||
*bfin*)
|
||||
fixed_point=true
|
||||
;;
|
||||
*arm*)
|
||||
fixed_point=true
|
||||
;;
|
||||
*)
|
||||
fixed_point=false
|
||||
;;
|
||||
esac
|
||||
AC_MSG_RESULT([$fixed_point])
|
||||
fi
|
||||
|
||||
|
||||
if test x$fixed_point = xtrue ; then
|
||||
MS_PUBLIC_CFLAGS="$MS_PUBLIC_CFLAGS -DMS_FIXED_POINT"
|
||||
fi
|
||||
|
||||
|
||||
dnl initialize pkg-config so that we can use it within if else fi statements.
|
||||
PKG_PROG_PKG_CONFIG()
|
||||
|
||||
AC_SUBST(MSPLUGINS_CFLAGS)
|
||||
AC_SUBST(MSPLUGINS_LIBS)
|
||||
|
||||
AC_CHECK_LIB(rt,clock_gettime,[LIBS="$LIBS -lrt"])
|
||||
|
||||
dnl *********************************
|
||||
dnl various checks for soundcard apis
|
||||
dnl *********************************
|
||||
|
||||
found_sound=no
|
||||
|
||||
if test x$mingw_found = xyes ; then
|
||||
found_sound=yes
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(oss,
|
||||
[ --enable-oss Disable oss support],
|
||||
[case "${enableval}" in
|
||||
yes) oss=true ;;
|
||||
no) oss=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --disable-oss) ;;
|
||||
esac],[oss=true])
|
||||
|
||||
if "$oss" = "true"; then
|
||||
AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h sys/audio.h)
|
||||
if test "${ac_cv_header_sys_soundcard_h}" = "yes" || \
|
||||
test "${ac_cv_header_soundcard_h}" = "yes" || \
|
||||
test "${ac_cv_header_sys_audio_h}" = "yes" || \
|
||||
test "${ac_cv_header_machine_soundcard_h}" = "yes"; then
|
||||
found_sound=yes
|
||||
else
|
||||
oss=false
|
||||
fi
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(BUILD_OSS, test x$oss = xtrue)
|
||||
|
||||
dnl conditionnal build of ALSA support
|
||||
AC_ARG_ENABLE(alsa,
|
||||
[ --enable-alsa Turn on alsa native support compiling],
|
||||
[case "${enableval}" in
|
||||
yes) alsa=true ;;
|
||||
no) alsa=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-alsa) ;;
|
||||
esac],[alsa=true])
|
||||
|
||||
if test "$alsa" = "true"; then
|
||||
AC_CHECK_HEADERS(alsa/asoundlib.h,
|
||||
[ AC_CHECK_LIB(asound,snd_pcm_open,
|
||||
[ ALSA_LIBS="-lasound"
|
||||
found_sound=yes
|
||||
AC_DEFINE(__ALSA_ENABLED__,1,[defined if alsa support is available])
|
||||
alsa_enabled=true
|
||||
])
|
||||
]
|
||||
)
|
||||
fi
|
||||
AC_SUBST(ALSA_LIBS)
|
||||
|
||||
AM_CONDITIONAL(BUILD_ALSA, test x$alsa_enabled = xtrue)
|
||||
|
||||
|
||||
AC_ARG_ENABLE(artsc,
|
||||
[ --enable-artsc Turn on artsc (kde<4) sound input/output (no) ],
|
||||
[case "${enableval}" in
|
||||
yes) artsc=true ;;
|
||||
no) artsc=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-artsc) ;;
|
||||
esac],[artsc=no])
|
||||
|
||||
arts_enabled=false
|
||||
|
||||
if test "$artsc" = "true" ; then
|
||||
|
||||
dnl check for arts (kde sound daemon) support
|
||||
PKG_CHECK_MODULES(ARTS, [artsc],[
|
||||
dnl New detection
|
||||
arts_enabled=true
|
||||
],[
|
||||
dnl Old detection
|
||||
if test x$artsc = xtrue ; then
|
||||
AC_CHECK_HEADERS(kde/artsc/artsc.h,
|
||||
[ AC_CHECK_LIB(artsc,arts_init,
|
||||
[ ARTS_LIBS="-lartsc"
|
||||
arts_enabled=true
|
||||
])
|
||||
]
|
||||
)
|
||||
fi
|
||||
AC_SUBST(ARTS_LIBS)
|
||||
])
|
||||
fi
|
||||
|
||||
if test x$arts_enabled = xtrue; then
|
||||
found_sound=yes
|
||||
AC_DEFINE(__ARTS_ENABLED__,1,[defined if arts support is available])
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(BUILD_ARTS, test x$arts_enabled = xtrue)
|
||||
|
||||
AC_ARG_ENABLE(portaudio,
|
||||
[ --enable-portaudio Turn on portaudio native support compiling],
|
||||
[case "${enableval}" in
|
||||
yes) portaudio=true ;;
|
||||
no) portaudio=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-portaudio) ;;
|
||||
esac],[portaudio=false])
|
||||
|
||||
if test "$portaudio" = "true"; then
|
||||
AC_CHECK_HEADERS(portaudio.h,
|
||||
[ AC_CHECK_LIB(portaudio,Pa_Initialize,
|
||||
[ PORTAUDIO_LIBS="-lportaudio"
|
||||
found_sound=yes
|
||||
AC_DEFINE(__PORTAUDIO_ENABLED__,1,[defined if portaudio support is available])
|
||||
portaudio_enabled=true
|
||||
])
|
||||
]
|
||||
)
|
||||
fi
|
||||
|
||||
AC_SUBST(PORTAUDIO_LIBS)
|
||||
AM_CONDITIONAL(BUILD_PORTAUDIO, test x$portaudio_enabled = xtrue)
|
||||
|
||||
AC_ARG_ENABLE(macsnd,
|
||||
[ --enable-macsnd Turn on native macosx sound support (default=no)],
|
||||
[case "${enableval}" in
|
||||
yes) macsnd=true ;;
|
||||
no) macsnd=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-macsnd) ;;
|
||||
esac],[macsnd=false])
|
||||
|
||||
if test "$macsnd" = "true"; then
|
||||
AC_DEFINE(__MACSND_ENABLED__,1,[defined if native macosx sound support is available])
|
||||
macsnd_enabled=true
|
||||
found_sound=yes
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(BUILD_MACSND, test x$macsnd_enabled = xtrue)
|
||||
|
||||
AC_ARG_ENABLE(macaqsnd,
|
||||
[ --enable-macaqsnd Turn on native macosx Audio Queue sound support (default=yes)],
|
||||
[case "${enableval}" in
|
||||
yes) macaqsnd=true ;;
|
||||
no) macaqsnd=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-macaqsnd) ;;
|
||||
esac],[macaqsnd=true])
|
||||
|
||||
if test "$macosx_found" != "yes" ; then
|
||||
macaqsnd=false
|
||||
fi
|
||||
|
||||
if test "$macaqsnd" = "true"; then
|
||||
AC_DEFINE(__MAC_AQ_ENABLED__,1,[defined if native macosx AQ sound support is available])
|
||||
found_sound=yes
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(BUILD_MACAQSND, test x$macaqsnd = xtrue)
|
||||
|
||||
AC_ARG_ENABLE(jack,
|
||||
[ --disable-jack Disable jack support],
|
||||
[case "${enableval}" in
|
||||
yes) jack=true ;;
|
||||
no) jack=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
|
||||
esac],[jack=true])
|
||||
|
||||
if test x$jack = xtrue; then
|
||||
|
||||
dnl Check for samplerate libraries
|
||||
dnl Check for jack libraries (sound output plugin)
|
||||
PKG_CHECK_MODULES(JACK,jack >= 0.15.0,
|
||||
[
|
||||
dnl we' found jack devel files
|
||||
PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.0.13,
|
||||
[AC_DEFINE(__JACK_ENABLED__,1,[Jack support])
|
||||
found_sound=yes
|
||||
jack_found=yes] ,
|
||||
[echo "libsamplerate not found, jack support disabled."])
|
||||
AC_SUBST(SAMPLERATE_CFLAGS)
|
||||
AC_SUBST(SAMPLERATE_LIBS)
|
||||
],
|
||||
[echo "No jack support."] )
|
||||
|
||||
if test x$jack_found = xno ; then
|
||||
dnl reset flags
|
||||
JACK_CFLAGS=
|
||||
JACK_LIBS=
|
||||
SAMPLERATE_CFLAGS=
|
||||
SAMPLERATE_LIBS=
|
||||
fi
|
||||
|
||||
AC_SUBST(JACK_CFLAGS)
|
||||
AC_SUBST(JACK_LIBS)
|
||||
|
||||
fi
|
||||
|
||||
if test "$found_sound" = "no"; then
|
||||
AC_MSG_WARN([Could not find a support sound driver API])
|
||||
fi
|
||||
|
||||
|
||||
dnl *************************************
|
||||
dnl check for various codecs libraries
|
||||
dnl *************************************
|
||||
|
||||
AC_ARG_ENABLE(speex,
|
||||
[ --disable-speex Disable speex support],
|
||||
[case "${enableval}" in
|
||||
yes) speex=true ;;
|
||||
no) speex=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --disable-speex) ;;
|
||||
esac],[speex=true])
|
||||
|
||||
if test x$speex = xtrue; then
|
||||
|
||||
dnl check for installed version of speex
|
||||
PKG_CHECK_MODULES(SPEEX, speex >= 1.2beta3,
|
||||
[ AC_DEFINE(HAVE_SPEEX_NOISE,1,[tells whether the noise arg of speex_echo_cancel can be used]) ],
|
||||
[try_other_speex=yes]
|
||||
)
|
||||
PKG_CHECK_MODULES(SPEEX, speex >= 1.2beta3, build_speex=yes)
|
||||
build_resample=false
|
||||
PKG_CHECK_MODULES(SPEEXDSP, speexdsp >= 1.2beta3,
|
||||
[SPEEX_LIBS="$SPEEX_LIBS $SPEEXDSP_LIBS"
|
||||
AC_DEFINE(HAVE_SPEEXDSP,1,[have speexdsp library])
|
||||
build_resample=yes] ,
|
||||
[AC_MSG_NOTICE([No speexdsp library found.])
|
||||
]
|
||||
)
|
||||
AC_SUBST(SPEEX_CFLAGS)
|
||||
AC_SUBST(SPEEX_LIBS)
|
||||
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(BUILD_SPEEX, test x$build_speex = xyes )
|
||||
AM_CONDITIONAL(BUILD_RESAMPLE, test x$build_resample = xyes )
|
||||
|
||||
AC_ARG_ENABLE(gsm,
|
||||
[ --disable-gsm Disable gsm support],
|
||||
[case "${enableval}" in
|
||||
yes) gsm=true ;;
|
||||
no) gsm=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --disable-gsm) ;;
|
||||
esac],[gsm=true])
|
||||
|
||||
if test x$gsm = xtrue; then
|
||||
|
||||
dnl check for gsm
|
||||
build_gsm=no
|
||||
AC_ARG_WITH( gsm,
|
||||
[ --with-gsm Sets the installation prefix of gsm codec library [default=/usr] ],
|
||||
[ gsmdir=${withval}],[ gsmdir=/usr ])
|
||||
|
||||
if test x"$gsmdir" != xno ; then
|
||||
test x"$gmsdir" = xyes && gsmdir=/usr
|
||||
MS_CHECK_DEP([gsm codec],[GSM],[${gsmdir}/include],
|
||||
[${gsmdir}/lib],[gsm/gsm.h],[gsm],[gsm_create])
|
||||
if test "$GSM_found" = "yes" ; then
|
||||
build_gsm=yes
|
||||
fi
|
||||
else
|
||||
build_gsm=no
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(BUILD_GSM, test x$build_gsm = xyes )
|
||||
|
||||
MS_CHECK_VIDEO
|
||||
AM_CONDITIONAL(BUILD_VIDEO, test "$video" = "true")
|
||||
AM_CONDITIONAL(BUILD_THEORA, test "$have_theora" = "yes")
|
||||
AM_CONDITIONAL(BUILD_WIN32, test "$mingw_found" = "yes")
|
||||
AM_CONDITIONAL(BUILD_WIN32_WCE, test "$mingw32ce_found" = "yes")
|
||||
|
||||
dnl *********************************************
|
||||
dnl setup oRTP dependency
|
||||
dnl *********************************************
|
||||
AC_ARG_ENABLE(external-ortp,
|
||||
[ --enable-external-ortp Use external oRTP library],
|
||||
[case "${enableval}" in
|
||||
yes) external_ortp=true ;;
|
||||
no) external_ortp=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-external-ortp) ;;
|
||||
esac],[external_ortp=false])
|
||||
|
||||
if test "$external_ortp" = 'false'; then
|
||||
if test -e $srcdir/../oRTP/include/ortp/ortp.h ; then
|
||||
echo "building from linphone source tree, using ../oRTP/include/ortp/ortp.h"
|
||||
ORTP_CFLAGS="-I\$(top_srcdir)/../oRTP/include"
|
||||
ORTP_LIBS="\$(top_builddir)/../oRTP/src/libortp.la"
|
||||
if test x$ac_cv_c_bigendian = xyes ; then
|
||||
ORTP_CFLAGS="$ORTP_CFLAGS -DORTP_BIGENDIAN"
|
||||
fi
|
||||
else
|
||||
external_ortp=true
|
||||
fi
|
||||
fi
|
||||
if test "$external_ortp" = 'true'; then
|
||||
PKG_CHECK_MODULES(ORTP, ortp >= 0.9.0, ,
|
||||
[ AC_MSG_ERROR([Couldn't find ortp library]) ] )
|
||||
fi
|
||||
AC_SUBST(ORTP_CFLAGS)
|
||||
AC_SUBST(ORTP_LIBS)
|
||||
|
||||
|
||||
dnl check dlopen support in headers and libraries, so that we can use mediastreamer plugins
|
||||
AC_CHECK_HEADERS(dlfcn.h)
|
||||
have_dlopen=false
|
||||
AC_CHECK_LIB(dl,dlopen,[LIBS="$LIBS -ldl"; have_dlopen=true])
|
||||
AC_CHECK_FUNC(dlopen,[have_dlopen=true])
|
||||
if test "$have_dlopen" = "true" ; then
|
||||
AC_DEFINE(HAVE_DLOPEN,1,[Defined if dlopen() is availlable])
|
||||
fi
|
||||
|
||||
dnl check various things
|
||||
AC_FUNC_ALLOCA
|
||||
|
||||
if test "x${prefix}" = "xNONE"; then
|
||||
package_prefix=${ac_default_prefix}
|
||||
else
|
||||
package_prefix=${prefix}
|
||||
fi
|
||||
|
||||
if test x$mingw_found = xyes ; then
|
||||
package_prefix="."
|
||||
fi
|
||||
|
||||
dnl define path of plugins:
|
||||
AC_DEFINE_UNQUOTED(PACKAGE_PLUGINS_DIR, "${package_prefix}/lib/mediastreamer/plugins" ,[path of plugins])
|
||||
PACKAGE_PLUGINS_DIR="${package_prefix}/lib/mediastreamer/plugins"
|
||||
AC_SUBST(PACKAGE_PLUGINS_DIR)
|
||||
|
||||
PACKAGE_DATA_DIR="$prefix/share"
|
||||
AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${package_prefix}/share" ,[path of data])
|
||||
AC_SUBST(PACKAGE_DATA_DIR)
|
||||
|
||||
dnl check for video4linux headers
|
||||
AC_CHECK_HEADERS(linux/videodev.h linux/videodev2.h)
|
||||
if test "${ac_cv_header_linux_videodev_h}" = "yes" || \
|
||||
test "${ac_cv_header_linux_videodev2_h}" = "yes" ; then
|
||||
found_v4l=yes
|
||||
else
|
||||
found_v4l=no
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(BUILD_V4L, test x$found_v4l = xyes )
|
||||
|
||||
PKG_CHECK_MODULES(LIBV4L2, libv4l2,
|
||||
[AC_DEFINE(HAVE_LIBV4L2,1,[Defined if we have libv4l2])]
|
||||
,[echo "No libv4l2 found."]
|
||||
)
|
||||
PKG_CHECK_MODULES(LIBV4L1, libv4l1,
|
||||
[AC_DEFINE(HAVE_LIBV4L1,1,[Defined if we have libv4l1])]
|
||||
,[echo "No libv4l1 found."]
|
||||
)
|
||||
|
||||
dnl ##################################################
|
||||
dnl # Check for doxygen
|
||||
dnl ##################################################
|
||||
|
||||
AC_PATH_PROG(DOXYGEN,doxygen,false)
|
||||
AM_CONDITIONAL(HAVE_DOXYGEN, test $DOXYGEN != false)
|
||||
|
||||
|
||||
dnl ##################################################
|
||||
dnl # Check for ESP Packager
|
||||
dnl ##################################################
|
||||
|
||||
AC_PATH_PROG(EPM,epm,false)
|
||||
AC_PATH_PROG(MKEPMLIST,mkepmlist,false)
|
||||
AC_PATH_PROG(EPMINSTALL,epminstall,false)
|
||||
AM_CONDITIONAL(WITH_EPM,test $EPM != false && test $MKEPMLIST != false && test $EPMINSTALL != false)
|
||||
|
||||
|
||||
# Preferred packaging system, as per EPM terminology
|
||||
case $target in
|
||||
*-*-linux*)
|
||||
if test -f /etc/debian_version ; then
|
||||
EPM_PKG_EXT=deb
|
||||
else
|
||||
EPM_PKG_EXT=rpm
|
||||
fi
|
||||
;;
|
||||
*-hp-hpux*)
|
||||
EPM_PKG_EXT=depot.gz;;
|
||||
*-dec-osf*)
|
||||
EPM_PKG_EXT=setld;;
|
||||
esac
|
||||
AC_SUBST(EPM_PKG_EXT)
|
||||
|
||||
# System software User & Group names
|
||||
case $target in
|
||||
*-*-linux*)
|
||||
SYS_USER=root
|
||||
SYS_GROUP=root
|
||||
;;
|
||||
*-*-hpux*|*-dec-osf*)
|
||||
SYS_USER=bin
|
||||
SYS_GROUP=bin
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(SYS_USER)
|
||||
AC_SUBST(SYS_GROUP)
|
||||
|
||||
# CPU Architecture
|
||||
case $target_cpu in
|
||||
i?86) ARCH=i386;;
|
||||
*) ARCH=$target_cpu;;
|
||||
esac
|
||||
AC_SUBST(ARCH)
|
||||
|
||||
# Various other packaging variables, that can be over-ridden ad `make
|
||||
# package' time
|
||||
SUMMARY="A mediastreaming library."
|
||||
AC_SUBST(SUMMARY)
|
||||
PACKAGER=anonymous
|
||||
AC_SUBST(PACKAGER)
|
||||
LICENSE=GPL
|
||||
AC_SUBST(LICENSE)
|
||||
VENDOR=Linphone
|
||||
AC_SUBST(VENDOR)
|
||||
RELEASE=1
|
||||
AC_SUBST(RELEASE)
|
||||
|
||||
CFLAGS="$CFLAGS $MS_PUBLIC_CFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS $MS_PUBLIC_CFLAGS"
|
||||
dnl: these ones gets exported in pkgconfig file.
|
||||
AC_SUBST(MS_PUBLIC_CFLAGS)
|
||||
|
||||
AC_OUTPUT(
|
||||
Makefile
|
||||
include/Makefile
|
||||
include/mediastreamer2/Makefile
|
||||
src/Makefile
|
||||
tests/Makefile
|
||||
build/Makefile
|
||||
build/win32native/Makefile
|
||||
build/win32-novideo/Makefile
|
||||
build/wince/Makefile
|
||||
build/winmob/Makefile
|
||||
mediastreamer.pc
|
||||
mediastreamer2.spec
|
||||
help/Makefile
|
||||
help/Doxyfile
|
||||
help/doxygen.dox
|
||||
)
|
||||
2
linphone/mediastreamer2/help/.gitignore
vendored
2
linphone/mediastreamer2/help/.gitignore
vendored
|
|
@ -1,2 +0,0 @@
|
|||
Doxyfile
|
||||
doxygen.dox
|
||||
|
|
@ -1,234 +0,0 @@
|
|||
# Doxyfile 1.4.1
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = mediastreamer2
|
||||
PROJECT_NUMBER = @MEDIASTREAMER_VERSION@
|
||||
OUTPUT_DIRECTORY = doc
|
||||
CREATE_SUBDIRS = NO
|
||||
OUTPUT_LANGUAGE = English
|
||||
USE_WINDOWS_ENCODING = NO
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ABBREVIATE_BRIEF = "The $name class" \
|
||||
"The $name widget" \
|
||||
"The $name file" \
|
||||
is \
|
||||
provides \
|
||||
specifies \
|
||||
contains \
|
||||
represents \
|
||||
a \
|
||||
an \
|
||||
the
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = NO
|
||||
STRIP_FROM_PATH =
|
||||
STRIP_FROM_INC_PATH =
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
MULTILINE_CPP_IS_BRIEF = NO
|
||||
DETAILS_AT_TOP = NO
|
||||
INHERIT_DOCS = YES
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
ALIASES =
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
OPTIMIZE_OUTPUT_JAVA = NO
|
||||
SUBGROUPING = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Build related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
EXTRACT_ALL = NO
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
EXTRACT_LOCAL_METHODS = NO
|
||||
HIDE_UNDOC_MEMBERS = YES
|
||||
HIDE_UNDOC_CLASSES = YES
|
||||
HIDE_FRIEND_COMPOUNDS = NO
|
||||
HIDE_IN_BODY_DOCS = NO
|
||||
INTERNAL_DOCS = NO
|
||||
CASE_SENSE_NAMES = YES
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = NO
|
||||
SORT_BRIEF_DOCS = NO
|
||||
SORT_BY_SCOPE_NAME = NO
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
GENERATE_DEPRECATEDLIST= YES
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
SHOW_USED_FILES = YES
|
||||
SHOW_DIRECTORIES = YES
|
||||
FILE_VERSION_FILTER =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = NO
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_IF_DOC_ERROR = YES
|
||||
WARN_NO_PARAMDOC = NO
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = . \
|
||||
../include/ \
|
||||
../src
|
||||
FILE_PATTERNS = *.h \
|
||||
*.c \
|
||||
*.dox
|
||||
RECURSIVE = YES
|
||||
EXCLUDE =
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH = ../
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_PATTERNS =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
REFERENCED_BY_RELATION = NO
|
||||
REFERENCES_RELATION = NO
|
||||
VERBATIM_HEADERS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = NO
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = html
|
||||
HTML_FILE_EXTENSION = .html
|
||||
HTML_HEADER =
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
CHM_FILE =
|
||||
HHC_LOCATION =
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 1
|
||||
GENERATE_TREEVIEW = NO
|
||||
TREEVIEW_WIDTH = 250
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = YES
|
||||
LATEX_OUTPUT = latex
|
||||
LATEX_CMD_NAME = latex
|
||||
MAKEINDEX_CMD_NAME = makeindex
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
LATEX_HIDE_INDICES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT = rtf
|
||||
COMPACT_RTF = NO
|
||||
RTF_HYPERLINKS = NO
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = YES
|
||||
MAN_OUTPUT = man
|
||||
MAN_EXTENSION = .3
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = NO
|
||||
XML_OUTPUT = xml
|
||||
XML_SCHEMA =
|
||||
XML_DTD =
|
||||
XML_PROGRAMLISTING = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the Perl module output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_PERLMOD = NO
|
||||
PERLMOD_LATEX = NO
|
||||
PERLMOD_PRETTY = YES
|
||||
PERLMOD_MAKEVAR_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = YES
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH = ../include/mediastreamer2
|
||||
INCLUDE_FILE_PATTERNS = *.h
|
||||
PREDEFINED = DOXYGEN
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::additions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES =
|
||||
GENERATE_TAGFILE =
|
||||
ALLEXTERNALS = NO
|
||||
EXTERNAL_GROUPS = YES
|
||||
PERL_PATH = /usr/bin/perl
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = YES
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
HAVE_DOT = NO
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
GROUP_GRAPHS = YES
|
||||
UML_LOOK = NO
|
||||
TEMPLATE_RELATIONS = YES
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
CALL_GRAPH = NO
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DIRECTORY_GRAPH = YES
|
||||
DOT_IMAGE_FORMAT = png
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
MAX_DOT_GRAPH_DEPTH = 1000
|
||||
DOT_TRANSPARENT = NO
|
||||
DOT_MULTI_TARGETS = NO
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::additions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = NO
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
|
||||
EXTRA_DIST = Doxyfile.in doxygen.dox.in
|
||||
|
||||
#html doc
|
||||
if HAVE_DOXYGEN
|
||||
|
||||
SOURCES=$(top_srcdir)/include/mediastreamer2/*.h $(top_srcdir)/src/*.c $(top_srcdir)/src/*.h
|
||||
|
||||
# doxdir & pkgdocdir are not always defined by automake
|
||||
docdir=$(datadir)/doc
|
||||
pkgdocdir=$(docdir)/$(PACKAGE)-$(VERSION)
|
||||
doc_htmldir=$(pkgdocdir)/html
|
||||
|
||||
doc_html_DATA = $(top_builddir)/help/doc/html/html.tar
|
||||
|
||||
$(doc_html_DATA): $(top_builddir)/help/doc/html/index.html
|
||||
cd $(<D) && tar cf html.tar *
|
||||
|
||||
$(top_builddir)/help/doc/html/index.html: $(SOURCES) Doxyfile Makefile.am
|
||||
rm -rf doc
|
||||
$(DOXYGEN) Doxyfile
|
||||
|
||||
install-data-hook:
|
||||
cd $(DESTDIR)$(doc_htmldir) && tar xf html.tar && rm -f html.tar
|
||||
|
||||
uninstall-hook:
|
||||
cd $(DESTDIR)$(doc_htmldir) && rm -f *
|
||||
|
||||
endif
|
||||
|
||||
clean-local:
|
||||
rm -rf doc
|
||||
|
|
@ -1,187 +0,0 @@
|
|||
/**
|
||||
* @mainpage
|
||||
* Project Website: http://savannah.gnu.org/projects/linphone
|
||||
*
|
||||
* @verbinclude README
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2 mediastreamer2 library - a modular sound and video processing and streaming
|
||||
* @brief mediastreamer2 Version @MEDIASTREAMER_VERSION@
|
||||
*
|
||||
* @see http://savannah.gnu.org/projects/linphone
|
||||
*
|
||||
* @section what_is_it What is mediastreamer2
|
||||
*
|
||||
* mediastreamer2 is a powerful engine to make audio and video streams.
|
||||
* mediastreamer2 is GPL (COPYING). Please understand the licencing details
|
||||
* before using it!
|
||||
*
|
||||
* For any use of this library beyond the rights granted to you by the
|
||||
* GPL license, please contact antisip at <jack@atosc.org>.
|
||||
*
|
||||
* @section definitions Some definitions.
|
||||
*
|
||||
* Filter:
|
||||
* A filter is a mediastreamer2 component that process data. A filter
|
||||
* have 0 or several INPUT pins and 0 or several OUTPUT pins.
|
||||
* Here is a list of possible use of filters:
|
||||
* <PRE>
|
||||
* capture audio or video data.
|
||||
* play audio or display video data.
|
||||
* send or receive RTP data.
|
||||
* encode or decode audio or video data.
|
||||
* transform (resize video, resample audio...) data.
|
||||
* duplicate any kind of data.
|
||||
* mix audio/video data.
|
||||
* </PRE>
|
||||
* Graph:
|
||||
* A graph is a manager of filters connected together. It will transfer
|
||||
* data from OUTPUT pins to INPUT pins and will be responsible for
|
||||
* running filters.
|
||||
*
|
||||
* @section when_do_i_use_mediastreamer2 How do I use mediastremer2?
|
||||
*
|
||||
* Mediastreamer2 can be used for a lot of different purpose. The primary
|
||||
* use is to manage RTP audio and video session. You will need to use
|
||||
* the API to build filters, link them together in a graph. Then the
|
||||
* ticker API will help you to start and stop the graph.
|
||||
*
|
||||
* Basic graph sample:
|
||||
*
|
||||
* <PRE>
|
||||
* AUDIO CAPTURE --> ENCODE --> RTP
|
||||
* FILTER --> FILTER --> FILTER
|
||||
* </PRE>
|
||||
*
|
||||
*
|
||||
* The above graph is composed of three filters. The first one has no input:
|
||||
* tt captures audio data directly from the drivers and provide it to the
|
||||
* OUTPUT pin. This data is sent to the INPUT pin of the encoder which of
|
||||
* course encode the data and send it to its OUTPUT pin. This pin is connected
|
||||
* to the INPUT pin of a filter capable to build and send RTP packets.
|
||||
*
|
||||
* The modular design helps you to encode in many different format just by
|
||||
* replacing the "ENCODE FILTER" with another one. mediastreamer2 contains
|
||||
* internal support for g711u, g711a, speex and gsm. You can add new encoding
|
||||
* format by implementing new filters which can then be dynamically loaded.
|
||||
*
|
||||
* @section list_of_filters List of existing filters.
|
||||
*
|
||||
* mediastreamer2 already provides a large set of filters. Here is a complete
|
||||
* list of built-in filters.
|
||||
*
|
||||
* <PRE>
|
||||
* All supported platforms:
|
||||
* RTP receiver
|
||||
* RTP sender
|
||||
* tee (duplicate data)
|
||||
*
|
||||
* Audio Filters:
|
||||
* audio capture
|
||||
* audio playback
|
||||
* mme API (windows)
|
||||
* alsa API (linux)
|
||||
* oss API (linux)
|
||||
* arts API (linux)
|
||||
* portaudio API (macosx and other)
|
||||
* macsnd API (native macosx API -please do more testing...-)
|
||||
* several audio encoder/decoder: PCMU, PCMA, speex, gsm
|
||||
* wav file reader.
|
||||
* wav file recorder.
|
||||
* resampler.
|
||||
* conference bridge.
|
||||
* volume analyser.
|
||||
* acoustic echo canceller.
|
||||
* dtmf generation filter.
|
||||
*
|
||||
* Video Filters:
|
||||
* video capture
|
||||
* v4w API (windows)
|
||||
* directshow API (windows)
|
||||
* video4linux API (linux)
|
||||
* video display
|
||||
* v4w API (windows)
|
||||
* SDL API (linux, macosx...)
|
||||
* several audio encoder/decoder: H263-1998, MP4V-ES, theora
|
||||
* image resizer.
|
||||
* format converter. (RBG24, I420...)
|
||||
*
|
||||
* Plugin Filters:
|
||||
* iLBC decoder/encoder.
|
||||
* </PRE>
|
||||
*
|
||||
* @section what_thanks Thanks
|
||||
*
|
||||
* Thanks to all the contributors and to all bug reporters.
|
||||
* Enjoy mediastreamer2!
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2_api Mediastreamer2 API
|
||||
* @brief All API to manage mediastreamer2 library.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2_init Init API - manage mediastreamer2 library.
|
||||
* @ingroup mediastreamer2_api
|
||||
* @brief Init API to manage mediastreamer2 library.
|
||||
*
|
||||
* This file provide the API needed to initialize
|
||||
* and reset the mediastreamer2 library.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2_soundcard Sound Card API - manage audio capture/play filters.
|
||||
* @ingroup mediastreamer2_api
|
||||
* @brief Sound Card API to manage audio capture/play filters.
|
||||
*
|
||||
* This file provide the API needed to manage
|
||||
* soundcard filters.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2_filter Filter API - manage mediastreamer2 filters.
|
||||
* @ingroup mediastreamer2_api
|
||||
* @brief Filter API to manage mediastreamer2 filters.
|
||||
*
|
||||
* This file provide the API needed to create, link,
|
||||
* unlink, find and destroy filter.
|
||||
*
|
||||
* It also provides definitions if you wish to implement
|
||||
* your own filters.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2_ticker Ticker API - manage mediastreamer2 graphs.
|
||||
* @ingroup mediastreamer2_api
|
||||
* @brief Ticker API to manage mediastreamer2 graphs.
|
||||
*
|
||||
* This file provide the API needed to create, start
|
||||
* and stop a graph.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @page mediastreamer2_readme README
|
||||
* @verbinclude README
|
||||
*/
|
||||
|
||||
/**
|
||||
* @page mediastreamer2_install INSTALL
|
||||
* @verbinclude INSTALL
|
||||
*/
|
||||
|
||||
/**
|
||||
* @page mediastreamer2_license COPYING
|
||||
* @verbinclude COPYING
|
||||
*/
|
||||
|
||||
/**
|
||||
* @page mediastreamer2_changelog ChangeLog
|
||||
* @verbinclude ChangeLog
|
||||
*/
|
||||
|
||||
|
|
@ -1,153 +0,0 @@
|
|||
/**
|
||||
* @defgroup howto0_samplegraph Howto 1: build a sample audio graph.
|
||||
* @ingroup mediastreamer2
|
||||
|
||||
<H1>Initialize mediastreamer2</H1>
|
||||
|
||||
When using mediastreamer2, your first task is to initialize the
|
||||
library:
|
||||
|
||||
<PRE>
|
||||
##include <mediastreamer2/mscommon.h>
|
||||
|
||||
int i;
|
||||
|
||||
i=ms_init();
|
||||
if (i!=0)
|
||||
return -1;
|
||||
|
||||
</PRE>
|
||||
|
||||
Mediastreamer2 provides internal components which are called filters. Those
|
||||
filters must be linked together so that OUTPUT from one filter is sent to
|
||||
INPUT of the other filters.
|
||||
|
||||
Usually, filters are used for processing audio or video data. They could
|
||||
capture data, play/draw data, encode/decode data, mix data (conference),
|
||||
transform data (echo canceller). One of the most important filter is the
|
||||
RTP filters that are able to send and receive RTP data.
|
||||
|
||||
<H1>Graph sample</H1>
|
||||
|
||||
If you are using mediastreamer2, you probably want to do Voice Over IP
|
||||
and get a graph providing a 2 way communication. This 2 graphs are very
|
||||
simple:
|
||||
|
||||
This first graph shows the filters needed to capture data from a sound
|
||||
card, encode them and send it through an RTP session.
|
||||
|
||||
<PRE>
|
||||
AUDIO -> ENCODER -> RTP
|
||||
CAPTURE -> -> SENDER
|
||||
</PRE>
|
||||
|
||||
This second graph shows the filters needed to receive data from an RTP
|
||||
session decode it and send it to the playback device.
|
||||
|
||||
<PRE>
|
||||
RTP -> DECODER -> DTMF -> AUDIO
|
||||
RECEIVER -> -> GENERATION -> PLAYBACK
|
||||
</PRE>
|
||||
|
||||
<H1>Code to initiate the filters of the Graph sample</H1>
|
||||
|
||||
Note that the NULL/error checks are not done for better reading.
|
||||
To build the graph, you'll need some information: you need to
|
||||
select the sound card and of course have an RTP session created
|
||||
with oRTP.
|
||||
|
||||
<PRE>
|
||||
MSSndCard *sndcard;
|
||||
sndcard=ms_snd_card_manager_get_default_card(ms_snd_card_manager_get());
|
||||
|
||||
/* audio capture filter */
|
||||
MSFilter *soundread=ms_snd_card_create_reader(captcard);
|
||||
MSFilter *soundwrite=ms_snd_card_create_writer(playcard);
|
||||
|
||||
MSFilter *encoder=ms_filter_create_encoder("PCMU");
|
||||
MSFilter *decoder=ms_filter_create_decoder("PCMU");
|
||||
|
||||
MSFilter *rtpsend=ms_filter_new(MS_RTP_SEND_ID);
|
||||
MSFilter *rtprecv=ms_filter_new(MS_RTP_RECV_ID);
|
||||
|
||||
RtpSession *rtp_session = *** your_ortp_session *** ;
|
||||
|
||||
ms_filter_call_method(rtpsend,MS_RTP_SEND_SET_SESSION,rtp_session);
|
||||
ms_filter_call_method(rtprecv,MS_RTP_RECV_SET_SESSION,rtp_session);
|
||||
|
||||
MSFilter *dtmfgen=ms_filter_new(MS_DTMF_GEN_ID);
|
||||
</PRE>
|
||||
|
||||
In most cases, the above graph is not enough: you'll need to configure
|
||||
filter's options. As an example, you need to set sampling rate of sound
|
||||
cards' filters:
|
||||
|
||||
<PRE>
|
||||
int sr = 8000;
|
||||
int chan=1;
|
||||
ms_filter_call_method(soundread,MS_FILTER_SET_SAMPLE_RATE,&sr);
|
||||
ms_filter_call_method(soundwrite,MS_FILTER_SET_SAMPLE_RATE,&sr);
|
||||
ms_filter_call_method(stream->encoder,MS_FILTER_SET_SAMPLE_RATE,&sr);
|
||||
ms_filter_call_method(stream->decoder,MS_FILTER_SET_SAMPLE_RATE,&sr);
|
||||
|
||||
ms_filter_call_method(soundwrite,MS_FILTER_SET_NCHANNELS, &chan);
|
||||
|
||||
/* if you have some fmtp parameters (from SDP for example!)
|
||||
char *fmtp1 = ** get your fmtp line **;
|
||||
char *fmtp2 = ** get your fmtp line **;
|
||||
ms_filter_call_method(stream->encoder,MS_FILTER_ADD_FMTP, (void*)fmtp1);
|
||||
ms_filter_call_method(stream->decoder,MS_FILTER_ADD_FMTP,(void*)fmtp2);
|
||||
</PRE>
|
||||
|
||||
|
||||
<H1>Code to link the filters and run the graph sample</H1>
|
||||
|
||||
<PRE>
|
||||
ms_filter_link(stream->soundread,0,stream->encoder,0);
|
||||
ms_filter_link(stream->encoder,0,stream->rtpsend,0);
|
||||
|
||||
ms_filter_link(stream->rtprecv,0,stream->decoder,0);
|
||||
ms_filter_link(stream->decoder,0,stream->dtmfgen,0);
|
||||
ms_filter_link(stream->dtmfgen,0,stream->soundwrite,0);
|
||||
</PRE>
|
||||
|
||||
Then you need to 'attach' the filters to a ticker. A ticker is a graph
|
||||
manager responsible for running filters.
|
||||
|
||||
In the above case, there is 2 independant graph within the ticker: you
|
||||
need to attach the first element of each graph (the one that does not
|
||||
contains any INPUT pins)
|
||||
|
||||
<PRE>
|
||||
/* create ticker */
|
||||
MSTicker *ticker=ms_ticker_new();
|
||||
|
||||
ms_ticker_attach(ticker,soundread);
|
||||
ms_ticker_attach(ticker,rtprecv);
|
||||
</PRE>
|
||||
|
||||
<H1>Code to unlink the filters and stop the graph sample</H1>
|
||||
|
||||
<PRE>
|
||||
ms_ticker_detach(ticker,soundread);
|
||||
ms_ticker_detach(ticker,rtprecv);
|
||||
|
||||
ms_filter_unlink(stream->soundread,0,stream->encoder,0);
|
||||
ms_filter_unlink(stream->encoder,0,stream->rtpsend,0);
|
||||
|
||||
ms_filter_unlink(stream->rtprecv,0,stream->decoder,0);
|
||||
ms_filter_unlink(stream->decoder,0,stream->dtmfgen,0);
|
||||
ms_filter_unlink(stream->dtmfgen,0,stream->soundwrite,0);
|
||||
|
||||
if (rtp_session!=NULL) rtp_session_destroy(rtp_session);
|
||||
if (rtpsend!=NULL) ms_filter_destroy(rtpsend);
|
||||
if (rtprecv!=NULL) ms_filter_destroy(rtprecv);
|
||||
if (soundread!=NULL) ms_filter_destroy(soundread);
|
||||
if (soundwrite!=NULL) ms_filter_destroy(soundwrite);
|
||||
if (encoder!=NULL) ms_filter_destroy(encoder);
|
||||
if (decoder!=NULL) ms_filter_destroy(decoder);
|
||||
if (dtmfgen!=NULL) ms_filter_destroy(dtmfgen);
|
||||
if (ticker!=NULL) ms_ticker_destroy(ticker);
|
||||
</PRE>
|
||||
|
||||
*/
|
||||
2
linphone/mediastreamer2/include/.gitignore
vendored
2
linphone/mediastreamer2/include/.gitignore
vendored
|
|
@ -1,2 +0,0 @@
|
|||
Makefile.in
|
||||
Makefile
|
||||
|
|
@ -1 +0,0 @@
|
|||
SUBDIRS=mediastreamer2
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
Makefile.in
|
||||
Makefile
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
|
||||
mediastreamer2_includedir=$(includedir)/mediastreamer2
|
||||
|
||||
mediastreamer2_include_HEADERS= ice.h \
|
||||
msfilter.h \
|
||||
msqueue.h \
|
||||
mscommon.h \
|
||||
allfilters.h \
|
||||
msticker.h \
|
||||
msrtp.h \
|
||||
dtmfgen.h \
|
||||
msfilerec.h \
|
||||
msfileplayer.h \
|
||||
mssndcard.h \
|
||||
mediastream.h \
|
||||
msv4l.h \
|
||||
msvideo.h \
|
||||
waveheader.h \
|
||||
msvideoout.h \
|
||||
msvolume.h \
|
||||
mstee.h \
|
||||
rfc3984.h \
|
||||
mswebcam.h \
|
||||
dsptools.h \
|
||||
msequalizer.h \
|
||||
msspeexec.h
|
||||
|
||||
EXTRA_DIST=$(mediastreamer2_include_HEADERS)
|
||||
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef allfilters_h
|
||||
#define allfilters_h
|
||||
|
||||
/* this is the enum where to add your own filter id.
|
||||
Please take care of always add new IDs at the end in order to preserve the binary interface*/
|
||||
/*this id is used for type checking of methods, events with filters */
|
||||
/*it must be used also to create filters */
|
||||
typedef enum MSFilterId{
|
||||
MS_FILTER_NOT_SET_ID,
|
||||
MS_FILTER_PLUGIN_ID, /* no type checking will be performed on plugins */
|
||||
MS_FILTER_BASE_ID,
|
||||
MS_ALSA_READ_ID,
|
||||
MS_ALSA_WRITE_ID,
|
||||
MS_OSS_READ_ID,
|
||||
MS_OSS_WRITE_ID,
|
||||
MS_ULAW_ENC_ID,
|
||||
MS_ULAW_DEC_ID,
|
||||
MS_ALAW_ENC_ID,
|
||||
MS_ALAW_DEC_ID,
|
||||
MS_RTP_SEND_ID,
|
||||
MS_RTP_RECV_ID,
|
||||
MS_FILE_PLAYER_ID,
|
||||
MS_FILE_REC_ID,
|
||||
MS_DTMF_GEN_ID,
|
||||
MS_SPEEX_ENC_ID,
|
||||
MS_SPEEX_DEC_ID,
|
||||
MS_GSM_ENC_ID,
|
||||
MS_GSM_DEC_ID,
|
||||
MS_V4L_ID,
|
||||
MS_SDL_OUT_ID,
|
||||
MS_H263_ENC_ID,
|
||||
MS_H263_DEC_ID,
|
||||
MS_ARTS_READ_ID,
|
||||
MS_ARTS_WRITE_ID,
|
||||
MS_WINSND_READ_ID,
|
||||
MS_WINSND_WRITE_ID,
|
||||
MS_SPEEX_EC_ID,
|
||||
MS_PIX_CONV_ID,
|
||||
MS_TEE_ID,
|
||||
MS_SIZE_CONV_ID,
|
||||
MS_CONF_ID,
|
||||
MS_THEORA_ENC_ID,
|
||||
MS_THEORA_DEC_ID,
|
||||
MS_PASND_READ_ID,
|
||||
MS_PASND_WRITE_ID,
|
||||
MS_MPEG4_ENC_ID,
|
||||
MS_MPEG4_DEC_ID,
|
||||
MS_MJPEG_DEC_ID,
|
||||
MS_JOIN_ID,
|
||||
MS_RESAMPLE_ID,
|
||||
MS_VIDEO_OUT_ID,
|
||||
MS_VOLUME_ID,
|
||||
MS_SNOW_DEC_ID,
|
||||
MS_SNOW_ENC_ID,
|
||||
MS_CA_READ_ID,
|
||||
MS_CA_WRITE_ID,
|
||||
MS_WINSNDDS_READ_ID,
|
||||
MS_WINSNDDS_WRITE_ID,
|
||||
MS_STATIC_IMAGE_ID,
|
||||
MS_V4L2_CAPTURE_ID,
|
||||
MS_H263_OLD_DEC_ID,
|
||||
MS_H263_OLD_ENC_ID,
|
||||
MS_MIRE_ID,
|
||||
MS_VFW_ID,
|
||||
MS_ICE_ID,
|
||||
MS_VOID_SINK_ID,
|
||||
MS_DSCAP_ID,
|
||||
MS_AQ_READ_ID,
|
||||
MS_AQ_WRITE_ID,
|
||||
MS_EQUALIZER_ID,
|
||||
MS_JPEG_DEC_ID,
|
||||
MS_JPEG_ENC_ID,
|
||||
} MSFilterId;
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -1,388 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2009 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
/* This file contains useful DSP routines from the speex project.
|
||||
*/
|
||||
|
||||
/* Copyright (C) 2002-2006 Jean-Marc Valin
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
- Neither the name of the Xiph.org Foundation nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef ms_dsptools_h
|
||||
#define ms_dsptools_h
|
||||
|
||||
#include <mediastreamer2/mscommon.h>
|
||||
|
||||
typedef int32_t ms_int32_t;
|
||||
|
||||
#ifdef MS_FIXED_POINT
|
||||
|
||||
typedef short ms_word16_t;
|
||||
typedef int ms_word32_t;
|
||||
typedef int ms_mem_t;
|
||||
typedef short ms_coef_t;
|
||||
|
||||
#define QCONST16(x,bits) ((ms_word16_t)(.5+(x)*(((ms_word32_t)1)<<(bits))))
|
||||
#define QCONST32(x,bits) ((ms_word32_t)(.5+(x)*(((ms_word32_t)1)<<(bits))))
|
||||
|
||||
#define NEG16(x) (-(x))
|
||||
#define NEG32(x) (-(x))
|
||||
#define EXTRACT16(x) ((ms_word16_t)(x))
|
||||
#define EXTEND32(x) ((ms_word32_t)(x))
|
||||
#define SHR16(a,shift) ((a) >> (shift))
|
||||
#define SHL16(a,shift) ((a) << (shift))
|
||||
#define SHR32(a,shift) ((a) >> (shift))
|
||||
#define SHL32(a,shift) ((a) << (shift))
|
||||
#define PSHR16(a,shift) (SHR16((a)+((1<<((shift))>>1)),shift))
|
||||
#define PSHR32(a,shift) (SHR32((a)+((EXTEND32(1)<<((shift))>>1)),shift))
|
||||
#define VSHR32(a, shift) (((shift)>0) ? SHR32(a, shift) : SHL32(a, -(shift)))
|
||||
#define SATURATE16(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
|
||||
#define SATURATE32(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
|
||||
|
||||
#define SHR(a,shift) ((a) >> (shift))
|
||||
#define SHL(a,shift) ((ms_word32_t)(a) << (shift))
|
||||
#define PSHR(a,shift) (SHR((a)+((EXTEND32(1)<<((shift))>>1)),shift))
|
||||
#define SATURATE(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
|
||||
|
||||
|
||||
#define ADD16(a,b) ((ms_word16_t)((ms_word16_t)(a)+(ms_word16_t)(b)))
|
||||
#define SUB16(a,b) ((ms_word16_t)(a)-(ms_word16_t)(b))
|
||||
#define ADD32(a,b) ((ms_word32_t)(a)+(ms_word32_t)(b))
|
||||
#define SUB32(a,b) ((ms_word32_t)(a)-(ms_word32_t)(b))
|
||||
|
||||
|
||||
/* result fits in 16 bits */
|
||||
#define MULT16_16_16(a,b) ((((ms_word16_t)(a))*((ms_word16_t)(b))))
|
||||
|
||||
/* (ms_word32_t)(ms_word16_t) gives TI compiler a hint that it's 16x16->32 multiply */
|
||||
#define MULT16_16(a,b) (((ms_word32_t)(ms_word16_t)(a))*((ms_word32_t)(ms_word16_t)(b)))
|
||||
|
||||
#define MAC16_16(c,a,b) (ADD32((c),MULT16_16((a),(b))))
|
||||
#define MULT16_32_Q12(a,b) ADD32(MULT16_16((a),SHR((b),12)), SHR(MULT16_16((a),((b)&0x00000fff)),12))
|
||||
#define MULT16_32_Q13(a,b) ADD32(MULT16_16((a),SHR((b),13)), SHR(MULT16_16((a),((b)&0x00001fff)),13))
|
||||
#define MULT16_32_Q14(a,b) ADD32(MULT16_16((a),SHR((b),14)), SHR(MULT16_16((a),((b)&0x00003fff)),14))
|
||||
|
||||
#define MULT16_32_Q11(a,b) ADD32(MULT16_16((a),SHR((b),11)), SHR(MULT16_16((a),((b)&0x000007ff)),11))
|
||||
#define MAC16_32_Q11(c,a,b) ADD32(c,ADD32(MULT16_16((a),SHR((b),11)), SHR(MULT16_16((a),((b)&0x000007ff)),11)))
|
||||
|
||||
#define MULT16_32_P15(a,b) ADD32(MULT16_16((a),SHR((b),15)), PSHR(MULT16_16((a),((b)&0x00007fff)),15))
|
||||
#define MULT16_32_Q15(a,b) ADD32(MULT16_16((a),SHR((b),15)), SHR(MULT16_16((a),((b)&0x00007fff)),15))
|
||||
#define MAC16_32_Q15(c,a,b) ADD32(c,ADD32(MULT16_16((a),SHR((b),15)), SHR(MULT16_16((a),((b)&0x00007fff)),15)))
|
||||
|
||||
|
||||
#define MAC16_16_Q11(c,a,b) (ADD32((c),SHR(MULT16_16((a),(b)),11)))
|
||||
#define MAC16_16_Q13(c,a,b) (ADD32((c),SHR(MULT16_16((a),(b)),13)))
|
||||
#define MAC16_16_P13(c,a,b) (ADD32((c),SHR(ADD32(4096,MULT16_16((a),(b))),13)))
|
||||
|
||||
#define MULT16_16_Q11_32(a,b) (SHR(MULT16_16((a),(b)),11))
|
||||
#define MULT16_16_Q13(a,b) (SHR(MULT16_16((a),(b)),13))
|
||||
#define MULT16_16_Q14(a,b) (SHR(MULT16_16((a),(b)),14))
|
||||
#define MULT16_16_Q15(a,b) (SHR(MULT16_16((a),(b)),15))
|
||||
|
||||
#define MULT16_16_P13(a,b) (SHR(ADD32(4096,MULT16_16((a),(b))),13))
|
||||
#define MULT16_16_P14(a,b) (SHR(ADD32(8192,MULT16_16((a),(b))),14))
|
||||
#define MULT16_16_P15(a,b) (SHR(ADD32(16384,MULT16_16((a),(b))),15))
|
||||
|
||||
#define MUL_16_32_R15(a,bh,bl) ADD32(MULT16_16((a),(bh)), SHR(MULT16_16((a),(bl)),15))
|
||||
|
||||
#define DIV32_16(a,b) ((ms_word16_t)(((ms_word32_t)(a))/((ms_word16_t)(b))))
|
||||
#define PDIV32_16(a,b) ((ms_word16_t)(((ms_word32_t)(a)+((ms_word16_t)(b)>>1))/((ms_word16_t)(b))))
|
||||
#define DIV32(a,b) (((ms_word32_t)(a))/((ms_word32_t)(b)))
|
||||
#define PDIV32(a,b) (((ms_word32_t)(a)+((ms_word16_t)(b)>>1))/((ms_word32_t)(b)))
|
||||
|
||||
#ifdef ARM5E_ASM
|
||||
#error "Fix me"
|
||||
#elif defined (ARM4_ASM)
|
||||
#error "Fix me"
|
||||
#elif defined (BFIN_ASM)
|
||||
|
||||
#undef PDIV32_16
|
||||
static inline ms_word16_t PDIV32_16(ms_word32_t a, ms_word16_t b)
|
||||
{
|
||||
ms_word32_t res, bb;
|
||||
bb = b;
|
||||
a += b>>1;
|
||||
__asm__ (
|
||||
"P0 = 15;\n\t"
|
||||
"R0 = %1;\n\t"
|
||||
"R1 = %2;\n\t"
|
||||
//"R0 = R0 + R1;\n\t"
|
||||
"R0 <<= 1;\n\t"
|
||||
"DIVS (R0, R1);\n\t"
|
||||
"LOOP divide%= LC0 = P0;\n\t"
|
||||
"LOOP_BEGIN divide%=;\n\t"
|
||||
"DIVQ (R0, R1);\n\t"
|
||||
"LOOP_END divide%=;\n\t"
|
||||
"R0 = R0.L;\n\t"
|
||||
"%0 = R0;\n\t"
|
||||
: "=m" (res)
|
||||
: "m" (a), "m" (bb)
|
||||
: "P0", "R0", "R1", "cc");
|
||||
return res;
|
||||
}
|
||||
|
||||
#undef DIV32_16
|
||||
static inline ms_word16_t DIV32_16(ms_word32_t a, ms_word16_t b)
|
||||
{
|
||||
ms_word32_t res, bb;
|
||||
bb = b;
|
||||
/* Make the roundinf consistent with the C version
|
||||
(do we need to do that?)*/
|
||||
if (a<0)
|
||||
a += (b-1);
|
||||
__asm__ (
|
||||
"P0 = 15;\n\t"
|
||||
"R0 = %1;\n\t"
|
||||
"R1 = %2;\n\t"
|
||||
"R0 <<= 1;\n\t"
|
||||
"DIVS (R0, R1);\n\t"
|
||||
"LOOP divide%= LC0 = P0;\n\t"
|
||||
"LOOP_BEGIN divide%=;\n\t"
|
||||
"DIVQ (R0, R1);\n\t"
|
||||
"LOOP_END divide%=;\n\t"
|
||||
"R0 = R0.L;\n\t"
|
||||
"%0 = R0;\n\t"
|
||||
: "=m" (res)
|
||||
: "m" (a), "m" (bb)
|
||||
: "P0", "R0", "R1", "cc");
|
||||
return res;
|
||||
}
|
||||
|
||||
#undef MAX16
|
||||
static inline ms_word16_t MAX16(ms_word16_t a, ms_word16_t b)
|
||||
{
|
||||
ms_word32_t res;
|
||||
__asm__ (
|
||||
"%1 = %1.L (X);\n\t"
|
||||
"%2 = %2.L (X);\n\t"
|
||||
"%0 = MAX(%1,%2);"
|
||||
: "=d" (res)
|
||||
: "%d" (a), "d" (b)
|
||||
);
|
||||
return res;
|
||||
}
|
||||
|
||||
#undef MULT16_32_Q15
|
||||
static inline ms_word32_t MULT16_32_Q15(ms_word16_t a, ms_word32_t b)
|
||||
{
|
||||
ms_word32_t res;
|
||||
__asm__
|
||||
(
|
||||
"A1 = %2.L*%1.L (M);\n\t"
|
||||
"A1 = A1 >>> 15;\n\t"
|
||||
"%0 = (A1 += %2.L*%1.H) ;\n\t"
|
||||
: "=&W" (res), "=&d" (b)
|
||||
: "d" (a), "1" (b)
|
||||
: "A1"
|
||||
);
|
||||
return res;
|
||||
}
|
||||
|
||||
#undef MAC16_32_Q15
|
||||
static inline ms_word32_t MAC16_32_Q15(ms_word32_t c, ms_word16_t a, ms_word32_t b)
|
||||
{
|
||||
ms_word32_t res;
|
||||
__asm__
|
||||
(
|
||||
"A1 = %2.L*%1.L (M);\n\t"
|
||||
"A1 = A1 >>> 15;\n\t"
|
||||
"%0 = (A1 += %2.L*%1.H);\n\t"
|
||||
"%0 = %0 + %4;\n\t"
|
||||
: "=&W" (res), "=&d" (b)
|
||||
: "d" (a), "1" (b), "d" (c)
|
||||
: "A1"
|
||||
);
|
||||
return res;
|
||||
}
|
||||
|
||||
#undef MULT16_32_Q14
|
||||
static inline ms_word32_t MULT16_32_Q14(ms_word16_t a, ms_word32_t b)
|
||||
{
|
||||
ms_word32_t res;
|
||||
__asm__
|
||||
(
|
||||
"%2 <<= 1;\n\t"
|
||||
"A1 = %1.L*%2.L (M);\n\t"
|
||||
"A1 = A1 >>> 15;\n\t"
|
||||
"%0 = (A1 += %1.L*%2.H);\n\t"
|
||||
: "=W" (res), "=d" (a), "=d" (b)
|
||||
: "1" (a), "2" (b)
|
||||
: "A1"
|
||||
);
|
||||
return res;
|
||||
}
|
||||
|
||||
#undef MAC16_32_Q14
|
||||
static inline ms_word32_t MAC16_32_Q14(ms_word32_t c, ms_word16_t a, ms_word32_t b)
|
||||
{
|
||||
ms_word32_t res;
|
||||
__asm__
|
||||
(
|
||||
"%1 <<= 1;\n\t"
|
||||
"A1 = %2.L*%1.L (M);\n\t"
|
||||
"A1 = A1 >>> 15;\n\t"
|
||||
"%0 = (A1 += %2.L*%1.H);\n\t"
|
||||
"%0 = %0 + %4;\n\t"
|
||||
: "=&W" (res), "=&d" (b)
|
||||
: "d" (a), "1" (b), "d" (c)
|
||||
: "A1"
|
||||
);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#else
|
||||
|
||||
typedef float ms_mem_t;
|
||||
typedef float ms_coef_t;
|
||||
typedef float ms_lsp_t;
|
||||
typedef float ms_sig_t;
|
||||
typedef float ms_word16_t;
|
||||
typedef float ms_word32_t;
|
||||
|
||||
#define Q15ONE 1.0f
|
||||
#define LPC_SCALING 1.f
|
||||
#define SIG_SCALING 1.f
|
||||
#define LSP_SCALING 1.f
|
||||
#define GAMMA_SCALING 1.f
|
||||
#define GAIN_SCALING 1.f
|
||||
#define GAIN_SCALING_1 1.f
|
||||
|
||||
|
||||
#define VERY_SMALL 1e-15f
|
||||
#define VERY_LARGE32 1e15f
|
||||
#define VERY_LARGE16 1e15f
|
||||
#define Q15_ONE ((ms_word16_t)1.f)
|
||||
|
||||
#define QCONST16(x,bits) (x)
|
||||
#define QCONST32(x,bits) (x)
|
||||
|
||||
#define NEG16(x) (-(x))
|
||||
#define NEG32(x) (-(x))
|
||||
#define EXTRACT16(x) (x)
|
||||
#define EXTEND32(x) (x)
|
||||
#define SHR16(a,shift) (a)
|
||||
#define SHL16(a,shift) (a)
|
||||
#define SHR32(a,shift) (a)
|
||||
#define SHL32(a,shift) (a)
|
||||
#define PSHR16(a,shift) (a)
|
||||
#define PSHR32(a,shift) (a)
|
||||
#define VSHR32(a,shift) (a)
|
||||
#define SATURATE16(x,a) (x)
|
||||
#define SATURATE32(x,a) (x)
|
||||
|
||||
#define PSHR(a,shift) (a)
|
||||
#define SHR(a,shift) (a)
|
||||
#define SHL(a,shift) (a)
|
||||
#define SATURATE(x,a) (x)
|
||||
|
||||
#define ADD16(a,b) ((a)+(b))
|
||||
#define SUB16(a,b) ((a)-(b))
|
||||
#define ADD32(a,b) ((a)+(b))
|
||||
#define SUB32(a,b) ((a)-(b))
|
||||
#define MULT16_16_16(a,b) ((a)*(b))
|
||||
#define MULT16_16(a,b) ((ms_word32_t)(a)*(ms_word32_t)(b))
|
||||
#define MAC16_16(c,a,b) ((c)+(ms_word32_t)(a)*(ms_word32_t)(b))
|
||||
|
||||
#define MULT16_32_Q11(a,b) ((a)*(b))
|
||||
#define MULT16_32_Q13(a,b) ((a)*(b))
|
||||
#define MULT16_32_Q14(a,b) ((a)*(b))
|
||||
#define MULT16_32_Q15(a,b) ((a)*(b))
|
||||
#define MULT16_32_P15(a,b) ((a)*(b))
|
||||
|
||||
#define MAC16_32_Q11(c,a,b) ((c)+(a)*(b))
|
||||
#define MAC16_32_Q15(c,a,b) ((c)+(a)*(b))
|
||||
|
||||
#define MAC16_16_Q11(c,a,b) ((c)+(a)*(b))
|
||||
#define MAC16_16_Q13(c,a,b) ((c)+(a)*(b))
|
||||
#define MAC16_16_P13(c,a,b) ((c)+(a)*(b))
|
||||
#define MULT16_16_Q11_32(a,b) ((a)*(b))
|
||||
#define MULT16_16_Q13(a,b) ((a)*(b))
|
||||
#define MULT16_16_Q14(a,b) ((a)*(b))
|
||||
#define MULT16_16_Q15(a,b) ((a)*(b))
|
||||
#define MULT16_16_P15(a,b) ((a)*(b))
|
||||
#define MULT16_16_P13(a,b) ((a)*(b))
|
||||
#define MULT16_16_P14(a,b) ((a)*(b))
|
||||
|
||||
#define DIV32_16(a,b) (((ms_word32_t)(a))/(ms_word16_t)(b))
|
||||
#define PDIV32_16(a,b) (((ms_word32_t)(a))/(ms_word16_t)(b))
|
||||
#define DIV32(a,b) (((ms_word32_t)(a))/(ms_word32_t)(b))
|
||||
#define PDIV32(a,b) (((ms_word32_t)(a))/(ms_word32_t)(b))
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#define MIN16(a,b) ((a) < (b) ? (a) : (b)) /**< Maximum 16-bit value. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
/*abstraction layer over kiss fft, taken from speex as well*/
|
||||
|
||||
/** Compute tables for an FFT */
|
||||
void *ms_fft_init(int size);
|
||||
|
||||
/** Destroy tables for an FFT */
|
||||
void ms_fft_destroy(void *table);
|
||||
|
||||
/** Forward (real to half-complex) transform */
|
||||
void ms_fft(void *table, ms_word16_t *in, ms_word16_t *out);
|
||||
|
||||
/** Backward (half-complex to real) transform */
|
||||
void ms_ifft(void *table, ms_word16_t *in, ms_word16_t *out);
|
||||
|
||||
/** digital filtering api*/
|
||||
void ms_fir_mem16(const ms_word16_t *x, const ms_coef_t *num, ms_word16_t *y, int N, int ord, ms_mem_t *mem);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef dtmfgen_h
|
||||
#define dtmfgen_h
|
||||
|
||||
#include "msfilter.h"
|
||||
|
||||
#define MS_DTMF_GEN_PUT MS_FILTER_METHOD(MS_DTMF_GEN_ID,0,const char)
|
||||
|
||||
extern MSFilterDesc ms_dtmf_gen_desc;
|
||||
|
||||
#endif
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef ice_hh
|
||||
#define ice_hh
|
||||
|
||||
#include "msfilter.h"
|
||||
#include "ortp/stun_udp.h"
|
||||
#include "ortp/stun.h"
|
||||
#include "ortp/ortp.h"
|
||||
|
||||
/* list of state for STUN connectivity check */
|
||||
#define ICE_PRUNED -1
|
||||
#define ICE_FROZEN 0
|
||||
#define ICE_WAITING 1
|
||||
#define ICE_IN_PROGRESS 2 /* STUN request was sent */
|
||||
#define ICE_SUCCEEDED 3
|
||||
#define ICE_FAILED 4 /* no answer or unrecoverable failure */
|
||||
|
||||
|
||||
struct SdpCandidate {
|
||||
/* mandatory attributes: draft 19 */
|
||||
int foundation;
|
||||
int component_id;
|
||||
char transport[20];
|
||||
int priority;
|
||||
char conn_addr[64];
|
||||
int conn_port;
|
||||
char cand_type[20];
|
||||
char rel_addr[64];
|
||||
int rel_port;
|
||||
|
||||
/* optionnal attributes: draft 19 */
|
||||
char extension_attr[512]; /* *(SP extension-att-name SP extension-att-value) */
|
||||
};
|
||||
|
||||
struct CandidatePair {
|
||||
|
||||
struct SdpCandidate local_candidate;
|
||||
struct SdpCandidate remote_candidate;
|
||||
long long pair_priority;
|
||||
/* additionnal information */
|
||||
int rem_controlling;
|
||||
UInt96 tid;
|
||||
int connectivity_check;
|
||||
int retransmission_number;
|
||||
uint64_t retransmission_time;
|
||||
int nominated_pair;
|
||||
};
|
||||
|
||||
#define MAX_ICE_CANDIDATES 10
|
||||
|
||||
struct IceCheckList {
|
||||
struct CandidatePair cand_pairs[MAX_ICE_CANDIDATES];
|
||||
int nominated_pair_index;
|
||||
|
||||
char loc_ice_ufrag[256];
|
||||
char loc_ice_pwd[256];
|
||||
char rem_ice_ufrag[256];
|
||||
char rem_ice_pwd[256];
|
||||
|
||||
int rem_controlling;
|
||||
uint64_t tiebreak_value;
|
||||
|
||||
#define ICE_CL_RUNNING 0
|
||||
#define ICE_CL_COMPLETED 1
|
||||
#define ICE_CL_FAILED 2
|
||||
int state;
|
||||
|
||||
int RTO;
|
||||
int Ta;
|
||||
uint64_t keepalive_time;
|
||||
};
|
||||
|
||||
#define MS_ICE_SET_SESSION MS_FILTER_METHOD(MS_ICE_ID,0,RtpSession*)
|
||||
#define MS_ICE_SET_CANDIDATEPAIRS MS_FILTER_METHOD(MS_ICE_ID,1,struct CandidatePair*)
|
||||
|
||||
extern MSFilterDesc ms_ice_desc;
|
||||
|
||||
#endif
|
||||
|
|
@ -1,212 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef MEDIASTREAM_H
|
||||
#define MEDIASTREAM_H
|
||||
|
||||
#include "mediastreamer2/msfilter.h"
|
||||
#include "mediastreamer2/msticker.h"
|
||||
#include "mediastreamer2/mssndcard.h"
|
||||
#include "mediastreamer2/mswebcam.h"
|
||||
#include "mediastreamer2/msvideo.h"
|
||||
#include "ortp/ortp.h"
|
||||
#include "ortp/event.h"
|
||||
#include <time.h>
|
||||
|
||||
#if defined(_WIN32_WCE)
|
||||
time_t ms_time (time_t *t);
|
||||
#else
|
||||
#define ms_time time
|
||||
#endif
|
||||
|
||||
typedef enum EchoLimiterType{
|
||||
ELInactive,
|
||||
ELControlMic,
|
||||
ELControlSpeaker
|
||||
} EchoLimiterType;
|
||||
|
||||
struct _AudioStream
|
||||
{
|
||||
MSTicker *ticker;
|
||||
RtpSession *session;
|
||||
MSFilter *soundread;
|
||||
MSFilter *soundwrite;
|
||||
MSFilter *encoder;
|
||||
MSFilter *decoder;
|
||||
MSFilter *rtprecv;
|
||||
MSFilter *rtpsend;
|
||||
MSFilter *dtmfgen;
|
||||
MSFilter *ec;/*echo canceler*/
|
||||
MSFilter *volsend,*volrecv; /*MSVolumes*/
|
||||
MSFilter *read_resampler;
|
||||
MSFilter *write_resampler;
|
||||
MSFilter *equalizer;
|
||||
uint64_t last_packet_count;
|
||||
time_t last_packet_time;
|
||||
EchoLimiterType el_type; /*use echo limiter: two MSVolume, measured input level controlling local output level*/
|
||||
int ec_tail_len; /*milliseconds*/
|
||||
int ec_delay; /*milliseconds*/
|
||||
int ec_framesize; /* number of fft points */
|
||||
bool_t play_dtmfs;
|
||||
bool_t use_gc;
|
||||
bool_t use_agc;
|
||||
bool_t eq_active;
|
||||
bool_t use_ng;/*noise gate*/
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct _AudioStream AudioStream;
|
||||
|
||||
struct _RingStream
|
||||
{
|
||||
MSTicker *ticker;
|
||||
MSFilter *source;
|
||||
MSFilter *sndwrite;
|
||||
};
|
||||
|
||||
typedef struct _RingStream RingStream;
|
||||
|
||||
|
||||
|
||||
/* start a thread that does sampling->encoding->rtp_sending|rtp_receiving->decoding->playing */
|
||||
AudioStream *audio_stream_start (RtpProfile * prof, int locport, const char *remip,
|
||||
int remport, int payload_type, int jitt_comp, bool_t echo_cancel);
|
||||
|
||||
AudioStream *audio_stream_start_with_sndcards(RtpProfile * prof, int locport, const char *remip4, int remport, int payload_type, int jitt_comp, MSSndCard *playcard, MSSndCard *captcard, bool_t echocancel);
|
||||
|
||||
int audio_stream_start_with_files (AudioStream * stream, RtpProfile * prof,
|
||||
const char *remip, int remport, int rem_rtcp_port,
|
||||
int pt, int jitt_comp,
|
||||
const char * infile, const char * outfile);
|
||||
|
||||
void audio_stream_play(AudioStream *st, const char *name);
|
||||
void audio_stream_record(AudioStream *st, const char *name);
|
||||
|
||||
void audio_stream_set_rtcp_information(AudioStream *st, const char *cname, const char *tool);
|
||||
|
||||
void audio_stream_play_received_dtmfs(AudioStream *st, bool_t yesno);
|
||||
|
||||
/* those two function do the same as audio_stream_start() but in two steps
|
||||
this is useful to make sure that sockets are open before sending an invite;
|
||||
or to start to stream only after receiving an ack.*/
|
||||
AudioStream *audio_stream_new(int locport, bool_t ipv6);
|
||||
int audio_stream_start_now(AudioStream * stream, RtpProfile * prof, const char *remip, int remport, int rem_rtcp_port, int payload_type, int jitt_comp,MSSndCard *playcard, MSSndCard *captcard, bool_t echo_cancel);
|
||||
void audio_stream_set_relay_session_id(AudioStream *stream, const char *relay_session_id);
|
||||
/*returns true if we are still receiving some data from remote end in the last timeout seconds*/
|
||||
bool_t audio_stream_alive(AudioStream * stream, int timeout);
|
||||
|
||||
/*enable echo-limiter dispositve: one MSVolume in input branch controls a MSVolume in the output branch*/
|
||||
void audio_stream_enable_echo_limiter(AudioStream *stream, EchoLimiterType type);
|
||||
|
||||
/*enable gain control, to be done before start() */
|
||||
void audio_stream_enable_gain_control(AudioStream *stream, bool_t val);
|
||||
|
||||
/*enable automatic gain control, to be done before start() */
|
||||
void audio_stream_enable_automatic_gain_control(AudioStream *stream, bool_t val);
|
||||
|
||||
/*to be done before start */
|
||||
void audio_stream_set_echo_canceller_params(AudioStream *st, int tail_len_ms, int delay_ms, int framesize);
|
||||
|
||||
void audio_stream_set_mic_gain(AudioStream *stream, float gain);
|
||||
|
||||
/*enable noise gate, must be done before start()*/
|
||||
void audio_stream_enable_noise_gate(AudioStream *stream, bool_t val);
|
||||
|
||||
/*enable parametric equalizer in the stream that goes to the speaker*/
|
||||
void audio_stream_enable_equalizer(AudioStream *stream, bool_t enabled);
|
||||
|
||||
void audio_stream_equalizer_set_gain(AudioStream *stream, int frequency, float gain, int freq_width);
|
||||
|
||||
/* stop the audio streaming thread and free everything*/
|
||||
void audio_stream_stop (AudioStream * stream);
|
||||
|
||||
RingStream *ring_start (const char * file, int interval, MSSndCard *sndcard);
|
||||
RingStream *ring_start_with_cb(const char * file, int interval, MSSndCard *sndcard, MSFilterNotifyFunc func, void * user_data);
|
||||
void ring_stop (RingStream * stream);
|
||||
|
||||
|
||||
/* send a dtmf */
|
||||
int audio_stream_send_dtmf (AudioStream * stream, char dtmf);
|
||||
|
||||
void audio_stream_set_default_card(int cardindex);
|
||||
|
||||
|
||||
/*****************
|
||||
Video Support
|
||||
*****************/
|
||||
|
||||
|
||||
struct _VideoStream
|
||||
{
|
||||
MSTicker *ticker;
|
||||
RtpSession *session;
|
||||
MSFilter *source;
|
||||
MSFilter *pixconv;
|
||||
MSFilter *sizeconv;
|
||||
MSFilter *tee;
|
||||
MSFilter *output;
|
||||
MSFilter *encoder;
|
||||
MSFilter *decoder;
|
||||
MSFilter *rtprecv;
|
||||
MSFilter *rtpsend;
|
||||
OrtpEvQueue *evq;
|
||||
MSVideoSize sent_vsize;
|
||||
int corner; /*for selfview*/
|
||||
bool_t adapt_bitrate;
|
||||
};
|
||||
|
||||
typedef struct _VideoStream VideoStream;
|
||||
|
||||
VideoStream *video_stream_new(int locport, bool_t use_ipv6);
|
||||
void video_stream_enable_adaptive_bitrate_control(VideoStream *s, bool_t yesno);
|
||||
int video_stream_start(VideoStream * stream, RtpProfile *profile, const char *remip, int remport, int rem_rtcp_port,
|
||||
int payload, int jitt_comp, MSWebCam *device);
|
||||
void video_stream_set_relay_session_id(VideoStream *stream, const char *relay_session_id);
|
||||
void video_stream_set_rtcp_information(VideoStream *st, const char *cname, const char *tool);
|
||||
/*function to call periodically to handle various events */
|
||||
void video_stream_iterate(VideoStream *stream);
|
||||
void video_stream_send_vfu(VideoStream *stream);
|
||||
void video_stream_stop(VideoStream * stream);
|
||||
void video_stream_set_sent_video_size(VideoStream *stream, MSVideoSize vsize);
|
||||
void video_stream_enable_self_view(VideoStream *stream, bool_t val);
|
||||
unsigned long video_stream_get_native_window_id(VideoStream *stream);
|
||||
|
||||
|
||||
VideoStream * video_preview_start(MSWebCam *device, MSVideoSize vsize);
|
||||
void video_preview_stop(VideoStream *stream);
|
||||
|
||||
int video_stream_recv_only_start(VideoStream * stream, RtpProfile *profile, const char *remip, int remport, int payload, int jitt_comp);
|
||||
int video_stream_send_only_start(VideoStream * stream, RtpProfile *profile, const char *remip, int remport,
|
||||
int rem_rtcp_port, int payload, int jitt_comp, MSWebCam *device);
|
||||
void video_stream_recv_only_stop(VideoStream *stream);
|
||||
void video_stream_send_only_stop(VideoStream *stream);
|
||||
|
||||
|
||||
bool_t ms_is_ipv6(const char *address);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -1,204 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
#ifndef mscommon_h
|
||||
#define mscommon_h
|
||||
|
||||
#include <ortp/ortp.h>
|
||||
|
||||
#define ms_malloc ortp_malloc
|
||||
#define ms_malloc0 ortp_malloc0
|
||||
#define ms_realloc ortp_realloc
|
||||
#define ms_new ortp_new
|
||||
#define ms_new0 ortp_new0
|
||||
#define ms_free ortp_free
|
||||
#define ms_strdup ortp_strdup
|
||||
#define ms_strdup_printf ortp_strdup_printf
|
||||
|
||||
#define ms_mutex_t ortp_mutex_t
|
||||
#define ms_mutex_init ortp_mutex_init
|
||||
#define ms_mutex_destroy ortp_mutex_destroy
|
||||
#define ms_mutex_lock ortp_mutex_lock
|
||||
#define ms_mutex_unlock ortp_mutex_unlock
|
||||
|
||||
#define ms_cond_t ortp_cond_t
|
||||
#define ms_cond_init ortp_cond_init
|
||||
#define ms_cond_wait ortp_cond_wait
|
||||
#define ms_cond_signal ortp_cond_signal
|
||||
#define ms_cond_broadcast ortp_cond_broadcast
|
||||
#define ms_cond_destroy ortp_cond_destroy
|
||||
|
||||
#ifdef WIN32
|
||||
static inline void ms_debug(const char *fmt,...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, fmt);
|
||||
ortp_logv(ORTP_DEBUG, fmt, args);
|
||||
va_end (args);
|
||||
}
|
||||
#else
|
||||
#ifdef DEBUG
|
||||
static inline void ms_debug(const char *fmt,...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, fmt);
|
||||
ortp_logv(ORTP_DEBUG, fmt, args);
|
||||
va_end (args);
|
||||
}
|
||||
#else
|
||||
#define ms_debug(...)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#define ms_message ortp_message
|
||||
#define ms_warning ortp_warning
|
||||
#define ms_error ortp_error
|
||||
#define ms_fatal ortp_fatal
|
||||
|
||||
#define ms_return_val_if_fail(_expr_,_ret_)\
|
||||
if (!(_expr_)) { ms_error("assert "#_expr_ "failed"); return (_ret_);}
|
||||
|
||||
#define ms_return_if_fail(_expr_) \
|
||||
if (!(_expr_)){ ms_error("assert "#_expr_ "failed"); return ;}
|
||||
|
||||
#define ms_thread_t ortp_thread_t
|
||||
#define ms_thread_create ortp_thread_create
|
||||
#define ms_thread_join ortp_thread_join
|
||||
#define ms_thread_exit ortp_thread_exit
|
||||
|
||||
struct _MSList {
|
||||
struct _MSList *next;
|
||||
struct _MSList *prev;
|
||||
void *data;
|
||||
};
|
||||
|
||||
typedef struct _MSList MSList;
|
||||
|
||||
|
||||
#define ms_list_next(elem) ((elem)->next)
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
MSList * ms_list_append(MSList *elem, void * data);
|
||||
MSList * ms_list_prepend(MSList *elem, void * data);
|
||||
MSList * ms_list_free(MSList *elem);
|
||||
MSList * ms_list_concat(MSList *first, MSList *second);
|
||||
MSList * ms_list_remove(MSList *first, void *data);
|
||||
int ms_list_size(const MSList *first);
|
||||
void ms_list_for_each(const MSList *list, void (*func)(void *));
|
||||
void ms_list_for_each2(const MSList *list, void (*func)(void *, void *), void *user_data);
|
||||
MSList *ms_list_remove_link(MSList *list, MSList *elem);
|
||||
MSList *ms_list_find(MSList *list, void *data);
|
||||
MSList *ms_list_find_custom(MSList *list, int (*compare_func)(const void *, const void*), void *user_data);
|
||||
void * ms_list_nth_data(const MSList *list, int index);
|
||||
int ms_list_position(const MSList *list, MSList *elem);
|
||||
int ms_list_index(const MSList *list, void *data);
|
||||
MSList *ms_list_insert_sorted(MSList *list, void *data, int (*compare_func)(const void *, const void*));
|
||||
MSList *ms_list_insert(MSList *list, MSList *before, void *data);
|
||||
MSList *ms_list_copy(const MSList *list);
|
||||
|
||||
#undef MIN
|
||||
#define MIN(a,b) ((a)>(b) ? (b) : (a))
|
||||
#undef MAX
|
||||
#define MAX(a,b) ((a)>(b) ? (a) : (b))
|
||||
|
||||
/**
|
||||
* @file mscommon.h
|
||||
* @brief mediastreamer2 mscommon.h include file
|
||||
*
|
||||
* This file provide the API needed to initialize
|
||||
* and reset the mediastreamer2 library.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2_init Init API - manage mediastreamer2 library.
|
||||
* @ingroup mediastreamer2_api
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Initialize the mediastreamer2 library.
|
||||
*
|
||||
* This must be called once before calling any other API.
|
||||
*/
|
||||
void ms_init(void);
|
||||
|
||||
/**
|
||||
* Load plugins from a specific directory.
|
||||
* This method basically loads all libraries in the specified directory and attempts to call a C function called
|
||||
* \<libraryname\>_init. For example if a library 'libdummy.so' or 'libdummy.dll' is found, then the loader tries to locate
|
||||
* a C function called 'libdummy_init()' and calls it if it exists.
|
||||
* ms_load_plugins() can be used to load non-mediastreamer2 plugins as it does not expect mediastreamer2 specific entry points.
|
||||
*
|
||||
* @param directory A directory where plugins library are available.
|
||||
*
|
||||
* Returns: >0 if successfull, 0 if not plugins loaded, -1 otherwise.
|
||||
*/
|
||||
int ms_load_plugins(const char *directory);
|
||||
|
||||
/**
|
||||
* Release resource allocated in the mediastreamer2 library.
|
||||
*
|
||||
* This must be called once before closing program.
|
||||
*/
|
||||
void ms_exit(void);
|
||||
|
||||
struct _MSSndCardDesc;
|
||||
|
||||
void ms_sleep(int seconds);
|
||||
|
||||
/**
|
||||
* The max payload size allowed.
|
||||
* Filters that generate data that can be sent through RTP should make packets
|
||||
* whose size is below ms_get_payload_max_size().
|
||||
* The default value is 1440 computed as the standart internet MTU minus IPv6 header,
|
||||
* UDP header and RTP header. As IPV4 header is smaller than IPv6 header, this
|
||||
* value works for both.
|
||||
*
|
||||
**/
|
||||
int ms_get_payload_max_size();
|
||||
|
||||
void ms_set_payload_max_size(int size);
|
||||
|
||||
/**
|
||||
* Returns the network Max Transmission Unit to reach destination_host.
|
||||
* This will attempt to send one or more big packets to destination_host, to a random port.
|
||||
* Those packets are filled with zeroes.
|
||||
**/
|
||||
int ms_discover_mtu(const char *destination_host);
|
||||
|
||||
/**
|
||||
* Set mediastreamer default mtu, used to compute the default RTP max payload size.
|
||||
* This function will call ms_set_payload_max_size(mtu-[ipv6 header size]).
|
||||
**/
|
||||
void ms_set_mtu(int mtu);
|
||||
|
||||
/** @} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2009 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef msequalizer_h
|
||||
#define msequalizer_h
|
||||
|
||||
#include <mediastreamer2/msfilter.h>
|
||||
|
||||
typedef struct _MSEqualizerGain{
|
||||
float frequency; ///< In hz
|
||||
float gain; ///< between 0-1.2
|
||||
float width; ///< frequency band width around mid frequency for which the gain is applied, in Hz. Use 0 for the lowest frequency resolution.
|
||||
}MSEqualizerGain;
|
||||
|
||||
#define MS_EQUALIZER_SET_GAIN MS_FILTER_METHOD(MS_EQUALIZER_ID,0,MSEqualizerGain)
|
||||
#define MS_EQUALIZER_GET_GAIN MS_FILTER_METHOD(MS_EQUALIZER_ID,1,MSEqualizerGain)
|
||||
#define MS_EQUALIZER_SET_ACTIVE MS_FILTER_METHOD(MS_EQUALIZER_ID,2,int)
|
||||
/**dump the spectral response into a table of float. The table must be sized according to the value returned by
|
||||
* MS_EQUALIZER_GET_NUM_FREQUENCIES
|
||||
**/
|
||||
#define MS_EQUALIZER_DUMP_STATE MS_FILTER_METHOD(MS_EQUALIZER_ID,3,float)
|
||||
|
||||
/**returns the number of frequencies*/
|
||||
#define MS_EQUALIZER_GET_NUM_FREQUENCIES MS_FILTER_METHOD(MS_EQUALIZER_ID,4,int)
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
#ifndef msfileplayer_h
|
||||
#define msfileplayer_h
|
||||
|
||||
#include "msfilter.h"
|
||||
|
||||
|
||||
/*methods*/
|
||||
#define MS_FILE_PLAYER_OPEN MS_FILTER_METHOD(MS_FILE_PLAYER_ID,0,const char*)
|
||||
#define MS_FILE_PLAYER_START MS_FILTER_METHOD_NO_ARG(MS_FILE_PLAYER_ID,1)
|
||||
#define MS_FILE_PLAYER_STOP MS_FILTER_METHOD_NO_ARG(MS_FILE_PLAYER_ID,2)
|
||||
#define MS_FILE_PLAYER_CLOSE MS_FILTER_METHOD_NO_ARG(MS_FILE_PLAYER_ID,3)
|
||||
/* set loop mode:
|
||||
-1: no looping,
|
||||
0: loop at end of file,
|
||||
x>0, loop after x miliseconds after eof
|
||||
*/
|
||||
#define MS_FILE_PLAYER_LOOP MS_FILTER_METHOD(MS_FILE_PLAYER_ID,4,int)
|
||||
#define MS_FILE_PLAYER_DONE MS_FILTER_METHOD(MS_FILE_PLAYER_ID,5,int)
|
||||
#define MS_FILE_PLAYER_BIG_BUFFER MS_FILTER_METHOD(MS_FILE_PLAYER_ID,6,int)
|
||||
|
||||
/*events*/
|
||||
#define MS_FILE_PLAYER_EOF MS_FILTER_EVENT_NO_ARG(MS_FILE_PLAYER_ID,0)
|
||||
|
||||
#endif
|
||||
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
#ifndef msfilerec_h
|
||||
#define msfilerec_h
|
||||
|
||||
#include "msfilter.h"
|
||||
|
||||
extern MSFilterDesc ms_file_rec_desc;
|
||||
|
||||
#define MS_FILE_REC_OPEN MS_FILTER_METHOD(MS_FILE_REC_ID,0,const char)
|
||||
#define MS_FILE_REC_START MS_FILTER_METHOD_NO_ARG(MS_FILE_REC_ID,1)
|
||||
#define MS_FILE_REC_STOP MS_FILTER_METHOD_NO_ARG(MS_FILE_REC_ID,2)
|
||||
#define MS_FILE_REC_CLOSE MS_FILTER_METHOD_NO_ARG(MS_FILE_REC_ID,3)
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -1,508 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef msfilter_h
|
||||
#define msfilter_h
|
||||
|
||||
#include "mscommon.h"
|
||||
#include "msqueue.h"
|
||||
#include "allfilters.h"
|
||||
|
||||
/**
|
||||
* @file msfilter.h
|
||||
* @brief mediastreamer2 msfilter.h include file
|
||||
*
|
||||
* This file provide the API needed to create, link,
|
||||
* unlink, find and destroy filter.
|
||||
*
|
||||
* It also provides definitions if you wish to implement
|
||||
* your own filters.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2_filter Filter API - manage mediastreamer2 filters.
|
||||
* @ingroup mediastreamer2_api
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* Structure for filter's methods (init, preprocess, process, postprocess, uninit).
|
||||
* @var MSFilterFunc
|
||||
*/
|
||||
typedef void (*MSFilterFunc)(struct _MSFilter *f);
|
||||
|
||||
/**
|
||||
* Structure for filter's methods used to set filter's options.
|
||||
* @var MSFilterMethodFunc
|
||||
*/
|
||||
typedef int (*MSFilterMethodFunc)(struct _MSFilter *f, void *arg);
|
||||
|
||||
/**
|
||||
* Structure for filter's methods used as a callback to notify events.
|
||||
* @var MSFilterNotifyFunc
|
||||
*/
|
||||
typedef void (*MSFilterNotifyFunc)(void *userdata , unsigned int id, void *arg);
|
||||
|
||||
struct _MSFilterMethod{
|
||||
int id;
|
||||
MSFilterMethodFunc method;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Structure for holding filter's methods to set filter's options.
|
||||
* @var MSFilterMethod
|
||||
*/
|
||||
typedef struct _MSFilterMethod MSFilterMethod;
|
||||
|
||||
enum _MSFilterCategory{
|
||||
MS_FILTER_OTHER,
|
||||
MS_FILTER_ENCODER,
|
||||
MS_FILTER_DECODER
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure to describe filter's category.
|
||||
* <PRE>
|
||||
* MS_FILTER_OTHER
|
||||
* MS_FILTER_ENCODER
|
||||
* MS_FILTER_DECODER
|
||||
* </PRE>
|
||||
* @var MSFilterCategory
|
||||
*/
|
||||
typedef enum _MSFilterCategory MSFilterCategory;
|
||||
|
||||
enum _MSFilterFlags{
|
||||
MS_FILTER_IS_PUMP = 1
|
||||
};
|
||||
|
||||
typedef enum _MSFilterFlags MSFilterFlags;
|
||||
|
||||
struct _MSFilterDesc{
|
||||
MSFilterId id; /* the id declared in allfilters.h */
|
||||
const char *name; /* filter name */
|
||||
const char *text; /*some descriptive text*/
|
||||
MSFilterCategory category;
|
||||
const char *enc_fmt; /* must be set if MS_FILTER_ENCODER/MS_FILTER_DECODER */
|
||||
int ninputs; /*number of inputs */
|
||||
int noutputs; /*number of outputs */
|
||||
MSFilterFunc init;
|
||||
MSFilterFunc preprocess; /* called once before processing */
|
||||
MSFilterFunc process; /* called every tick to do the filter's job*/
|
||||
MSFilterFunc postprocess; /*called once after processing */
|
||||
MSFilterFunc uninit;
|
||||
MSFilterMethod *methods;
|
||||
unsigned int flags;
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure for filter's description.
|
||||
* @var MSFilterDesc
|
||||
*/
|
||||
typedef struct _MSFilterDesc MSFilterDesc;
|
||||
|
||||
struct _MSFilter{
|
||||
MSFilterDesc *desc;
|
||||
/*protected attributes */
|
||||
ms_mutex_t lock;
|
||||
MSQueue **inputs;
|
||||
MSQueue **outputs;
|
||||
MSFilterNotifyFunc notify;
|
||||
void *notify_ud;
|
||||
void *data;
|
||||
struct _MSTicker *ticker;
|
||||
/*private attributes */
|
||||
uint32_t last_tick;
|
||||
bool_t seen;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Structure to create/link/unlink/destroy filter's object.
|
||||
* @var MSFilter
|
||||
*/
|
||||
typedef struct _MSFilter MSFilter;
|
||||
|
||||
struct _MSConnectionPoint{
|
||||
MSFilter *filter;
|
||||
int pin;
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure that represents a connection point of a MSFilter
|
||||
* @var MSConnectionPoint
|
||||
*/
|
||||
typedef struct _MSConnectionPoint MSConnectionPoint;
|
||||
|
||||
struct _MSConnectionHelper{
|
||||
MSConnectionPoint last;
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure that holds data when using the ms_connection_helper_* functions.
|
||||
* @var MSConnectionHelper
|
||||
**/
|
||||
typedef struct _MSConnectionHelper MSConnectionHelper;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Register a filter description. (plugins use only!)
|
||||
*
|
||||
* When you build your own plugin, this method will
|
||||
* add the encoder or decoder to the internal list
|
||||
* of supported codec. Then, this plugin can be used
|
||||
* transparently from the application.
|
||||
*
|
||||
* ms_filter_get_encoder, ms_filter_get_decoder,
|
||||
* ms_filter_create_encoder, ms_filter_create_decoder
|
||||
* and ms_filter_codec_supported
|
||||
* can then be used as if the codec was internally.
|
||||
* supported.
|
||||
*
|
||||
* @param desc a filter description.
|
||||
*/
|
||||
void ms_filter_register(MSFilterDesc *desc);
|
||||
|
||||
/**
|
||||
* Retrieve encoders according to codec name.
|
||||
*
|
||||
* Internal supported codecs:
|
||||
* PCMU, PCMA, speex, gsm
|
||||
* Existing Public plugins:
|
||||
* iLBC
|
||||
*
|
||||
* @param mime A string indicating the codec.
|
||||
*
|
||||
* Returns: a MSFilterDesc if successfull, NULL otherwise.
|
||||
*/
|
||||
MSFilterDesc * ms_filter_get_encoder(const char *mime);
|
||||
|
||||
/**
|
||||
* Retrieve decoders according to codec name.
|
||||
*
|
||||
* Internal supported codecs:
|
||||
* PCMU, PCMA, speex, gsm
|
||||
* Existing Public plugins:
|
||||
* iLBC
|
||||
*
|
||||
* @param mime A string indicating the codec.
|
||||
*
|
||||
* Returns: a MSFilterDesc if successfull, NULL otherwise.
|
||||
*/
|
||||
MSFilterDesc * ms_filter_get_decoder(const char *mime);
|
||||
|
||||
/**
|
||||
* Create encoder filter according to codec name.
|
||||
*
|
||||
* Internal supported codecs:
|
||||
* PCMU, PCMA, speex, gsm
|
||||
* Existing Public plugins:
|
||||
* iLBC
|
||||
*
|
||||
* @param mime A string indicating the codec.
|
||||
*
|
||||
* Returns: a MSFilter if successfull, NULL otherwise.
|
||||
*/
|
||||
MSFilter * ms_filter_create_encoder(const char *mime);
|
||||
|
||||
/**
|
||||
* Create decoder filter according to codec name.
|
||||
*
|
||||
* Internal supported codecs:
|
||||
* PCMU, PCMA, speex, gsm
|
||||
* Existing Public plugins:
|
||||
* iLBC
|
||||
*
|
||||
* @param mime A string indicating the codec.
|
||||
*
|
||||
* Returns: a MSFilter if successfull, NULL otherwise.
|
||||
*/
|
||||
MSFilter * ms_filter_create_decoder(const char *mime);
|
||||
|
||||
/**
|
||||
* Check if a encode or decode filter exists for a codec name.
|
||||
*
|
||||
* Internal supported codecs:
|
||||
* PCMU, PCMA, speex, gsm
|
||||
* Existing Public plugins:
|
||||
* iLBC
|
||||
*
|
||||
* @param mime A string indicating the codec.
|
||||
*
|
||||
* Returns: TRUE if successfull, FALSE otherwise.
|
||||
*/
|
||||
bool_t ms_filter_codec_supported(const char *mime);
|
||||
|
||||
/**
|
||||
* Create decoder filter according to a filter's MSFilterId.
|
||||
*
|
||||
* @param id A MSFilterId identifier for the filter.
|
||||
*
|
||||
* Returns: a MSFilter if successfull, NULL otherwise.
|
||||
*/
|
||||
MSFilter *ms_filter_new(MSFilterId id);
|
||||
|
||||
/**
|
||||
* Create decoder filter according to a filter's name.
|
||||
*
|
||||
* @param name A name for the filter.
|
||||
*
|
||||
* Returns: a MSFilter if successfull, NULL otherwise.
|
||||
*/
|
||||
MSFilter *ms_filter_new_from_name(const char *name);
|
||||
|
||||
/**
|
||||
* Create decoder filter according to a filter's description.
|
||||
*
|
||||
* The primary use is to create your own filter's in your
|
||||
* application and avoid registration inside mediastreamer2.
|
||||
*
|
||||
* @param desc A MSFilterDesc for the filter.
|
||||
*
|
||||
* Returns: a MSFilter if successfull, NULL otherwise.
|
||||
*/
|
||||
MSFilter *ms_filter_new_from_desc(MSFilterDesc *desc);
|
||||
|
||||
/**
|
||||
* Link one OUTPUT pin from a filter to an INPUT pin of another filter.
|
||||
*
|
||||
* All data coming from the OUTPUT pin of one filter will be distributed
|
||||
* to the INPUT pin of the second filter.
|
||||
*
|
||||
* @param f1 A MSFilter object containing the OUTPUT pin
|
||||
* @param pin1 An index of an OUTPUT pin.
|
||||
* @param f2 A MSFilter object containing the INPUT pin
|
||||
* @param pin2 An index of an INPUT pin.
|
||||
*
|
||||
* Returns: 0 if sucessful, -1 otherwise.
|
||||
*/
|
||||
int ms_filter_link(MSFilter *f1, int pin1, MSFilter *f2, int pin2);
|
||||
|
||||
/**
|
||||
* Unlink one OUTPUT pin from a filter to an INPUT pin of another filter.
|
||||
*
|
||||
* @param f1 A MSFilter object containing the OUTPUT pin
|
||||
* @param pin1 An index of an OUTPUT pin.
|
||||
* @param f2 A MSFilter object containing the INPUT pin
|
||||
* @param pin2 An index of an INPUT pin.
|
||||
*
|
||||
* Returns: 0 if sucessful, -1 otherwise.
|
||||
*/
|
||||
int ms_filter_unlink(MSFilter *f1, int pin1, MSFilter *f2, int pin2);
|
||||
|
||||
/**
|
||||
* Call a filter's method to set or get options.
|
||||
*
|
||||
* @param f A MSFilter object.
|
||||
* @param id A private filter ID for the option.
|
||||
* @param arg A private user data for the filter.
|
||||
*
|
||||
* Returns: 0 if successfull, -1 otherwise.
|
||||
*/
|
||||
int ms_filter_call_method(MSFilter *f, unsigned int id, void *arg);
|
||||
|
||||
/**
|
||||
* Call a filter's method to set options.
|
||||
*
|
||||
* @param f A MSFilter object.
|
||||
* @param id A private filter ID for the option.
|
||||
*
|
||||
* Returns: 0 if successfull, -1 otherwise.
|
||||
*/
|
||||
int ms_filter_call_method_noarg(MSFilter *f, unsigned int id);
|
||||
|
||||
/**
|
||||
* Set a callback on filter's to be informed of private filter's event.
|
||||
*
|
||||
* @param f A MSFilter object.
|
||||
* @param fn A MSFilterNotifyFunc that will be called.
|
||||
* @param userdata A pointer to private data.
|
||||
*
|
||||
* Returns: 0 if successfull, -1 otherwise.
|
||||
*/
|
||||
void ms_filter_set_notify_callback(MSFilter *f, MSFilterNotifyFunc fn, void *userdata);
|
||||
|
||||
/**
|
||||
* Get MSFilterId's filter.
|
||||
*
|
||||
* @param f A MSFilter object.
|
||||
*
|
||||
* Returns: MSFilterId if successfull, -1 otherwise.
|
||||
*/
|
||||
MSFilterId ms_filter_get_id(MSFilter *f);
|
||||
|
||||
|
||||
/**
|
||||
* Obtain the list of current filter's neighbours, ie filters that are part of same graph.
|
||||
*
|
||||
* Returns: a MSList of MSFilter, that needs to be freed by the caller when no more needed.
|
||||
**/
|
||||
MSList * ms_filter_find_neighbours(MSFilter *me);
|
||||
|
||||
/**
|
||||
* Destroy a filter object.
|
||||
*
|
||||
* @param f A MSFilter object.
|
||||
*
|
||||
*/
|
||||
void ms_filter_destroy(MSFilter *f);
|
||||
|
||||
/**
|
||||
* Initialize a MSConnectionHelper.
|
||||
*
|
||||
* @param h A MSConnectionHelper, usually (but not necessarily) on stack
|
||||
*
|
||||
**/
|
||||
void ms_connection_helper_start(MSConnectionHelper *h);
|
||||
|
||||
/**
|
||||
* \brief Enter a MSFilter to be connected into the MSConnectionHelper object.
|
||||
*
|
||||
* This functions enters a MSFilter to be connected into the MSConnectionHelper
|
||||
* object and connects it to the last entered if not the first one.
|
||||
* The MSConnectionHelper is useful to reduce the amount of code necessary to create graphs in case
|
||||
* the connections are made in an ordered manner and some filters are present conditionally in graphs.
|
||||
* For example, instead of writing
|
||||
* \code
|
||||
* ms_filter_link(f1,0,f2,1);
|
||||
* ms_filter_link(f2,0,f3,0);
|
||||
* ms_filter_link(f3,1,f4,0);
|
||||
* \endcode
|
||||
* You can write:
|
||||
* \code
|
||||
* MSConnectionHelper h;
|
||||
* ms_connection_helper_start(&h);
|
||||
* ms_connection_helper_link(&h,f1,-1,0);
|
||||
* ms_connection_helper_link(&h,f2,1,0);
|
||||
* ms_connection_helper_link(&h,f3,0,1);
|
||||
* ms_connection_helper_link(&h,f4,0,-1);
|
||||
* \endcode
|
||||
* Which is a bit longer to write here, but now imagine f2 needs to be present in the graph only
|
||||
* in certain conditions: in the first case you have rewrite the two first lines, in the second case
|
||||
* you just need to replace the fourth line by:
|
||||
* \code
|
||||
* if (my_condition) ms_connection_helper_link(&h,f2,1,0);
|
||||
* \endcode
|
||||
*
|
||||
* @param h a connection helper
|
||||
* @param f a MSFilter
|
||||
* @param inpin an input pin number with which the MSFilter needs to connect to previously entered MSFilter
|
||||
* @param outpin an output pin number with which the MSFilter needs to be connected to the next entered MSFilter
|
||||
*
|
||||
* Returns: the return value of ms_filter_link() that is called internally to this function.
|
||||
**/
|
||||
int ms_connection_helper_link(MSConnectionHelper *h, MSFilter *f, int inpin, int outpin);
|
||||
|
||||
|
||||
/**
|
||||
* \brief Enter a MSFilter to be disconnected into the MSConnectionHelper object.
|
||||
* Process exactly the same way as ms_connection_helper_link() but calls ms_filter_unlink() on the
|
||||
* entered filters.
|
||||
**/
|
||||
int ms_connection_helper_unlink(MSConnectionHelper *h, MSFilter *f, int inpin, int outpin);
|
||||
|
||||
/* I define the id taking the lower bits of the address of the MSFilterDesc object,
|
||||
the method index (_cnt_) and the argument size */
|
||||
/* I hope using this to avoid type mismatch (calling a method on the wrong filter)*/
|
||||
#define MS_FILTER_METHOD_ID(_id_,_cnt_,_argsize_) \
|
||||
( (((unsigned long)(_id_)) & 0xFFFF)<<16 | (_cnt_<<8) | (_argsize_ & 0xFF ))
|
||||
|
||||
#define MS_FILTER_METHOD(_id_,_count_,_argtype_) \
|
||||
MS_FILTER_METHOD_ID(_id_,_count_,sizeof(_argtype_))
|
||||
|
||||
#define MS_FILTER_METHOD_NO_ARG(_id_,_count_) \
|
||||
MS_FILTER_METHOD_ID(_id_,_count_,0)
|
||||
|
||||
|
||||
#define MS_FILTER_BASE_METHOD(_count_,_argtype_) \
|
||||
MS_FILTER_METHOD_ID(MS_FILTER_BASE_ID,_count_,sizeof(_argtype_))
|
||||
|
||||
#define MS_FILTER_BASE_METHOD_NO_ARG(_count_) \
|
||||
MS_FILTER_METHOD_ID(MS_FILTER_BASE_ID,_count_,0)
|
||||
|
||||
#define MS_FILTER_EVENT(_id_,_count_,_argtype_) \
|
||||
MS_FILTER_METHOD_ID(_id_,_count_,sizeof(_argtype_))
|
||||
|
||||
#define MS_FILTER_EVENT_NO_ARG(_id_,_count_)\
|
||||
MS_FILTER_METHOD_ID(_id_,_count_,0)
|
||||
|
||||
/* some MSFilter base generic methods:*/
|
||||
#define MS_FILTER_SET_SAMPLE_RATE MS_FILTER_BASE_METHOD(0,int)
|
||||
#define MS_FILTER_GET_SAMPLE_RATE MS_FILTER_BASE_METHOD(1,int)
|
||||
#define MS_FILTER_SET_BITRATE MS_FILTER_BASE_METHOD(2,int)
|
||||
#define MS_FILTER_GET_BITRATE MS_FILTER_BASE_METHOD(3,int)
|
||||
#define MS_FILTER_GET_NCHANNELS MS_FILTER_BASE_METHOD(5,int)
|
||||
#define MS_FILTER_SET_NCHANNELS MS_FILTER_BASE_METHOD(6,int)
|
||||
#define MS_FILTER_ADD_FMTP MS_FILTER_BASE_METHOD(7,const char)
|
||||
#define MS_FILTER_ADD_ATTR MS_FILTER_BASE_METHOD(8,const char)
|
||||
#define MS_FILTER_SET_MTU MS_FILTER_BASE_METHOD(9,int)
|
||||
#define MS_FILTER_GET_MTU MS_FILTER_BASE_METHOD(10,int)
|
||||
|
||||
|
||||
/* more specific methods: to be moved into implementation specific header files*/
|
||||
#define MS_FILTER_SET_FRAMESIZE MS_FILTER_BASE_METHOD(11,int)
|
||||
#define MS_FILTER_SET_FILTERLENGTH MS_FILTER_BASE_METHOD(12,int)
|
||||
#define MS_FILTER_SET_OUTPUT_SAMPLE_RATE MS_FILTER_BASE_METHOD(13,int)
|
||||
#define MS_FILTER_ENABLE_DIRECTMODE MS_FILTER_BASE_METHOD(14,int)
|
||||
#define MS_FILTER_ENABLE_VAD MS_FILTER_BASE_METHOD(15,int)
|
||||
#define MS_FILTER_GET_STAT_DISCARDED MS_FILTER_BASE_METHOD(16,int)
|
||||
#define MS_FILTER_GET_STAT_MISSED MS_FILTER_BASE_METHOD(17,int)
|
||||
#define MS_FILTER_GET_STAT_INPUT MS_FILTER_BASE_METHOD(18,int)
|
||||
#define MS_FILTER_GET_STAT_OUTPUT MS_FILTER_BASE_METHOD(19,int)
|
||||
#define MS_FILTER_ENABLE_AGC MS_FILTER_BASE_METHOD(20,int)
|
||||
#define MS_FILTER_SET_PLAYBACKDELAY MS_FILTER_BASE_METHOD(21,int)
|
||||
#define MS_FILTER_ENABLE_HALFDUPLEX MS_FILTER_BASE_METHOD(22,int)
|
||||
#define MS_FILTER_SET_VAD_PROB_START MS_FILTER_BASE_METHOD(23,int)
|
||||
#define MS_FILTER_SET_VAD_PROB_CONTINUE MS_FILTER_BASE_METHOD(24,int)
|
||||
#define MS_FILTER_SET_MAX_GAIN MS_FILTER_BASE_METHOD(25,int)
|
||||
|
||||
#define MS_CONF_SPEEX_PREPROCESS_MIC MS_FILTER_EVENT(MS_CONF_ID, 1, void*)
|
||||
#define MS_CONF_CHANNEL_VOLUME MS_FILTER_EVENT(MS_CONF_ID, 3, void*)
|
||||
|
||||
#define MS_SPEEX_EC_PREPROCESS_MIC MS_FILTER_EVENT(MS_SPEEX_EC_ID, 1, void*)
|
||||
#define MS_SPEEX_EC_ECHO_STATE MS_FILTER_EVENT(MS_SPEEX_EC_ID, 2, void*)
|
||||
/** @} */
|
||||
|
||||
/*private methods*/
|
||||
void ms_filter_process(MSFilter *f);
|
||||
void ms_filter_preprocess(MSFilter *f, struct _MSTicker *t);
|
||||
void ms_filter_postprocess(MSFilter *f);
|
||||
bool_t ms_filter_inputs_have_data(MSFilter *f);
|
||||
void ms_filter_notify(MSFilter *f, unsigned int id, void *arg);
|
||||
void ms_filter_notify_no_arg(MSFilter *f, unsigned int id);
|
||||
#define ms_filter_lock(f) ms_mutex_lock(&(f)->lock)
|
||||
#define ms_filter_unlock(f) ms_mutex_unlock(&(f)->lock)
|
||||
void ms_filter_unregister_all(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* used by awk script in Makefile.am to generate alldescs.c */
|
||||
#define MS_FILTER_DESC_EXPORT(desc)
|
||||
|
||||
/* xgettext markup */
|
||||
#define N_(String) String
|
||||
|
||||
#endif
|
||||
|
|
@ -1,117 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
#ifndef MSQUEUE_H
|
||||
#define MSQUEUE_H
|
||||
|
||||
#include "ortp/str_utils.h"
|
||||
|
||||
/* for the moment these are stupid queues limited to one element*/
|
||||
|
||||
typedef struct _MSCPoint{
|
||||
struct _MSFilter *filter;
|
||||
int pin;
|
||||
} MSCPoint;
|
||||
|
||||
typedef struct _MSQueue
|
||||
{
|
||||
queue_t q;
|
||||
MSCPoint prev;
|
||||
MSCPoint next;
|
||||
}MSQueue;
|
||||
|
||||
|
||||
MSQueue * ms_queue_new(struct _MSFilter *f1, int pin1, struct _MSFilter *f2, int pin2 );
|
||||
|
||||
static inline mblk_t *ms_queue_get(MSQueue *q){
|
||||
return getq(&q->q);
|
||||
}
|
||||
|
||||
static inline void ms_queue_put(MSQueue *q, mblk_t *m){
|
||||
putq(&q->q,m);
|
||||
return;
|
||||
}
|
||||
|
||||
static inline mblk_t * ms_queue_peek_last(MSQueue *q){
|
||||
return qlast(&q->q);
|
||||
}
|
||||
|
||||
static inline bool_t ms_queue_empty(MSQueue *q){
|
||||
return qempty(&q->q);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/*init a queue on stack*/
|
||||
void ms_queue_init(MSQueue *q);
|
||||
|
||||
void ms_queue_flush(MSQueue *q);
|
||||
|
||||
void ms_queue_destroy(MSQueue *q);
|
||||
|
||||
#define mblk_set_timestamp_info(m,ts) (m)->reserved1=(ts);
|
||||
#define mblk_get_timestamp_info(m) ((m)->reserved1)
|
||||
#define mblk_set_marker_info(m,bit) (m)->reserved2=((m)->reserved2|bit)
|
||||
#define mblk_get_marker_info(m) ((m)->reserved2&0x1)
|
||||
#define mblk_set_rate(m,bits) (m)->reserved2=((m)->reserved2|(bits)<<1)
|
||||
#define mblk_get_rate(m) (((m)->reserved2>>1)&0x3)
|
||||
#define mblk_set_payload_type(m,bits) (m)->reserved2=((m)->reserved2|(bits<<3))
|
||||
#define mblk_get_payload_type(m) (((m)->reserved2>>3)&0x7F)
|
||||
#define mblk_set_precious_flag(m,bit) (m)->reserved2=(m)->reserved2|((bit & 0x1)<<10) /*use to prevent mirroring*/
|
||||
#define mblk_get_precious_flag(m) (((m)->reserved2)>>10 & 0x1)
|
||||
|
||||
struct _MSBufferizer{
|
||||
queue_t q;
|
||||
int size;
|
||||
};
|
||||
|
||||
typedef struct _MSBufferizer MSBufferizer;
|
||||
|
||||
/*allocates and initialize */
|
||||
MSBufferizer * ms_bufferizer_new(void);
|
||||
|
||||
/*initialize in memory */
|
||||
void ms_bufferizer_init(MSBufferizer *obj);
|
||||
|
||||
void ms_bufferizer_put(MSBufferizer *obj, mblk_t *m);
|
||||
|
||||
/* put every mblk_t from q, into the bufferizer */
|
||||
void ms_bufferizer_put_from_queue(MSBufferizer *obj, MSQueue *q);
|
||||
|
||||
int ms_bufferizer_read(MSBufferizer *obj, uint8_t *data, int datalen);
|
||||
|
||||
/* returns the number of bytes available in the bufferizer*/
|
||||
static inline int ms_bufferizer_get_avail(MSBufferizer *obj){
|
||||
return obj->size;
|
||||
}
|
||||
|
||||
/* purge all data pending in the bufferizer */
|
||||
void ms_bufferizer_flush(MSBufferizer *obj);
|
||||
|
||||
void ms_bufferizer_uninit(MSBufferizer *obj);
|
||||
|
||||
void ms_bufferizer_destroy(MSBufferizer *obj);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef msrtp_hh
|
||||
#define msrtp_hh
|
||||
|
||||
#include "msfilter.h"
|
||||
#include "ice.h"
|
||||
#include "ortp/ortp.h"
|
||||
|
||||
#define MS_RTP_RECV_SET_SESSION MS_FILTER_METHOD(MS_RTP_RECV_ID,0,RtpSession*)
|
||||
|
||||
#define MS_RTP_SEND_SET_SESSION MS_FILTER_METHOD(MS_RTP_SEND_ID,0,RtpSession*)
|
||||
|
||||
#define MS_RTP_SEND_SEND_DTMF MS_FILTER_METHOD(MS_RTP_SEND_ID,1,const char)
|
||||
|
||||
#define MS_RTP_SEND_MUTE_MIC MS_FILTER_METHOD_NO_ARG(MS_RTP_SEND_ID,3)
|
||||
|
||||
#define MS_RTP_SEND_UNMUTE_MIC MS_FILTER_METHOD_NO_ARG(MS_RTP_SEND_ID,4)
|
||||
|
||||
#define MS_RTP_SEND_SET_RELAY_SESSION_ID MS_FILTER_METHOD(MS_RTP_SEND_ID,5,const char *)
|
||||
|
||||
#define MS_RTP_SEND_SET_DTMF_DURATION MS_FILTER_METHOD(MS_RTP_SEND_ID,1,int)
|
||||
|
||||
extern MSFilterDesc ms_rtp_send_desc;
|
||||
extern MSFilterDesc ms_rtp_recv_desc;
|
||||
|
||||
#endif
|
||||
|
|
@ -1,436 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef sndcard_h
|
||||
#define sndcard_h
|
||||
|
||||
#include "mscommon.h"
|
||||
|
||||
/**
|
||||
* @file mssndcard.h
|
||||
* @brief mediastreamer2 mssndcard.h include file
|
||||
*
|
||||
* This file provide the API needed to manage
|
||||
* soundcard filters.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2_soundcard Sound Card API - manage audio capture/play filters.
|
||||
* @ingroup mediastreamer2_api
|
||||
* @{
|
||||
*/
|
||||
|
||||
struct _MSSndCardManager{
|
||||
MSList *cards;
|
||||
MSList *descs;
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure for sound card manager object.
|
||||
* @var MSSndCardManager
|
||||
*/
|
||||
typedef struct _MSSndCardManager MSSndCardManager;
|
||||
|
||||
enum _MSSndCardMixerElem{
|
||||
MS_SND_CARD_MASTER,
|
||||
MS_SND_CARD_PLAYBACK,
|
||||
MS_SND_CARD_CAPTURE
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure for sound card mixer values.
|
||||
* @var MSSndCardMixerElem
|
||||
*/
|
||||
typedef enum _MSSndCardMixerElem MSSndCardMixerElem;
|
||||
|
||||
enum _MSSndCardCapture {
|
||||
MS_SND_CARD_MIC,
|
||||
MS_SND_CARD_LINE
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure for sound card capture source values.
|
||||
* @var MSSndCardCapture
|
||||
*/
|
||||
typedef enum _MSSndCardCapture MSSndCardCapture;
|
||||
|
||||
enum _MSSndCardControlElem {
|
||||
MS_SND_CARD_MASTER_MUTE,
|
||||
MS_SND_CARD_PLAYBACK_MUTE,
|
||||
MS_SND_CARD_CAPTURE_MUTE
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure for sound card mixer values.
|
||||
* @var MSSndCardControlElem
|
||||
*/
|
||||
typedef enum _MSSndCardControlElem MSSndCardControlElem;
|
||||
|
||||
struct _MSSndCard;
|
||||
|
||||
typedef void (*MSSndCardDetectFunc)(MSSndCardManager *obj);
|
||||
typedef void (*MSSndCardInitFunc)(struct _MSSndCard *obj);
|
||||
typedef void (*MSSndCardUninitFunc)(struct _MSSndCard *obj);
|
||||
typedef void (*MSSndCardSetLevelFunc)(struct _MSSndCard *obj, MSSndCardMixerElem e, int percent);
|
||||
typedef void (*MSSndCardSetCaptureFunc)(struct _MSSndCard *obj, MSSndCardCapture e);
|
||||
typedef int (*MSSndCardGetLevelFunc)(struct _MSSndCard *obj, MSSndCardMixerElem e);
|
||||
typedef int (*MSSndCardSetControlFunc)(struct _MSSndCard *obj, MSSndCardControlElem e, int val);
|
||||
typedef int (*MSSndCardGetControlFunc)(struct _MSSndCard *obj, MSSndCardControlElem e);
|
||||
typedef struct _MSFilter * (*MSSndCardCreateReaderFunc)(struct _MSSndCard *obj);
|
||||
typedef struct _MSFilter * (*MSSndCardCreateWriterFunc)(struct _MSSndCard *obj);
|
||||
typedef struct _MSSndCard * (*MSSndCardDuplicateFunc)(struct _MSSndCard *obj);
|
||||
typedef void (*MSSndCardUnloadFunc)(MSSndCardManager *obj);
|
||||
|
||||
struct _MSSndCardDesc{
|
||||
const char *driver_type;
|
||||
MSSndCardDetectFunc detect;
|
||||
MSSndCardInitFunc init;
|
||||
MSSndCardSetLevelFunc set_level;
|
||||
MSSndCardGetLevelFunc get_level;
|
||||
MSSndCardSetCaptureFunc set_capture;
|
||||
MSSndCardSetControlFunc set_control;
|
||||
MSSndCardGetControlFunc get_control;
|
||||
MSSndCardCreateReaderFunc create_reader;
|
||||
MSSndCardCreateWriterFunc create_writer;
|
||||
MSSndCardUninitFunc uninit;
|
||||
MSSndCardDuplicateFunc duplicate;
|
||||
MSSndCardUnloadFunc unload;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure for sound card description object.
|
||||
* @var MSSndCardDesc
|
||||
*/
|
||||
typedef struct _MSSndCardDesc MSSndCardDesc;
|
||||
|
||||
#define MS_SND_CARD_CAP_DISABLED (0)
|
||||
#define MS_SND_CARD_CAP_CAPTURE (1)
|
||||
#define MS_SND_CARD_CAP_PLAYBACK (1<<1)
|
||||
|
||||
struct _MSSndCard{
|
||||
MSSndCardDesc *desc;
|
||||
char *name;
|
||||
char *id;
|
||||
unsigned int capabilities;
|
||||
void *data;
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure for sound card object.
|
||||
* @var MSSndCard
|
||||
*/
|
||||
typedef struct _MSSndCard MSSndCard;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2_soundcardmanager Sound Card Manager API
|
||||
* @ingroup mediastreamer2_soundcard
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* Retreive a sound card manager object.
|
||||
*
|
||||
* Returns: MSSndCardManager if successfull, NULL otherwise.
|
||||
*/
|
||||
MSSndCardManager * ms_snd_card_manager_get(void);
|
||||
|
||||
/**
|
||||
* Destroy a sound card manager object.
|
||||
*
|
||||
*/
|
||||
void ms_snd_card_manager_destroy(void);
|
||||
|
||||
/**
|
||||
* Retreive a sound card object based on its name.
|
||||
*
|
||||
* @param m A sound card manager containing sound cards.
|
||||
* @param id A name for card to search.
|
||||
*
|
||||
* Returns: MSSndCard if successfull, NULL otherwise.
|
||||
*/
|
||||
MSSndCard * ms_snd_card_manager_get_card(MSSndCardManager *m, const char *id);
|
||||
|
||||
/**
|
||||
* Retreive the default sound card object.
|
||||
*
|
||||
* @param m A sound card manager containing sound cards.
|
||||
*
|
||||
* Returns: MSSndCard if successfull, NULL otherwise.
|
||||
*/
|
||||
MSSndCard * ms_snd_card_manager_get_default_card(MSSndCardManager *m);
|
||||
|
||||
/**
|
||||
* Retreive the default capture sound card object.
|
||||
*
|
||||
* @param m A sound card manager containing sound cards.
|
||||
*
|
||||
* Returns: MSSndCard if successfull, NULL otherwise.
|
||||
*/
|
||||
MSSndCard * ms_snd_card_manager_get_default_capture_card(MSSndCardManager *m);
|
||||
|
||||
/**
|
||||
* Retreive the default playback sound card object.
|
||||
*
|
||||
* @param m A sound card manager containing sound cards.
|
||||
*
|
||||
* Returns: MSSndCard if successfull, NULL otherwise.
|
||||
*/
|
||||
MSSndCard * ms_snd_card_manager_get_default_playback_card(MSSndCardManager *m);
|
||||
|
||||
/**
|
||||
* Retreive the list of sound card objects.
|
||||
*
|
||||
* @param m A sound card manager containing sound cards.
|
||||
*
|
||||
* Returns: MSList of cards if successfull, NULL otherwise.
|
||||
*/
|
||||
const MSList * ms_snd_card_manager_get_list(MSSndCardManager *m);
|
||||
|
||||
/**
|
||||
* Add a sound card object in a sound card manager's list.
|
||||
*
|
||||
* @param m A sound card manager containing sound cards.
|
||||
* @param c A sound card object.
|
||||
*
|
||||
*/
|
||||
void ms_snd_card_manager_add_card(MSSndCardManager *m, MSSndCard *c);
|
||||
|
||||
/**
|
||||
* Register a sound card description in a sound card manager.
|
||||
*
|
||||
* @param m A sound card manager containing sound cards.
|
||||
* @param desc A sound card description object.
|
||||
*
|
||||
*/
|
||||
void ms_snd_card_manager_register_desc(MSSndCardManager *m, MSSndCardDesc *desc);
|
||||
|
||||
/**
|
||||
* Ask all registered MSSndCardDesc to re-detect their soundcards.
|
||||
* @param m The sound card manager.
|
||||
**/
|
||||
void ms_snd_card_manager_reload(MSSndCardManager *m);
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2_soundcardfilter Sound Card Filter API
|
||||
* @ingroup mediastreamer2_soundcard
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* Create an INPUT filter based on the selected sound card.
|
||||
*
|
||||
* @param obj A sound card object.
|
||||
*
|
||||
* Returns: A MSFilter if successfull, NULL otherwise.
|
||||
*/
|
||||
struct _MSFilter * ms_snd_card_create_reader(MSSndCard *obj);
|
||||
|
||||
/**
|
||||
* Create an OUPUT filter based on the selected sound card.
|
||||
*
|
||||
* @param obj A sound card object.
|
||||
*
|
||||
* Returns: A MSFilter if successfull, NULL otherwise.
|
||||
*/
|
||||
struct _MSFilter * ms_snd_card_create_writer(MSSndCard *obj);
|
||||
|
||||
/**
|
||||
* Create a new sound card object.
|
||||
*
|
||||
* @param desc A sound card description object.
|
||||
*
|
||||
* Returns: MSSndCard if successfull, NULL otherwise.
|
||||
*/
|
||||
MSSndCard * ms_snd_card_new(MSSndCardDesc *desc);
|
||||
|
||||
/**
|
||||
* Destroy sound card object.
|
||||
*
|
||||
* @param obj A MSSndCard object.
|
||||
*/
|
||||
void ms_snd_card_destroy(MSSndCard *obj);
|
||||
|
||||
/**
|
||||
* Duplicate a sound card object.
|
||||
*
|
||||
* This helps to open several time a sound card.
|
||||
*
|
||||
* @param card A sound card object.
|
||||
*
|
||||
* Returns: MSSndCard if successfull, NULL otherwise.
|
||||
*/
|
||||
MSSndCard * ms_snd_card_dup(MSSndCard *card);
|
||||
|
||||
/**
|
||||
* Retreive a sound card's driver type string.
|
||||
*
|
||||
* Internal driver types are either: "OSS, ALSA, WINSND, PASND, CA"
|
||||
*
|
||||
* @param obj A sound card object.
|
||||
*
|
||||
* Returns: a string if successfull, NULL otherwise.
|
||||
*/
|
||||
const char *ms_snd_card_get_driver_type(const MSSndCard *obj);
|
||||
|
||||
/**
|
||||
* Retreive a sound card's name.
|
||||
*
|
||||
* @param obj A sound card object.
|
||||
*
|
||||
* Returns: a string if successfull, NULL otherwise.
|
||||
*/
|
||||
const char *ms_snd_card_get_name(const MSSndCard *obj);
|
||||
|
||||
/**
|
||||
* Retreive sound card's name ($driver_type: $name).
|
||||
*
|
||||
* @param obj A sound card object.
|
||||
*
|
||||
* Returns: A string if successfull, NULL otherwise.
|
||||
*/
|
||||
const char *ms_snd_card_get_string_id(MSSndCard *obj);
|
||||
|
||||
|
||||
/**
|
||||
* Retreive sound card's capabilities.
|
||||
*
|
||||
* <PRE>
|
||||
* MS_SND_CARD_CAP_CAPTURE
|
||||
* MS_SND_CARD_CAP_PLAYBACK
|
||||
* MS_SND_CARD_CAP_CAPTURE|MS_SND_CARD_CAP_PLAYBACK
|
||||
* </PRE>
|
||||
*
|
||||
* @param obj A sound card object.
|
||||
*
|
||||
* Returns: A unsigned int if successfull, 0 otherwise.
|
||||
*/
|
||||
unsigned int ms_snd_card_get_capabilities(const MSSndCard *obj);
|
||||
|
||||
/**
|
||||
* Set some mixer level value.
|
||||
*
|
||||
* <PRE>
|
||||
* MS_SND_CARD_MASTER,
|
||||
* MS_SND_CARD_PLAYBACK,
|
||||
* MS_SND_CARD_CAPTURE
|
||||
* </PRE>
|
||||
* Note: not implemented on all sound card filters.
|
||||
*
|
||||
* @param obj A sound card object.
|
||||
* @param e A sound card mixer object.
|
||||
* @param percent A volume level.
|
||||
*
|
||||
*/
|
||||
void ms_snd_card_set_level(MSSndCard *obj, MSSndCardMixerElem e, int percent);
|
||||
|
||||
/**
|
||||
* Get some mixer level value.
|
||||
*
|
||||
* <PRE>
|
||||
* MS_SND_CARD_MASTER,
|
||||
* MS_SND_CARD_PLAYBACK,
|
||||
* MS_SND_CARD_CAPTURE
|
||||
* </PRE>
|
||||
* Note: not implemented on all sound card filters.
|
||||
*
|
||||
* @param obj A sound card object.
|
||||
* @param e A sound card mixer object.
|
||||
*
|
||||
* Returns: A int if successfull, <0 otherwise.
|
||||
*/
|
||||
int ms_snd_card_get_level(MSSndCard *obj, MSSndCardMixerElem e);
|
||||
|
||||
/**
|
||||
* Set some source for capture.
|
||||
*
|
||||
* <PRE>
|
||||
* MS_SND_CARD_MIC,
|
||||
* MS_SND_CARD_LINE
|
||||
* </PRE>
|
||||
* Note: not implemented on all sound card filters.
|
||||
*
|
||||
* @param obj A sound card object.
|
||||
* @param c A sound card capture value.
|
||||
*
|
||||
* Returns: A int if successfull, 0 otherwise.
|
||||
*/
|
||||
void ms_snd_card_set_capture(MSSndCard *obj, MSSndCardCapture c);
|
||||
|
||||
/**
|
||||
* Set some mixer control.
|
||||
*
|
||||
* <PRE>
|
||||
* MS_SND_CARD_MASTER_MUTE, -> 0: unmute, 1: mute
|
||||
* MS_SND_CARD_PLAYBACK_MUTE, -> 0: unmute, 1: mute
|
||||
* MS_SND_CARD_CAPTURE_MUTE -> 0: unmute, 1: mute
|
||||
* </PRE>
|
||||
* Note: not implemented on all sound card filters.
|
||||
*
|
||||
* @param obj A sound card object.
|
||||
* @param e A sound card control object.
|
||||
* @param percent A value for control.
|
||||
*
|
||||
* Returns: 0 if successfull, <0 otherwise.
|
||||
*/
|
||||
int ms_snd_card_set_control(MSSndCard *obj, MSSndCardControlElem e, int val);
|
||||
|
||||
/**
|
||||
* Get some mixer control.
|
||||
*
|
||||
* <PRE>
|
||||
* MS_SND_CARD_MASTER_MUTE, -> return 0: unmute, 1: mute
|
||||
* MS_SND_CARD_PLAYBACK_MUTE, -> return 0: unmute, 1: mute
|
||||
* MS_SND_CARD_CAPTURE_MUTE -> return 0: unmute, 1: mute
|
||||
* </PRE>
|
||||
* Note: not implemented on all sound card filters.
|
||||
*
|
||||
* @param obj A sound card object.
|
||||
* @param e A sound card mixer object.
|
||||
*
|
||||
* Returns: A int if successfull, <0 otherwise.
|
||||
*/
|
||||
int ms_snd_card_get_control(MSSndCard *obj, MSSndCardControlElem e);
|
||||
|
||||
/**
|
||||
* Create a alsa card with user supplied pcm name and mixer name.
|
||||
* @param pcmdev The pcm device name following alsa conventions (ex: plughw:0)
|
||||
* @param mixdev The mixer device name following alsa conventions.
|
||||
*
|
||||
* Returns: a MSSndCard object, NULL if alsa support is not available.
|
||||
*/
|
||||
MSSndCard * ms_alsa_card_new_custom(const char *pcmdev, const char *mixdev);
|
||||
|
||||
|
||||
/** @} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006-2009 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
msspeexec.h : interface of the speex echo canceler integration in mediastreamer2
|
||||
|
||||
*/
|
||||
|
||||
#ifndef msspeexec_h
|
||||
#define msspeexec_h
|
||||
|
||||
#include <mediastreamer2/msfilter.h>
|
||||
|
||||
/** sets the tail length in milliseconds*/
|
||||
#define MS_SPEEX_EC_SET_TAIL_LENGTH MS_FILTER_METHOD(MS_SPEEX_EC_ID,0,int)
|
||||
|
||||
/** sets the minimum delay of the echo if known. This optimizes the convergence*/
|
||||
#define MS_SPEEX_EC_SET_DELAY MS_FILTER_METHOD(MS_SPEEX_EC_ID,1,int)
|
||||
|
||||
/** sets the frame size for the AU-MDF algorithm, in number of fft points*/
|
||||
#define MS_SPEEX_EC_SET_FRAME_SIZE MS_FILTER_METHOD(MS_SPEEX_EC_ID,2,int)
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
#ifndef mstee_h
|
||||
#define mstee_h
|
||||
|
||||
#include "msfilter.h"
|
||||
|
||||
/*mute/unmute some outputs of the MSTee */
|
||||
#define MS_TEE_UNMUTE MS_FILTER_METHOD(MS_TEE_ID,0,int)
|
||||
#define MS_TEE_MUTE MS_FILTER_METHOD(MS_TEE_ID,1,int)
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -1,153 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef MS_TICKER_H
|
||||
#define MS_TICKER_H
|
||||
|
||||
|
||||
#include "msfilter.h"
|
||||
#include "mscommon.h"
|
||||
|
||||
/**
|
||||
* @file msticker.h
|
||||
* @brief mediastreamer2 msticker.h include file
|
||||
*
|
||||
* This file provide the API needed to create, start
|
||||
* and stop a graph.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2_ticker Ticker API - manage mediastreamer2 graphs.
|
||||
* @ingroup mediastreamer2_api
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Structure for method getting time in miliseconds from an external source.
|
||||
* @var MSTickerTimeFunc
|
||||
*/
|
||||
typedef uint64_t (*MSTickerTimeFunc)(void *);
|
||||
|
||||
struct _MSTicker
|
||||
{
|
||||
ms_mutex_t lock;
|
||||
ms_cond_t cond;
|
||||
MSList *execution_list; /* the list of source filters to be executed.*/
|
||||
ms_thread_t thread; /* the thread ressource*/
|
||||
int interval; /* in miliseconds*/
|
||||
int exec_id;
|
||||
uint32_t ticks;
|
||||
uint64_t time; /* a time since the start of the ticker expressed in milisec*/
|
||||
uint64_t orig; /* a relative time to take in account difference between time base given by consecutive get_cur_time_ptr() functions.*/
|
||||
MSTickerTimeFunc get_cur_time_ptr;
|
||||
void *get_cur_time_data;
|
||||
char *name;
|
||||
bool_t run; /* flag to indicate whether the ticker must be run or not */
|
||||
#ifdef WIN32_TIMERS
|
||||
HANDLE TimeEvent;
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure for ticker object.
|
||||
* @var MSTicker
|
||||
*/
|
||||
typedef struct _MSTicker MSTicker;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Create a ticker that will be used to start
|
||||
* and stop a graph.
|
||||
*
|
||||
* Returns: MSTicker * if successfull, NULL otherwise.
|
||||
*/
|
||||
MSTicker *ms_ticker_new(void);
|
||||
|
||||
/**
|
||||
* Set a name to the ticker (used for logging)
|
||||
**/
|
||||
void ms_ticker_set_name(MSTicker *ticker, const char *name);
|
||||
|
||||
/**
|
||||
* Attach a chain of filters to a ticker.
|
||||
* The processing chain will be executed until ms_ticker_detach
|
||||
* will be called.
|
||||
*
|
||||
* @param ticker A #MSTicker object.
|
||||
* @param f A #MSFilter object.
|
||||
*
|
||||
* Returns: 0 if successfull, -1 otherwise.
|
||||
*/
|
||||
int ms_ticker_attach(MSTicker *ticker,MSFilter *f);
|
||||
|
||||
/**
|
||||
* Dettach a chain of filters to a ticker.
|
||||
* The processing chain will no more be executed.
|
||||
*
|
||||
* @param ticker A #MSTicker object.
|
||||
* @param f A #MSFilter object.
|
||||
*
|
||||
*
|
||||
* Returns: 0 if successfull, -1 otherwise.
|
||||
*/
|
||||
int ms_ticker_detach(MSTicker *ticker,MSFilter *f);
|
||||
|
||||
/**
|
||||
* Destroy a ticker.
|
||||
*
|
||||
* @param ticker A #MSTicker object.
|
||||
*
|
||||
*/
|
||||
void ms_ticker_destroy(MSTicker *ticker);
|
||||
|
||||
/**
|
||||
* Override MSTicker's time function.
|
||||
* This can be used to control the ticker from an external time provider, for example the
|
||||
* clock of a sound card.
|
||||
*
|
||||
* @param ticker A #MSTicker object.
|
||||
* @param func A replacement method for calculating "current time"
|
||||
* @param user_data Any pointer to user private data.
|
||||
*/
|
||||
void ms_ticker_set_time_func(MSTicker *ticker, MSTickerTimeFunc func, void *user_data);
|
||||
|
||||
/**
|
||||
* Print on stdout all filters of a ticker. (INTERNAL: DO NOT USE)
|
||||
*
|
||||
* @param ticker A #MSTicker object.
|
||||
*/
|
||||
void ms_ticker_print_graphs(MSTicker *ticker);
|
||||
|
||||
/* private functions:*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef msv4l_h
|
||||
#define msv4l_h
|
||||
|
||||
#include "msfilter.h"
|
||||
|
||||
#define MS_V4L_START MS_FILTER_METHOD_NO_ARG(MS_V4L_ID,0)
|
||||
#define MS_V4L_STOP MS_FILTER_METHOD_NO_ARG(MS_V4L_ID,1)
|
||||
#define MS_V4L_SET_DEVICE MS_FILTER_METHOD(MS_V4L_ID,2,int)
|
||||
#define MS_V4L_SET_IMAGE MS_FILTER_METHOD(MS_V4L_ID,3,char)
|
||||
|
||||
#endif
|
||||
|
|
@ -1,191 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef msvideo_h
|
||||
#define msvideo_h
|
||||
|
||||
#include "msfilter.h"
|
||||
|
||||
/* some global constants for video MSFilter(s) */
|
||||
#define MS_VIDEO_SIZE_SQCIF_W 128
|
||||
#define MS_VIDEO_SIZE_SQCIF_H 96
|
||||
#define MS_VIDEO_SIZE_QCIF_W 176
|
||||
#define MS_VIDEO_SIZE_QCIF_H 144
|
||||
#define MS_VIDEO_SIZE_CIF_W 352
|
||||
#define MS_VIDEO_SIZE_CIF_H 288
|
||||
#define MS_VIDEO_SIZE_ICIF_W 352
|
||||
#define MS_VIDEO_SIZE_ICIF_H 576
|
||||
#define MS_VIDEO_SIZE_4CIF_W 704
|
||||
#define MS_VIDEO_SIZE_4CIF_H 576
|
||||
|
||||
#define MS_VIDEO_SIZE_QQVGA_W 160
|
||||
#define MS_VIDEO_SIZE_QQVGA_H 120
|
||||
#define MS_VIDEO_SIZE_QVGA_W 320
|
||||
#define MS_VIDEO_SIZE_QVGA_H 240
|
||||
#define MS_VIDEO_SIZE_VGA_W 640
|
||||
#define MS_VIDEO_SIZE_VGA_H 480
|
||||
#define MS_VIDEO_SIZE_SVGA_W 800
|
||||
#define MS_VIDEO_SIZE_SVGA_H 600
|
||||
|
||||
#define MS_VIDEO_SIZE_NS1_W 324
|
||||
#define MS_VIDEO_SIZE_NS1_H 248
|
||||
|
||||
#define MS_VIDEO_SIZE_QSIF_W 176
|
||||
#define MS_VIDEO_SIZE_QSIF_H 120
|
||||
#define MS_VIDEO_SIZE_SIF_W 352
|
||||
#define MS_VIDEO_SIZE_SIF_H 240
|
||||
#define MS_VIDEO_SIZE_ISIF_W 352
|
||||
#define MS_VIDEO_SIZE_ISIF_H 480
|
||||
#define MS_VIDEO_SIZE_4SIF_W 704
|
||||
#define MS_VIDEO_SIZE_4SIF_H 480
|
||||
|
||||
#define MS_VIDEO_SIZE_288P_W 512
|
||||
#define MS_VIDEO_SIZE_288P_H 288
|
||||
#define MS_VIDEO_SIZE_448P_W 768
|
||||
#define MS_VIDEO_SIZE_448P_H 448
|
||||
#define MS_VIDEO_SIZE_576P_W 1024
|
||||
#define MS_VIDEO_SIZE_576P_H 576
|
||||
#define MS_VIDEO_SIZE_720P_W 1280
|
||||
#define MS_VIDEO_SIZE_720P_H 720
|
||||
#define MS_VIDEO_SIZE_1080P_W 1920
|
||||
#define MS_VIDEO_SIZE_1080P_H 1080
|
||||
|
||||
#define MS_VIDEO_SIZE_SDTV_W 768
|
||||
#define MS_VIDEO_SIZE_SDTV_H 576
|
||||
#define MS_VIDEO_SIZE_HDTVP_W 1920
|
||||
#define MS_VIDEO_SIZE_HDTVP_H 1200
|
||||
|
||||
#define MS_VIDEO_SIZE_XGA_W 1024
|
||||
#define MS_VIDEO_SIZE_XGA_H 768
|
||||
#define MS_VIDEO_SIZE_WXGA_W 1080
|
||||
#define MS_VIDEO_SIZE_WXGA_H 768
|
||||
|
||||
#define MS_VIDEO_SIZE_MAX_W MS_VIDEO_SIZE_1024_W
|
||||
#define MS_VIDEO_SIZE_MAX_H MS_VIDEO_SIZE_1024_H
|
||||
|
||||
|
||||
/* those structs are part of the ABI: don't change their size otherwise binary plugins will be broken*/
|
||||
|
||||
typedef struct MSVideoSize{
|
||||
int width,height;
|
||||
} MSVideoSize;
|
||||
|
||||
typedef struct MSRect{
|
||||
int x,y,w,h;
|
||||
} MSRect;
|
||||
|
||||
#define MS_VIDEO_SIZE_CIF (MSVideoSize){MS_VIDEO_SIZE_CIF_W,MS_VIDEO_SIZE_CIF_H}
|
||||
#define MS_VIDEO_SIZE_QCIF (MSVideoSize){MS_VIDEO_SIZE_QCIF_W,MS_VIDEO_SIZE_QCIF_H}
|
||||
#define MS_VIDEO_SIZE_4CIF (MSVideoSize){MS_VIDEO_SIZE_4CIF_W,MS_VIDEO_SIZE_4CIF_H}
|
||||
|
||||
#define MS_VIDEO_SIZE_QQVGA (MSVideoSize){MS_VIDEO_SIZE_QQVGA_W,MS_VIDEO_SIZE_QQVGA_H}
|
||||
#define MS_VIDEO_SIZE_QVGA (MSVideoSize){MS_VIDEO_SIZE_QVGA_W,MS_VIDEO_SIZE_QVGA_H}
|
||||
#define MS_VIDEO_SIZE_VGA (MSVideoSize){MS_VIDEO_SIZE_VGA_W,MS_VIDEO_SIZE_VGA_H}
|
||||
|
||||
#define MS_VIDEO_SIZE_720P (MSVideoSize){MS_VIDEO_SIZE_720P_W, MS_VIDEO_SIZE_720P_H}
|
||||
|
||||
#define MS_VIDEO_SIZE_NS1 (MSVideoSize){MS_VIDEO_SIZE_NS1_W,MS_VIDEO_SIZE_NS1_H}
|
||||
|
||||
#define MS_VIDEO_SIZE_XGA (MSVideoSize){MS_VIDEO_SIZE_XGA_W, MS_VIDEO_SIZE_XGA_H}
|
||||
|
||||
#define MS_VIDEO_SIZE_SVGA (MSVideoSize){MS_VIDEO_SIZE_SVGA_W, MS_VIDEO_SIZE_SVGA_H}
|
||||
|
||||
/*deprecated: use MS_VIDEO_SIZE_SVGA*/
|
||||
#define MS_VIDEO_SIZE_800X600_W MS_VIDEO_SIZE_SVGA_W
|
||||
#define MS_VIDEO_SIZE_800X600_H MS_VIDEO_SIZE_SVGA_H
|
||||
#define MS_VIDEO_SIZE_800X600 MS_VIDEO_SIZE_SVGA
|
||||
/*deprecated use MS_VIDEO_SIZE_XGA*/
|
||||
#define MS_VIDEO_SIZE_1024_W 1024
|
||||
#define MS_VIDEO_SIZE_1024_H 768
|
||||
#define MS_VIDEO_SIZE_1024 MS_VIDEO_SIZE_XGA
|
||||
|
||||
typedef enum{
|
||||
MS_YUV420P,
|
||||
MS_YUYV,
|
||||
MS_RGB24,
|
||||
MS_RGB24_REV, /*->microsoft down-top bitmaps */
|
||||
MS_MJPEG,
|
||||
MS_UYVY,
|
||||
MS_YUY2, /* -> same as MS_YUYV */
|
||||
MS_PIX_FMT_UNKNOWN
|
||||
}MSPixFmt;
|
||||
|
||||
typedef struct _MSPicture{
|
||||
int w,h;
|
||||
uint8_t *planes[4]; /*we usually use 3 planes, 4th is for compatibility */
|
||||
int strides[4]; /*with ffmpeg's swscale.h */
|
||||
}MSPicture;
|
||||
|
||||
typedef struct _MSPicture YuvBuf; /*for backward compatibility*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
int ms_pix_fmt_to_ffmpeg(MSPixFmt fmt);
|
||||
MSPixFmt ffmpeg_pix_fmt_to_ms(int fmt);
|
||||
MSPixFmt ms_fourcc_to_pix_fmt(uint32_t fourcc);
|
||||
void ms_ffmpeg_check_init(void);
|
||||
int yuv_buf_init_from_mblk(MSPicture *buf, mblk_t *m);
|
||||
void yuv_buf_init_from_mblk_with_size(MSPicture *buf, mblk_t *m, int w, int h);
|
||||
mblk_t * yuv_buf_alloc(MSPicture *buf, int w, int h);
|
||||
void yuv_buf_copy(uint8_t *src_planes[], const int src_strides[],
|
||||
uint8_t *dst_planes[], const int dst_strides[3], MSVideoSize roi);
|
||||
void yuv_buf_mirror(YuvBuf *buf);
|
||||
void rgb24_revert(uint8_t *buf, int w, int h, int linesize);
|
||||
void rgb24_copy_revert(uint8_t *dstbuf, int dstlsz,
|
||||
const uint8_t *srcbuf, int srclsz, MSVideoSize roi);
|
||||
|
||||
static inline bool_t ms_video_size_greater_than(MSVideoSize vs1, MSVideoSize vs2){
|
||||
return (vs1.width>=vs2.width) && (vs1.height>=vs2.height);
|
||||
}
|
||||
|
||||
static inline MSVideoSize ms_video_size_max(MSVideoSize vs1, MSVideoSize vs2){
|
||||
return ms_video_size_greater_than(vs1,vs2) ? vs1 : vs2;
|
||||
}
|
||||
|
||||
static inline MSVideoSize ms_video_size_min(MSVideoSize vs1, MSVideoSize vs2){
|
||||
return ms_video_size_greater_than(vs1,vs2) ? vs2 : vs1;
|
||||
}
|
||||
|
||||
static inline bool_t ms_video_size_equal(MSVideoSize vs1, MSVideoSize vs2){
|
||||
return vs1.width==vs2.width && vs1.height==vs2.height;
|
||||
}
|
||||
|
||||
MSVideoSize ms_video_size_get_just_lower_than(MSVideoSize vs);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#define MS_FILTER_SET_VIDEO_SIZE MS_FILTER_BASE_METHOD(100,MSVideoSize)
|
||||
#define MS_FILTER_GET_VIDEO_SIZE MS_FILTER_BASE_METHOD(101,MSVideoSize)
|
||||
|
||||
#define MS_FILTER_SET_PIX_FMT MS_FILTER_BASE_METHOD(102,MSPixFmt)
|
||||
#define MS_FILTER_GET_PIX_FMT MS_FILTER_BASE_METHOD(103,MSPixFmt)
|
||||
|
||||
#define MS_FILTER_SET_FPS MS_FILTER_BASE_METHOD(104,float)
|
||||
#define MS_FILTER_GET_FPS MS_FILTER_BASE_METHOD(105,float)
|
||||
|
||||
/* request a video-fast-update (=I frame for H263,MP4V-ES) to a video encoder*/
|
||||
#define MS_FILTER_REQ_VFU MS_FILTER_BASE_METHOD_NO_ARG(106)
|
||||
|
||||
#define MS_FILTER_SET_IMAGE MS_FILTER_BASE_METHOD(107,char)
|
||||
|
||||
#endif
|
||||
|
|
@ -1,104 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef msvideoout_h
|
||||
#define msvideoout_h
|
||||
|
||||
#include <mediastreamer2/msfilter.h>
|
||||
#include <mediastreamer2/msvideo.h>
|
||||
|
||||
|
||||
struct _MSDisplay;
|
||||
|
||||
typedef enum _MSDisplayEventType{
|
||||
MS_DISPLAY_RESIZE_EVENT
|
||||
}MSDisplayEventType;
|
||||
|
||||
typedef struct _MSDisplayEvent{
|
||||
MSDisplayEventType evtype;
|
||||
int w,h;
|
||||
}MSDisplayEvent;
|
||||
|
||||
typedef struct _MSDisplayDesc{
|
||||
/*init requests setup of the display window at the proper size, given
|
||||
in frame_buffer argument. Memory buffer (data,strides) must be fulfilled
|
||||
at return. init() might be called several times upon screen resize*/
|
||||
bool_t (*init)(struct _MSDisplay *, MSPicture *frame_buffer);
|
||||
void (*lock)(struct _MSDisplay *);/*lock before writing to the framebuffer*/
|
||||
void (*unlock)(struct _MSDisplay *);/*unlock after writing to the framebuffer*/
|
||||
void (*update)(struct _MSDisplay *); /*display the picture to the screen*/
|
||||
void (*uninit)(struct _MSDisplay *);
|
||||
bool_t (*pollevent)(struct _MSDisplay *, MSDisplayEvent *ev);
|
||||
long default_window_id;
|
||||
}MSDisplayDesc;
|
||||
|
||||
typedef struct _MSDisplay{
|
||||
MSDisplayDesc *desc;
|
||||
long window_id; /*window id if the display should use an existing window*/
|
||||
void *data;
|
||||
bool_t use_external_window;
|
||||
} MSDisplay;
|
||||
|
||||
|
||||
#define ms_display_init(d,fbuf) (d)->desc->init(d,fbuf)
|
||||
#define ms_display_lock(d) if ((d)->desc->lock) (d)->desc->lock(d)
|
||||
#define ms_display_unlock(d) if ((d)->desc->unlock) (d)->desc->unlock(d)
|
||||
#define ms_display_update(d) if ((d)->desc->update) (d)->desc->update(d)
|
||||
bool_t ms_display_poll_event(MSDisplay *d, MSDisplayEvent *ev);
|
||||
|
||||
extern MSDisplayDesc ms_sdl_display_desc;
|
||||
|
||||
#if (defined(WIN32) || defined(_WIN32_WCE)) && !defined(MEDIASTREAMER_STATIC)
|
||||
#if defined(MEDIASTREAMER2_EXPORTS) && defined(INVIDEOUT_C)
|
||||
#define MSVAR_DECLSPEC __declspec(dllexport)
|
||||
#else
|
||||
#define MSVAR_DECLSPEC __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#define MSVAR_DECLSPEC extern
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
/*plugins can set their own display using this method:*/
|
||||
void ms_display_desc_set_default(MSDisplayDesc *desc);
|
||||
|
||||
MSDisplayDesc * ms_display_desc_get_default(void);
|
||||
void ms_display_desc_set_default_window_id(MSDisplayDesc *desc, long id);
|
||||
|
||||
MSVAR_DECLSPEC MSDisplayDesc ms_win_display_desc;
|
||||
|
||||
MSDisplay *ms_display_new(MSDisplayDesc *desc);
|
||||
void ms_display_set_window_id(MSDisplay *d, long window_id);
|
||||
void ms_display_destroy(MSDisplay *d);
|
||||
|
||||
#define MS_VIDEO_OUT_SET_DISPLAY MS_FILTER_METHOD(MS_VIDEO_OUT_ID,0,MSDisplay*)
|
||||
#define MS_VIDEO_OUT_HANDLE_RESIZING MS_FILTER_METHOD_NO_ARG(MS_VIDEO_OUT_ID,1)
|
||||
#define MS_VIDEO_OUT_SET_CORNER MS_FILTER_METHOD(MS_VIDEO_OUT_ID,2,int)
|
||||
#define MS_VIDEO_OUT_AUTO_FIT MS_FILTER_METHOD(MS_VIDEO_OUT_ID,3,int)
|
||||
#define MS_VIDEO_OUT_ENABLE_MIRRORING MS_FILTER_METHOD(MS_VIDEO_OUT_ID,4,int)
|
||||
#define MS_VIDEO_OUT_GET_NATIVE_WINDOW_ID MS_FILTER_METHOD(MS_VIDEO_OUT_ID,5,unsigned long)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef msvolume_h
|
||||
#define msvolume_h
|
||||
|
||||
#include "msfilter.h"
|
||||
|
||||
/**
|
||||
* The Volume MSFilter can do:
|
||||
* - measurements of the input signal power, returned in dbm0 or linear scale
|
||||
* - apply a gain to the input signal and output this amplified signal to its output.
|
||||
* By default gain is 1, in which case the filter does not modify the signal (and even does not
|
||||
* copy the buffers, just post them on its output queue.
|
||||
**/
|
||||
|
||||
|
||||
/*returns a volume meter in db0 (max=0 db0)*/
|
||||
#define MS_VOLUME_GET MS_FILTER_METHOD(MS_VOLUME_ID,0,float)
|
||||
/*returns a volume in linear scale between 0 and 1 */
|
||||
#define MS_VOLUME_GET_LINEAR MS_FILTER_METHOD(MS_VOLUME_ID,1,float)
|
||||
/* set a gain */
|
||||
#define MS_VOLUME_SET_GAIN MS_FILTER_METHOD(MS_VOLUME_ID,2,float)
|
||||
|
||||
#define MS_VOLUME_GET_EA_STATE MS_FILTER_METHOD(MS_VOLUME_ID,3, int)
|
||||
|
||||
#define MS_VOLUME_SET_PEER MS_FILTER_METHOD(MS_VOLUME_ID,4, MSFilter )
|
||||
|
||||
#define MS_VOLUME_SET_EA_THRESHOLD MS_FILTER_METHOD(MS_VOLUME_ID,5,float)
|
||||
|
||||
#define MS_VOLUME_SET_EA_SPEED MS_FILTER_METHOD(MS_VOLUME_ID,6,float)
|
||||
|
||||
#define MS_VOLUME_SET_EA_FORCE MS_FILTER_METHOD(MS_VOLUME_ID,7,float)
|
||||
|
||||
#define MS_VOLUME_ENABLE_AGC MS_FILTER_METHOD(MS_VOLUME_ID,8,int)
|
||||
|
||||
#define MS_VOLUME_ENABLE_NOISE_GATE MS_FILTER_METHOD(MS_VOLUME_ID,9,int)
|
||||
|
||||
#define MS_VOLUME_SET_NOISE_GATE_THRESHOLD MS_FILTER_METHOD(MS_VOLUME_ID,10,float)
|
||||
|
||||
#define MS_VOLUME_SET_EA_SUSTAIN MS_FILTER_METHOD(MS_VOLUME_ID,11,int)
|
||||
|
||||
#define MS_VOLUME_SET_NOISE_GATE_FLOORGAIN MS_FILTER_METHOD(MS_VOLUME_ID,12,float)
|
||||
|
||||
extern MSFilterDesc ms_volume_desc;
|
||||
|
||||
#endif
|
||||
|
|
@ -1,233 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef webcam_h
|
||||
#define webcam_h
|
||||
|
||||
#include "mscommon.h"
|
||||
|
||||
/**
|
||||
* @file mswebcam.h
|
||||
* @brief mediastreamer2 mswebcam.h include file
|
||||
*
|
||||
* This file provide the API needed to manage
|
||||
* soundcard filters.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup mediastreamer2_webcam Camera API - manage video capture devices
|
||||
* @ingroup mediastreamer2_api
|
||||
* @{
|
||||
*/
|
||||
|
||||
struct _MSWebCamManager{
|
||||
MSList *cams;
|
||||
MSList *descs;
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure for webcam manager object.
|
||||
* @var MSWebCamManager
|
||||
*/
|
||||
typedef struct _MSWebCamManager MSWebCamManager;
|
||||
|
||||
|
||||
struct _MSWebCam;
|
||||
|
||||
typedef void (*MSWebCamDetectFunc)(MSWebCamManager *obj);
|
||||
typedef void (*MSWebCamInitFunc)(struct _MSWebCam *obj);
|
||||
typedef void (*MSWebCamUninitFunc)(struct _MSWebCam *obj);
|
||||
typedef struct _MSFilter * (*MSWebCamCreateReaderFunc)(struct _MSWebCam *obj);
|
||||
|
||||
struct _MSWebCamDesc{
|
||||
const char *driver_type;
|
||||
MSWebCamDetectFunc detect;
|
||||
MSWebCamInitFunc init;
|
||||
MSWebCamCreateReaderFunc create_reader;
|
||||
MSWebCamUninitFunc uninit;
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure for sound card description object.
|
||||
* @var MSWebCamDesc
|
||||
*/
|
||||
typedef struct _MSWebCamDesc MSWebCamDesc;
|
||||
|
||||
struct _MSWebCam{
|
||||
MSWebCamDesc *desc;
|
||||
char *name;
|
||||
char *id;
|
||||
void *data;
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure for sound card object.
|
||||
* @var MSWebCam
|
||||
*/
|
||||
typedef struct _MSWebCam MSWebCam;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Retreive a webcam manager object.
|
||||
*
|
||||
* Returns: MSWebCamManager if successfull, NULL otherwise.
|
||||
*/
|
||||
MSWebCamManager * ms_web_cam_manager_get(void);
|
||||
|
||||
/**
|
||||
* Destroy the webcam manager object.
|
||||
*
|
||||
*/
|
||||
void ms_web_cam_manager_destroy(void);
|
||||
|
||||
/**
|
||||
* Retreive a webcam object based on its name.
|
||||
*
|
||||
* @param m A webcam manager containing webcam.
|
||||
* @param id A name for card to search.
|
||||
*
|
||||
* Returns: MSWebCam if successfull, NULL otherwise.
|
||||
*/
|
||||
MSWebCam * ms_web_cam_manager_get_cam(MSWebCamManager *m, const char *id);
|
||||
|
||||
/**
|
||||
* Retreive the default webcam object.
|
||||
*
|
||||
* @param m A webcam manager containing webcams.
|
||||
*
|
||||
* Returns: MSWebCam if successfull, NULL otherwise.
|
||||
*/
|
||||
MSWebCam * ms_web_cam_manager_get_default_cam(MSWebCamManager *m);
|
||||
|
||||
/**
|
||||
* Retreive the list of webcam objects.
|
||||
*
|
||||
* @param m A webcam manager containing webcams.
|
||||
*
|
||||
* Returns: MSList of cards if successfull, NULL otherwise.
|
||||
*/
|
||||
const MSList * ms_web_cam_manager_get_list(MSWebCamManager *m);
|
||||
|
||||
/**
|
||||
* Add a webcam object in a webcam manager's list.
|
||||
*
|
||||
* @param m A webcam manager containing webcams
|
||||
* @param c A web cam object.
|
||||
*
|
||||
*/
|
||||
void ms_web_cam_manager_add_cam(MSWebCamManager *m, MSWebCam *c);
|
||||
|
||||
/**
|
||||
* Add a webcam object on top of list of the webcam manager's list.
|
||||
*
|
||||
* @param m A webcam manager containing webcams
|
||||
* @param c A web cam object.
|
||||
*
|
||||
*/
|
||||
void ms_web_cam_manager_prepend_cam(MSWebCamManager *m, MSWebCam *c);
|
||||
|
||||
|
||||
/**
|
||||
* Register a webcam descriptor in a webcam manager.
|
||||
*
|
||||
* @param m A webcam manager containing sound cards.
|
||||
* @param desc A webcam descriptor object.
|
||||
*
|
||||
*/
|
||||
void ms_web_cam_manager_register_desc(MSWebCamManager *m, MSWebCamDesc *desc);
|
||||
|
||||
|
||||
/**
|
||||
* Ask all registered MSWebCamDesc to detect the webcams again.
|
||||
*
|
||||
* @param m A webcam manager
|
||||
**/
|
||||
void ms_web_cam_manager_reload(MSWebCamManager *m);
|
||||
|
||||
/**
|
||||
* Create an INPUT filter based on the selected camera.
|
||||
*
|
||||
* @param obj A webcam object.
|
||||
*
|
||||
* Returns: A MSFilter if successfull, NULL otherwise.
|
||||
*/
|
||||
struct _MSFilter * ms_web_cam_create_reader(MSWebCam *obj);
|
||||
|
||||
/**
|
||||
* Create a new webcam object.
|
||||
*
|
||||
* @param desc A webcam description object.
|
||||
*
|
||||
* Returns: MSWebCam if successfull, NULL otherwise.
|
||||
*/
|
||||
MSWebCam * ms_web_cam_new(MSWebCamDesc *desc);
|
||||
|
||||
/**
|
||||
* Destroy webcam object.
|
||||
*
|
||||
* @param obj A MSWebCam object.
|
||||
*/
|
||||
void ms_web_cam_destroy(MSWebCam *obj);
|
||||
|
||||
|
||||
/**
|
||||
* Retreive a webcam's driver type string.
|
||||
*
|
||||
* Internal driver types are either: "V4L V4LV2"
|
||||
*
|
||||
* @param obj A webcam object.
|
||||
*
|
||||
* Returns: a string if successfull, NULL otherwise.
|
||||
*/
|
||||
const char *ms_web_cam_get_driver_type(const MSWebCam *obj);
|
||||
|
||||
/**
|
||||
* Retreive a webcam's name.
|
||||
*
|
||||
* @param obj A webcam object.
|
||||
*
|
||||
* Returns: a string if successfull, NULL otherwise.
|
||||
*/
|
||||
const char *ms_web_cam_get_name(const MSWebCam *obj);
|
||||
|
||||
/**
|
||||
* Retreive webcam's id: ($driver_type: $name).
|
||||
*
|
||||
* @param obj A webcam object.
|
||||
*
|
||||
* Returns: A string if successfull, NULL otherwise.
|
||||
*/
|
||||
const char *ms_web_cam_get_string_id(MSWebCam *obj);
|
||||
|
||||
|
||||
/*specific methods for static image:*/
|
||||
|
||||
void ms_static_image_set_default_image(const char *path);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef rfc3984_h
|
||||
#define rfc3984_h
|
||||
|
||||
#include "mediastreamer2/mscommon.h"
|
||||
#include "mediastreamer2/msqueue.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
typedef struct Rfc3984Context{
|
||||
MSQueue q;
|
||||
mblk_t *m;
|
||||
int maxsz;
|
||||
uint32_t last_ts;
|
||||
uint8_t mode;
|
||||
bool_t stap_a_allowed;
|
||||
uint8_t reserved;
|
||||
} Rfc3984Context;
|
||||
|
||||
void rfc3984_init(Rfc3984Context *ctx);
|
||||
|
||||
void rfc3984_set_mode(Rfc3984Context *ctx, int mode);
|
||||
|
||||
/* some stupid phones don't decode STAP-A packets ...*/
|
||||
void rfc3984_enable_stap_a(Rfc3984Context *ctx, bool_t yesno);
|
||||
|
||||
/*process NALUs and pack them into rtp payloads */
|
||||
void rfc3984_pack(Rfc3984Context *ctx, MSQueue *naluq, MSQueue *rtpq, uint32_t ts);
|
||||
|
||||
/*process incoming rtp data and output NALUs, whenever possible*/
|
||||
void rfc3984_unpack(Rfc3984Context *ctx, mblk_t *im, MSQueue *naluq);
|
||||
|
||||
void rfc3984_uninit(Rfc3984Context *ctx);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 library - modular sound and video processing and streaming
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* the following code was taken from a free software utility that I don't remember the name. */
|
||||
/* sorry */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "mediastreamer-config.h"
|
||||
#endif
|
||||
|
||||
#ifndef waveheader_h
|
||||
#define waveheader_h
|
||||
|
||||
#ifdef swap16
|
||||
#else
|
||||
/* all integer in wav header must be read in least endian order */
|
||||
static inline uint16_t swap16(uint16_t a)
|
||||
{
|
||||
return ((a & 0xFF) << 8) | ((a & 0xFF00) >> 8);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef swap32
|
||||
#else
|
||||
static inline uint32_t swap32(uint32_t a)
|
||||
{
|
||||
return ((a & 0xFF) << 24) | ((a & 0xFF00) << 8) |
|
||||
((a & 0xFF0000) >> 8) | ((a & 0xFF000000) >> 24);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
#define le_uint32(a) (swap32((a)))
|
||||
#define le_uint16(a) (swap16((a)))
|
||||
#define le_int16(a) ( (int16_t) swap16((uint16_t)((a))) )
|
||||
#else
|
||||
#define le_uint32(a) (a)
|
||||
#define le_uint16(a) (a)
|
||||
#define le_int16(a) (a)
|
||||
#endif
|
||||
|
||||
typedef struct _riff_t {
|
||||
char riff[4] ; /* "RIFF" (ASCII characters) */
|
||||
uint32_t len ; /* Length of package (binary, little endian) */
|
||||
char wave[4] ; /* "WAVE" (ASCII characters) */
|
||||
} riff_t;
|
||||
|
||||
/* The FORMAT chunk */
|
||||
|
||||
typedef struct _format_t {
|
||||
char fmt[4] ; /* "fmt_" (ASCII characters) */
|
||||
uint32_t len ; /* length of FORMAT chunk (always 0x10) */
|
||||
uint16_t type; /* codec type*/
|
||||
uint16_t channel ; /* Channel numbers (0x01 = mono, 0x02 = stereo) */
|
||||
uint32_t rate ; /* Sample rate (binary, in Hz) */
|
||||
uint32_t bps ; /* Average Bytes Per Second */
|
||||
uint16_t blockalign ; /*number of bytes per sample */
|
||||
uint16_t bitpspl ; /* bits per sample */
|
||||
} format_t;
|
||||
|
||||
/* The DATA chunk */
|
||||
|
||||
typedef struct _data_t {
|
||||
char data[4] ; /* "data" (ASCII characters) */
|
||||
int len ; /* length of data */
|
||||
} data_t;
|
||||
|
||||
typedef struct _wave_header_t
|
||||
{
|
||||
riff_t riff_chunk;
|
||||
format_t format_chunk;
|
||||
data_t data_chunk;
|
||||
} wave_header_t;
|
||||
|
||||
|
||||
#define wave_header_get_rate(header) le_uint32((header)->format_chunk.rate)
|
||||
#define wave_header_get_channel(header) le_uint16((header)->format_chunk.channel)
|
||||
#define wave_header_get_bpsmpl(header) \
|
||||
le_uint16((header)->format_chunk.blockalign)
|
||||
#endif
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
# This is a comment
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: mediastreamer
|
||||
Description: A mediastreaming library for telephony applications
|
||||
Requires: ortp
|
||||
Version: @MEDIASTREAMER_VERSION@
|
||||
Libs: -L@libdir@ -lmediastreamer
|
||||
Cflags: -I@includedir@ @MS_PUBLIC_CFLAGS@
|
||||
|
|
@ -1,81 +0,0 @@
|
|||
# -*- rpm-spec -*-
|
||||
#
|
||||
# mediastreamer2 -- A mediastreaming library for telephony applications
|
||||
#
|
||||
|
||||
%ifarch %ix86
|
||||
%define mediastreamer2_cpu pentium4
|
||||
%endif
|
||||
|
||||
Summary: Audio/Video real-time streaming
|
||||
Name: mediastreamer2
|
||||
Version: @MEDIASTREAMER2_PKGCONFIG_VERSION@
|
||||
Release: 1
|
||||
License: LGPL
|
||||
Group: Applications/Communications
|
||||
URL: http://linphone.org/mediastreamer2/
|
||||
Source0: %{name}-@MEDIASTREAMER2_PKGCONFIG_VERSION@.tar.gz
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
|
||||
%ifarch %ix86
|
||||
BuildArch: i686
|
||||
%endif
|
||||
|
||||
%description
|
||||
Mediastreamer2 is a GPL licensed library to make audio and video
|
||||
real-time streaming and processing. Written in pure C, it is based
|
||||
upon the oRTP library.
|
||||
|
||||
%package devel
|
||||
Summary: Headers, libraries and docs for the mediastreamer2 library
|
||||
Group: Development/Libraries
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
Mediastreamer2 is a GPL licensed library to make audio and video
|
||||
real-time streaming and processing. Written in pure C, it is based
|
||||
upon the ortp library.
|
||||
|
||||
This package contains header files and development libraries needed to
|
||||
develop programs using the mediastreamer2 library.
|
||||
|
||||
%ifarch %ix86
|
||||
%define mediastreamer2_arch_cflags -malign-double -march=i686 -mcpu=%{mediastreamer2_cpu}
|
||||
%else
|
||||
# Must be non-empty
|
||||
%define mediastreamer2_arch_cflags -Wall
|
||||
%endif
|
||||
%define mediastreamer2_cflags %mediastreamer2_arch_cflags -Wall -g -pipe -pthread -O3 -fomit-frame-pointer -fno-schedule-insns -fschedule-insns2 -fstrict-aliasing
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
%configure \
|
||||
--enable-gtk-doc=no \
|
||||
--enable-shared --enable-static
|
||||
make -j$RPM_BUILD_NCPUS CFLAGS="%mediastreamer2_cflags" CXXFLAGS="%mediastreamer2_cflags"
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
%makeinstall
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc AUTHORS COPYING ChangeLog INSTALL NEWS README TODO
|
||||
%{_libdir}/*.so.*
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
%doc docs/html
|
||||
%{_libdir}/*.la
|
||||
%{_libdir}/*.a
|
||||
%{_libdir}/*.so
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
%{_includedir}
|
||||
|
||||
%changelog
|
||||
* Tue Oct 25 2005 Francois-Xavier Kowalski <fix@hp.com>
|
||||
- Add to mediastreamer2 distribution with "make rpm" target
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
# -*- rpm-spec -*- ############################################################
|
||||
#
|
||||
# EPM list file. See epm(1) and epm.list(5) for details
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
%product ${SUMMARY}
|
||||
%version ${VERSION}
|
||||
%release ${RELEASE}
|
||||
%description ${SUMMARY}
|
||||
%vendor ${VENDOR}
|
||||
%copyright ${LICENSE}
|
||||
%license ${LICENSE}
|
||||
%readme ${srcdir}/README
|
||||
%packager ${PACKAGER}
|
||||
|
||||
%system linux
|
||||
|
||||
# Compress man pages
|
||||
%define __spec_install_post /usr/lib/rpm/brp-compress || :
|
||||
|
||||
# Package all-in one: should be split later on...
|
||||
%provides ortp-devel
|
||||
|
||||
%postinstall << EOF
|
||||
ldconfig 2>&1 | logger -i -s -t ${PACKAGE}
|
||||
makewhatis -u -w 2>&1 | logger -i -s -t ${PACKAGE}
|
||||
EOF
|
||||
|
||||
%postremove << EOF
|
||||
ldconfig 2>&1 | logger -i -s -t ${PACKAGE}
|
||||
makewhatis -u -w 2>&1 | logger -i -s -t ${PACKAGE}
|
||||
EOF
|
||||
|
||||
%system hpux
|
||||
|
||||
%system all
|
||||
|
||||
%include files.list
|
||||
|
||||
%provides mediastreamer2
|
||||
%replaces mediastreamer2
|
||||
|
||||
3
linphone/mediastreamer2/plugins/.gitignore
vendored
3
linphone/mediastreamer2/plugins/.gitignore
vendored
|
|
@ -1,3 +0,0 @@
|
|||
Makefile
|
||||
Makefile.in
|
||||
plugins.mk
|
||||
|
|
@ -1,340 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
|
|
@ -1,236 +0,0 @@
|
|||
Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
|
||||
Software Foundation, Inc.
|
||||
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
unlimited permission to copy, distribute and modify it.
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
These are generic installation instructions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, and a
|
||||
file `config.log' containing compiler output (useful mainly for
|
||||
debugging `configure').
|
||||
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. (Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.)
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point `config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You only need
|
||||
`configure.ac' if you want to change it or regenerate `configure' using
|
||||
a newer version of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system. If you're
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
|
||||
Running `configure' takes awhile. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
the package.
|
||||
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
|
||||
5. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that the
|
||||
`configure' script does not know about. Run `./configure --help' for
|
||||
details on some of the pertinent environment variables.
|
||||
|
||||
You can give `configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
|
||||
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not support the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a
|
||||
time in the source code directory. After you have installed the
|
||||
package for one architecture, use `make distclean' before reconfiguring
|
||||
for another architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' installs the package's commands under
|
||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||
can specify an installation prefix other than `/usr/local' by giving
|
||||
`configure' the option `--prefix=PREFIX'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=DIR' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' cannot figure out automatically,
|
||||
but needs to determine by the type of machine the package will run on.
|
||||
Usually, assuming the package is built to be run on the _same_
|
||||
architectures, `configure' can figure that out, but if it prints a
|
||||
message saying it cannot guess the machine type, give it the
|
||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS KERNEL-OS
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the option `--target=TYPE' to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the
|
||||
"host" platform (i.e., that on which the generated programs will
|
||||
eventually be run) with `--host=TYPE'.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share, you
|
||||
can create a site shell script called `config.site' that gives default
|
||||
values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to `configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the `configure' command line, using `VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||
overridden in the site shell script). Here is a another example:
|
||||
|
||||
/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
|
||||
configuration-related scripts to be executed by `/bin/bash'.
|
||||
|
||||
`configure' Invocation
|
||||
======================
|
||||
|
||||
`configure' recognizes the following options to control how it operates.
|
||||
|
||||
`--help'
|
||||
`-h'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--version'
|
||||
`-V'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||
disable caching.
|
||||
|
||||
`--config-cache'
|
||||
`-C'
|
||||
Alias for `--cache-file=config.cache'.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options. Run
|
||||
`configure --help' for more details.
|
||||
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
EXTRA_DIST=ilbc-rfc3951.tar.gz
|
||||
|
||||
plugindir=$(PACKAGE_PLUGINS_DIR)
|
||||
|
||||
plugin_LTLIBRARIES=libmsilbc.la
|
||||
|
||||
libmsilbc_la_SOURCES=ilbc.c
|
||||
|
||||
libmsilbc_la_LIBADD=$(ILBC_LIBS)
|
||||
|
||||
AM_CFLAGS=$(ILBC_CFLAGS)
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
|
||||
|
||||
* compile and install the ilbc source:
|
||||
tar -xvzf ilbc-rfc3951.tar.gz
|
||||
cd ilbc-rfc2951
|
||||
./configure --prefix=/usr && make
|
||||
make install (as root)
|
||||
cd ..
|
||||
|
||||
* compile and install the plugin:
|
||||
./configure --prefix=<prefix of linphone/mediastreamer installation>
|
||||
make
|
||||
make install
|
||||
|
|
@ -1,152 +0,0 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_INIT([msilbc],[2.0.0])
|
||||
|
||||
AM_INIT_AUTOMAKE([tar-ustar])
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
|
||||
AC_MSG_CHECKING([warning make an error on compilation])
|
||||
AC_ARG_ENABLE(strict,
|
||||
[ --enable-strict Enable error on compilation warning [default=yes]],
|
||||
[wall_werror=$enableval],
|
||||
[wall_werror=yes]
|
||||
)
|
||||
|
||||
|
||||
AC_ARG_ENABLE(debug,
|
||||
[ --enable-debug=[yes/no] enables the display of traces showing the execution of the library. [default=yes]],
|
||||
[case "${enableval}" in
|
||||
yes) debug_enabled=yes;;
|
||||
no) debug_enabled=no;;
|
||||
*) AC_MSG_ERROR("Bad value for --enable-debug");;
|
||||
esac],
|
||||
[debug_enabled=no] )
|
||||
|
||||
|
||||
dnl Checks for programs.
|
||||
AC_PROG_CC
|
||||
AC_PROG_LIBTOOL
|
||||
AC_ENABLE_SHARED(yes)
|
||||
AC_ENABLE_STATIC(no)
|
||||
|
||||
if test "$GCC" != "yes" ; then
|
||||
case $host_os in
|
||||
*hpux*)
|
||||
dnl we are probably using HPUX cc compiler, so add a +O2 to CFLAGS
|
||||
CFLAGS="$CFLAGS +O2 -g "
|
||||
;;
|
||||
esac
|
||||
else
|
||||
CFLAGS="$CFLAGS -Wall"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if test $debug_enabled = "yes"; then
|
||||
CFLAGS="$CFLAGS -DDEBUG"
|
||||
fi
|
||||
|
||||
dnl Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_HEADER_TIME
|
||||
AC_WORDS_BIGENDIAN
|
||||
if test x$ac_cv_c_bigendian = xyes ; then
|
||||
CFLAGS="$CFLAGS -D_BIGENDIAN"
|
||||
fi
|
||||
|
||||
if test $GCC = yes && test $wall_werror = yes; then
|
||||
CFLAGS="$CFLAGS -Werror "
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES(MEDIASTREAMER, mediastreamer >= 2.0.0)
|
||||
|
||||
AC_ARG_WITH( ilbc,
|
||||
[ --with-ilbc Sets the installation prefix of ilbc codec, [default=/usr] ],
|
||||
[ ilbcdir=${withval}],[ ilbcdir=/usr ])
|
||||
|
||||
if test "$ilbcdir" != "/usr" ; then
|
||||
ILBC_CFLAGS="$ilbcdir/include"
|
||||
ILBC_LIBS="$ilbcdir/lib"
|
||||
fi
|
||||
ILBC_LIBS="$ILBC_LIBS -lilbc"
|
||||
|
||||
AC_SUBST(ILBC_CFLAGS)
|
||||
AC_SUBST(ILBC_LIBS)
|
||||
|
||||
CFLAGS="$CFLAGS \$(MEDIASTREAMER_CFLAGS) "
|
||||
LIBS="$LIBS \$(MEDIASTREAMER_LIBS) "
|
||||
LDFLAGS="$LDFLAGS -rdynamic "
|
||||
|
||||
dnl define path of plugins:
|
||||
PACKAGE_PLUGINS_DIR=`eval echo $prefix/lib/mediastreamer/plugins`
|
||||
AC_DEFINE_UNQUOTED(PACKAGE_PLUGINS_DIR, "$PACKAGE_PLUGINS_DIR" ,[path of plugins])
|
||||
AC_SUBST(PACKAGE_PLUGINS_DIR)
|
||||
|
||||
dnl ##################################################
|
||||
dnl # Check for ESP Packager
|
||||
dnl ##################################################
|
||||
|
||||
AC_PATH_PROG(EPM,epm,false)
|
||||
AC_PATH_PROG(MKEPMLIST,mkepmlist,false)
|
||||
AC_PATH_PROG(EPMINSTALL,epminstall,false)
|
||||
AM_CONDITIONAL(WITH_EPM,test $EPM != false && test $MKEPMLIST != false && test $EPMINSTALL != false)
|
||||
|
||||
|
||||
# Preferred packaging system, as per EPM terminology
|
||||
case $target in
|
||||
*-*-linux*)
|
||||
if test -f /etc/debian_version ; then
|
||||
EPM_PKG_EXT=deb
|
||||
else
|
||||
EPM_PKG_EXT=rpm
|
||||
fi
|
||||
;;
|
||||
*-hp-hpux*)
|
||||
EPM_PKG_EXT=depot.gz;;
|
||||
*-dec-osf*)
|
||||
EPM_PKG_EXT=setld;;
|
||||
esac
|
||||
AC_SUBST(EPM_PKG_EXT)
|
||||
|
||||
# System software User & Group names
|
||||
case $target in
|
||||
*-*-linux*)
|
||||
SYS_USER=root
|
||||
SYS_GROUP=root
|
||||
;;
|
||||
*-*-hpux*|*-dec-osf*)
|
||||
SYS_USER=bin
|
||||
SYS_GROUP=bin
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(SYS_USER)
|
||||
AC_SUBST(SYS_GROUP)
|
||||
|
||||
# CPU Architecture
|
||||
case $target_cpu in
|
||||
i?86) ARCH=i386;;
|
||||
*) ARCH=$target_cpu;;
|
||||
esac
|
||||
AC_SUBST(ARCH)
|
||||
|
||||
# Various other packaging variables, that can be over-ridden ad `make
|
||||
# package' time
|
||||
SUMMARY="A mediastreamer plugin."
|
||||
AC_SUBST(SUMMARY)
|
||||
PACKAGER=anonymous
|
||||
AC_SUBST(PACKAGER)
|
||||
LICENSE=GPL
|
||||
AC_SUBST(LICENSE)
|
||||
VENDOR=Linphone
|
||||
AC_SUBST(VENDOR)
|
||||
RELEASE=1
|
||||
AC_SUBST(RELEASE)
|
||||
|
||||
|
||||
AC_OUTPUT(
|
||||
Makefile
|
||||
)
|
||||
Binary file not shown.
|
|
@ -1,283 +0,0 @@
|
|||
/*
|
||||
NO LICENSE
|
||||
*/
|
||||
#include <ilbc/iLBC_encode.h>
|
||||
#include <ilbc/iLBC_decode.h>
|
||||
|
||||
#include "mediastreamer2/msfilter.h"
|
||||
|
||||
typedef struct EncState{
|
||||
int nsamples;
|
||||
int nbytes;
|
||||
int ms_per_frame;
|
||||
int ptime;
|
||||
uint32_t ts;
|
||||
MSBufferizer bufferizer;
|
||||
iLBC_Enc_Inst_t ilbc_enc;
|
||||
}EncState;
|
||||
|
||||
static void enc_init(MSFilter *f){
|
||||
EncState *s=ms_new(EncState,1);
|
||||
s->nsamples=BLOCKL_20MS;
|
||||
s->nbytes=NO_OF_BYTES_20MS;
|
||||
s->ms_per_frame=20;
|
||||
s->ptime=0;
|
||||
s->ts=0;
|
||||
ms_bufferizer_init(&s->bufferizer);
|
||||
f->data=s;
|
||||
}
|
||||
|
||||
static void enc_uninit(MSFilter *f){
|
||||
EncState *s=(EncState*)f->data;
|
||||
ms_bufferizer_uninit(&s->bufferizer);
|
||||
ms_free(f->data);
|
||||
}
|
||||
|
||||
static void enc_preprocess(MSFilter *f){
|
||||
EncState *s=(EncState*)f->data;
|
||||
initEncode(&s->ilbc_enc,s->ms_per_frame);
|
||||
}
|
||||
|
||||
static int enc_add_fmtp(MSFilter *f, void *arg){
|
||||
char buf[64];
|
||||
const char *fmtp=(const char *)arg;
|
||||
EncState *s=(EncState*)f->data;
|
||||
|
||||
memset(buf, '\0', sizeof(buf));
|
||||
fmtp_get_value(fmtp, "mode", buf, sizeof(buf));
|
||||
if (buf[0]=='\0'){
|
||||
ms_warning("unsupported fmtp parameter (%s)!", fmtp);
|
||||
}
|
||||
else if (strstr(buf,"20")!=NULL){
|
||||
s->nsamples=BLOCKL_20MS;
|
||||
s->nbytes=NO_OF_BYTES_20MS;
|
||||
s->ms_per_frame=20;
|
||||
}else if (strstr(buf,"30")!=NULL){
|
||||
s->nsamples=BLOCKL_30MS;
|
||||
s->nbytes=NO_OF_BYTES_30MS;
|
||||
s->ms_per_frame=30;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int enc_add_attr(MSFilter *f, void *arg){
|
||||
const char *fmtp=(const char *)arg;
|
||||
EncState *s=(EncState*)f->data;
|
||||
if (strstr(fmtp,"ptime:20")!=NULL){
|
||||
s->ptime=20;
|
||||
}else if (strstr(fmtp,"ptime:30")!=NULL){
|
||||
s->ptime=30;
|
||||
}else if (strstr(fmtp,"ptime:40")!=NULL){
|
||||
s->ptime=40;
|
||||
}else if (strstr(fmtp,"ptime:60")!=NULL){
|
||||
s->ptime=60;
|
||||
}else if (strstr(fmtp,"ptime:80")!=NULL){
|
||||
s->ptime=80;
|
||||
}else if (strstr(fmtp,"ptime:90")!=NULL){
|
||||
s->ptime=90;
|
||||
}else if (strstr(fmtp,"ptime:100")!=NULL){
|
||||
s->ptime=100;
|
||||
}else if (strstr(fmtp,"ptime:120")!=NULL){
|
||||
s->ptime=120;
|
||||
}else if (strstr(fmtp,"ptime:140")!=NULL){
|
||||
s->ptime=140;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void enc_process(MSFilter *f){
|
||||
EncState *s=(EncState*)f->data;
|
||||
mblk_t *im,*om;
|
||||
int size=s->nsamples*2;
|
||||
int16_t samples[1610]; /* BLOCKL_MAX * 7 is the largest size for ptime == 140 */
|
||||
float samples2[BLOCKL_MAX];
|
||||
int i;
|
||||
int frame_per_packet=1;
|
||||
|
||||
if (s->ptime>=20 && s->ms_per_frame>0 && s->ptime%s->ms_per_frame==0)
|
||||
{
|
||||
frame_per_packet = s->ptime/s->ms_per_frame;
|
||||
}
|
||||
|
||||
if (frame_per_packet<=0)
|
||||
frame_per_packet=1;
|
||||
if (frame_per_packet>7) /* 7*20 == 140 ms max */
|
||||
frame_per_packet=7;
|
||||
|
||||
while((im=ms_queue_get(f->inputs[0]))!=NULL){
|
||||
ms_bufferizer_put(&s->bufferizer,im);
|
||||
}
|
||||
while(ms_bufferizer_read(&s->bufferizer,(uint8_t*)samples,size*frame_per_packet)==(size*frame_per_packet)){
|
||||
int k;
|
||||
om=allocb(s->nbytes*frame_per_packet,0);
|
||||
for (k=0;k<frame_per_packet;k++)
|
||||
{
|
||||
for (i=0;i<s->nsamples;i++){
|
||||
samples2[i]=samples[i+(s->nsamples*k)];
|
||||
}
|
||||
iLBC_encode((uint8_t*)om->b_wptr,samples2,&s->ilbc_enc);
|
||||
om->b_wptr+=s->nbytes;
|
||||
s->ts+=s->nsamples;
|
||||
}
|
||||
mblk_set_timestamp_info(om,s->ts-s->nsamples);
|
||||
ms_queue_put(f->outputs[0],om);
|
||||
}
|
||||
}
|
||||
|
||||
static MSFilterMethod enc_methods[]={
|
||||
{ MS_FILTER_ADD_FMTP, enc_add_fmtp },
|
||||
{ MS_FILTER_ADD_ATTR, enc_add_attr},
|
||||
{ 0 , NULL }
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
|
||||
MSFilterDesc ms_ilbc_enc_desc={
|
||||
MS_FILTER_PLUGIN_ID,
|
||||
"MSIlbcEnc",
|
||||
"iLBC encoder",
|
||||
MS_FILTER_ENCODER,
|
||||
"iLBC",
|
||||
1,
|
||||
1,
|
||||
enc_init,
|
||||
enc_preprocess,
|
||||
enc_process,
|
||||
NULL,
|
||||
enc_uninit,
|
||||
enc_methods
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
MSFilterDesc ms_ilbc_enc_desc={
|
||||
.id=MS_FILTER_PLUGIN_ID,
|
||||
.name="MSIlbcEnc",
|
||||
.text="iLBC encoder",
|
||||
.category=MS_FILTER_ENCODER,
|
||||
.enc_fmt="iLBC",
|
||||
.ninputs=1,
|
||||
.noutputs=1,
|
||||
.init=enc_init,
|
||||
.preprocess=enc_preprocess,
|
||||
.process=enc_process,
|
||||
.uninit=enc_uninit,
|
||||
.methods=enc_methods
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
typedef struct DecState{
|
||||
int nsamples;
|
||||
int nbytes;
|
||||
int ms_per_frame;
|
||||
iLBC_Dec_Inst_t ilbc_dec;
|
||||
}DecState;
|
||||
|
||||
|
||||
static void dec_init(MSFilter *f){
|
||||
DecState *s=ms_new(DecState,1);
|
||||
s->nsamples=0;
|
||||
s->nbytes=0;
|
||||
s->ms_per_frame=0;
|
||||
f->data=s;
|
||||
}
|
||||
|
||||
static void dec_uninit(MSFilter *f){
|
||||
ms_free(f->data);
|
||||
}
|
||||
|
||||
static void dec_process(MSFilter *f){
|
||||
DecState *s=(DecState*)f->data;
|
||||
mblk_t *im,*om;
|
||||
int nbytes;
|
||||
float samples[BLOCKL_MAX];
|
||||
int i;
|
||||
|
||||
while ((im=ms_queue_get(f->inputs[0]))!=NULL){
|
||||
nbytes=msgdsize(im);
|
||||
if (nbytes<=0)
|
||||
return;
|
||||
if (nbytes%38!=0 && nbytes%50!=0)
|
||||
return;
|
||||
if (nbytes%38==0 && s->nbytes!=NO_OF_BYTES_20MS)
|
||||
{
|
||||
/* not yet configured, or misconfigured */
|
||||
s->ms_per_frame=20;
|
||||
s->nbytes=NO_OF_BYTES_20MS;
|
||||
s->nsamples=BLOCKL_20MS;
|
||||
initDecode(&s->ilbc_dec,s->ms_per_frame,0);
|
||||
}
|
||||
else if (nbytes%50==0 && s->nbytes!=NO_OF_BYTES_30MS)
|
||||
{
|
||||
/* not yet configured, or misconfigured */
|
||||
s->ms_per_frame=30;
|
||||
s->nbytes=NO_OF_BYTES_30MS;
|
||||
s->nsamples=BLOCKL_30MS;
|
||||
initDecode(&s->ilbc_dec,s->ms_per_frame,0);
|
||||
}
|
||||
if (s->nbytes>0 && nbytes>=s->nbytes){
|
||||
int frame_per_packet = nbytes/s->nbytes;
|
||||
int k;
|
||||
|
||||
for (k=0;k<frame_per_packet;k++)
|
||||
{
|
||||
om=allocb(s->nsamples*2,0);
|
||||
iLBC_decode(samples,(uint8_t*)im->b_rptr+(k*s->nbytes),&s->ilbc_dec,1);
|
||||
for (i=0;i<s->nsamples;i++,om->b_wptr+=2){
|
||||
*((int16_t*)om->b_wptr)=samples[i];
|
||||
}
|
||||
ms_queue_put(f->outputs[0],om);
|
||||
}
|
||||
}else{
|
||||
ms_warning("bad iLBC frame !");
|
||||
}
|
||||
freemsg(im);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
|
||||
MSFilterDesc ms_ilbc_dec_desc={
|
||||
MS_FILTER_PLUGIN_ID,
|
||||
"MSIlbcDec",
|
||||
"iLBC decoder",
|
||||
MS_FILTER_DECODER,
|
||||
"iLBC",
|
||||
1,
|
||||
1,
|
||||
dec_init,
|
||||
NULL,
|
||||
dec_process,
|
||||
NULL,
|
||||
dec_uninit,
|
||||
NULL
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
MSFilterDesc ms_ilbc_dec_desc={
|
||||
.id=MS_FILTER_PLUGIN_ID,
|
||||
.name="MSIlbcDec",
|
||||
.text="iLBC decoder",
|
||||
.category=MS_FILTER_DECODER,
|
||||
.enc_fmt="iLBC",
|
||||
.ninputs=1,
|
||||
.noutputs=1,
|
||||
.init=dec_init,
|
||||
.process=dec_process,
|
||||
.uninit=dec_uninit
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define MS_PLUGIN_DECLARE(type) __declspec(dllexport) type
|
||||
#else
|
||||
#define MS_PLUGIN_DECLARE(type) type
|
||||
#endif
|
||||
|
||||
MS_PLUGIN_DECLARE(void) libmsilbc_init(){
|
||||
ms_filter_register(&ms_ilbc_enc_desc);
|
||||
ms_filter_register(&ms_ilbc_dec_desc);
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
Simon Morlat <simon.morlat@linphone.org>
|
||||
|
|
@ -1,340 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
|
|
@ -1,302 +0,0 @@
|
|||
Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
||||
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
unlimited permission to copy, distribute and modify it.
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
Briefly, the shell commands `./configure; make; make install' should
|
||||
configure, build, and install this package. The following
|
||||
more-detailed instructions are generic; see the `README' file for
|
||||
instructions specific to this package.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, and a
|
||||
file `config.log' containing compiler output (useful mainly for
|
||||
debugging `configure').
|
||||
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point `config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You need `configure.ac' if
|
||||
you want to change it or regenerate `configure' using a newer version
|
||||
of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system.
|
||||
|
||||
Running `configure' might take a while. While running, it prints
|
||||
some messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
the package.
|
||||
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
|
||||
5. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
6. Often, you can also type `make uninstall' to remove the installed
|
||||
files again.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. Run `./configure --help'
|
||||
for details on some of the pertinent environment variables.
|
||||
|
||||
You can give `configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
|
||||
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you can use GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
With a non-GNU `make', it is safer to compile the package for one
|
||||
architecture at a time in the source code directory. After you have
|
||||
installed the package for one architecture, use `make distclean' before
|
||||
reconfiguring for another architecture.
|
||||
|
||||
On MacOS X 10.5 and later systems, you can create libraries and
|
||||
executables that work on multiple system types--known as "fat" or
|
||||
"universal" binaries--by specifying multiple `-arch' options to the
|
||||
compiler but only a single `-arch' option to the preprocessor. Like
|
||||
this:
|
||||
|
||||
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||
CPP="gcc -E" CXXCPP="g++ -E"
|
||||
|
||||
This is not guaranteed to produce working output in all cases, you
|
||||
may have to build one architecture at a time and combine the results
|
||||
using the `lipo' tool if you have problems.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' installs the package's commands under
|
||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||
can specify an installation prefix other than `/usr/local' by giving
|
||||
`configure' the option `--prefix=PREFIX'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=DIR' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Particular systems
|
||||
==================
|
||||
|
||||
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
|
||||
CC is not installed, it is recommended to use the following options in
|
||||
order to use an ANSI C compiler:
|
||||
|
||||
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
|
||||
|
||||
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
||||
|
||||
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
||||
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
|
||||
a workaround. If GNU CC is not installed, it is therefore recommended
|
||||
to try
|
||||
|
||||
./configure CC="cc"
|
||||
|
||||
and if that doesn't work, try
|
||||
|
||||
./configure CC="cc -nodtk"
|
||||
|
||||
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
|
||||
directory contains several dysfunctional programs; working variants of
|
||||
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
|
||||
in your `PATH', put it _after_ `/usr/bin'.
|
||||
|
||||
On Haiku, software installed for all users goes in `/boot/common',
|
||||
not `/usr/local'. It is recommended to use the following options:
|
||||
|
||||
./configure --prefix=/boot/common
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' cannot figure out
|
||||
automatically, but needs to determine by the type of machine the package
|
||||
will run on. Usually, assuming the package is built to be run on the
|
||||
_same_ architectures, `configure' can figure that out, but if it prints
|
||||
a message saying it cannot guess the machine type, give it the
|
||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS
|
||||
KERNEL-OS
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the option `--target=TYPE' to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the
|
||||
"host" platform (i.e., that on which the generated programs will
|
||||
eventually be run) with `--host=TYPE'.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to `configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the `configure' command line, using `VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||
overridden in the site shell script).
|
||||
|
||||
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
||||
an Autoconf bug. Until the bug is fixed you can use this workaround:
|
||||
|
||||
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
`configure' Invocation
|
||||
======================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--help'
|
||||
`-h'
|
||||
Print a summary of all of the options to `configure', and exit.
|
||||
|
||||
`--help=short'
|
||||
`--help=recursive'
|
||||
Print a summary of the options unique to this package's
|
||||
`configure', and exit. The `short' variant lists options used
|
||||
only in the top level, while the `recursive' variant lists options
|
||||
also present in any nested packages.
|
||||
|
||||
`--version'
|
||||
`-V'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||
disable caching.
|
||||
|
||||
`--config-cache'
|
||||
`-C'
|
||||
Alias for `--cache-file=config.cache'.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`--prefix=DIR'
|
||||
Use DIR as the installation prefix. *Note Installation Names::
|
||||
for more details, including other options available for fine-tuning
|
||||
the installation locations.
|
||||
|
||||
`--no-create'
|
||||
`-n'
|
||||
Run the configure checks, but stop before creating any output
|
||||
files.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options. Run
|
||||
`configure --help' for more details.
|
||||
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
EXTRA_DIST=autogen.sh
|
||||
|
||||
SUBDIRS=src
|
||||
|
||||
|
||||
|
||||
INSTALLDIR=$(shell cd $(top_builddir) && pwd)/$(PACKAGE)-install
|
||||
INSTALLDIR_WITH_PREFIX=$(INSTALLDIR)/$(prefix)
|
||||
ZIPFILE=$(shell cd $(top_builddir) && pwd)/$(PACKAGE)-win32-$(VERSION).zip
|
||||
ZIP_EXCLUDED=include
|
||||
|
||||
ISS_SCRIPT=msx264.iss
|
||||
ISS_SCRIPT_PATH=$(shell cd $(top_srcdir) && pwd)/$(ISS_SCRIPT)
|
||||
#path to Inno Setup 5 compiler
|
||||
ISCC=/c/Program\ Files/Inno\ Setup\ 5/ISCC.exe
|
||||
PACKAGE_WIN32_FILELIST=$(PACKAGE)-win32.filelist
|
||||
|
||||
setup.exe: zip
|
||||
cd $(INSTALLDIR_WITH_PREFIX) && \
|
||||
rm -f $(PACKAGE_WIN32_FILELIST) && \
|
||||
for file in `find` ; do \
|
||||
if ! test -d $$file ; then \
|
||||
echo "Source: $$file; Destdir: {app}\\`dirname $$file`; Flags: ignoreversion" \
|
||||
>> $(PACKAGE_WIN32_FILELIST) ;\
|
||||
fi \
|
||||
done
|
||||
cp $(ISS_SCRIPT) $(INSTALLDIR_WITH_PREFIX)/.
|
||||
cd $(INSTALLDIR_WITH_PREFIX) && \
|
||||
$(ISCC) $(ISS_SCRIPT)
|
||||
mv $(INSTALLDIR_WITH_PREFIX)/Output/setup.exe $(PACKAGE)-$(VERSION)-setup.exe
|
||||
rm -rf $(INSTALLDIR_WITH_PREFIX)/Output
|
||||
rm -f $(INSTALLDIR_WITH_PREFIX)/$(PACKAGE_WIN32_FILELIST)
|
||||
rm -f $(INSTALLDIR_WITH_PREFIX)/$(ISS_SCRIPT)
|
||||
|
||||
zip:
|
||||
rm -f $(ZIPFILE)
|
||||
rm -rf $(INSTALLDIR)
|
||||
mkdir -p $(INSTALLDIR)
|
||||
make install DESTDIR=$(INSTALLDIR)
|
||||
cp -f $(top_srcdir)/README $(INSTALLDIR_WITH_PREFIX)/.
|
||||
cp -f $(top_srcdir)/COPYING $(INSTALLDIR_WITH_PREFIX)/.
|
||||
cd $(INSTALLDIR)/$(prefix) && rm -rf $(ZIP_EXCLUDED) && \
|
||||
zip -r $(ZIPFILE) *
|
||||
|
||||
clean-local:
|
||||
-rm -rf $(PACKAGE)-install
|
||||
-rm -f $(PACKAGE)-win32-$(VERSION).zip
|
||||
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
Wednesday December 2, 2009: msx264-1.3.0
|
||||
- use new official x264 support of multislicing (forked version no more required)
|
||||
|
||||
Friday July 4, 2009 : msx264-1.2.0
|
||||
- modified to compile against new multisliced version of x264 to allow packetization-mode=0
|
||||
|
||||
Wednesday August 20, 2008: msx264-1.1.0
|
||||
- compiled together with x264-snapshot-20080421-2245+multislicing-patch.tar.gz, allows packetization-mode=0
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
msx264 - a GPL plugin to bring video H264 encoding/decoding capabilities to mediastreamer2 applications.
|
||||
It is based on ffmpeg for decoding and x264 for encoding.
|
||||
|
||||
It works with x264 version later to september 2009.
|
||||
So:
|
||||
|
||||
* compile msx264 with ./configure && make && make install
|
||||
|
||||
|
||||
A bit of history
|
||||
****************
|
||||
|
||||
The multislicing feature of x264 is something that has been contributed several time, but never merged (why ?).
|
||||
The linphone.org version of x264 was inspired by a patch submitted on x264-devel mailing list:
|
||||
http://mailman.videolan.org/pipermail/x264-devel/2008-April/004427.html
|
||||
http://download.savannah.gnu.org/releases/linphone/plugins/sources/x264-snapshot-20090704-linphone-org.tar.gz
|
||||
This version is no more required since in august 2009, x264 team introduces new parameters
|
||||
controlling slicing.
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
AM_VERSION=1.10
|
||||
if ! type aclocal-$AM_VERSION 1>/dev/null 2>&1; then
|
||||
ACLOCAL=aclocal
|
||||
AUTOMAKE=automake
|
||||
else
|
||||
ACLOCAL=aclocal-${AM_VERSION}
|
||||
AUTOMAKE=automake-${AM_VERSION}
|
||||
fi
|
||||
|
||||
echo "Generating build scripts in this mediastreamer plugin"
|
||||
set -x
|
||||
libtoolize --copy --force
|
||||
$ACLOCAL
|
||||
$AUTOMAKE --force-missing --add-missing --copy
|
||||
autoconf
|
||||
|
||||
|
||||
|
|
@ -1,159 +0,0 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_INIT([msx264],[1.3.0])
|
||||
|
||||
AM_INIT_AUTOMAKE([tar-ustar])
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
|
||||
AC_MSG_CHECKING([warning make an error on compilation])
|
||||
AC_ARG_ENABLE(strict,
|
||||
[ --enable-strict Enable error on compilation warning [default=yes]],
|
||||
[wall_werror=$enableval],
|
||||
[wall_werror=yes]
|
||||
)
|
||||
|
||||
|
||||
dnl Checks for programs.
|
||||
AC_PROG_CC
|
||||
|
||||
AC_LIBTOOL_WIN32_DLL
|
||||
AC_DISABLE_STATIC
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
|
||||
case $target_os in
|
||||
*mingw*)
|
||||
mingw_found=yes
|
||||
;;
|
||||
esac
|
||||
|
||||
AM_CONDITIONAL(BUILD_WIN32, test x$mingw_found = xyes)
|
||||
|
||||
AC_CONFIG_COMMANDS([libtool-hacking],[
|
||||
if test "$mingw_found" = "yes" ; then
|
||||
AC_MSG_NOTICE([Hacking libtool to work with mingw...])
|
||||
sed -e 's/\*\" \$a_deplib \"\*/\*/' < ./libtool > libtool.tmp
|
||||
cp -f ./libtool.tmp ./libtool
|
||||
rm -f ./libtool.tmp
|
||||
fi
|
||||
],[mingw_found=$mingw_found])
|
||||
|
||||
|
||||
CFLAGS="$CFLAGS -Wall"
|
||||
|
||||
|
||||
dnl Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_HEADER_TIME
|
||||
AC_WORDS_BIGENDIAN
|
||||
if test x$ac_cv_c_bigendian = xyes ; then
|
||||
CFLAGS="$CFLAGS -D_BIGENDIAN"
|
||||
fi
|
||||
|
||||
if test $GCC = yes && test $wall_werror = yes; then
|
||||
CFLAGS="$CFLAGS -Werror "
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES(MEDIASTREAMER, mediastreamer >= 2.1.0)
|
||||
|
||||
PKG_CHECK_MODULES(X264, x264 >= 0.67.0)
|
||||
|
||||
|
||||
dnl test for ffmpeg presence
|
||||
PKG_CHECK_MODULES(LIBAVCODEC, [libavcodec >= 50.0.0 ],ffmpeg_found=yes , ffmpeg_found=no)
|
||||
dnl workaround for debian...
|
||||
PKG_CHECK_MODULES(LIBAVCODEC, [libavcodec >= 0d.50.0.0 ], ffmpeg_found=yes, ffmpeg_found=no)
|
||||
if test x$ffmpeg_found = xno ; then
|
||||
AC_MSG_ERROR([Could not find ffmpeg headers and library. This is mandatory for video support])
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES(LIBSWSCALE, [libswscale >= 0.7.0])
|
||||
|
||||
|
||||
dnl check for new/old ffmpeg header file layout
|
||||
CPPFLAGS_save=$CPPFLAGS
|
||||
CPPFLAGS=$LIBAVCODEC_CFLAGS
|
||||
AC_CHECK_HEADERS(libavcodec/avcodec.h)
|
||||
CPPFLAGS=$CPPFLAGS_save
|
||||
|
||||
if test "$hacked_x264" = "yes" ; then
|
||||
AC_MSG_NOTICE([Trying to compile with multislicing patched version of X264])
|
||||
CFLAGS="$CFLAGS -DHACKED_X264"
|
||||
fi
|
||||
|
||||
LDFLAGS="$LDFLAGS -rdynamic "
|
||||
|
||||
dnl define path of plugins:
|
||||
PACKAGE_PLUGINS_DIR="\$(libdir)/mediastreamer/plugins"
|
||||
AC_SUBST(PACKAGE_PLUGINS_DIR)
|
||||
|
||||
dnl ##################################################
|
||||
dnl # Check for ESP Packager
|
||||
dnl ##################################################
|
||||
|
||||
AC_PATH_PROG(EPM,epm,false)
|
||||
AC_PATH_PROG(MKEPMLIST,mkepmlist,false)
|
||||
AC_PATH_PROG(EPMINSTALL,epminstall,false)
|
||||
AM_CONDITIONAL(WITH_EPM,test $EPM != false && test $MKEPMLIST != false && test $EPMINSTALL != false)
|
||||
|
||||
|
||||
# Preferred packaging system, as per EPM terminology
|
||||
case $target in
|
||||
*-*-linux*)
|
||||
if test -f /etc/debian_version ; then
|
||||
EPM_PKG_EXT=deb
|
||||
else
|
||||
EPM_PKG_EXT=rpm
|
||||
fi
|
||||
;;
|
||||
*-hp-hpux*)
|
||||
EPM_PKG_EXT=depot.gz;;
|
||||
*-dec-osf*)
|
||||
EPM_PKG_EXT=setld;;
|
||||
esac
|
||||
AC_SUBST(EPM_PKG_EXT)
|
||||
|
||||
# System software User & Group names
|
||||
case $target in
|
||||
*-*-linux*)
|
||||
SYS_USER=root
|
||||
SYS_GROUP=root
|
||||
;;
|
||||
*-*-hpux*|*-dec-osf*)
|
||||
SYS_USER=bin
|
||||
SYS_GROUP=bin
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(SYS_USER)
|
||||
AC_SUBST(SYS_GROUP)
|
||||
|
||||
# CPU Architecture
|
||||
case $target_cpu in
|
||||
i?86) ARCH=i386;;
|
||||
*) ARCH=$target_cpu;;
|
||||
esac
|
||||
AC_SUBST(ARCH)
|
||||
|
||||
# Various other packaging variables, that can be over-ridden ad `make
|
||||
# package' time
|
||||
SUMMARY="A H264 codec mediastreamer plugin"
|
||||
AC_SUBST(SUMMARY)
|
||||
PACKAGER=anonymous
|
||||
AC_SUBST(PACKAGER)
|
||||
LICENSE=GPL
|
||||
AC_SUBST(LICENSE)
|
||||
VENDOR=Linphone
|
||||
AC_SUBST(VENDOR)
|
||||
RELEASE=1
|
||||
AC_SUBST(RELEASE)
|
||||
|
||||
|
||||
AC_OUTPUT(
|
||||
Makefile
|
||||
src/Makefile
|
||||
msx264.iss
|
||||
)
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
; Script generated by the Inno Setup Script Wizard.
|
||||
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
||||
|
||||
[Setup]
|
||||
AppName=msx264
|
||||
AppVerName=msx264 version @VERSION@ , an H.264 plugin for linphone.
|
||||
AppPublisher=linphone.org
|
||||
AppPublisherURL=http://www.linphone.org
|
||||
AppSupportURL=http://www.linphone.org
|
||||
AppUpdatesURL=http://www.linphone.org
|
||||
DefaultDirName={pf}\Linphone
|
||||
DefaultGroupName=Linphone
|
||||
LicenseFile=COPYING
|
||||
InfoBeforeFile=README
|
||||
OutputBaseFilename=setup
|
||||
Compression=lzma
|
||||
SolidCompression=yes
|
||||
|
||||
[Languages]
|
||||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||
|
||||
[Tasks]
|
||||
;Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
||||
|
||||
[Files]
|
||||
#include "msx264-win32.filelist"
|
||||
|
||||
[Icons]
|
||||
;Name: "{group}\Linphone"; Filename: "{app}\linphone-wx.exe" ; WorkingDir: "{app}"
|
||||
;Name: "{userdesktop}\Linphone"; Filename: "{app}\linphone-wx.exe"; WorkingDir: "{app}" ; Tasks: desktopicon
|
||||
|
||||
[Run]
|
||||
;Filename: "{app}\linphone-wx.exe"; Description: "{cm:LaunchProgram,Linphone}"; WorkingDir: "{app}" ; Flags: nowait postinstall skipifsilent
|
||||
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
pluginsdir=$(PACKAGE_PLUGINS_DIR)
|
||||
|
||||
plugins_LTLIBRARIES=libmsx264.la
|
||||
|
||||
libmsx264_la_SOURCES=msx264.c
|
||||
|
||||
libmsx264_la_LIBADD=\
|
||||
$(LIBAVCODEC_LIBS) \
|
||||
$(LIBSWSCALE_LIBS) \
|
||||
$(MEDIASTREAMER_LIBS) \
|
||||
$(X264_LIBS)
|
||||
|
||||
libmsx264_la_LDFLAGS=-no-undefined
|
||||
|
||||
AM_CFLAGS= $(LIBAVCODEC_CFLAGS) \
|
||||
$(LIBSWSCALE_CFLAGS) \
|
||||
$(MEDIASTREAMER_CFLAGS)\
|
||||
$(X264_CFLAGS)
|
||||
|
||||
if BUILD_WIN32
|
||||
#hack for mingw to force plugins dll to be where we want them to be.
|
||||
install-data-hook:
|
||||
mv $(DESTDIR)$(pluginsdir)/../bin/*.dll \
|
||||
$(DESTDIR)$(pluginsdir)/.
|
||||
rm -f $(DESTDIR)$(pluginsdir)/*.la
|
||||
rm -f $(DESTDIR)$(pluginsdir)/*.dll.a
|
||||
endif
|
||||
|
|
@ -1,563 +0,0 @@
|
|||
/*
|
||||
mediastreamer2 x264 plugin
|
||||
Copyright (C) 2006 Simon MORLAT (simon.morlat@linphone.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "mediastreamer2/msfilter.h"
|
||||
#include "mediastreamer2/msticker.h"
|
||||
#include "mediastreamer2/msvideo.h"
|
||||
#include "mediastreamer2/rfc3984.h"
|
||||
|
||||
#include "ortp/b64.h"
|
||||
|
||||
#include <x264.h>
|
||||
|
||||
#ifdef HAVE_LIBAVCODEC_AVCODEC_H
|
||||
#include <libavcodec/avcodec.h>
|
||||
#include <libswscale/swscale.h>
|
||||
#else
|
||||
#include <ffmpeg/avcodec.h>
|
||||
#include <ffmpeg/swscale.h>
|
||||
#endif
|
||||
|
||||
#define REMOVE_PREVENTING_BYTES 1
|
||||
|
||||
typedef struct _EncData{
|
||||
x264_t *enc;
|
||||
MSVideoSize vsize;
|
||||
int bitrate;
|
||||
float fps;
|
||||
int mode;
|
||||
uint64_t framenum;
|
||||
Rfc3984Context packer;
|
||||
int keyframe_int;
|
||||
bool_t generate_keyframe;
|
||||
}EncData;
|
||||
|
||||
|
||||
static void enc_init(MSFilter *f){
|
||||
EncData *d=ms_new(EncData,1);
|
||||
d->enc=NULL;
|
||||
d->bitrate=384000;
|
||||
d->vsize=MS_VIDEO_SIZE_CIF;
|
||||
d->fps=30;
|
||||
d->keyframe_int=10; /*10 seconds */
|
||||
d->mode=0;
|
||||
d->framenum=0;
|
||||
d->generate_keyframe=FALSE;
|
||||
f->data=d;
|
||||
}
|
||||
|
||||
static void enc_uninit(MSFilter *f){
|
||||
EncData *d=(EncData*)f->data;
|
||||
ms_free(d);
|
||||
}
|
||||
|
||||
static void enc_preprocess(MSFilter *f){
|
||||
EncData *d=(EncData*)f->data;
|
||||
x264_param_t params;
|
||||
|
||||
rfc3984_init(&d->packer);
|
||||
rfc3984_set_mode(&d->packer,d->mode);
|
||||
rfc3984_enable_stap_a(&d->packer,FALSE);
|
||||
|
||||
x264_param_default(¶ms);
|
||||
params.i_threads=1;
|
||||
params.i_sync_lookahead=0;
|
||||
params.i_width=d->vsize.width;
|
||||
params.i_height=d->vsize.height;
|
||||
params.i_fps_num=(int)d->fps;
|
||||
params.i_fps_den=1;
|
||||
params.i_slice_max_size=ms_get_payload_max_size()-100; /*-100 security margin*/
|
||||
/*params.i_level_idc=30;*/
|
||||
|
||||
params.rc.i_rc_method = X264_RC_ABR;
|
||||
params.rc.i_bitrate=(int)( ( ((float)d->bitrate)*0.8)/1000.0);
|
||||
params.rc.f_rate_tolerance=0.1;
|
||||
params.rc.i_vbv_max_bitrate=(int) (((float)d->bitrate)*0.9/1000.0);
|
||||
params.rc.i_vbv_buffer_size=params.rc.i_vbv_max_bitrate;
|
||||
params.rc.f_vbv_buffer_init=0.5;
|
||||
params.rc.i_lookahead=0;
|
||||
/*enable this by config ?*/
|
||||
/*
|
||||
params.i_keyint_max = (int)d->fps*d->keyframe_int;
|
||||
params.i_keyint_min = (int)d->fps;
|
||||
*/
|
||||
params.b_repeat_headers=1;
|
||||
params.b_cabac=0;//disable cabac to be baseline
|
||||
params.i_bframe=0;/*no B frames*/
|
||||
d->enc=x264_encoder_open(¶ms);
|
||||
if (d->enc==NULL) ms_error("Fail to create x264 encoder.");
|
||||
d->framenum=0;
|
||||
}
|
||||
|
||||
static void x264_nals_to_msgb(x264_nal_t *xnals, int num_nals, MSQueue * nalus){
|
||||
int i;
|
||||
mblk_t *m;
|
||||
/*int bytes;*/
|
||||
for (i=0;i<num_nals;++i){
|
||||
m=allocb(xnals[i].i_payload+10,0);
|
||||
|
||||
memcpy(m->b_wptr,xnals[i].p_payload+4,xnals[i].i_payload-4);
|
||||
m->b_wptr+=xnals[i].i_payload-4;
|
||||
if (xnals[i].i_type==7) {
|
||||
ms_message("A SPS is being sent.");
|
||||
}else if (xnals[i].i_type==8) {
|
||||
ms_message("A PPS is being sent.");
|
||||
}
|
||||
ms_queue_put(nalus,m);
|
||||
}
|
||||
}
|
||||
|
||||
static void enc_process(MSFilter *f){
|
||||
EncData *d=(EncData*)f->data;
|
||||
uint32_t ts=f->ticker->time*90LL;
|
||||
mblk_t *im;
|
||||
MSPicture pic;
|
||||
MSQueue nalus;
|
||||
ms_queue_init(&nalus);
|
||||
while((im=ms_queue_get(f->inputs[0]))!=NULL){
|
||||
if (yuv_buf_init_from_mblk(&pic,im)==0){
|
||||
x264_picture_t xpic;
|
||||
x264_picture_t oxpic;
|
||||
x264_nal_t *xnals=NULL;
|
||||
int num_nals=0;
|
||||
|
||||
/*send I frame 2 seconds and 4 seconds after the beginning */
|
||||
if (d->framenum==(int)d->fps*2 || d->framenum==(int)d->fps*4)
|
||||
d->generate_keyframe=TRUE;
|
||||
|
||||
if (d->generate_keyframe){
|
||||
xpic.i_type=X264_TYPE_IDR;
|
||||
d->generate_keyframe=FALSE;
|
||||
}else xpic.i_type=X264_TYPE_AUTO;
|
||||
xpic.i_qpplus1=0;
|
||||
xpic.i_pts=d->framenum;
|
||||
xpic.param=NULL;
|
||||
xpic.img.i_csp=X264_CSP_I420;
|
||||
xpic.img.i_plane=3;
|
||||
xpic.img.i_stride[0]=pic.strides[0];
|
||||
xpic.img.i_stride[1]=pic.strides[1];
|
||||
xpic.img.i_stride[2]=pic.strides[2];
|
||||
xpic.img.i_stride[3]=0;
|
||||
xpic.img.plane[0]=pic.planes[0];
|
||||
xpic.img.plane[1]=pic.planes[1];
|
||||
xpic.img.plane[2]=pic.planes[2];
|
||||
xpic.img.plane[3]=0;
|
||||
if (x264_encoder_encode(d->enc,&xnals,&num_nals,&xpic,&oxpic)>=0){
|
||||
x264_nals_to_msgb(xnals,num_nals,&nalus);
|
||||
rfc3984_pack(&d->packer,&nalus,f->outputs[0],ts);
|
||||
d->framenum++;
|
||||
}else{
|
||||
ms_error("x264_encoder_encode() error.");
|
||||
}
|
||||
}
|
||||
freemsg(im);
|
||||
}
|
||||
}
|
||||
|
||||
static void enc_postprocess(MSFilter *f){
|
||||
EncData *d=(EncData*)f->data;
|
||||
rfc3984_uninit(&d->packer);
|
||||
if (d->enc!=NULL){
|
||||
x264_encoder_close(d->enc);
|
||||
d->enc=NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static int enc_set_br(MSFilter *f, void *arg){
|
||||
EncData *d=(EncData*)f->data;
|
||||
d->bitrate=*(int*)arg;
|
||||
|
||||
if (d->bitrate>=1024000){
|
||||
d->vsize=MS_VIDEO_SIZE_VGA;
|
||||
d->fps=25;
|
||||
}else if (d->bitrate>=512000){
|
||||
d->vsize=MS_VIDEO_SIZE_VGA;
|
||||
d->fps=15;
|
||||
}else if (d->bitrate>=384000){
|
||||
d->vsize=MS_VIDEO_SIZE_CIF;
|
||||
d->fps=30;
|
||||
}else if (d->bitrate>=256000){
|
||||
d->vsize=MS_VIDEO_SIZE_CIF;
|
||||
d->fps=15;
|
||||
}else if (d->bitrate>=128000){
|
||||
d->vsize=MS_VIDEO_SIZE_CIF;
|
||||
d->fps=15;
|
||||
}else if (d->bitrate>=64000){
|
||||
d->vsize=MS_VIDEO_SIZE_CIF;
|
||||
d->fps=10;
|
||||
}else if (d->bitrate>=32000){
|
||||
d->vsize=MS_VIDEO_SIZE_QCIF;
|
||||
d->fps=10;
|
||||
}else{
|
||||
d->vsize=MS_VIDEO_SIZE_QCIF;
|
||||
d->fps=5;
|
||||
}
|
||||
ms_message("bitrate set to %i",d->bitrate);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int enc_set_fps(MSFilter *f, void *arg){
|
||||
EncData *d=(EncData*)f->data;
|
||||
d->fps=*(float*)arg;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int enc_get_fps(MSFilter *f, void *arg){
|
||||
EncData *d=(EncData*)f->data;
|
||||
*(float*)arg=d->fps;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int enc_get_vsize(MSFilter *f, void *arg){
|
||||
EncData *d=(EncData*)f->data;
|
||||
*(MSVideoSize*)arg=d->vsize;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int enc_set_vsize(MSFilter *f, void *arg){
|
||||
EncData *d=(EncData*)f->data;
|
||||
d->vsize=*(MSVideoSize*)arg;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int enc_add_fmtp(MSFilter *f, void *arg){
|
||||
EncData *d=(EncData*)f->data;
|
||||
const char *fmtp=(const char *)arg;
|
||||
char value[12];
|
||||
if (fmtp_get_value(fmtp,"packetization-mode",value,sizeof(value))){
|
||||
d->mode=atoi(value);
|
||||
ms_message("packetization-mode set to %i",d->mode);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int enc_req_vfu(MSFilter *f, void *arg){
|
||||
EncData *d=(EncData*)f->data;
|
||||
d->generate_keyframe=TRUE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static MSFilterMethod enc_methods[]={
|
||||
{ MS_FILTER_SET_FPS , enc_set_fps },
|
||||
{ MS_FILTER_SET_BITRATE , enc_set_br },
|
||||
{ MS_FILTER_GET_FPS , enc_get_fps },
|
||||
{ MS_FILTER_GET_VIDEO_SIZE, enc_get_vsize },
|
||||
{ MS_FILTER_SET_VIDEO_SIZE, enc_set_vsize },
|
||||
{ MS_FILTER_ADD_FMTP , enc_add_fmtp },
|
||||
{ MS_FILTER_REQ_VFU , enc_req_vfu },
|
||||
{ 0 , NULL }
|
||||
};
|
||||
|
||||
static MSFilterDesc x264_enc_desc={
|
||||
.id=MS_FILTER_PLUGIN_ID,
|
||||
.name="MSX264Enc",
|
||||
.text="A H264 encoder based on x264 project (with multislicing enabled)",
|
||||
.category=MS_FILTER_ENCODER,
|
||||
.enc_fmt="H264",
|
||||
.ninputs=1,
|
||||
.noutputs=1,
|
||||
.init=enc_init,
|
||||
.preprocess=enc_preprocess,
|
||||
.process=enc_process,
|
||||
.postprocess=enc_postprocess,
|
||||
.uninit=enc_uninit,
|
||||
.methods=enc_methods
|
||||
};
|
||||
|
||||
typedef struct _DecData{
|
||||
mblk_t *yuv_msg;
|
||||
mblk_t *sps,*pps;
|
||||
Rfc3984Context unpacker;
|
||||
MSPicture outbuf;
|
||||
struct SwsContext *sws_ctx;
|
||||
AVCodecContext av_context;
|
||||
unsigned int packet_num;
|
||||
uint8_t *bitstream;
|
||||
int bitstream_size;
|
||||
}DecData;
|
||||
|
||||
static void ffmpeg_init(){
|
||||
static bool_t done=FALSE;
|
||||
if (!done){
|
||||
avcodec_init();
|
||||
avcodec_register_all();
|
||||
done=TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
static void dec_open(DecData *d){
|
||||
AVCodec *codec;
|
||||
int error;
|
||||
codec=avcodec_find_decoder(CODEC_ID_H264);
|
||||
if (codec==NULL) ms_fatal("Could not find H264 decoder in ffmpeg.");
|
||||
avcodec_get_context_defaults(&d->av_context);
|
||||
error=avcodec_open(&d->av_context,codec);
|
||||
if (error!=0){
|
||||
ms_fatal("avcodec_open() failed.");
|
||||
}
|
||||
}
|
||||
|
||||
static void dec_init(MSFilter *f){
|
||||
DecData *d=(DecData*)ms_new(DecData,1);
|
||||
ffmpeg_init();
|
||||
d->yuv_msg=NULL;
|
||||
d->sps=NULL;
|
||||
d->pps=NULL;
|
||||
d->sws_ctx=NULL;
|
||||
rfc3984_init(&d->unpacker);
|
||||
d->packet_num=0;
|
||||
dec_open(d);
|
||||
d->outbuf.w=0;
|
||||
d->outbuf.h=0;
|
||||
d->bitstream_size=65536;
|
||||
d->bitstream=ms_malloc0(d->bitstream_size);
|
||||
f->data=d;
|
||||
}
|
||||
|
||||
static void dec_reinit(DecData *d){
|
||||
avcodec_close(&d->av_context);
|
||||
dec_open(d);
|
||||
}
|
||||
|
||||
static void dec_uninit(MSFilter *f){
|
||||
DecData *d=(DecData*)f->data;
|
||||
rfc3984_uninit(&d->unpacker);
|
||||
avcodec_close(&d->av_context);
|
||||
if (d->yuv_msg) freemsg(d->yuv_msg);
|
||||
if (d->sps) freemsg(d->sps);
|
||||
if (d->pps) freemsg(d->pps);
|
||||
ms_free(d->bitstream);
|
||||
ms_free(d);
|
||||
}
|
||||
|
||||
static mblk_t *get_as_yuvmsg(MSFilter *f, DecData *s, AVFrame *orig){
|
||||
AVCodecContext *ctx=&s->av_context;
|
||||
|
||||
if (s->outbuf.w!=ctx->width || s->outbuf.h!=ctx->height){
|
||||
if (s->sws_ctx!=NULL){
|
||||
sws_freeContext(s->sws_ctx);
|
||||
s->sws_ctx=NULL;
|
||||
freemsg(s->yuv_msg);
|
||||
s->yuv_msg=NULL;
|
||||
}
|
||||
ms_message("Getting yuv picture of %ix%i",ctx->width,ctx->height);
|
||||
s->yuv_msg=yuv_buf_alloc(&s->outbuf,ctx->width,ctx->height);
|
||||
s->outbuf.w=ctx->width;
|
||||
s->outbuf.h=ctx->height;
|
||||
s->sws_ctx=sws_getContext(ctx->width,ctx->height,ctx->pix_fmt,
|
||||
ctx->width,ctx->height,PIX_FMT_YUV420P,SWS_FAST_BILINEAR,
|
||||
NULL, NULL, NULL);
|
||||
}
|
||||
if (sws_scale(s->sws_ctx,orig->data,orig->linesize, 0,
|
||||
ctx->height, s->outbuf.planes, s->outbuf.strides)<0){
|
||||
ms_error("%s: error in sws_scale().",f->desc->name);
|
||||
}
|
||||
return dupmsg(s->yuv_msg);
|
||||
}
|
||||
|
||||
static void update_sps(DecData *d, mblk_t *sps){
|
||||
if (d->sps)
|
||||
freemsg(d->sps);
|
||||
d->sps=dupb(sps);
|
||||
}
|
||||
|
||||
static void update_pps(DecData *d, mblk_t *pps){
|
||||
if (d->pps)
|
||||
freemsg(d->pps);
|
||||
if (pps) d->pps=dupb(pps);
|
||||
else d->pps=NULL;
|
||||
}
|
||||
|
||||
static bool_t check_sps_pps_change(DecData *d, mblk_t *sps, mblk_t *pps){
|
||||
bool_t ret1=FALSE,ret2=FALSE;
|
||||
if (d->sps){
|
||||
if (sps){
|
||||
ret1=(msgdsize(sps)!=msgdsize(d->sps)) || (memcmp(d->sps->b_rptr,sps->b_rptr,msgdsize(sps))!=0);
|
||||
if (ret1) {
|
||||
update_sps(d,sps);
|
||||
ms_message("SPS changed !");
|
||||
update_pps(d,NULL);
|
||||
}
|
||||
}
|
||||
}else if (sps) {
|
||||
ms_message("Receiving first SPS");
|
||||
update_sps(d,sps);
|
||||
}
|
||||
if (d->pps){
|
||||
if (pps){
|
||||
ret2=(msgdsize(pps)!=msgdsize(d->pps)) || (memcmp(d->pps->b_rptr,pps->b_rptr,msgdsize(pps))!=0);
|
||||
if (ret2) {
|
||||
update_sps(d,pps);
|
||||
ms_message("PPS changed ! %i,%i",msgdsize(pps),msgdsize(d->pps));
|
||||
}
|
||||
}
|
||||
}else if (pps) {
|
||||
ms_message("Receiving first PPS");
|
||||
update_pps(d,pps);
|
||||
}
|
||||
return ret1 || ret2;
|
||||
}
|
||||
|
||||
static void enlarge_bitstream(DecData *d, int new_size){
|
||||
d->bitstream_size=new_size;
|
||||
d->bitstream=ms_realloc(d->bitstream,d->bitstream_size);
|
||||
}
|
||||
|
||||
static int nalusToFrame(DecData *d, MSQueue *naluq, bool_t *new_sps_pps){
|
||||
mblk_t *im;
|
||||
uint8_t *dst=d->bitstream,*src,*end;
|
||||
int nal_len;
|
||||
bool_t start_picture=TRUE;
|
||||
uint8_t nalu_type;
|
||||
*new_sps_pps=FALSE;
|
||||
end=d->bitstream+d->bitstream_size;
|
||||
while((im=ms_queue_get(naluq))!=NULL){
|
||||
src=im->b_rptr;
|
||||
nal_len=im->b_wptr-src;
|
||||
if (dst+nal_len+100>end){
|
||||
int pos=dst-d->bitstream;
|
||||
enlarge_bitstream(d, d->bitstream_size+nal_len+100);
|
||||
dst=d->bitstream+pos;
|
||||
end=d->bitstream+d->bitstream_size;
|
||||
}
|
||||
nalu_type=(*src) & ((1<<5)-1);
|
||||
if (nalu_type==7)
|
||||
*new_sps_pps=check_sps_pps_change(d,im,NULL) || *new_sps_pps;
|
||||
if (nalu_type==8)
|
||||
*new_sps_pps=check_sps_pps_change(d,NULL,im) || *new_sps_pps;
|
||||
if (start_picture || nalu_type==7/*SPS*/ || nalu_type==8/*PPS*/ ){
|
||||
*dst++=0;
|
||||
start_picture=FALSE;
|
||||
}
|
||||
/*prepend nal marker*/
|
||||
*dst++=0;
|
||||
*dst++=0;
|
||||
*dst++=1;
|
||||
*dst++=*src++;
|
||||
while(src<(im->b_wptr-3)){
|
||||
if (src[0]==0 && src[1]==0 && src[2]<3){
|
||||
*dst++=0;
|
||||
*dst++=0;
|
||||
*dst++=3;
|
||||
src+=2;
|
||||
}
|
||||
*dst++=*src++;
|
||||
}
|
||||
*dst++=*src++;
|
||||
*dst++=*src++;
|
||||
*dst++=*src++;
|
||||
freemsg(im);
|
||||
}
|
||||
return dst-d->bitstream;
|
||||
}
|
||||
|
||||
static void dec_process(MSFilter *f){
|
||||
DecData *d=(DecData*)f->data;
|
||||
mblk_t *im;
|
||||
MSQueue nalus;
|
||||
AVFrame orig;
|
||||
ms_queue_init(&nalus);
|
||||
while((im=ms_queue_get(f->inputs[0]))!=NULL){
|
||||
/*push the sps/pps given in sprop-parameter-sets if any*/
|
||||
if (d->packet_num==0 && d->sps && d->pps){
|
||||
mblk_set_timestamp_info(d->sps,mblk_get_timestamp_info(im));
|
||||
mblk_set_timestamp_info(d->pps,mblk_get_timestamp_info(im));
|
||||
rfc3984_unpack(&d->unpacker,d->sps,&nalus);
|
||||
rfc3984_unpack(&d->unpacker,d->pps,&nalus);
|
||||
d->sps=NULL;
|
||||
d->pps=NULL;
|
||||
}
|
||||
rfc3984_unpack(&d->unpacker,im,&nalus);
|
||||
if (!ms_queue_empty(&nalus)){
|
||||
int size;
|
||||
uint8_t *p,*end;
|
||||
bool_t need_reinit=FALSE;
|
||||
|
||||
size=nalusToFrame(d,&nalus,&need_reinit);
|
||||
if (need_reinit)
|
||||
dec_reinit(d);
|
||||
p=d->bitstream;
|
||||
end=d->bitstream+size;
|
||||
while (end-p>0) {
|
||||
int len;
|
||||
int got_picture=0;
|
||||
AVPacket pkt;
|
||||
avcodec_get_frame_defaults(&orig);
|
||||
av_init_packet(&pkt);
|
||||
pkt.data = p;
|
||||
pkt.size = end-p;
|
||||
len=avcodec_decode_video2(&d->av_context,&orig,&got_picture,&pkt);
|
||||
if (len<=0) {
|
||||
ms_warning("ms_AVdecoder_process: error %i.",len);
|
||||
break;
|
||||
}
|
||||
if (got_picture) {
|
||||
ms_queue_put(f->outputs[0],get_as_yuvmsg(f,d,&orig));
|
||||
}
|
||||
p+=len;
|
||||
}
|
||||
}
|
||||
d->packet_num++;
|
||||
}
|
||||
}
|
||||
|
||||
static int dec_add_fmtp(MSFilter *f, void *arg){
|
||||
DecData *d=(DecData*)f->data;
|
||||
const char *fmtp=(const char *)arg;
|
||||
char value[256];
|
||||
if (fmtp_get_value(fmtp,"sprop-parameter-sets",value,sizeof(value))){
|
||||
char * b64_sps=value;
|
||||
char * b64_pps=strchr(value,',');
|
||||
if (b64_pps){
|
||||
*b64_pps='\0';
|
||||
++b64_pps;
|
||||
ms_message("Got sprop-parameter-sets : sps=%s , pps=%s",b64_sps,b64_pps);
|
||||
d->sps=allocb(sizeof(value),0);
|
||||
d->sps->b_wptr+=b64_decode(b64_sps,strlen(b64_sps),d->sps->b_wptr,sizeof(value));
|
||||
d->pps=allocb(sizeof(value),0);
|
||||
d->pps->b_wptr+=b64_decode(b64_pps,strlen(b64_pps),d->pps->b_wptr,sizeof(value));
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static MSFilterMethod h264_dec_methods[]={
|
||||
{ MS_FILTER_ADD_FMTP , dec_add_fmtp },
|
||||
{ 0 , NULL }
|
||||
};
|
||||
|
||||
static MSFilterDesc h264_dec_desc={
|
||||
.id=MS_FILTER_PLUGIN_ID,
|
||||
.name="MSH264Dec",
|
||||
.text="A H264 decoder based on ffmpeg project.",
|
||||
.category=MS_FILTER_DECODER,
|
||||
.enc_fmt="H264",
|
||||
.ninputs=1,
|
||||
.noutputs=1,
|
||||
.init=dec_init,
|
||||
.process=dec_process,
|
||||
.uninit=dec_uninit,
|
||||
.methods=h264_dec_methods
|
||||
};
|
||||
|
||||
void libmsx264_init(void){
|
||||
ms_filter_register(&x264_enc_desc);
|
||||
ms_filter_register(&h264_dec_desc);
|
||||
}
|
||||
8
linphone/mediastreamer2/src/.gitignore
vendored
8
linphone/mediastreamer2/src/.gitignore
vendored
|
|
@ -1,8 +0,0 @@
|
|||
Makefile.in
|
||||
Makefile
|
||||
.libs
|
||||
.deps
|
||||
*.la
|
||||
*.lo
|
||||
alldescs.h
|
||||
filterdescs.txt
|
||||
|
|
@ -1,188 +0,0 @@
|
|||
|
||||
EXTRA_DIST= winsnd2.c winsnd.c winvideo.c \
|
||||
winvideods.c wincevideods.c dxfilter.h dxfilter.cpp \
|
||||
msfileplayer_win.c msfilerec_win.c winsndds.cpp nowebcamCIF.jpg winsnd3.c vfw-missing.h \
|
||||
winvideo2.c
|
||||
|
||||
BUILT_SOURCES=alldescs.h
|
||||
|
||||
CLEANFILES=alldescs.h filterdescs.txt
|
||||
|
||||
INCLUDES=-I$(top_srcdir)/include/
|
||||
|
||||
lib_LTLIBRARIES=libmediastreamer.la
|
||||
|
||||
libmediastreamer_la_SOURCES= mscommon.c \
|
||||
msfilter.c \
|
||||
msqueue.c \
|
||||
msticker.c \
|
||||
alaw.c \
|
||||
ulaw.c \
|
||||
mssndcard.c \
|
||||
msrtp.c \
|
||||
dtmfgen.c \
|
||||
ice.c \
|
||||
tee.c \
|
||||
msconf.c \
|
||||
msjoin.c \
|
||||
g711common.h \
|
||||
msvolume.c \
|
||||
mswebcam.c \
|
||||
mtu.c \
|
||||
void.c \
|
||||
dsptools.c \
|
||||
kiss_fft.c \
|
||||
_kiss_fft_guts.h \
|
||||
kiss_fft.h \
|
||||
kiss_fftr.c \
|
||||
kiss_fftr.h \
|
||||
equalizer.c
|
||||
|
||||
#dummy c++ file to force libtool to use c++ linking (because of msdscap-mingw.cc)
|
||||
nodist_EXTRA_libmediastreamer_la_SOURCES = dummy.cxx
|
||||
|
||||
libmediastreamer_la_SOURCES+=audiostream.c
|
||||
|
||||
|
||||
if BUILD_SPEEX
|
||||
libmediastreamer_la_SOURCES+=msspeex.c speexec.c
|
||||
endif
|
||||
|
||||
if BUILD_GSM
|
||||
libmediastreamer_la_SOURCES+=gsm.c
|
||||
endif
|
||||
|
||||
if BUILD_WIN32
|
||||
libmediastreamer_la_SOURCES+= winsnd3.c \
|
||||
msfileplayer_win.c msfilerec_win.c
|
||||
else
|
||||
libmediastreamer_la_SOURCES+= msfileplayer.c \
|
||||
msfilerec.c
|
||||
endif
|
||||
|
||||
if BUILD_RESAMPLE
|
||||
libmediastreamer_la_SOURCES+=msresample.c
|
||||
endif
|
||||
|
||||
if BUILD_ALSA
|
||||
libmediastreamer_la_SOURCES+=alsa.c
|
||||
endif
|
||||
|
||||
if BUILD_OSS
|
||||
libmediastreamer_la_SOURCES+=oss.c
|
||||
endif
|
||||
|
||||
if BUILD_ARTS
|
||||
libmediastreamer_la_SOURCES+=arts.c
|
||||
endif
|
||||
|
||||
if BUILD_PORTAUDIO
|
||||
libmediastreamer_la_SOURCES+=pasnd.c
|
||||
endif
|
||||
|
||||
if BUILD_MACSND
|
||||
libmediastreamer_la_SOURCES+=macsnd.c
|
||||
endif
|
||||
|
||||
if BUILD_MACAQSND
|
||||
libmediastreamer_la_SOURCES+=aqsnd.c
|
||||
endif
|
||||
|
||||
|
||||
if BUILD_VIDEO
|
||||
|
||||
if BUILD_MACOSX
|
||||
libmediastreamer_la_SOURCES+=msv4m.m
|
||||
endif
|
||||
|
||||
if BUILD_V4L
|
||||
libmediastreamer_la_SOURCES+=msv4l.c msv4l2.c
|
||||
endif
|
||||
|
||||
if BUILD_WIN32
|
||||
libmediastreamer_la_SOURCES+=msdscap-mingw.cc
|
||||
endif
|
||||
|
||||
if BUILD_THEORA
|
||||
libmediastreamer_la_SOURCES+=theora.c
|
||||
endif
|
||||
|
||||
|
||||
libmediastreamer_la_SOURCES+= videoenc.c \
|
||||
videodec.c \
|
||||
pixconv.c \
|
||||
sizeconv.c \
|
||||
rfc2429.h \
|
||||
nowebcam.c nowebcam.h \
|
||||
videoout.c \
|
||||
msvideo.c \
|
||||
rfc3984.c \
|
||||
mire.c \
|
||||
swscale.h ffmpeg-priv.h
|
||||
|
||||
libmediastreamer_la_SOURCES+=videostream.c
|
||||
|
||||
endif
|
||||
|
||||
|
||||
|
||||
|
||||
alldescs.h: Makefile.am $(libmediastreamer_la_SOURCES)
|
||||
builddir=`pwd` && cd $(srcdir) && \
|
||||
awk 'BEGIN { FS="[()]" ; }; /^\t*MS_FILTER_DESC_EXPORT/{ printf("%s\n", $$2) } ' > $$builddir/filterdescs.txt $(libmediastreamer_la_SOURCES) && \
|
||||
awk 'BEGIN { print("#include \"mediastreamer2/msfilter.h\"\n") } { printf("extern MSFilterDesc %s;\n",$$1) } ' $$builddir/filterdescs.txt > $$builddir/$@ && \
|
||||
awk 'BEGIN { print("MSFilterDesc * ms_filter_descs[]={") } { printf("&%s,\n",$$1) } END{ print("NULL\n};\n") } ' $$builddir/filterdescs.txt >> $$builddir/$@
|
||||
|
||||
|
||||
libmediastreamer_la_LIBADD= $(ORTP_LIBS) \
|
||||
$(PORTAUDIO_LIBS) \
|
||||
$(ALSA_LIBS) \
|
||||
$(ARTS_LIBS) \
|
||||
$(SPEEX_LIBS) \
|
||||
$(GSM_LIBS) \
|
||||
$(LIBV4L1_LIBS) \
|
||||
$(LIBV4L2_LIBS)
|
||||
if !BUILD_WIN32
|
||||
libmediastreamer_la_LDFLAGS=-rdynamic
|
||||
else
|
||||
libmediastreamer_la_LDFLAGS=-no-undefined
|
||||
endif
|
||||
|
||||
if BUILD_VIDEO
|
||||
libmediastreamer_la_LIBADD+= $(VIDEO_LIBS) \
|
||||
$(THEORA_LIBS)
|
||||
|
||||
|
||||
if BUILD_WIN32
|
||||
libmediastreamer_la_LIBADD+= -lole32 \
|
||||
-loleaut32\
|
||||
-lwinmm \
|
||||
-luuid
|
||||
|
||||
endif
|
||||
|
||||
endif
|
||||
if BUILD_WIN32_WCE
|
||||
libmediastreamer_la_LIBADD+= -lmmtimer
|
||||
endif
|
||||
|
||||
AM_CFLAGS= -I$(top_srcdir) \
|
||||
$(ORTP_CFLAGS) \
|
||||
$(SPEEX_CFLAGS) \
|
||||
$(GSM_CFLAGS) \
|
||||
$(STRICT_OPTIONS)
|
||||
|
||||
AM_CXXFLAGS= -I$(top_srcdir) \
|
||||
$(ORTP_CFLAGS) \
|
||||
$(STRICT_OPTIONS)
|
||||
|
||||
if BUILD_VIDEO
|
||||
AM_CFLAGS+=$(VIDEO_CFLAGS)
|
||||
endif
|
||||
|
||||
AM_OBJCFLAGS=$(AM_CFLAGS)
|
||||
|
||||
imgdir=$(datadir)/images/
|
||||
|
||||
img_DATA=nowebcamCIF.jpg
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue