summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Gaignard <benjamin.gaignard@stericsson.com>2010-12-03 17:41:18 +0100
committerEdward Hervey <bilboed@bilboed.com>2010-12-03 17:41:18 +0100
commit740aab4f5520edebb37ba060a2e472e14210e201 (patch)
tree6fe506ca3721e4b917d3ad50ec4a5456f567b04d
parentb3b8c09cf48913c54efec92ad0eea9f2c8599c98 (diff)
Add build system for Android
-rw-r--r--Android.mk29
-rw-r--r--android/NOTICE481
-rw-r--r--android/alsa.mk64
-rw-r--r--android/app.mk59
-rw-r--r--android/app_plugin.mk47
-rw-r--r--android/audio.mk82
-rw-r--r--android/audioconvert.mk53
-rw-r--r--android/decodebin.mk51
-rw-r--r--android/decodebin2.mk54
-rw-r--r--android/gdp.mk50
-rw-r--r--android/gst-libs/gst/app/gstapp-marshal.c152
-rw-r--r--android/gst-libs/gst/app/gstapp-marshal.h39
-rw-r--r--android/gst-libs/gst/audio/audio-enumtypes.c175
-rw-r--r--android/gst-libs/gst/audio/audio-enumtypes.h29
-rw-r--r--android/gst-libs/gst/interfaces/interfaces-enumtypes.c276
-rw-r--r--android/gst-libs/gst/interfaces/interfaces-enumtypes.h49
-rw-r--r--android/gst-libs/gst/interfaces/interfaces-marshal.c209
-rw-r--r--android/gst-libs/gst/interfaces/interfaces-marshal.h52
-rw-r--r--android/gst-libs/gst/pbutils/pbutils-enumtypes.c45
-rw-r--r--android/gst-libs/gst/pbutils/pbutils-enumtypes.h19
-rw-r--r--android/gst-libs/gst/rtsp/gstrtsp-enumtypes.c391
-rw-r--r--android/gst-libs/gst/rtsp/gstrtsp-enumtypes.h35
-rw-r--r--android/gst-libs/gst/rtsp/gstrtsp-marshal.c85
-rw-r--r--android/gst-libs/gst/rtsp/gstrtsp-marshal.h20
-rw-r--r--android/gst-libs/gst/video/video-enumtypes.c45
-rw-r--r--android/gst-libs/gst/video/video-enumtypes.h19
-rw-r--r--android/gst/playback/gstplay-marshal.c468
-rw-r--r--android/gst/playback/gstplay-marshal.h108
-rw-r--r--android/gst/tcp/gsttcp-enumtypes.c25
-rw-r--r--android/gst/tcp/gsttcp-enumtypes.h19
-rw-r--r--android/gst/tcp/gsttcp-marshal.c186
-rw-r--r--android/gst/tcp/gsttcp-marshal.h47
-rw-r--r--android/interfaces.mk86
-rw-r--r--android/netbuffer.mk53
-rw-r--r--android/pbutils.mk69
-rw-r--r--android/playbin.mk64
-rw-r--r--android/queue2.mk52
-rw-r--r--android/riff.mk59
-rw-r--r--android/rtp.mk63
-rw-r--r--android/rtsp.mk76
-rw-r--r--android/sdp.mk53
-rw-r--r--android/tag.mk57
-rw-r--r--android/tcp.mk58
-rw-r--r--android/typefindfunctions.mk47
-rw-r--r--android/video.mk65
45 files changed, 4265 insertions, 0 deletions
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 000000000..17622da2b
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,29 @@
+LOCAL_PATH := $(call my-dir)
+
+GSTREAMER_TOP := $(LOCAL_PATH)
+
+include $(CLEAR_VARS)
+
+include $(GSTREAMER_TOP)/android/tag.mk
+include $(GSTREAMER_TOP)/android/audio.mk
+include $(GSTREAMER_TOP)/android/video.mk
+include $(GSTREAMER_TOP)/android/riff.mk
+include $(GSTREAMER_TOP)/android/interfaces.mk
+include $(GSTREAMER_TOP)/android/pbutils.mk
+include $(GSTREAMER_TOP)/android/rtp.mk
+include $(GSTREAMER_TOP)/android/rtsp.mk
+include $(GSTREAMER_TOP)/android/netbuffer.mk
+include $(GSTREAMER_TOP)/android/sdp.mk
+include $(GSTREAMER_TOP)/android/app.mk
+#plugins
+include $(GSTREAMER_TOP)/android/alsa.mk
+include $(GSTREAMER_TOP)/android/decodebin.mk
+include $(GSTREAMER_TOP)/android/decodebin2.mk
+#include $(GSTREAMER_TOP)/android/queue2.mk
+include $(GSTREAMER_TOP)/android/playbin.mk
+include $(GSTREAMER_TOP)/android/typefindfunctions.mk
+include $(GSTREAMER_TOP)/android/app_plugin.mk
+include $(GSTREAMER_TOP)/android/gdp.mk
+include $(GSTREAMER_TOP)/android/tcp.mk
+include $(GSTREAMER_TOP)/android/audioconvert.mk
+
diff --git a/android/NOTICE b/android/NOTICE
new file mode 100644
index 000000000..eb685a5ec
--- /dev/null
+++ b/android/NOTICE
@@ -0,0 +1,481 @@
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, 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 library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, 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 companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, 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 library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete 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 distribute a copy of this License along with the
+Library.
+
+ 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 Library or any portion
+of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+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 Library, 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 Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you 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.
+
+ If distribution of 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 satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. 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.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library 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.
+
+ 9. 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 Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+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.
+
+ 11. 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 Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library 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 Library.
+
+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.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library 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.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Library 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 Library
+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 Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+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
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "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
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. 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 LIBRARY 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
+LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. 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 library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/android/alsa.mk b/android/alsa.mk
new file mode 100644
index 000000000..3815a0eb0
--- /dev/null
+++ b/android/alsa.mk
@@ -0,0 +1,64 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+alsa_LOCAL_SRC_FILES:= \
+ ext/alsa/gstalsadeviceprobe.c \
+ ext/alsa/gstalsamixer.c \
+ ext/alsa/gstalsamixerelement.c \
+ ext/alsa/gstalsamixertrack.c \
+ ext/alsa/gstalsamixeroptions.c \
+ ext/alsa/gstalsaplugin.c \
+ ext/alsa/gstalsasink.c \
+ ext/alsa/gstalsasrc.c \
+ ext/alsa/gstalsa.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(alsa_LOCAL_SRC_FILES))
+
+LOCAL_SHARED_LIBRARIES := \
+ libdl \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0 \
+ libgstinterfaces-0.10 \
+ libgstaudio-0.10
+
+LOCAL_MODULE:= libgstalsa
+
+LOCAL_WHOLE_STATIC_LIBRARIES := libasound
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../ext/alsa \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include \
+ external/alsa-lib/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+#It's a gstreamer plugins, and it must be installed on ..../lib/gstreamer-0.10
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/gstreamer-0.10
+
+
+$(TARGET_OUT)/lib/libgstalsa.so:
+
+ALL_PREBUILT += $(TARGET_OUT)/lib/libgstalsa.so
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/app.mk b/android/app.mk
new file mode 100644
index 000000000..8ce87f8a7
--- /dev/null
+++ b/android/app.mk
@@ -0,0 +1,59 @@
+LOCAL_PATH:= $(call my-dir)
+#----------------------------------------
+# include
+gst_app_COPY_HEADERS_TO := gstreamer-0.10/gst/app
+gst_app_COPY_HEADERS := \
+ ../gst-libs/gst/app/gstappbuffer.h \
+ ../gst-libs/gst/app/gstappsink.h \
+ ../gst-libs/gst/app/gstappsrc.h
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+app_LOCAL_SRC_FILES_BASE:= \
+ gst-libs/gst/app/gstappsrc.c \
+ gst-libs/gst/app/gstappbuffer.c \
+ gst-libs/gst/app/gstappsink.c
+app_LOCAL_SRC_FILES_ANDROID:= \
+ gst-libs/gst/app/gstapp-marshal.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(app_LOCAL_SRC_FILES_BASE)) \
+ $(addprefix ../android/,$(app_LOCAL_SRC_FILES_ANDROID))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0
+
+LOCAL_MODULE:= libgstapp-0.10
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst-libs/gst/app \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst-libs/gst/app \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+LOCAL_COPY_HEADERS_TO := $(gst_app_COPY_HEADERS_TO)
+LOCAL_COPY_HEADERS := $(gst_app_COPY_HEADERS)
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/app_plugin.mk b/android/app_plugin.mk
new file mode 100644
index 000000000..a4cfeb84f
--- /dev/null
+++ b/android/app_plugin.mk
@@ -0,0 +1,47 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+app_plugin_LOCAL_SRC_FILES:= \
+ gst/app/gstapp.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(app_plugin_LOCAL_SRC_FILES))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0 \
+ libgstapp-0.10
+
+LOCAL_MODULE:= libgstapp
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst/app \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+#It's a gstreamer plugins, and it must be installed on ..../lib/gstreamer-0.10
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/gstreamer-0.10
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/audio.mk b/android/audio.mk
new file mode 100644
index 000000000..7111b98cf
--- /dev/null
+++ b/android/audio.mk
@@ -0,0 +1,82 @@
+LOCAL_PATH:= $(call my-dir)
+#----------------------------------------
+# include
+gst_audio_COPY_HEADERS_TO := gstreamer-0.10/gst/audio
+gst_audio_COPY_HEADERS_BASE := \
+ gst-libs/gst/audio/audio.h \
+ gst-libs/gst/audio/gstaudioclock.h \
+ gst-libs/gst/audio/gstaudiofilter.h \
+ gst-libs/gst/audio/gstaudiosink.h \
+ gst-libs/gst/audio/gstaudiosrc.h \
+ gst-libs/gst/audio/gstbaseaudiosink.h \
+ gst-libs/gst/audio/gstbaseaudiosrc.h \
+ gst-libs/gst/audio/gstringbuffer.h \
+ gst-libs/gst/audio/mixerutils.h \
+ gst-libs/gst/audio/multichannel.h
+
+gst_audio_COPY_HEADERS_ANDROID := \
+ gst-libs/gst/audio/audio-enumtypes.h
+
+gst_audio_COPY_HEADERS := $(addprefix ../,$(gst_audio_COPY_HEADERS_BASE)) \
+ $(addprefix ../android/,$(gst_audio_COPY_HEADERS_ANDROID))
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+# TODO: mixerutils.c is removed, because it depends on gst-lib/gst/interface.
+# We need add it later
+audio_LOCAL_SRC_FILES_BASE:= \
+ gst-libs/gst/audio/audio.c \
+ gst-libs/gst/audio/gstaudioclock.c \
+ gst-libs/gst/audio/mixerutils.c \
+ gst-libs/gst/audio/multichannel.c \
+ gst-libs/gst/audio/gstaudiofilter.c \
+ gst-libs/gst/audio/gstaudiosink.c \
+ gst-libs/gst/audio/gstaudiosrc.c \
+ gst-libs/gst/audio/gstbaseaudiosink.c \
+ gst-libs/gst/audio/gstbaseaudiosrc.c \
+ gst-libs/gst/audio/gstringbuffer.c
+audio_LOCAL_SRC_FILES_ANDROID:= \
+ gst-libs/gst/audio/audio-enumtypes.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(audio_LOCAL_SRC_FILES_BASE)) \
+ $(addprefix ../android/,$(audio_LOCAL_SRC_FILES_ANDROID))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0 \
+ libgstinterfaces-0.10
+
+LOCAL_MODULE:= libgstaudio-0.10
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst-libs/gst/audio \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst-libs/gst/audio \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+LOCAL_COPY_HEADERS_TO := $(gst_audio_COPY_HEADERS_TO)
+LOCAL_COPY_HEADERS := $(gst_audio_COPY_HEADERS)
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/audioconvert.mk b/android/audioconvert.mk
new file mode 100644
index 000000000..5b69254b9
--- /dev/null
+++ b/android/audioconvert.mk
@@ -0,0 +1,53 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+audioconvert_LOCAL_SRC_FILES:= \
+ gst/audioconvert/gstaudioconvert.c \
+ gst/audioconvert/audioconvert.c \
+ gst/audioconvert/gstchannelmix.c \
+ gst/audioconvert/gstaudioquantize.c \
+ gst/audioconvert/plugin.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(audioconvert_LOCAL_SRC_FILES))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstaudio-0.10 \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0 \
+ libgstpbutils-0.10
+
+LOCAL_MODULE:= libgstaudioconvert
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst/audioconvert \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst-libs/gst/audio \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+#It's a gstreamer plugins, and it must be installed on ..../lib/gstreamer-0.10
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/gstreamer-0.10
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/decodebin.mk b/android/decodebin.mk
new file mode 100644
index 000000000..b67f6861c
--- /dev/null
+++ b/android/decodebin.mk
@@ -0,0 +1,51 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+decodebin_LOCAL_SRC_FILES_BASE:= \
+ gst/playback/gstdecodebin.c
+decodebin_LOCAL_SRC_FILES_ANDROID:= \
+ gst/playback/gstplay-marshal.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(decodebin_LOCAL_SRC_FILES_BASE)) \
+ $(addprefix ../android/,$(decodebin_LOCAL_SRC_FILES_ANDROID))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0 \
+ libgstpbutils-0.10
+
+LOCAL_MODULE:= libgstdecodebin
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst/playback \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst/playback \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+#It's a gstreamer plugins, and it must be installed on ..../lib/gstreamer-0.10
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/gstreamer-0.10
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/decodebin2.mk b/android/decodebin2.mk
new file mode 100644
index 000000000..b44ce1117
--- /dev/null
+++ b/android/decodebin2.mk
@@ -0,0 +1,54 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+decodebin2_LOCAL_SRC_FILES_BASE:= \
+ gst/playback/gstdecodebin2.c \
+ gst/playback/gsturidecodebin.c \
+ gst/playback/gstfactorylists.c \
+ gst/playback/gstplay-enum.c
+decodebin2_LOCAL_SRC_FILES_ANDROID:= \
+ gst/playback/gstplay-marshal.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(decodebin2_LOCAL_SRC_FILES_BASE)) \
+ $(addprefix ../android/,$(decodebin2_LOCAL_SRC_FILES_ANDROID))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0 \
+ libgstpbutils-0.10
+
+LOCAL_MODULE:= libgstdecodebin2
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst/playback \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst/playback \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+#It's a gstreamer plugins, and it must be installed on ..../lib/gstreamer-0.10
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/gstreamer-0.10
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/gdp.mk b/android/gdp.mk
new file mode 100644
index 000000000..67fc6499c
--- /dev/null
+++ b/android/gdp.mk
@@ -0,0 +1,50 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+gdp_LOCAL_SRC_FILES:= \
+ gst/gdp/gstgdp.c \
+ gst/gdp/gstgdppay.c \
+ gst/gdp/gstgdpdepay.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(gdp_LOCAL_SRC_FILES))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0 \
+ libgstdataprotocol-0.10
+
+LOCAL_MODULE:= libgstgdp
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst/gdp \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst/tcp \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+#It's a gstreamer plugins, and it must be installed on ..../lib/gstreamer-0.10
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/gstreamer-0.10
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/gst-libs/gst/app/gstapp-marshal.c b/android/gst-libs/gst/app/gstapp-marshal.c
new file mode 100644
index 000000000..bb4047cd1
--- /dev/null
+++ b/android/gst-libs/gst/app/gstapp-marshal.c
@@ -0,0 +1,152 @@
+#include "gstapp-marshal.h"
+
+#include <glib-object.h>
+
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v) g_value_get_char (v)
+#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v) g_value_get_int (v)
+#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
+#define g_marshal_value_peek_long(v) g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
+#define g_marshal_value_peek_float(v) g_value_get_float (v)
+#define g_marshal_value_peek_double(v) g_value_get_double (v)
+#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v) g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ * Do not access GValues directly in your code. Instead, use the
+ * g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
+#define g_marshal_value_peek_char(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v) (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v) (v)->data[0].v_float
+#define g_marshal_value_peek_double(v) (v)->data[0].v_double
+#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* BOOLEAN:UINT64 (gstapp-marshal.list:1) */
+void
+__gst_app_marshal_BOOLEAN__UINT64 (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gboolean (*GMarshalFunc_BOOLEAN__UINT64) (gpointer data1,
+ guint64 arg_1, gpointer data2);
+ register GMarshalFunc_BOOLEAN__UINT64 callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gboolean v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 2);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_BOOLEAN__UINT64) (marshal_data ? marshal_data :
+ cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_uint64 (param_values + 1), data2);
+
+ g_value_set_boolean (return_value, v_return);
+}
+
+/* ENUM:OBJECT (gstapp-marshal.list:2) */
+void
+__gst_app_marshal_ENUM__OBJECT (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gint (*GMarshalFunc_ENUM__OBJECT) (gpointer data1,
+ gpointer arg_1, gpointer data2);
+ register GMarshalFunc_ENUM__OBJECT callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gint v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 2);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_ENUM__OBJECT) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1), data2);
+
+ g_value_set_enum (return_value, v_return);
+}
+
+/* ENUM:VOID (gstapp-marshal.list:3) */
+void
+__gst_app_marshal_ENUM__VOID (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gint (*GMarshalFunc_ENUM__VOID) (gpointer data1, gpointer data2);
+ register GMarshalFunc_ENUM__VOID callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gint v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 1);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_ENUM__VOID) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1, data2);
+
+ g_value_set_enum (return_value, v_return);
+}
+
+/* VOID:UINT (gstapp-marshal.list:4) */
diff --git a/android/gst-libs/gst/app/gstapp-marshal.h b/android/gst-libs/gst/app/gstapp-marshal.h
new file mode 100644
index 000000000..621b13dd5
--- /dev/null
+++ b/android/gst-libs/gst/app/gstapp-marshal.h
@@ -0,0 +1,39 @@
+
+#ifndef ____gst_app_marshal_MARSHAL_H__
+#define ____gst_app_marshal_MARSHAL_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* BOOLEAN:UINT64 (gstapp-marshal.list:1) */
+extern void __gst_app_marshal_BOOLEAN__UINT64 (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* ENUM:OBJECT (gstapp-marshal.list:2) */
+extern void __gst_app_marshal_ENUM__OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* ENUM:VOID (gstapp-marshal.list:3) */
+extern void __gst_app_marshal_ENUM__VOID (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:UINT (gstapp-marshal.list:4) */
+#define __gst_app_marshal_VOID__UINT g_cclosure_marshal_VOID__UINT
+
+G_END_DECLS
+
+#endif /* ____gst_app_marshal_MARSHAL_H__ */
+
diff --git a/android/gst-libs/gst/audio/audio-enumtypes.c b/android/gst-libs/gst/audio/audio-enumtypes.c
new file mode 100644
index 000000000..b87241dc9
--- /dev/null
+++ b/android/gst-libs/gst/audio/audio-enumtypes.c
@@ -0,0 +1,175 @@
+
+/* Generated data (by glib-mkenums) */
+
+#include "audio-enumtypes.h"
+
+#include "multichannel.h"
+#include "gstringbuffer.h"
+
+/* enumerations from "multichannel.h" */
+GType
+gst_audio_channel_position_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_AUDIO_CHANNEL_POSITION_INVALID, "GST_AUDIO_CHANNEL_POSITION_INVALID",
+ "invalid"},
+ {GST_AUDIO_CHANNEL_POSITION_FRONT_MONO,
+ "GST_AUDIO_CHANNEL_POSITION_FRONT_MONO", "front-mono"},
+ {GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
+ "GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT", "front-left"},
+ {GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
+ "GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT", "front-right"},
+ {GST_AUDIO_CHANNEL_POSITION_REAR_CENTER,
+ "GST_AUDIO_CHANNEL_POSITION_REAR_CENTER", "rear-center"},
+ {GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
+ "GST_AUDIO_CHANNEL_POSITION_REAR_LEFT", "rear-left"},
+ {GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
+ "GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT", "rear-right"},
+ {GST_AUDIO_CHANNEL_POSITION_LFE, "GST_AUDIO_CHANNEL_POSITION_LFE", "lfe"},
+ {GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
+ "GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER", "front-center"},
+ {GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER,
+ "GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER",
+ "front-left-of-center"},
+ {GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER,
+ "GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER",
+ "front-right-of-center"},
+ {GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
+ "GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT", "side-left"},
+ {GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT,
+ "GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT", "side-right"},
+ {GST_AUDIO_CHANNEL_POSITION_NONE, "GST_AUDIO_CHANNEL_POSITION_NONE",
+ "none"},
+ {GST_AUDIO_CHANNEL_POSITION_NUM, "GST_AUDIO_CHANNEL_POSITION_NUM", "num"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstAudioChannelPosition", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/* enumerations from "gstringbuffer.h" */
+GType
+gst_ring_buffer_state_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_RING_BUFFER_STATE_STOPPED, "GST_RING_BUFFER_STATE_STOPPED",
+ "stopped"},
+ {GST_RING_BUFFER_STATE_PAUSED, "GST_RING_BUFFER_STATE_PAUSED", "paused"},
+ {GST_RING_BUFFER_STATE_STARTED, "GST_RING_BUFFER_STATE_STARTED",
+ "started"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstRingBufferState", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_ring_buffer_seg_state_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_SEGSTATE_INVALID, "GST_SEGSTATE_INVALID", "invalid"},
+ {GST_SEGSTATE_EMPTY, "GST_SEGSTATE_EMPTY", "empty"},
+ {GST_SEGSTATE_FILLED, "GST_SEGSTATE_FILLED", "filled"},
+ {GST_SEGSTATE_PARTIAL, "GST_SEGSTATE_PARTIAL", "partial"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstRingBufferSegState", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_buffer_format_type_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_BUFTYPE_LINEAR, "GST_BUFTYPE_LINEAR", "linear"},
+ {GST_BUFTYPE_FLOAT, "GST_BUFTYPE_FLOAT", "float"},
+ {GST_BUFTYPE_MU_LAW, "GST_BUFTYPE_MU_LAW", "mu-law"},
+ {GST_BUFTYPE_A_LAW, "GST_BUFTYPE_A_LAW", "a-law"},
+ {GST_BUFTYPE_IMA_ADPCM, "GST_BUFTYPE_IMA_ADPCM", "ima-adpcm"},
+ {GST_BUFTYPE_MPEG, "GST_BUFTYPE_MPEG", "mpeg"},
+ {GST_BUFTYPE_GSM, "GST_BUFTYPE_GSM", "gsm"},
+ {GST_BUFTYPE_IEC958, "GST_BUFTYPE_IEC958", "iec958"},
+ {GST_BUFTYPE_AC3, "GST_BUFTYPE_AC3", "ac3"},
+ {GST_BUFTYPE_EAC3, "GST_BUFTYPE_EAC3", "eac3"},
+ {GST_BUFTYPE_DTS, "GST_BUFTYPE_DTS", "dts"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstBufferFormatType", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_buffer_format_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_UNKNOWN, "GST_UNKNOWN", "unknown"},
+ {GST_S8, "GST_S8", "s8"},
+ {GST_U8, "GST_U8", "u8"},
+ {GST_S16_LE, "GST_S16_LE", "s16-le"},
+ {GST_S16_BE, "GST_S16_BE", "s16-be"},
+ {GST_U16_LE, "GST_U16_LE", "u16-le"},
+ {GST_U16_BE, "GST_U16_BE", "u16-be"},
+ {GST_S24_LE, "GST_S24_LE", "s24-le"},
+ {GST_S24_BE, "GST_S24_BE", "s24-be"},
+ {GST_U24_LE, "GST_U24_LE", "u24-le"},
+ {GST_U24_BE, "GST_U24_BE", "u24-be"},
+ {GST_S32_LE, "GST_S32_LE", "s32-le"},
+ {GST_S32_BE, "GST_S32_BE", "s32-be"},
+ {GST_U32_LE, "GST_U32_LE", "u32-le"},
+ {GST_U32_BE, "GST_U32_BE", "u32-be"},
+ {GST_S24_3LE, "GST_S24_3LE", "s24-3le"},
+ {GST_S24_3BE, "GST_S24_3BE", "s24-3be"},
+ {GST_U24_3LE, "GST_U24_3LE", "u24-3le"},
+ {GST_U24_3BE, "GST_U24_3BE", "u24-3be"},
+ {GST_S20_3LE, "GST_S20_3LE", "s20-3le"},
+ {GST_S20_3BE, "GST_S20_3BE", "s20-3be"},
+ {GST_U20_3LE, "GST_U20_3LE", "u20-3le"},
+ {GST_U20_3BE, "GST_U20_3BE", "u20-3be"},
+ {GST_S18_3LE, "GST_S18_3LE", "s18-3le"},
+ {GST_S18_3BE, "GST_S18_3BE", "s18-3be"},
+ {GST_U18_3LE, "GST_U18_3LE", "u18-3le"},
+ {GST_U18_3BE, "GST_U18_3BE", "u18-3be"},
+ {GST_FLOAT32_LE, "GST_FLOAT32_LE", "float32-le"},
+ {GST_FLOAT32_BE, "GST_FLOAT32_BE", "float32-be"},
+ {GST_FLOAT64_LE, "GST_FLOAT64_LE", "float64-le"},
+ {GST_FLOAT64_BE, "GST_FLOAT64_BE", "float64-be"},
+ {GST_MU_LAW, "GST_MU_LAW", "mu-law"},
+ {GST_A_LAW, "GST_A_LAW", "a-law"},
+ {GST_IMA_ADPCM, "GST_IMA_ADPCM", "ima-adpcm"},
+ {GST_MPEG, "GST_MPEG", "mpeg"},
+ {GST_GSM, "GST_GSM", "gsm"},
+ {GST_IEC958, "GST_IEC958", "iec958"},
+ {GST_AC3, "GST_AC3", "ac3"},
+ {GST_EAC3, "GST_EAC3", "eac3"},
+ {GST_DTS, "GST_DTS", "dts"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id = g_enum_register_static ("GstBufferFormat", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/* Generated data ends here */
diff --git a/android/gst-libs/gst/audio/audio-enumtypes.h b/android/gst-libs/gst/audio/audio-enumtypes.h
new file mode 100644
index 000000000..b3d155816
--- /dev/null
+++ b/android/gst-libs/gst/audio/audio-enumtypes.h
@@ -0,0 +1,29 @@
+
+/* Generated data (by glib-mkenums) */
+
+#ifndef __GST_AUDIO_ENUM_TYPES_H__
+#define __GST_AUDIO_ENUM_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* enumerations from "multichannel.h" */
+GType gst_audio_channel_position_get_type (void);
+#define GST_TYPE_AUDIO_CHANNEL_POSITION (gst_audio_channel_position_get_type())
+
+/* enumerations from "gstringbuffer.h" */
+GType gst_ring_buffer_state_get_type (void);
+#define GST_TYPE_RING_BUFFER_STATE (gst_ring_buffer_state_get_type())
+GType gst_ring_buffer_seg_state_get_type (void);
+#define GST_TYPE_RING_BUFFER_SEG_STATE (gst_ring_buffer_seg_state_get_type())
+GType gst_buffer_format_type_get_type (void);
+#define GST_TYPE_BUFFER_FORMAT_TYPE (gst_buffer_format_type_get_type())
+GType gst_buffer_format_get_type (void);
+#define GST_TYPE_BUFFER_FORMAT (gst_buffer_format_get_type())
+G_END_DECLS
+
+#endif /* __GST_AUDIO_ENUM_TYPES_H__ */
+
+/* Generated data ends here */
+
diff --git a/android/gst-libs/gst/interfaces/interfaces-enumtypes.c b/android/gst-libs/gst/interfaces/interfaces-enumtypes.c
new file mode 100644
index 000000000..3213b811c
--- /dev/null
+++ b/android/gst-libs/gst/interfaces/interfaces-enumtypes.c
@@ -0,0 +1,276 @@
+
+/* Generated data (by glib-mkenums) */
+
+#include "interfaces-enumtypes.h"
+
+#include "colorbalance.h"
+#include "colorbalancechannel.h"
+#include "mixer.h"
+#include "mixeroptions.h"
+#include "mixertrack.h"
+#include "navigation.h"
+#include "propertyprobe.h"
+#include "streamvolume.h"
+#include "tuner.h"
+#include "tunernorm.h"
+#include "tunerchannel.h"
+#include "videoorientation.h"
+#include "xoverlay.h"
+
+/* enumerations from "colorbalance.h" */
+GType
+gst_color_balance_type_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_COLOR_BALANCE_HARDWARE, "GST_COLOR_BALANCE_HARDWARE", "hardware"},
+ {GST_COLOR_BALANCE_SOFTWARE, "GST_COLOR_BALANCE_SOFTWARE", "software"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstColorBalanceType", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/* enumerations from "mixer.h" */
+GType
+gst_mixer_type_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_MIXER_HARDWARE, "GST_MIXER_HARDWARE", "hardware"},
+ {GST_MIXER_SOFTWARE, "GST_MIXER_SOFTWARE", "software"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id = g_enum_register_static ("GstMixerType", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_mixer_message_type_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_MIXER_MESSAGE_INVALID, "GST_MIXER_MESSAGE_INVALID", "invalid"},
+ {GST_MIXER_MESSAGE_MUTE_TOGGLED, "GST_MIXER_MESSAGE_MUTE_TOGGLED",
+ "mute-toggled"},
+ {GST_MIXER_MESSAGE_RECORD_TOGGLED, "GST_MIXER_MESSAGE_RECORD_TOGGLED",
+ "record-toggled"},
+ {GST_MIXER_MESSAGE_VOLUME_CHANGED, "GST_MIXER_MESSAGE_VOLUME_CHANGED",
+ "volume-changed"},
+ {GST_MIXER_MESSAGE_OPTION_CHANGED, "GST_MIXER_MESSAGE_OPTION_CHANGED",
+ "option-changed"},
+ {GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED,
+ "GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED", "options-list-changed"},
+ {GST_MIXER_MESSAGE_MIXER_CHANGED, "GST_MIXER_MESSAGE_MIXER_CHANGED",
+ "mixer-changed"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstMixerMessageType", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_mixer_flags_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GFlagsValue values[] = {
+ {GST_MIXER_FLAG_NONE, "GST_MIXER_FLAG_NONE", "none"},
+ {GST_MIXER_FLAG_AUTO_NOTIFICATIONS, "GST_MIXER_FLAG_AUTO_NOTIFICATIONS",
+ "auto-notifications"},
+ {GST_MIXER_FLAG_HAS_WHITELIST, "GST_MIXER_FLAG_HAS_WHITELIST",
+ "has-whitelist"},
+ {GST_MIXER_FLAG_GROUPING, "GST_MIXER_FLAG_GROUPING", "grouping"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id = g_flags_register_static ("GstMixerFlags", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/* enumerations from "mixertrack.h" */
+GType
+gst_mixer_track_flags_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GFlagsValue values[] = {
+ {GST_MIXER_TRACK_INPUT, "GST_MIXER_TRACK_INPUT", "input"},
+ {GST_MIXER_TRACK_OUTPUT, "GST_MIXER_TRACK_OUTPUT", "output"},
+ {GST_MIXER_TRACK_MUTE, "GST_MIXER_TRACK_MUTE", "mute"},
+ {GST_MIXER_TRACK_RECORD, "GST_MIXER_TRACK_RECORD", "record"},
+ {GST_MIXER_TRACK_MASTER, "GST_MIXER_TRACK_MASTER", "master"},
+ {GST_MIXER_TRACK_SOFTWARE, "GST_MIXER_TRACK_SOFTWARE", "software"},
+ {GST_MIXER_TRACK_NO_RECORD, "GST_MIXER_TRACK_NO_RECORD", "no-record"},
+ {GST_MIXER_TRACK_NO_MUTE, "GST_MIXER_TRACK_NO_MUTE", "no-mute"},
+ {GST_MIXER_TRACK_WHITELIST, "GST_MIXER_TRACK_WHITELIST", "whitelist"},
+ {GST_MIXER_TRACK_READONLY, "GST_MIXER_TRACK_READONLY", "readonly"},
+ {GST_MIXER_TRACK_WRITEONLY, "GST_MIXER_TRACK_WRITEONLY", "writeonly"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_flags_register_static ("GstMixerTrackFlags", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/* enumerations from "navigation.h" */
+GType
+gst_navigation_command_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_NAVIGATION_COMMAND_INVALID, "GST_NAVIGATION_COMMAND_INVALID",
+ "invalid"},
+ {GST_NAVIGATION_COMMAND_MENU1, "GST_NAVIGATION_COMMAND_MENU1", "menu1"},
+ {GST_NAVIGATION_COMMAND_MENU2, "GST_NAVIGATION_COMMAND_MENU2", "menu2"},
+ {GST_NAVIGATION_COMMAND_MENU3, "GST_NAVIGATION_COMMAND_MENU3", "menu3"},
+ {GST_NAVIGATION_COMMAND_MENU4, "GST_NAVIGATION_COMMAND_MENU4", "menu4"},
+ {GST_NAVIGATION_COMMAND_MENU5, "GST_NAVIGATION_COMMAND_MENU5", "menu5"},
+ {GST_NAVIGATION_COMMAND_MENU6, "GST_NAVIGATION_COMMAND_MENU6", "menu6"},
+ {GST_NAVIGATION_COMMAND_MENU7, "GST_NAVIGATION_COMMAND_MENU7", "menu7"},
+ {GST_NAVIGATION_COMMAND_LEFT, "GST_NAVIGATION_COMMAND_LEFT", "left"},
+ {GST_NAVIGATION_COMMAND_RIGHT, "GST_NAVIGATION_COMMAND_RIGHT", "right"},
+ {GST_NAVIGATION_COMMAND_UP, "GST_NAVIGATION_COMMAND_UP", "up"},
+ {GST_NAVIGATION_COMMAND_DOWN, "GST_NAVIGATION_COMMAND_DOWN", "down"},
+ {GST_NAVIGATION_COMMAND_ACTIVATE, "GST_NAVIGATION_COMMAND_ACTIVATE",
+ "activate"},
+ {GST_NAVIGATION_COMMAND_PREV_ANGLE, "GST_NAVIGATION_COMMAND_PREV_ANGLE",
+ "prev-angle"},
+ {GST_NAVIGATION_COMMAND_NEXT_ANGLE, "GST_NAVIGATION_COMMAND_NEXT_ANGLE",
+ "next-angle"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstNavigationCommand", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_navigation_query_type_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_NAVIGATION_QUERY_INVALID, "GST_NAVIGATION_QUERY_INVALID", "invalid"},
+ {GST_NAVIGATION_QUERY_COMMANDS, "GST_NAVIGATION_QUERY_COMMANDS",
+ "commands"},
+ {GST_NAVIGATION_QUERY_ANGLES, "GST_NAVIGATION_QUERY_ANGLES", "angles"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstNavigationQueryType", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_navigation_message_type_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_NAVIGATION_MESSAGE_INVALID, "GST_NAVIGATION_MESSAGE_INVALID",
+ "invalid"},
+ {GST_NAVIGATION_MESSAGE_MOUSE_OVER, "GST_NAVIGATION_MESSAGE_MOUSE_OVER",
+ "mouse-over"},
+ {GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED,
+ "GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED", "commands-changed"},
+ {GST_NAVIGATION_MESSAGE_ANGLES_CHANGED,
+ "GST_NAVIGATION_MESSAGE_ANGLES_CHANGED", "angles-changed"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstNavigationMessageType", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_navigation_event_type_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_NAVIGATION_EVENT_INVALID, "GST_NAVIGATION_EVENT_INVALID", "invalid"},
+ {GST_NAVIGATION_EVENT_KEY_PRESS, "GST_NAVIGATION_EVENT_KEY_PRESS",
+ "key-press"},
+ {GST_NAVIGATION_EVENT_KEY_RELEASE, "GST_NAVIGATION_EVENT_KEY_RELEASE",
+ "key-release"},
+ {GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS,
+ "GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS", "mouse-button-press"},
+ {GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE,
+ "GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE",
+ "mouse-button-release"},
+ {GST_NAVIGATION_EVENT_MOUSE_MOVE, "GST_NAVIGATION_EVENT_MOUSE_MOVE",
+ "mouse-move"},
+ {GST_NAVIGATION_EVENT_COMMAND, "GST_NAVIGATION_EVENT_COMMAND", "command"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstNavigationEventType", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/* enumerations from "streamvolume.h" */
+GType
+gst_stream_volume_format_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_STREAM_VOLUME_FORMAT_LINEAR, "GST_STREAM_VOLUME_FORMAT_LINEAR",
+ "linear"},
+ {GST_STREAM_VOLUME_FORMAT_CUBIC, "GST_STREAM_VOLUME_FORMAT_CUBIC",
+ "cubic"},
+ {GST_STREAM_VOLUME_FORMAT_DB, "GST_STREAM_VOLUME_FORMAT_DB", "db"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstStreamVolumeFormat", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/* enumerations from "tunerchannel.h" */
+GType
+gst_tuner_channel_flags_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GFlagsValue values[] = {
+ {GST_TUNER_CHANNEL_INPUT, "GST_TUNER_CHANNEL_INPUT", "input"},
+ {GST_TUNER_CHANNEL_OUTPUT, "GST_TUNER_CHANNEL_OUTPUT", "output"},
+ {GST_TUNER_CHANNEL_FREQUENCY, "GST_TUNER_CHANNEL_FREQUENCY", "frequency"},
+ {GST_TUNER_CHANNEL_AUDIO, "GST_TUNER_CHANNEL_AUDIO", "audio"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_flags_register_static ("GstTunerChannelFlags", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/* Generated data ends here */
diff --git a/android/gst-libs/gst/interfaces/interfaces-enumtypes.h b/android/gst-libs/gst/interfaces/interfaces-enumtypes.h
new file mode 100644
index 000000000..3c6960f0d
--- /dev/null
+++ b/android/gst-libs/gst/interfaces/interfaces-enumtypes.h
@@ -0,0 +1,49 @@
+
+/* Generated data (by glib-mkenums) */
+
+#ifndef __GST_INTERFACES_ENUM_TYPES_H__
+#define __GST_INTERFACES_ENUM_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* enumerations from "colorbalance.h" */
+GType gst_color_balance_type_get_type (void);
+#define GST_TYPE_COLOR_BALANCE_TYPE (gst_color_balance_type_get_type())
+
+/* enumerations from "mixer.h" */
+GType gst_mixer_type_get_type (void);
+#define GST_TYPE_MIXER_TYPE (gst_mixer_type_get_type())
+GType gst_mixer_message_type_get_type (void);
+#define GST_TYPE_MIXER_MESSAGE_TYPE (gst_mixer_message_type_get_type())
+GType gst_mixer_flags_get_type (void);
+#define GST_TYPE_MIXER_FLAGS (gst_mixer_flags_get_type())
+
+/* enumerations from "mixertrack.h" */
+GType gst_mixer_track_flags_get_type (void);
+#define GST_TYPE_MIXER_TRACK_FLAGS (gst_mixer_track_flags_get_type())
+
+/* enumerations from "navigation.h" */
+GType gst_navigation_command_get_type (void);
+#define GST_TYPE_NAVIGATION_COMMAND (gst_navigation_command_get_type())
+GType gst_navigation_query_type_get_type (void);
+#define GST_TYPE_NAVIGATION_QUERY_TYPE (gst_navigation_query_type_get_type())
+GType gst_navigation_message_type_get_type (void);
+#define GST_TYPE_NAVIGATION_MESSAGE_TYPE (gst_navigation_message_type_get_type())
+GType gst_navigation_event_type_get_type (void);
+#define GST_TYPE_NAVIGATION_EVENT_TYPE (gst_navigation_event_type_get_type())
+
+/* enumerations from "streamvolume.h" */
+GType gst_stream_volume_format_get_type (void);
+#define GST_TYPE_STREAM_VOLUME_FORMAT (gst_stream_volume_format_get_type())
+
+/* enumerations from "tunerchannel.h" */
+GType gst_tuner_channel_flags_get_type (void);
+#define GST_TYPE_TUNER_CHANNEL_FLAGS (gst_tuner_channel_flags_get_type())
+G_END_DECLS
+
+#endif /* __GST_INTERFACES_ENUM_TYPES_H__ */
+
+/* Generated data ends here */
+
diff --git a/android/gst-libs/gst/interfaces/interfaces-marshal.c b/android/gst-libs/gst/interfaces/interfaces-marshal.c
new file mode 100644
index 000000000..10ea009b2
--- /dev/null
+++ b/android/gst-libs/gst/interfaces/interfaces-marshal.c
@@ -0,0 +1,209 @@
+#include "interfaces-marshal.h"
+
+#include <glib-object.h>
+
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v) g_value_get_char (v)
+#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v) g_value_get_int (v)
+#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
+#define g_marshal_value_peek_long(v) g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
+#define g_marshal_value_peek_float(v) g_value_get_float (v)
+#define g_marshal_value_peek_double(v) g_value_get_double (v)
+#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v) g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ * Do not access GValues directly in your code. Instead, use the
+ * g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
+#define g_marshal_value_peek_char(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v) (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v) (v)->data[0].v_float
+#define g_marshal_value_peek_double(v) (v)->data[0].v_double
+#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* VOID:OBJECT,BOOLEAN (interfaces-marshal.list:1) */
+void
+gst_interfaces_marshal_VOID__OBJECT_BOOLEAN (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__OBJECT_BOOLEAN) (gpointer data1,
+ gpointer arg_1, gboolean arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_BOOLEAN callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_VOID__OBJECT_BOOLEAN) (marshal_data ? marshal_data :
+ cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_boolean (param_values + 2), data2);
+}
+
+/* VOID:OBJECT,POINTER (interfaces-marshal.list:2) */
+void
+gst_interfaces_marshal_VOID__OBJECT_POINTER (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__OBJECT_POINTER) (gpointer data1,
+ gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_POINTER callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_VOID__OBJECT_POINTER) (marshal_data ? marshal_data :
+ cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_pointer (param_values + 2), data2);
+}
+
+/* VOID:OBJECT,STRING (interfaces-marshal.list:3) */
+void
+gst_interfaces_marshal_VOID__OBJECT_STRING (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__OBJECT_STRING) (gpointer data1,
+ gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_STRING callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_VOID__OBJECT_STRING) (marshal_data ? marshal_data :
+ cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_string (param_values + 2), data2);
+}
+
+/* VOID:OBJECT,ULONG (interfaces-marshal.list:4) */
+void
+gst_interfaces_marshal_VOID__OBJECT_ULONG (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__OBJECT_ULONG) (gpointer data1,
+ gpointer arg_1, gulong arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_ULONG callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_VOID__OBJECT_ULONG) (marshal_data ? marshal_data :
+ cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_ulong (param_values + 2), data2);
+}
+
+/* VOID:OBJECT,INT (interfaces-marshal.list:5) */
+void
+gst_interfaces_marshal_VOID__OBJECT_INT (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__OBJECT_INT) (gpointer data1,
+ gpointer arg_1, gint arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_INT callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_VOID__OBJECT_INT) (marshal_data ? marshal_data :
+ cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_int (param_values + 2), data2);
+}
diff --git a/android/gst-libs/gst/interfaces/interfaces-marshal.h b/android/gst-libs/gst/interfaces/interfaces-marshal.h
new file mode 100644
index 000000000..2c8014e16
--- /dev/null
+++ b/android/gst-libs/gst/interfaces/interfaces-marshal.h
@@ -0,0 +1,52 @@
+
+#ifndef __gst_interfaces_marshal_MARSHAL_H__
+#define __gst_interfaces_marshal_MARSHAL_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* VOID:OBJECT,BOOLEAN (interfaces-marshal.list:1) */
+extern void gst_interfaces_marshal_VOID__OBJECT_BOOLEAN (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:OBJECT,POINTER (interfaces-marshal.list:2) */
+extern void gst_interfaces_marshal_VOID__OBJECT_POINTER (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:OBJECT,STRING (interfaces-marshal.list:3) */
+extern void gst_interfaces_marshal_VOID__OBJECT_STRING (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:OBJECT,ULONG (interfaces-marshal.list:4) */
+extern void gst_interfaces_marshal_VOID__OBJECT_ULONG (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:OBJECT,INT (interfaces-marshal.list:5) */
+extern void gst_interfaces_marshal_VOID__OBJECT_INT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+G_END_DECLS
+
+#endif /* __gst_interfaces_marshal_MARSHAL_H__ */
+
diff --git a/android/gst-libs/gst/pbutils/pbutils-enumtypes.c b/android/gst-libs/gst/pbutils/pbutils-enumtypes.c
new file mode 100644
index 000000000..18ae03d93
--- /dev/null
+++ b/android/gst-libs/gst/pbutils/pbutils-enumtypes.c
@@ -0,0 +1,45 @@
+
+/* Generated data (by glib-mkenums) */
+
+#include "pbutils-enumtypes.h"
+
+#include "pbutils.h"
+#include "descriptions.h"
+#include "install-plugins.h"
+#include "missing-plugins.h"
+
+/* enumerations from "install-plugins.h" */
+GType
+gst_install_plugins_return_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_INSTALL_PLUGINS_SUCCESS, "GST_INSTALL_PLUGINS_SUCCESS", "success"},
+ {GST_INSTALL_PLUGINS_NOT_FOUND, "GST_INSTALL_PLUGINS_NOT_FOUND",
+ "not-found"},
+ {GST_INSTALL_PLUGINS_ERROR, "GST_INSTALL_PLUGINS_ERROR", "error"},
+ {GST_INSTALL_PLUGINS_PARTIAL_SUCCESS,
+ "GST_INSTALL_PLUGINS_PARTIAL_SUCCESS", "partial-success"},
+ {GST_INSTALL_PLUGINS_USER_ABORT, "GST_INSTALL_PLUGINS_USER_ABORT",
+ "user-abort"},
+ {GST_INSTALL_PLUGINS_CRASHED, "GST_INSTALL_PLUGINS_CRASHED", "crashed"},
+ {GST_INSTALL_PLUGINS_INVALID, "GST_INSTALL_PLUGINS_INVALID", "invalid"},
+ {GST_INSTALL_PLUGINS_STARTED_OK, "GST_INSTALL_PLUGINS_STARTED_OK",
+ "started-ok"},
+ {GST_INSTALL_PLUGINS_INTERNAL_FAILURE,
+ "GST_INSTALL_PLUGINS_INTERNAL_FAILURE", "internal-failure"},
+ {GST_INSTALL_PLUGINS_HELPER_MISSING, "GST_INSTALL_PLUGINS_HELPER_MISSING",
+ "helper-missing"},
+ {GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS,
+ "GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS", "install-in-progress"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstInstallPluginsReturn", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/* Generated data ends here */
diff --git a/android/gst-libs/gst/pbutils/pbutils-enumtypes.h b/android/gst-libs/gst/pbutils/pbutils-enumtypes.h
new file mode 100644
index 000000000..1b2398a68
--- /dev/null
+++ b/android/gst-libs/gst/pbutils/pbutils-enumtypes.h
@@ -0,0 +1,19 @@
+
+/* Generated data (by glib-mkenums) */
+
+#ifndef __GST_INSTALL_ENUM_TYPES_H__
+#define __GST_INSTALL_ENUM_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* enumerations from "install-plugins.h" */
+GType gst_install_plugins_return_get_type (void);
+#define GST_TYPE_INSTALL_PLUGINS_RETURN (gst_install_plugins_return_get_type())
+G_END_DECLS
+
+#endif /* __GST_INSTALL_ENUM_TYPES_H__ */
+
+/* Generated data ends here */
+
diff --git a/android/gst-libs/gst/rtsp/gstrtsp-enumtypes.c b/android/gst-libs/gst/rtsp/gstrtsp-enumtypes.c
new file mode 100644
index 000000000..8e47a45dc
--- /dev/null
+++ b/android/gst-libs/gst/rtsp/gstrtsp-enumtypes.c
@@ -0,0 +1,391 @@
+
+/* Generated data (by glib-mkenums) */
+
+#include "gstrtsp-enumtypes.h"
+
+#include "gstrtspdefs.h"
+
+/* enumerations from "gstrtspdefs.h" */
+GType
+gst_rtsp_result_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_RTSP_OK, "GST_RTSP_OK", "ok"},
+ {GST_RTSP_ERROR, "GST_RTSP_ERROR", "error"},
+ {GST_RTSP_EINVAL, "GST_RTSP_EINVAL", "einval"},
+ {GST_RTSP_EINTR, "GST_RTSP_EINTR", "eintr"},
+ {GST_RTSP_ENOMEM, "GST_RTSP_ENOMEM", "enomem"},
+ {GST_RTSP_ERESOLV, "GST_RTSP_ERESOLV", "eresolv"},
+ {GST_RTSP_ENOTIMPL, "GST_RTSP_ENOTIMPL", "enotimpl"},
+ {GST_RTSP_ESYS, "GST_RTSP_ESYS", "esys"},
+ {GST_RTSP_EPARSE, "GST_RTSP_EPARSE", "eparse"},
+ {GST_RTSP_EWSASTART, "GST_RTSP_EWSASTART", "ewsastart"},
+ {GST_RTSP_EWSAVERSION, "GST_RTSP_EWSAVERSION", "ewsaversion"},
+ {GST_RTSP_EEOF, "GST_RTSP_EEOF", "eeof"},
+ {GST_RTSP_ENET, "GST_RTSP_ENET", "enet"},
+ {GST_RTSP_ENOTIP, "GST_RTSP_ENOTIP", "enotip"},
+ {GST_RTSP_ETIMEOUT, "GST_RTSP_ETIMEOUT", "etimeout"},
+ {GST_RTSP_ETGET, "GST_RTSP_ETGET", "etget"},
+ {GST_RTSP_ETPOST, "GST_RTSP_ETPOST", "etpost"},
+ {GST_RTSP_ELAST, "GST_RTSP_ELAST", "elast"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id = g_enum_register_static ("GstRTSPResult", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_rtsp_event_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GFlagsValue values[] = {
+ {GST_RTSP_EV_READ, "GST_RTSP_EV_READ", "read"},
+ {GST_RTSP_EV_WRITE, "GST_RTSP_EV_WRITE", "write"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id = g_flags_register_static ("GstRTSPEvent", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_rtsp_family_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_RTSP_FAM_NONE, "GST_RTSP_FAM_NONE", "none"},
+ {GST_RTSP_FAM_INET, "GST_RTSP_FAM_INET", "inet"},
+ {GST_RTSP_FAM_INET6, "GST_RTSP_FAM_INET6", "inet6"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id = g_enum_register_static ("GstRTSPFamily", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_rtsp_state_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_RTSP_STATE_INVALID, "GST_RTSP_STATE_INVALID", "invalid"},
+ {GST_RTSP_STATE_INIT, "GST_RTSP_STATE_INIT", "init"},
+ {GST_RTSP_STATE_READY, "GST_RTSP_STATE_READY", "ready"},
+ {GST_RTSP_STATE_SEEKING, "GST_RTSP_STATE_SEEKING", "seeking"},
+ {GST_RTSP_STATE_PLAYING, "GST_RTSP_STATE_PLAYING", "playing"},
+ {GST_RTSP_STATE_RECORDING, "GST_RTSP_STATE_RECORDING", "recording"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id = g_enum_register_static ("GstRTSPState", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_rtsp_version_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_RTSP_VERSION_INVALID, "GST_RTSP_VERSION_INVALID", "invalid"},
+ {GST_RTSP_VERSION_1_0, "GST_RTSP_VERSION_1_0", "1-0"},
+ {GST_RTSP_VERSION_1_1, "GST_RTSP_VERSION_1_1", "1-1"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id = g_enum_register_static ("GstRTSPVersion", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_rtsp_method_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GFlagsValue values[] = {
+ {GST_RTSP_INVALID, "GST_RTSP_INVALID", "invalid"},
+ {GST_RTSP_DESCRIBE, "GST_RTSP_DESCRIBE", "describe"},
+ {GST_RTSP_ANNOUNCE, "GST_RTSP_ANNOUNCE", "announce"},
+ {GST_RTSP_GET_PARAMETER, "GST_RTSP_GET_PARAMETER", "get-parameter"},
+ {GST_RTSP_OPTIONS, "GST_RTSP_OPTIONS", "options"},
+ {GST_RTSP_PAUSE, "GST_RTSP_PAUSE", "pause"},
+ {GST_RTSP_PLAY, "GST_RTSP_PLAY", "play"},
+ {GST_RTSP_RECORD, "GST_RTSP_RECORD", "record"},
+ {GST_RTSP_REDIRECT, "GST_RTSP_REDIRECT", "redirect"},
+ {GST_RTSP_SETUP, "GST_RTSP_SETUP", "setup"},
+ {GST_RTSP_SET_PARAMETER, "GST_RTSP_SET_PARAMETER", "set-parameter"},
+ {GST_RTSP_TEARDOWN, "GST_RTSP_TEARDOWN", "teardown"},
+ {GST_RTSP_GET, "GST_RTSP_GET", "get"},
+ {GST_RTSP_POST, "GST_RTSP_POST", "post"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id = g_flags_register_static ("GstRTSPMethod", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_rtsp_auth_method_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_RTSP_AUTH_NONE, "GST_RTSP_AUTH_NONE", "none"},
+ {GST_RTSP_AUTH_BASIC, "GST_RTSP_AUTH_BASIC", "basic"},
+ {GST_RTSP_AUTH_DIGEST, "GST_RTSP_AUTH_DIGEST", "digest"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstRTSPAuthMethod", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_rtsp_header_field_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_RTSP_HDR_INVALID, "GST_RTSP_HDR_INVALID", "invalid"},
+ {GST_RTSP_HDR_ACCEPT, "GST_RTSP_HDR_ACCEPT", "accept"},
+ {GST_RTSP_HDR_ACCEPT_ENCODING, "GST_RTSP_HDR_ACCEPT_ENCODING",
+ "accept-encoding"},
+ {GST_RTSP_HDR_ACCEPT_LANGUAGE, "GST_RTSP_HDR_ACCEPT_LANGUAGE",
+ "accept-language"},
+ {GST_RTSP_HDR_ALLOW, "GST_RTSP_HDR_ALLOW", "allow"},
+ {GST_RTSP_HDR_AUTHORIZATION, "GST_RTSP_HDR_AUTHORIZATION",
+ "authorization"},
+ {GST_RTSP_HDR_BANDWIDTH, "GST_RTSP_HDR_BANDWIDTH", "bandwidth"},
+ {GST_RTSP_HDR_BLOCKSIZE, "GST_RTSP_HDR_BLOCKSIZE", "blocksize"},
+ {GST_RTSP_HDR_CACHE_CONTROL, "GST_RTSP_HDR_CACHE_CONTROL",
+ "cache-control"},
+ {GST_RTSP_HDR_CONFERENCE, "GST_RTSP_HDR_CONFERENCE", "conference"},
+ {GST_RTSP_HDR_CONNECTION, "GST_RTSP_HDR_CONNECTION", "connection"},
+ {GST_RTSP_HDR_CONTENT_BASE, "GST_RTSP_HDR_CONTENT_BASE", "content-base"},
+ {GST_RTSP_HDR_CONTENT_ENCODING, "GST_RTSP_HDR_CONTENT_ENCODING",
+ "content-encoding"},
+ {GST_RTSP_HDR_CONTENT_LANGUAGE, "GST_RTSP_HDR_CONTENT_LANGUAGE",
+ "content-language"},
+ {GST_RTSP_HDR_CONTENT_LENGTH, "GST_RTSP_HDR_CONTENT_LENGTH",
+ "content-length"},
+ {GST_RTSP_HDR_CONTENT_LOCATION, "GST_RTSP_HDR_CONTENT_LOCATION",
+ "content-location"},
+ {GST_RTSP_HDR_CONTENT_TYPE, "GST_RTSP_HDR_CONTENT_TYPE", "content-type"},
+ {GST_RTSP_HDR_CSEQ, "GST_RTSP_HDR_CSEQ", "cseq"},
+ {GST_RTSP_HDR_DATE, "GST_RTSP_HDR_DATE", "date"},
+ {GST_RTSP_HDR_EXPIRES, "GST_RTSP_HDR_EXPIRES", "expires"},
+ {GST_RTSP_HDR_FROM, "GST_RTSP_HDR_FROM", "from"},
+ {GST_RTSP_HDR_IF_MODIFIED_SINCE, "GST_RTSP_HDR_IF_MODIFIED_SINCE",
+ "if-modified-since"},
+ {GST_RTSP_HDR_LAST_MODIFIED, "GST_RTSP_HDR_LAST_MODIFIED",
+ "last-modified"},
+ {GST_RTSP_HDR_PROXY_AUTHENTICATE, "GST_RTSP_HDR_PROXY_AUTHENTICATE",
+ "proxy-authenticate"},
+ {GST_RTSP_HDR_PROXY_REQUIRE, "GST_RTSP_HDR_PROXY_REQUIRE",
+ "proxy-require"},
+ {GST_RTSP_HDR_PUBLIC, "GST_RTSP_HDR_PUBLIC", "public"},
+ {GST_RTSP_HDR_RANGE, "GST_RTSP_HDR_RANGE", "range"},
+ {GST_RTSP_HDR_REFERER, "GST_RTSP_HDR_REFERER", "referer"},
+ {GST_RTSP_HDR_REQUIRE, "GST_RTSP_HDR_REQUIRE", "require"},
+ {GST_RTSP_HDR_RETRY_AFTER, "GST_RTSP_HDR_RETRY_AFTER", "retry-after"},
+ {GST_RTSP_HDR_RTP_INFO, "GST_RTSP_HDR_RTP_INFO", "rtp-info"},
+ {GST_RTSP_HDR_SCALE, "GST_RTSP_HDR_SCALE", "scale"},
+ {GST_RTSP_HDR_SESSION, "GST_RTSP_HDR_SESSION", "session"},
+ {GST_RTSP_HDR_SERVER, "GST_RTSP_HDR_SERVER", "server"},
+ {GST_RTSP_HDR_SPEED, "GST_RTSP_HDR_SPEED", "speed"},
+ {GST_RTSP_HDR_TRANSPORT, "GST_RTSP_HDR_TRANSPORT", "transport"},
+ {GST_RTSP_HDR_UNSUPPORTED, "GST_RTSP_HDR_UNSUPPORTED", "unsupported"},
+ {GST_RTSP_HDR_USER_AGENT, "GST_RTSP_HDR_USER_AGENT", "user-agent"},
+ {GST_RTSP_HDR_VIA, "GST_RTSP_HDR_VIA", "via"},
+ {GST_RTSP_HDR_WWW_AUTHENTICATE, "GST_RTSP_HDR_WWW_AUTHENTICATE",
+ "www-authenticate"},
+ {GST_RTSP_HDR_CLIENT_CHALLENGE, "GST_RTSP_HDR_CLIENT_CHALLENGE",
+ "client-challenge"},
+ {GST_RTSP_HDR_REAL_CHALLENGE1, "GST_RTSP_HDR_REAL_CHALLENGE1",
+ "real-challenge1"},
+ {GST_RTSP_HDR_REAL_CHALLENGE2, "GST_RTSP_HDR_REAL_CHALLENGE2",
+ "real-challenge2"},
+ {GST_RTSP_HDR_REAL_CHALLENGE3, "GST_RTSP_HDR_REAL_CHALLENGE3",
+ "real-challenge3"},
+ {GST_RTSP_HDR_SUBSCRIBE, "GST_RTSP_HDR_SUBSCRIBE", "subscribe"},
+ {GST_RTSP_HDR_ALERT, "GST_RTSP_HDR_ALERT", "alert"},
+ {GST_RTSP_HDR_CLIENT_ID, "GST_RTSP_HDR_CLIENT_ID", "client-id"},
+ {GST_RTSP_HDR_COMPANY_ID, "GST_RTSP_HDR_COMPANY_ID", "company-id"},
+ {GST_RTSP_HDR_GUID, "GST_RTSP_HDR_GUID", "guid"},
+ {GST_RTSP_HDR_REGION_DATA, "GST_RTSP_HDR_REGION_DATA", "region-data"},
+ {GST_RTSP_HDR_MAX_ASM_WIDTH, "GST_RTSP_HDR_MAX_ASM_WIDTH",
+ "max-asm-width"},
+ {GST_RTSP_HDR_LANGUAGE, "GST_RTSP_HDR_LANGUAGE", "language"},
+ {GST_RTSP_HDR_PLAYER_START_TIME, "GST_RTSP_HDR_PLAYER_START_TIME",
+ "player-start-time"},
+ {GST_RTSP_HDR_LOCATION, "GST_RTSP_HDR_LOCATION", "location"},
+ {GST_RTSP_HDR_ETAG, "GST_RTSP_HDR_ETAG", "etag"},
+ {GST_RTSP_HDR_IF_MATCH, "GST_RTSP_HDR_IF_MATCH", "if-match"},
+ {GST_RTSP_HDR_ACCEPT_CHARSET, "GST_RTSP_HDR_ACCEPT_CHARSET",
+ "accept-charset"},
+ {GST_RTSP_HDR_SUPPORTED, "GST_RTSP_HDR_SUPPORTED", "supported"},
+ {GST_RTSP_HDR_VARY, "GST_RTSP_HDR_VARY", "vary"},
+ {GST_RTSP_HDR_X_ACCELERATE_STREAMING,
+ "GST_RTSP_HDR_X_ACCELERATE_STREAMING", "x-accelerate-streaming"},
+ {GST_RTSP_HDR_X_ACCEPT_AUTHENT, "GST_RTSP_HDR_X_ACCEPT_AUTHENT",
+ "x-accept-authent"},
+ {GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT,
+ "GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT", "x-accept-proxy-authent"},
+ {GST_RTSP_HDR_X_BROADCAST_ID, "GST_RTSP_HDR_X_BROADCAST_ID",
+ "x-broadcast-id"},
+ {GST_RTSP_HDR_X_BURST_STREAMING, "GST_RTSP_HDR_X_BURST_STREAMING",
+ "x-burst-streaming"},
+ {GST_RTSP_HDR_X_NOTICE, "GST_RTSP_HDR_X_NOTICE", "x-notice"},
+ {GST_RTSP_HDR_X_PLAYER_LAG_TIME, "GST_RTSP_HDR_X_PLAYER_LAG_TIME",
+ "x-player-lag-time"},
+ {GST_RTSP_HDR_X_PLAYLIST, "GST_RTSP_HDR_X_PLAYLIST", "x-playlist"},
+ {GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE,
+ "GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE",
+ "x-playlist-change-notice"},
+ {GST_RTSP_HDR_X_PLAYLIST_GEN_ID, "GST_RTSP_HDR_X_PLAYLIST_GEN_ID",
+ "x-playlist-gen-id"},
+ {GST_RTSP_HDR_X_PLAYLIST_SEEK_ID, "GST_RTSP_HDR_X_PLAYLIST_SEEK_ID",
+ "x-playlist-seek-id"},
+ {GST_RTSP_HDR_X_PROXY_CLIENT_AGENT, "GST_RTSP_HDR_X_PROXY_CLIENT_AGENT",
+ "x-proxy-client-agent"},
+ {GST_RTSP_HDR_X_PROXY_CLIENT_VERB, "GST_RTSP_HDR_X_PROXY_CLIENT_VERB",
+ "x-proxy-client-verb"},
+ {GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE,
+ "GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE",
+ "x-receding-playlistchange"},
+ {GST_RTSP_HDR_X_RTP_INFO, "GST_RTSP_HDR_X_RTP_INFO", "x-rtp-info"},
+ {GST_RTSP_HDR_X_STARTUPPROFILE, "GST_RTSP_HDR_X_STARTUPPROFILE",
+ "x-startupprofile"},
+ {GST_RTSP_HDR_TIMESTAMP, "GST_RTSP_HDR_TIMESTAMP", "timestamp"},
+ {GST_RTSP_HDR_AUTHENTICATION_INFO, "GST_RTSP_HDR_AUTHENTICATION_INFO",
+ "authentication-info"},
+ {GST_RTSP_HDR_HOST, "GST_RTSP_HDR_HOST", "host"},
+ {GST_RTSP_HDR_PRAGMA, "GST_RTSP_HDR_PRAGMA", "pragma"},
+ {GST_RTSP_HDR_X_SERVER_IP_ADDRESS, "GST_RTSP_HDR_X_SERVER_IP_ADDRESS",
+ "x-server-ip-address"},
+ {GST_RTSP_HDR_X_SESSIONCOOKIE, "GST_RTSP_HDR_X_SESSIONCOOKIE",
+ "x-sessioncookie"},
+ {GST_RTSP_HDR_LAST, "GST_RTSP_HDR_LAST", "last"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstRTSPHeaderField", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_rtsp_status_code_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_RTSP_STS_INVALID, "GST_RTSP_STS_INVALID", "invalid"},
+ {GST_RTSP_STS_CONTINUE, "GST_RTSP_STS_CONTINUE", "continue"},
+ {GST_RTSP_STS_OK, "GST_RTSP_STS_OK", "ok"},
+ {GST_RTSP_STS_CREATED, "GST_RTSP_STS_CREATED", "created"},
+ {GST_RTSP_STS_LOW_ON_STORAGE, "GST_RTSP_STS_LOW_ON_STORAGE",
+ "low-on-storage"},
+ {GST_RTSP_STS_MULTIPLE_CHOICES, "GST_RTSP_STS_MULTIPLE_CHOICES",
+ "multiple-choices"},
+ {GST_RTSP_STS_MOVED_PERMANENTLY, "GST_RTSP_STS_MOVED_PERMANENTLY",
+ "moved-permanently"},
+ {GST_RTSP_STS_MOVE_TEMPORARILY, "GST_RTSP_STS_MOVE_TEMPORARILY",
+ "move-temporarily"},
+ {GST_RTSP_STS_SEE_OTHER, "GST_RTSP_STS_SEE_OTHER", "see-other"},
+ {GST_RTSP_STS_NOT_MODIFIED, "GST_RTSP_STS_NOT_MODIFIED", "not-modified"},
+ {GST_RTSP_STS_USE_PROXY, "GST_RTSP_STS_USE_PROXY", "use-proxy"},
+ {GST_RTSP_STS_BAD_REQUEST, "GST_RTSP_STS_BAD_REQUEST", "bad-request"},
+ {GST_RTSP_STS_UNAUTHORIZED, "GST_RTSP_STS_UNAUTHORIZED", "unauthorized"},
+ {GST_RTSP_STS_PAYMENT_REQUIRED, "GST_RTSP_STS_PAYMENT_REQUIRED",
+ "payment-required"},
+ {GST_RTSP_STS_FORBIDDEN, "GST_RTSP_STS_FORBIDDEN", "forbidden"},
+ {GST_RTSP_STS_NOT_FOUND, "GST_RTSP_STS_NOT_FOUND", "not-found"},
+ {GST_RTSP_STS_METHOD_NOT_ALLOWED, "GST_RTSP_STS_METHOD_NOT_ALLOWED",
+ "method-not-allowed"},
+ {GST_RTSP_STS_NOT_ACCEPTABLE, "GST_RTSP_STS_NOT_ACCEPTABLE",
+ "not-acceptable"},
+ {GST_RTSP_STS_PROXY_AUTH_REQUIRED, "GST_RTSP_STS_PROXY_AUTH_REQUIRED",
+ "proxy-auth-required"},
+ {GST_RTSP_STS_REQUEST_TIMEOUT, "GST_RTSP_STS_REQUEST_TIMEOUT",
+ "request-timeout"},
+ {GST_RTSP_STS_GONE, "GST_RTSP_STS_GONE", "gone"},
+ {GST_RTSP_STS_LENGTH_REQUIRED, "GST_RTSP_STS_LENGTH_REQUIRED",
+ "length-required"},
+ {GST_RTSP_STS_PRECONDITION_FAILED, "GST_RTSP_STS_PRECONDITION_FAILED",
+ "precondition-failed"},
+ {GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE,
+ "GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE",
+ "request-entity-too-large"},
+ {GST_RTSP_STS_REQUEST_URI_TOO_LARGE, "GST_RTSP_STS_REQUEST_URI_TOO_LARGE",
+ "request-uri-too-large"},
+ {GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE,
+ "GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE", "unsupported-media-type"},
+ {GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD,
+ "GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD",
+ "parameter-not-understood"},
+ {GST_RTSP_STS_CONFERENCE_NOT_FOUND, "GST_RTSP_STS_CONFERENCE_NOT_FOUND",
+ "conference-not-found"},
+ {GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH, "GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH",
+ "not-enough-bandwidth"},
+ {GST_RTSP_STS_SESSION_NOT_FOUND, "GST_RTSP_STS_SESSION_NOT_FOUND",
+ "session-not-found"},
+ {GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE,
+ "GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE",
+ "method-not-valid-in-this-state"},
+ {GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE,
+ "GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE",
+ "header-field-not-valid-for-resource"},
+ {GST_RTSP_STS_INVALID_RANGE, "GST_RTSP_STS_INVALID_RANGE",
+ "invalid-range"},
+ {GST_RTSP_STS_PARAMETER_IS_READONLY, "GST_RTSP_STS_PARAMETER_IS_READONLY",
+ "parameter-is-readonly"},
+ {GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED,
+ "GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED",
+ "aggregate-operation-not-allowed"},
+ {GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED,
+ "GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED",
+ "only-aggregate-operation-allowed"},
+ {GST_RTSP_STS_UNSUPPORTED_TRANSPORT, "GST_RTSP_STS_UNSUPPORTED_TRANSPORT",
+ "unsupported-transport"},
+ {GST_RTSP_STS_DESTINATION_UNREACHABLE,
+ "GST_RTSP_STS_DESTINATION_UNREACHABLE", "destination-unreachable"},
+ {GST_RTSP_STS_INTERNAL_SERVER_ERROR, "GST_RTSP_STS_INTERNAL_SERVER_ERROR",
+ "internal-server-error"},
+ {GST_RTSP_STS_NOT_IMPLEMENTED, "GST_RTSP_STS_NOT_IMPLEMENTED",
+ "not-implemented"},
+ {GST_RTSP_STS_BAD_GATEWAY, "GST_RTSP_STS_BAD_GATEWAY", "bad-gateway"},
+ {GST_RTSP_STS_SERVICE_UNAVAILABLE, "GST_RTSP_STS_SERVICE_UNAVAILABLE",
+ "service-unavailable"},
+ {GST_RTSP_STS_GATEWAY_TIMEOUT, "GST_RTSP_STS_GATEWAY_TIMEOUT",
+ "gateway-timeout"},
+ {GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED,
+ "GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED",
+ "rtsp-version-not-supported"},
+ {GST_RTSP_STS_OPTION_NOT_SUPPORTED, "GST_RTSP_STS_OPTION_NOT_SUPPORTED",
+ "option-not-supported"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstRTSPStatusCode", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/* Generated data ends here */
diff --git a/android/gst-libs/gst/rtsp/gstrtsp-enumtypes.h b/android/gst-libs/gst/rtsp/gstrtsp-enumtypes.h
new file mode 100644
index 000000000..5a631f69c
--- /dev/null
+++ b/android/gst-libs/gst/rtsp/gstrtsp-enumtypes.h
@@ -0,0 +1,35 @@
+
+/* Generated data (by glib-mkenums) */
+
+#ifndef __gst_rtsp_ENUM_TYPES_H__
+#define __gst_rtsp_ENUM_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* enumerations from "gstrtspdefs.h" */
+GType gst_rtsp_result_get_type (void);
+#define GST_TYPE_RTSP_RESULT (gst_rtsp_result_get_type())
+GType gst_rtsp_event_get_type (void);
+#define GST_TYPE_RTSP_EVENT (gst_rtsp_event_get_type())
+GType gst_rtsp_family_get_type (void);
+#define GST_TYPE_RTSP_FAMILY (gst_rtsp_family_get_type())
+GType gst_rtsp_state_get_type (void);
+#define GST_TYPE_RTSP_STATE (gst_rtsp_state_get_type())
+GType gst_rtsp_version_get_type (void);
+#define GST_TYPE_RTSP_VERSION (gst_rtsp_version_get_type())
+GType gst_rtsp_method_get_type (void);
+#define GST_TYPE_RTSP_METHOD (gst_rtsp_method_get_type())
+GType gst_rtsp_auth_method_get_type (void);
+#define GST_TYPE_RTSP_AUTH_METHOD (gst_rtsp_auth_method_get_type())
+GType gst_rtsp_header_field_get_type (void);
+#define GST_TYPE_RTSP_HEADER_FIELD (gst_rtsp_header_field_get_type())
+GType gst_rtsp_status_code_get_type (void);
+#define GST_TYPE_RTSP_STATUS_CODE (gst_rtsp_status_code_get_type())
+G_END_DECLS
+
+#endif /* __gst_rtsp_ENUM_TYPES_H__ */
+
+/* Generated data ends here */
+
diff --git a/android/gst-libs/gst/rtsp/gstrtsp-marshal.c b/android/gst-libs/gst/rtsp/gstrtsp-marshal.c
new file mode 100644
index 000000000..a0177ebc0
--- /dev/null
+++ b/android/gst-libs/gst/rtsp/gstrtsp-marshal.c
@@ -0,0 +1,85 @@
+#include "gstrtsp-marshal.h"
+
+#include <glib-object.h>
+
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v) g_value_get_char (v)
+#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v) g_value_get_int (v)
+#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
+#define g_marshal_value_peek_long(v) g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
+#define g_marshal_value_peek_float(v) g_value_get_float (v)
+#define g_marshal_value_peek_double(v) g_value_get_double (v)
+#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v) g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ * Do not access GValues directly in your code. Instead, use the
+ * g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
+#define g_marshal_value_peek_char(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v) (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v) (v)->data[0].v_float
+#define g_marshal_value_peek_double(v) (v)->data[0].v_double
+#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* ENUM:POINTER,POINTER (gstrtsp-marshal.list:1) */
+void
+gst_rtsp_marshal_ENUM__POINTER_POINTER (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gint (*GMarshalFunc_ENUM__POINTER_POINTER) (gpointer data1,
+ gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_ENUM__POINTER_POINTER callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gint v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_ENUM__POINTER_POINTER) (marshal_data ? marshal_data :
+ cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_pointer (param_values + 1),
+ g_marshal_value_peek_pointer (param_values + 2), data2);
+
+ g_value_set_enum (return_value, v_return);
+}
diff --git a/android/gst-libs/gst/rtsp/gstrtsp-marshal.h b/android/gst-libs/gst/rtsp/gstrtsp-marshal.h
new file mode 100644
index 000000000..e2c5b4b25
--- /dev/null
+++ b/android/gst-libs/gst/rtsp/gstrtsp-marshal.h
@@ -0,0 +1,20 @@
+
+#ifndef __gst_rtsp_marshal_MARSHAL_H__
+#define __gst_rtsp_marshal_MARSHAL_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* ENUM:POINTER,POINTER (gstrtsp-marshal.list:1) */
+extern void gst_rtsp_marshal_ENUM__POINTER_POINTER (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+G_END_DECLS
+
+#endif /* __gst_rtsp_marshal_MARSHAL_H__ */
+
diff --git a/android/gst-libs/gst/video/video-enumtypes.c b/android/gst-libs/gst/video/video-enumtypes.c
new file mode 100644
index 000000000..13aaef23d
--- /dev/null
+++ b/android/gst-libs/gst/video/video-enumtypes.c
@@ -0,0 +1,45 @@
+
+/* Generated data (by glib-mkenums) */
+
+#include "video-enumtypes.h"
+
+#include "video.h"
+
+/* enumerations from "video.h" */
+GType
+gst_video_format_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_VIDEO_FORMAT_UNKNOWN, "GST_VIDEO_FORMAT_UNKNOWN", "unknown"},
+ {GST_VIDEO_FORMAT_I420, "GST_VIDEO_FORMAT_I420", "i420"},
+ {GST_VIDEO_FORMAT_YV12, "GST_VIDEO_FORMAT_YV12", "yv12"},
+ {GST_VIDEO_FORMAT_YUY2, "GST_VIDEO_FORMAT_YUY2", "yuy2"},
+ {GST_VIDEO_FORMAT_UYVY, "GST_VIDEO_FORMAT_UYVY", "uyvy"},
+ {GST_VIDEO_FORMAT_AYUV, "GST_VIDEO_FORMAT_AYUV", "ayuv"},
+ {GST_VIDEO_FORMAT_RGBx, "GST_VIDEO_FORMAT_RGBx", "rgbx"},
+ {GST_VIDEO_FORMAT_BGRx, "GST_VIDEO_FORMAT_BGRx", "bgrx"},
+ {GST_VIDEO_FORMAT_xRGB, "GST_VIDEO_FORMAT_xRGB", "xrgb"},
+ {GST_VIDEO_FORMAT_xBGR, "GST_VIDEO_FORMAT_xBGR", "xbgr"},
+ {GST_VIDEO_FORMAT_RGBA, "GST_VIDEO_FORMAT_RGBA", "rgba"},
+ {GST_VIDEO_FORMAT_BGRA, "GST_VIDEO_FORMAT_BGRA", "bgra"},
+ {GST_VIDEO_FORMAT_ARGB, "GST_VIDEO_FORMAT_ARGB", "argb"},
+ {GST_VIDEO_FORMAT_ABGR, "GST_VIDEO_FORMAT_ABGR", "abgr"},
+ {GST_VIDEO_FORMAT_RGB, "GST_VIDEO_FORMAT_RGB", "rgb"},
+ {GST_VIDEO_FORMAT_BGR, "GST_VIDEO_FORMAT_BGR", "bgr"},
+ {GST_VIDEO_FORMAT_Y41B, "GST_VIDEO_FORMAT_Y41B", "y41b"},
+ {GST_VIDEO_FORMAT_Y42B, "GST_VIDEO_FORMAT_Y42B", "y42b"},
+ {GST_VIDEO_FORMAT_YVYU, "GST_VIDEO_FORMAT_YVYU", "yvyu"},
+ {GST_VIDEO_FORMAT_Y444, "GST_VIDEO_FORMAT_Y444", "y444"},
+ {GST_VIDEO_FORMAT_v210, "GST_VIDEO_FORMAT_v210", "v210"},
+ {GST_VIDEO_FORMAT_v216, "GST_VIDEO_FORMAT_v216", "v216"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id = g_enum_register_static ("GstVideoFormat", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/* Generated data ends here */
diff --git a/android/gst-libs/gst/video/video-enumtypes.h b/android/gst-libs/gst/video/video-enumtypes.h
new file mode 100644
index 000000000..3f99b4756
--- /dev/null
+++ b/android/gst-libs/gst/video/video-enumtypes.h
@@ -0,0 +1,19 @@
+
+/* Generated data (by glib-mkenums) */
+
+#ifndef __GST_VIDEO_ENUM_TYPES_H__
+#define __GST_VIDEO_ENUM_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* enumerations from "video.h" */
+GType gst_video_format_get_type (void);
+#define GST_TYPE_VIDEO_FORMAT (gst_video_format_get_type())
+G_END_DECLS
+
+#endif /* __GST_VIDEO_ENUM_TYPES_H__ */
+
+/* Generated data ends here */
+
diff --git a/android/gst/playback/gstplay-marshal.c b/android/gst/playback/gstplay-marshal.c
new file mode 100644
index 000000000..31549940c
--- /dev/null
+++ b/android/gst/playback/gstplay-marshal.c
@@ -0,0 +1,468 @@
+#include "gstplay-marshal.h"
+
+#include <glib-object.h>
+
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v) g_value_get_char (v)
+#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v) g_value_get_int (v)
+#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
+#define g_marshal_value_peek_long(v) g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
+#define g_marshal_value_peek_float(v) g_value_get_float (v)
+#define g_marshal_value_peek_double(v) g_value_get_double (v)
+#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v) g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ * Do not access GValues directly in your code. Instead, use the
+ * g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
+#define g_marshal_value_peek_char(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v) (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v) (v)->data[0].v_float
+#define g_marshal_value_peek_double(v) (v)->data[0].v_double
+#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* BOOLEAN:OBJECT,BOXED (gstplay-marshal.list:1) */
+void
+gst_play_marshal_BOOLEAN__OBJECT_BOXED (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gboolean (*GMarshalFunc_BOOLEAN__OBJECT_BOXED) (gpointer data1,
+ gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_BOOLEAN__OBJECT_BOXED callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gboolean v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_BOOLEAN__OBJECT_BOXED) (marshal_data ? marshal_data :
+ cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_boxed (param_values + 2), data2);
+
+ g_value_set_boolean (return_value, v_return);
+}
+
+/* BOOLEAN:OBJECT,OBJECT,OBJECT (gstplay-marshal.list:2) */
+void
+gst_play_marshal_BOOLEAN__OBJECT_OBJECT_OBJECT (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gboolean (*GMarshalFunc_BOOLEAN__OBJECT_OBJECT_OBJECT) (gpointer
+ data1, gpointer arg_1, gpointer arg_2, gpointer arg_3, gpointer data2);
+ register GMarshalFunc_BOOLEAN__OBJECT_OBJECT_OBJECT callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gboolean v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_BOOLEAN__OBJECT_OBJECT_OBJECT) (marshal_data ? marshal_data
+ : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_object (param_values + 2),
+ g_marshal_value_peek_object (param_values + 3), data2);
+
+ g_value_set_boolean (return_value, v_return);
+}
+
+/* BOXED:OBJECT,BOXED (gstplay-marshal.list:3) */
+void
+gst_play_marshal_BOXED__OBJECT_BOXED (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gpointer (*GMarshalFunc_BOXED__OBJECT_BOXED) (gpointer data1,
+ gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_BOXED__OBJECT_BOXED callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gpointer v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_BOXED__OBJECT_BOXED) (marshal_data ? marshal_data :
+ cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_boxed (param_values + 2), data2);
+
+ g_value_take_boxed (return_value, v_return);
+}
+
+/* VOID:OBJECT,BOOLEAN (gstplay-marshal.list:4) */
+void
+gst_play_marshal_VOID__OBJECT_BOOLEAN (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__OBJECT_BOOLEAN) (gpointer data1,
+ gpointer arg_1, gboolean arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_BOOLEAN callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_VOID__OBJECT_BOOLEAN) (marshal_data ? marshal_data :
+ cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_boolean (param_values + 2), data2);
+}
+
+/* ENUM:OBJECT,OBJECT,BOXED (gstplay-marshal.list:5) */
+void
+gst_play_marshal_ENUM__OBJECT_OBJECT_BOXED (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gint (*GMarshalFunc_ENUM__OBJECT_OBJECT_BOXED) (gpointer data1,
+ gpointer arg_1, gpointer arg_2, gpointer arg_3, gpointer data2);
+ register GMarshalFunc_ENUM__OBJECT_OBJECT_BOXED callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gint v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_ENUM__OBJECT_OBJECT_BOXED) (marshal_data ? marshal_data :
+ cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_object (param_values + 2),
+ g_marshal_value_peek_boxed (param_values + 3), data2);
+
+ g_value_set_enum (return_value, v_return);
+}
+
+/* ENUM:OBJECT,BOXED,OBJECT (gstplay-marshal.list:6) */
+void
+gst_play_marshal_ENUM__OBJECT_BOXED_OBJECT (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gint (*GMarshalFunc_ENUM__OBJECT_BOXED_OBJECT) (gpointer data1,
+ gpointer arg_1, gpointer arg_2, gpointer arg_3, gpointer data2);
+ register GMarshalFunc_ENUM__OBJECT_BOXED_OBJECT callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gint v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_ENUM__OBJECT_BOXED_OBJECT) (marshal_data ? marshal_data :
+ cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_boxed (param_values + 2),
+ g_marshal_value_peek_object (param_values + 3), data2);
+
+ g_value_set_enum (return_value, v_return);
+}
+
+/* BOXED:OBJECT,BOXED,BOXED (gstplay-marshal.list:7) */
+void
+gst_play_marshal_BOXED__OBJECT_BOXED_BOXED (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gpointer (*GMarshalFunc_BOXED__OBJECT_BOXED_BOXED) (gpointer data1,
+ gpointer arg_1, gpointer arg_2, gpointer arg_3, gpointer data2);
+ register GMarshalFunc_BOXED__OBJECT_BOXED_BOXED callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gpointer v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_BOXED__OBJECT_BOXED_BOXED) (marshal_data ? marshal_data :
+ cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_boxed (param_values + 2),
+ g_marshal_value_peek_boxed (param_values + 3), data2);
+
+ g_value_take_boxed (return_value, v_return);
+}
+
+/* BOXED:INT (gstplay-marshal.list:8) */
+void
+gst_play_marshal_BOXED__INT (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gpointer (*GMarshalFunc_BOXED__INT) (gpointer data1,
+ gint arg_1, gpointer data2);
+ register GMarshalFunc_BOXED__INT callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gpointer v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 2);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_BOXED__INT) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_int (param_values + 1), data2);
+
+ g_value_take_boxed (return_value, v_return);
+}
+
+/* OBJECT:BOXED (gstplay-marshal.list:9) */
+void
+gst_play_marshal_OBJECT__BOXED (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef GObject *(*GMarshalFunc_OBJECT__BOXED) (gpointer data1,
+ gpointer arg_1, gpointer data2);
+ register GMarshalFunc_OBJECT__BOXED callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ GObject *v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 2);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_OBJECT__BOXED) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_boxed (param_values + 1), data2);
+
+ g_value_take_object (return_value, v_return);
+}
+
+/* OBJECT:INT (gstplay-marshal.list:10) */
+void
+gst_play_marshal_OBJECT__INT (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef GObject *(*GMarshalFunc_OBJECT__INT) (gpointer data1,
+ gint arg_1, gpointer data2);
+ register GMarshalFunc_OBJECT__INT callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ GObject *v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 2);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_OBJECT__INT) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_int (param_values + 1), data2);
+
+ g_value_take_object (return_value, v_return);
+}
+
+/* INT64:VOID (gstplay-marshal.list:11) */
+void
+gst_play_marshal_INT64__VOID (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gint64 (*GMarshalFunc_INT64__VOID) (gpointer data1, gpointer data2);
+ register GMarshalFunc_INT64__VOID callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gint64 v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 1);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_INT64__VOID) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1, data2);
+
+ g_value_set_int64 (return_value, v_return);
+}
+
+/* VOID:OBJECT,INT64,INT64 (gstplay-marshal.list:12) */
+void
+gst_play_marshal_VOID__OBJECT_INT64_INT64 (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__OBJECT_INT64_INT64) (gpointer data1,
+ gpointer arg_1, gint64 arg_2, gint64 arg_3, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_INT64_INT64 callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_VOID__OBJECT_INT64_INT64) (marshal_data ? marshal_data :
+ cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_int64 (param_values + 2),
+ g_marshal_value_peek_int64 (param_values + 3), data2);
+}
diff --git a/android/gst/playback/gstplay-marshal.h b/android/gst/playback/gstplay-marshal.h
new file mode 100644
index 000000000..905a2c833
--- /dev/null
+++ b/android/gst/playback/gstplay-marshal.h
@@ -0,0 +1,108 @@
+
+#ifndef __gst_play_marshal_MARSHAL_H__
+#define __gst_play_marshal_MARSHAL_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* BOOLEAN:OBJECT,BOXED (gstplay-marshal.list:1) */
+extern void gst_play_marshal_BOOLEAN__OBJECT_BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* BOOLEAN:OBJECT,OBJECT,OBJECT (gstplay-marshal.list:2) */
+extern void gst_play_marshal_BOOLEAN__OBJECT_OBJECT_OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* BOXED:OBJECT,BOXED (gstplay-marshal.list:3) */
+extern void gst_play_marshal_BOXED__OBJECT_BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:OBJECT,BOOLEAN (gstplay-marshal.list:4) */
+extern void gst_play_marshal_VOID__OBJECT_BOOLEAN (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* ENUM:OBJECT,OBJECT,BOXED (gstplay-marshal.list:5) */
+extern void gst_play_marshal_ENUM__OBJECT_OBJECT_BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* ENUM:OBJECT,BOXED,OBJECT (gstplay-marshal.list:6) */
+extern void gst_play_marshal_ENUM__OBJECT_BOXED_OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* BOXED:OBJECT,BOXED,BOXED (gstplay-marshal.list:7) */
+extern void gst_play_marshal_BOXED__OBJECT_BOXED_BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* BOXED:INT (gstplay-marshal.list:8) */
+extern void gst_play_marshal_BOXED__INT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* OBJECT:BOXED (gstplay-marshal.list:9) */
+extern void gst_play_marshal_OBJECT__BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* OBJECT:INT (gstplay-marshal.list:10) */
+extern void gst_play_marshal_OBJECT__INT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* INT64:VOID (gstplay-marshal.list:11) */
+extern void gst_play_marshal_INT64__VOID (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:OBJECT,INT64,INT64 (gstplay-marshal.list:12) */
+extern void gst_play_marshal_VOID__OBJECT_INT64_INT64 (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+G_END_DECLS
+
+#endif /* __gst_play_marshal_MARSHAL_H__ */
+
diff --git a/android/gst/tcp/gsttcp-enumtypes.c b/android/gst/tcp/gsttcp-enumtypes.c
new file mode 100644
index 000000000..0f1018a5e
--- /dev/null
+++ b/android/gst/tcp/gsttcp-enumtypes.c
@@ -0,0 +1,25 @@
+
+/* Generated data (by glib-mkenums) */
+
+#include "gsttcp-enumtypes.h"
+
+#include "gsttcp.h"
+
+/* enumerations from "gsttcp.h" */
+GType
+gst_tcp_protocol_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_TCP_PROTOCOL_NONE, "GST_TCP_PROTOCOL_NONE", "none"},
+ {GST_TCP_PROTOCOL_GDP, "GST_TCP_PROTOCOL_GDP", "gdp"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id = g_enum_register_static ("GstTCPProtocol", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/* Generated data ends here */
diff --git a/android/gst/tcp/gsttcp-enumtypes.h b/android/gst/tcp/gsttcp-enumtypes.h
new file mode 100644
index 000000000..46cda7dcf
--- /dev/null
+++ b/android/gst/tcp/gsttcp-enumtypes.h
@@ -0,0 +1,19 @@
+
+/* Generated data (by glib-mkenums) */
+
+#ifndef __GST_TCP_ENUM_TYPES_H__
+#define __GST_TCP_ENUM_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* enumerations from "gsttcp.h" */
+GType gst_tcp_protocol_get_type (void);
+#define GST_TYPE_TCP_PROTOCOL (gst_tcp_protocol_get_type())
+G_END_DECLS
+
+#endif /* __GST_TCP_ENUM_TYPES_H__ */
+
+/* Generated data ends here */
+
diff --git a/android/gst/tcp/gsttcp-marshal.c b/android/gst/tcp/gsttcp-marshal.c
new file mode 100644
index 000000000..fb11074f4
--- /dev/null
+++ b/android/gst/tcp/gsttcp-marshal.c
@@ -0,0 +1,186 @@
+#include "gsttcp-marshal.h"
+
+#include <glib-object.h>
+
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v) g_value_get_char (v)
+#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v) g_value_get_int (v)
+#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
+#define g_marshal_value_peek_long(v) g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
+#define g_marshal_value_peek_float(v) g_value_get_float (v)
+#define g_marshal_value_peek_double(v) g_value_get_double (v)
+#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v) g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ * Do not access GValues directly in your code. Instead, use the
+ * g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
+#define g_marshal_value_peek_char(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v) (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v) (v)->data[0].v_float
+#define g_marshal_value_peek_double(v) (v)->data[0].v_double
+#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* VOID:STRING,UINT (gsttcp-marshal.list:1) */
+void
+gst_tcp_marshal_VOID__STRING_UINT (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__STRING_UINT) (gpointer data1,
+ gpointer arg_1, guint arg_2, gpointer data2);
+ register GMarshalFunc_VOID__STRING_UINT callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_VOID__STRING_UINT) (marshal_data ? marshal_data :
+ cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_string (param_values + 1),
+ g_marshal_value_peek_uint (param_values + 2), data2);
+}
+
+/* VOID:INT (gsttcp-marshal.list:2) */
+
+/* VOID:INT,BOXED (gsttcp-marshal.list:3) */
+void
+gst_tcp_marshal_VOID__INT_BOXED (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__INT_BOXED) (gpointer data1,
+ gint arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__INT_BOXED callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_VOID__INT_BOXED) (marshal_data ? marshal_data :
+ cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_int (param_values + 1),
+ g_marshal_value_peek_boxed (param_values + 2), data2);
+}
+
+/* VOID:INT,ENUM,INT,UINT64,INT,UINT64 (gsttcp-marshal.list:4) */
+void
+gst_tcp_marshal_VOID__INT_ENUM_INT_UINT64_INT_UINT64 (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__INT_ENUM_INT_UINT64_INT_UINT64) (gpointer
+ data1, gint arg_1, gint arg_2, gint arg_3, guint64 arg_4, gint arg_5,
+ guint64 arg_6, gpointer data2);
+ register GMarshalFunc_VOID__INT_ENUM_INT_UINT64_INT_UINT64 callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 7);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_VOID__INT_ENUM_INT_UINT64_INT_UINT64) (marshal_data ?
+ marshal_data : cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_int (param_values + 1),
+ g_marshal_value_peek_enum (param_values + 2),
+ g_marshal_value_peek_int (param_values + 3),
+ g_marshal_value_peek_uint64 (param_values + 4),
+ g_marshal_value_peek_int (param_values + 5),
+ g_marshal_value_peek_uint64 (param_values + 6), data2);
+}
+
+/* BOXED:INT (gsttcp-marshal.list:5) */
+void
+gst_tcp_marshal_BOXED__INT (GClosure * closure,
+ GValue * return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue * param_values,
+ gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
+{
+ typedef gpointer (*GMarshalFunc_BOXED__INT) (gpointer data1,
+ gint arg_1, gpointer data2);
+ register GMarshalFunc_BOXED__INT callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+ gpointer v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 2);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback =
+ (GMarshalFunc_BOXED__INT) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_int (param_values + 1), data2);
+
+ g_value_take_boxed (return_value, v_return);
+}
diff --git a/android/gst/tcp/gsttcp-marshal.h b/android/gst/tcp/gsttcp-marshal.h
new file mode 100644
index 000000000..092e15251
--- /dev/null
+++ b/android/gst/tcp/gsttcp-marshal.h
@@ -0,0 +1,47 @@
+
+#ifndef __gst_tcp_marshal_MARSHAL_H__
+#define __gst_tcp_marshal_MARSHAL_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* VOID:STRING,UINT (gsttcp-marshal.list:1) */
+extern void gst_tcp_marshal_VOID__STRING_UINT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:INT (gsttcp-marshal.list:2) */
+#define gst_tcp_marshal_VOID__INT g_cclosure_marshal_VOID__INT
+
+/* VOID:INT,BOXED (gsttcp-marshal.list:3) */
+extern void gst_tcp_marshal_VOID__INT_BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:INT,ENUM,INT,UINT64,INT,UINT64 (gsttcp-marshal.list:4) */
+extern void gst_tcp_marshal_VOID__INT_ENUM_INT_UINT64_INT_UINT64 (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* BOXED:INT (gsttcp-marshal.list:5) */
+extern void gst_tcp_marshal_BOXED__INT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+G_END_DECLS
+
+#endif /* __gst_tcp_marshal_MARSHAL_H__ */
+
diff --git a/android/interfaces.mk b/android/interfaces.mk
new file mode 100644
index 000000000..91bb1d545
--- /dev/null
+++ b/android/interfaces.mk
@@ -0,0 +1,86 @@
+LOCAL_PATH:= $(call my-dir)
+#----------------------------------------
+# include
+gst_interfaces_COPY_HEADERS_TO := gstreamer-0.10/gst/interfaces
+gst_interfaces_COPY_HEADERS_BASE := \
+ gst-libs/gst/interfaces/colorbalance.h \
+ gst-libs/gst/interfaces/colorbalancechannel.h \
+ gst-libs/gst/interfaces/mixer.h \
+ gst-libs/gst/interfaces/mixeroptions.h \
+ gst-libs/gst/interfaces/mixertrack.h \
+ gst-libs/gst/interfaces/navigation.h \
+ gst-libs/gst/interfaces/propertyprobe.h \
+ gst-libs/gst/interfaces/streamvolume.h \
+ gst-libs/gst/interfaces/tuner.h \
+ gst-libs/gst/interfaces/tunerchannel.h \
+ gst-libs/gst/interfaces/tunernorm.h \
+ gst-libs/gst/interfaces/videoorientation.h \
+ gst-libs/gst/interfaces/xoverlay.h
+gst_interfaces_COPY_HEADERS_ANDROID := \
+ gst-libs/gst/interfaces/interfaces-enumtypes.h
+
+gst_interfaces_COPY_HEADERS := $(addprefix ../,$(gst_interfaces_COPY_HEADERS_BASE)) \
+ $(addprefix ../android/,$(gst_interfaces_COPY_HEADERS_ANDROID))
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+interfaces_LOCAL_SRC_FILES_BASE:= \
+ gst-libs/gst/interfaces/colorbalance.c \
+ gst-libs/gst/interfaces/colorbalancechannel.c \
+ gst-libs/gst/interfaces/mixer.c \
+ gst-libs/gst/interfaces/mixeroptions.c \
+ gst-libs/gst/interfaces/mixertrack.c \
+ gst-libs/gst/interfaces/navigation.c \
+ gst-libs/gst/interfaces/propertyprobe.c \
+ gst-libs/gst/interfaces/streamvolume.c \
+ gst-libs/gst/interfaces/tuner.c \
+ gst-libs/gst/interfaces/tunernorm.c \
+ gst-libs/gst/interfaces/tunerchannel.c \
+ gst-libs/gst/interfaces/videoorientation.c \
+ gst-libs/gst/interfaces/xoverlay.c
+interfaces_LOCAL_SRC_FILES_ANDROID:= \
+ gst-libs/gst/interfaces/interfaces-marshal.c \
+ gst-libs/gst/interfaces/interfaces-enumtypes.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(interfaces_LOCAL_SRC_FILES_BASE)) \
+ $(addprefix ../android/,$(interfaces_LOCAL_SRC_FILES_ANDROID))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0
+
+LOCAL_MODULE:= libgstinterfaces-0.10
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst-libs/gst/interfaces \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst-libs/gst/interfaces \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+LOCAL_COPY_HEADERS_TO := $(gst_interfaces_COPY_HEADERS_TO)
+LOCAL_COPY_HEADERS := $(gst_interfaces_COPY_HEADERS)
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/netbuffer.mk b/android/netbuffer.mk
new file mode 100644
index 000000000..c3efd8bdc
--- /dev/null
+++ b/android/netbuffer.mk
@@ -0,0 +1,53 @@
+LOCAL_PATH:= $(call my-dir)
+#----------------------------------------
+# include
+gst_netbuffer_COPY_HEADERS_TO := gstreamer-0.10/gst/netbuffer
+gst_netbuffer_COPY_HEADERS := \
+ ../gst-libs/gst/netbuffer/gstnetbuffer.h
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+netbuffer_LOCAL_SRC_FILES:= \
+ gst-libs/gst/netbuffer/gstnetbuffer.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(netbuffer_LOCAL_SRC_FILES))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0
+
+LOCAL_MODULE:= libgstnetbuffer-0.10
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst-libs/gst/netbuffer \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/../gst/tcp \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+LOCAL_COPY_HEADERS_TO := $(gst_netbuffer_COPY_HEADERS_TO)
+LOCAL_COPY_HEADERS := $(gst_netbuffer_COPY_HEADERS)
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/pbutils.mk b/android/pbutils.mk
new file mode 100644
index 000000000..facd6a97a
--- /dev/null
+++ b/android/pbutils.mk
@@ -0,0 +1,69 @@
+LOCAL_PATH:= $(call my-dir)
+#----------------------------------------
+# include
+gst_pbutils_COPY_HEADERS_TO := gstreamer-0.10/gst/pbutils
+gst_pbutils_COPY_HEADERS_BASE := \
+ gst-libs/gst/pbutils/descriptions.h \
+ gst-libs/gst/pbutils/install-plugins.h \
+ gst-libs/gst/pbutils/missing-plugins.h \
+ gst-libs/gst/pbutils/pbutils.h
+gst_pbutils_COPY_HEADERS_ANDROID := \
+ gst-libs/gst/pbutils/pbutils-enumtypes.h
+
+gst_pbutils_COPY_HEADERS := $(addprefix ../,$(gst_pbutils_COPY_HEADERS_BASE)) \
+ $(addprefix ../android/,$(gst_pbutils_COPY_HEADERS_ANDROID))
+
+
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+pbutils_LOCAL_SRC_FILES_BASE:= \
+ gst-libs/gst/pbutils/pbutils.c \
+ gst-libs/gst/pbutils/descriptions.c \
+ gst-libs/gst/pbutils/install-plugins.c \
+ gst-libs/gst/pbutils/missing-plugins.c
+pbutils_LOCAL_SRC_FILES_ANDROID:= \
+ gst-libs/gst/pbutils/pbutils-enumtypes.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(pbutils_LOCAL_SRC_FILES_BASE)) \
+ $(addprefix ../android/,$(pbutils_LOCAL_SRC_FILES_ANDROID))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0
+
+LOCAL_MODULE:= libgstpbutils-0.10
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst-libs/gst/pbutils \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst-libs/gst/pbutils \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+LOCAL_COPY_HEADERS_TO := $(gst_pbutils_COPY_HEADERS_TO)
+LOCAL_COPY_HEADERS := $(gst_pbutils_COPY_HEADERS)
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/playbin.mk b/android/playbin.mk
new file mode 100644
index 000000000..cb7fa108f
--- /dev/null
+++ b/android/playbin.mk
@@ -0,0 +1,64 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+playbin_LOCAL_SRC_FILES_BASE:= \
+ gst/playback/gstinputselector.c \
+ gst/playback/gstplayback.c \
+ gst/playback/gstplaybin.c \
+ gst/playback/gstplaybin2.c \
+ gst/playback/gstplaysink.c \
+ gst/playback/gstplaybasebin.c \
+ gst/playback/gstplay-enum.c \
+ gst/playback/gstfactorylists.c \
+ gst/playback/gstscreenshot.c \
+ gst/playback/gststreaminfo.c \
+ gst/playback/gststreamselector.c \
+ gst/playback/gstsubtitleoverlay.c
+playbin_LOCAL_SRC_FILES_ANDROID:= \
+ gst/playback/gstplay-marshal.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(playbin_LOCAL_SRC_FILES_BASE)) \
+ $(addprefix ../android/,$(playbin_LOCAL_SRC_FILES_ANDROID))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0 \
+ libgstpbutils-0.10 \
+ libgstinterfaces-0.10 \
+ libgstvideo-0.10
+
+LOCAL_MODULE:= libgstplaybin
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst/playback \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst/playback \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+#It's a gstreamer plugins, and it must be installed on ..../lib/gstreamer-0.10
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/gstreamer-0.10
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/queue2.mk b/android/queue2.mk
new file mode 100644
index 000000000..65f1f1ebb
--- /dev/null
+++ b/android/queue2.mk
@@ -0,0 +1,52 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+queue2_LOCAL_SRC_FILES_BASE:= \
+ gst/playback/gstqueue2.c
+queue2_LOCAL_SRC_FILES_ANDROID:= \
+ gst/playback/gstplay-marshal.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(queue2_LOCAL_SRC_FILES_BASE)) \
+ $(addprefix ../android/,$(queue2_LOCAL_SRC_FILES_ANDROID))
+
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0 \
+ libgstpbutils-0.10
+
+LOCAL_MODULE:= libgstqueue2
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst/playback \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst/playback \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+#It's a gstreamer plugins, and it must be installed on ..../lib/gstreamer-0.10
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/gstreamer-0.10
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/riff.mk b/android/riff.mk
new file mode 100644
index 000000000..bae94a786
--- /dev/null
+++ b/android/riff.mk
@@ -0,0 +1,59 @@
+LOCAL_PATH:= $(call my-dir)
+#----------------------------------------
+# include
+gst_riffs_COPY_HEADERS_TO := gstreamer-0.10/gst/riff
+gst_riffs_COPY_HEADERS := \
+ ../gst-libs/gst/riff/riff-ids.h \
+ ../gst-libs/gst/riff/riff-media.h \
+ ../gst-libs/gst/riff/riff-read.h
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+riff_LOCAL_SRC_FILES:= \
+ gst-libs/gst/riff/riff.c \
+ gst-libs/gst/riff/riff-media.c \
+ gst-libs/gst/riff/riff-read.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(riff_LOCAL_SRC_FILES))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0 \
+ libgsttag-0.10 \
+ libgstaudio-0.10
+
+
+LOCAL_MODULE:= libgstriff-0.10
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst-libs/gst/riff \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst/tcp \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+LOCAL_COPY_HEADERS_TO := $(gst_riffs_COPY_HEADERS_TO)
+LOCAL_COPY_HEADERS := $(gst_riffs_COPY_HEADERS)
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/rtp.mk b/android/rtp.mk
new file mode 100644
index 000000000..7a8a8bcf7
--- /dev/null
+++ b/android/rtp.mk
@@ -0,0 +1,63 @@
+LOCAL_PATH:= $(call my-dir)
+#----------------------------------------
+# include
+gst_rtp_COPY_HEADERS_TO := gstreamer-0.10/gst/rtp
+gst_rtp_COPY_HEADERS := \
+ ../gst-libs/gst/rtp/gstbasertpaudiopayload.h \
+ ../gst-libs/gst/rtp/gstbasertpdepayload.h \
+ ../gst-libs/gst/rtp/gstbasertppayload.h \
+ ../gst-libs/gst/rtp/gstrtcpbuffer.h \
+ ../gst-libs/gst/rtp/gstrtpbuffer.h \
+ ../gst-libs/gst/rtp/gstrtppayloads.h
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+rtp_LOCAL_SRC_FILES:= \
+ gst-libs/gst/rtp/gstrtpbuffer.c \
+ gst-libs/gst/rtp/gstrtcpbuffer.c \
+ gst-libs/gst/rtp/gstrtppayloads.c \
+ gst-libs/gst/rtp/gstbasertpaudiopayload.c \
+ gst-libs/gst/rtp/gstbasertppayload.c \
+ gst-libs/gst/rtp/gstbasertpdepayload.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(rtp_LOCAL_SRC_FILES))
+
+LOCAL_SHARED_LIBRARIES := \
+ libdl \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0
+
+LOCAL_MODULE:= libgstrtp-0.10
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst-libs/gst/rtp \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/../ \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst/tcp \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+LOCAL_COPY_HEADERS_TO := $(gst_rtp_COPY_HEADERS_TO)
+LOCAL_COPY_HEADERS := $(gst_rtp_COPY_HEADERS)
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/rtsp.mk b/android/rtsp.mk
new file mode 100644
index 000000000..7f628e39f
--- /dev/null
+++ b/android/rtsp.mk
@@ -0,0 +1,76 @@
+LOCAL_PATH:= $(call my-dir)
+#----------------------------------------
+# include
+gst_rtsp_COPY_HEADERS_TO := gstreamer-0.10/gst/rtsp
+gst_rtsp_COPY_HEADERS_BASE := \
+ gst-libs/gst/rtsp/gstrtspbase64.h \
+ gst-libs/gst/rtsp/gstrtspdefs.h \
+ gst-libs/gst/rtsp/gstrtspconnection.h \
+ gst-libs/gst/rtsp/gstrtspextension.h \
+ gst-libs/gst/rtsp/gstrtspmessage.h \
+ gst-libs/gst/rtsp/gstrtsprange.h \
+ gst-libs/gst/rtsp/gstrtsptransport.h \
+ gst-libs/gst/rtsp/gstrtspurl.h
+gst_rtsp_COPY_HEADERS_ANDROID := \
+ gst-libs/gst/rtsp/gstrtsp-enumtypes.h
+
+gst_rtsp_COPY_HEADERS := $(addprefix ../,$(gst_rtsp_COPY_HEADERS_BASE)) \
+ $(addprefix ../android/,$(gst_rtsp_COPY_HEADERS_ANDROID))
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+rtsp_LOCAL_SRC_FILES_BASE:= \
+ gst-libs/gst/rtsp/gstrtspbase64.c \
+ gst-libs/gst/rtsp/gstrtspdefs.c \
+ gst-libs/gst/rtsp/gstrtspconnection.c \
+ gst-libs/gst/rtsp/gstrtspextension.c \
+ gst-libs/gst/rtsp/gstrtspmessage.c \
+ gst-libs/gst/rtsp/gstrtsprange.c \
+ gst-libs/gst/rtsp/gstrtsptransport.c \
+ gst-libs/gst/rtsp/gstrtspurl.c
+rtsp_LOCAL_SRC_FILES_ANDROID:= \
+ gst-libs/gst/rtsp/gstrtsp-marshal.c \
+ gst-libs/gst/rtsp/gstrtsp-enumtypes.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(rtsp_LOCAL_SRC_FILES_BASE)) \
+ $(addprefix ../android/,$(rtsp_LOCAL_SRC_FILES_ANDROID))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0
+
+LOCAL_MODULE:= libgstrtsp-0.10
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst-libs/gst/rtsp \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst-libs/gst/rtsp \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DINET_ADDRSTRLEN=16 -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+
+LOCAL_COPY_HEADERS_TO := $(gst_rtsp_COPY_HEADERS_TO)
+LOCAL_COPY_HEADERS := $(gst_rtsp_COPY_HEADERS)
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/sdp.mk b/android/sdp.mk
new file mode 100644
index 000000000..ae680268b
--- /dev/null
+++ b/android/sdp.mk
@@ -0,0 +1,53 @@
+LOCAL_PATH:= $(call my-dir)
+#----------------------------------------
+# include
+gst_sdp_COPY_HEADERS_TO := gstreamer-0.10/gst/sdp
+gst_sdp_COPY_HEADERS := \
+ ../gst-libs/gst/sdp/gstsdp.h \
+ ../gst-libs/gst/sdp/gstsdpmessage.h
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+sdp_LOCAL_SRC_FILES:= \
+ gst-libs/gst/sdp/gstsdpmessage.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(sdp_LOCAL_SRC_FILES))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0
+
+LOCAL_MODULE:= libgstsdp-0.10
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst-libs/gst/sdp \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst/tcp \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+LOCAL_COPY_HEADERS_TO := $(gst_sdp_COPY_HEADERS_TO)
+LOCAL_COPY_HEADERS := $(gst_sdp_COPY_HEADERS)
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/tag.mk b/android/tag.mk
new file mode 100644
index 000000000..c0c10305b
--- /dev/null
+++ b/android/tag.mk
@@ -0,0 +1,57 @@
+LOCAL_PATH:= $(call my-dir)
+#----------------------------------------
+# include
+gst_tag_COPY_HEADERS_TO := gstreamer-0.10/gst/tag
+gst_tag_COPY_HEADERS := \
+ ../gst-libs/gst/tag/gsttagdemux.h \
+ ../gst-libs/gst/tag/tag.h
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+tag_LOCAL_SRC_FILES:= \
+ gst-libs/gst/tag/gstvorbistag.c \
+ gst-libs/gst/tag/gstid3tag.c \
+ gst-libs/gst/tag/tags.c \
+ gst-libs/gst/tag/lang.c \
+ gst-libs/gst/tag/gsttagdemux.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(tag_LOCAL_SRC_FILES))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0
+
+LOCAL_MODULE:= libgsttag-0.10
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst/tag \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+LOCAL_COPY_HEADERS_TO := $(gst_tag_COPY_HEADERS_TO)
+LOCAL_COPY_HEADERS := $(gst_tag_COPY_HEADERS)
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/tcp.mk b/android/tcp.mk
new file mode 100644
index 000000000..29fe211ad
--- /dev/null
+++ b/android/tcp.mk
@@ -0,0 +1,58 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+tcp_LOCAL_SRC_FILES_BASE:= \
+ gst/tcp/gsttcpplugin.c \
+ gst/tcp/gsttcp.c \
+ gst/tcp/gstmultifdsink.c \
+ gst/tcp/gsttcpclientsrc.c \
+ gst/tcp/gsttcpclientsink.c \
+ gst/tcp/gsttcpserversrc.c \
+ gst/tcp/gsttcpserversink.c
+tcp_LOCAL_SRC_FILES_ANDROID:= \
+ gst/tcp/gsttcp-enumtypes.c \
+ gst/tcp/gsttcp-marshal.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(tcp_LOCAL_SRC_FILES_BASE)) \
+ $(addprefix ../android/,$(tcp_LOCAL_SRC_FILES_ANDROID))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0 \
+ libgstdataprotocol-0.10
+
+LOCAL_MODULE:= libgsttcp
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst/tcp \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst/tcp \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+#It's a gstreamer plugins, and it must be installed on ..../lib/gstreamer-0.10
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/gstreamer-0.10
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/typefindfunctions.mk b/android/typefindfunctions.mk
new file mode 100644
index 000000000..cb660b9c9
--- /dev/null
+++ b/android/typefindfunctions.mk
@@ -0,0 +1,47 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+typefindfunctions_LOCAL_SRC_FILES:= \
+ gst/typefind/gsttypefindfunctions.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(typefindfunctions_LOCAL_SRC_FILES))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0
+
+LOCAL_MODULE:= libgsttypefindfunctions
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst/typefind \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+#It's a gstreamer plugins, and it must be installed on ..../lib/gstreamer-0.10
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/gstreamer-0.10
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/video.mk b/android/video.mk
new file mode 100644
index 000000000..f03ec5538
--- /dev/null
+++ b/android/video.mk
@@ -0,0 +1,65 @@
+LOCAL_PATH:= $(call my-dir)
+#----------------------------------------
+# include
+gst_video_COPY_HEADERS_TO := gstreamer-0.10/gst/video
+gst_video_COPY_HEADERS_BASE := \
+ gst-libs/gst/video/gstvideofilter.h \
+ gst-libs/gst/video/gstvideosink.h \
+ gst-libs/gst/video/video.h
+gst_video_COPY_HEADERS_ANDROID := \
+ gst-libs/gst/video/video-enumtypes.h
+
+gst_video_COPY_HEADERS := $(addprefix ../,$(gst_video_COPY_HEADERS_BASE)) \
+ $(addprefix ../android/,$(gst_video_COPY_HEADERS_ANDROID))
+
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+video_LOCAL_SRC_FILES_BASE:= \
+ gst-libs/gst/video/video.c \
+ gst-libs/gst/video/gstvideosink.c \
+ gst-libs/gst/video/gstvideofilter.c
+video_LOCAL_SRC_FILES_ANDROID:= \
+ gst-libs/gst/video/video-enumtypes.c
+
+LOCAL_SRC_FILES:= $(addprefix ../,$(video_LOCAL_SRC_FILES_BASE)) \
+ $(addprefix ../android/,$(video_LOCAL_SRC_FILES_ANDROID))
+
+LOCAL_SHARED_LIBRARIES := \
+ libgstreamer-0.10 \
+ libgstbase-0.10 \
+ libglib-2.0 \
+ libgthread-2.0 \
+ libgmodule-2.0 \
+ libgobject-2.0
+
+LOCAL_MODULE:= libgstvideo-0.10
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../gst-libs/gst/video \
+ $(LOCAL_PATH)/../gst-libs \
+ $(LOCAL_PATH)/.. \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/gst-libs/gst/video \
+ $(TARGET_OUT_HEADERS)/gstreamer-0.10 \
+ $(TARGET_OUT_HEADERS)/glib-2.0 \
+ $(TARGET_OUT_HEADERS)/glib-2.0/glib \
+ external/libxml2/include
+
+ifeq ($(STECONF_ANDROID_VERSION),"FROYO")
+LOCAL_SHARED_LIBRARIES += libicuuc
+LOCAL_C_INCLUDES += external/icu4c/common
+endif
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -DGSTREAMER_BUILT_FOR_ANDROID
+#
+# define LOCAL_PRELINK_MODULE to false to not use pre-link map
+#
+LOCAL_PRELINK_MODULE := false
+
+LOCAL_COPY_HEADERS_TO := $(gst_video_COPY_HEADERS_TO)
+LOCAL_COPY_HEADERS := $(gst_video_COPY_HEADERS)
+
+include $(BUILD_SHARED_LIBRARY)