# HG changeset patch # User morphbr # Date 1188394164 -3600 # Node ID e2baa6947dbfedeab04edb7813d102feccf431ee # Parent 0e159c5e2d320ce3210b0da6bc6630b924a32194 [svn r837] - Deleted old code - Bug fix on gmencoder by Renato Filho - Restored Renato's version of monitor_handler to work with gmencoder diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/gmemcoder/src/gmencoder.c --- a/gmyth-stream/gmemcoder/src/gmencoder.c Wed Aug 29 10:00:25 2007 +0100 +++ b/gmyth-stream/gmemcoder/src/gmencoder.c Wed Aug 29 14:29:24 2007 +0100 @@ -866,7 +866,6 @@ GstElement *bsrc = NULL; GstElement *src = NULL; - GstElement *queue = NULL; GstElement *aqueue = NULL; GstElement *vqueue = NULL; GstElement *decode = NULL; @@ -888,11 +887,10 @@ if (src == NULL) goto error; - decode = gst_element_factory_make("decodebin", "decode"); + decode = gst_element_factory_make("decodebin2", "decode"); if (decode == NULL) goto error; - queue = gst_element_factory_make("queue", "queue_src"); aqueue = gst_element_factory_make("queue", "aqueue"); if (aqueue == NULL) goto error; @@ -901,9 +899,9 @@ if (vqueue == NULL) goto error; - gst_bin_add_many(GST_BIN(bsrc), src, queue, decode, aqueue, vqueue, + gst_bin_add_many(GST_BIN(bsrc), src, decode, aqueue, vqueue, NULL); - gst_element_link_many(src, queue, decode, NULL); + gst_element_link (src, decode); g_signal_connect(G_OBJECT(decode), "new-decoded-pad", diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/AUTHORS --- a/gmyth-stream/libgnomevfs2/AUTHORS Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -Artur Duque de Souza -Renato Filho <> diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/COPYING --- a/gmyth-stream/libgnomevfs2/COPYING Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,504 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - 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 Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -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 and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -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 other code 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. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - 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, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser 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 combine 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) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) 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. - - d) 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. - - e) 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 materials to be 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 with -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 Lesser 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 - - 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. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 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. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/INSTALL --- a/gmyth-stream/libgnomevfs2/INSTALL Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,236 +0,0 @@ -Installation Instructions -************************* - -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free -Software Foundation, Inc. - -This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - -These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is -disabled by default to prevent problems with accidental use of stale -cache files.) - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - -Some systems require unusual options for compilation or linking that the -`configure' script does not know about. Run `./configure --help' for -details on some of the pertinent environment variables. - - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: - - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - -You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. - -Installation Names -================== - -By default, `make install' installs the package's commands under -`/usr/local/bin', include files under `/usr/local/include', etc. You -can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -pass the option `--exec-prefix=PREFIX' to `configure', the package uses -PREFIX as the prefix for installing programs and libraries. -Documentation and other data files still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - -Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - -There may be some features `configure' cannot figure out automatically, -but needs to determine by the type of machine the package will run on. -Usually, assuming the package is built to be run on the _same_ -architectures, `configure' can figure that out, but if it prints a -message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the option `--target=TYPE' to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. - -Sharing Defaults -================ - -If you want to set default values for `configure' scripts to share, you -can create a site shell script called `config.site' that gives default -values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - -Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). Here is a another example: - - /bin/bash ./configure CONFIG_SHELL=/bin/bash - -Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent -configuration-related scripts to be executed by `/bin/bash'. - -`configure' Invocation -====================== - -`configure' recognizes the following options to control how it operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/Makefile.am --- a/gmyth-stream/libgnomevfs2/Makefile.am Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -SUBDIRS = modules -DIST_SUBDIRS = common m4 modules - -EXTRA_DIST = \ - autogen.sh diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/README --- a/gmyth-stream/libgnomevfs2/README Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -URI: myth://host:port/filename - -or, when downloading LiveTV content... - -URI: myth://user:password@host:port/?dbname&channel=channel_num - -sample (remote .NUV file): gnomevfs-cat myth://127.0.0.1:7654/video.nuv - -sample (LiveTV): gnomevfs-cat 'myth://mythtv:mythtv@192.168.3.165:6543/livetv?channel=4' - -gst-launch-0.10 gnomevfssrc location='myth://192.168.3.165:6543/livetv?channel=444' ! nuvdemux name=d .audio_src ! queue ! alsasink d.video_src ! ffdec_mpeg4 ! xvimagesink - diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/autogen.sh --- a/gmyth-stream/libgnomevfs2/autogen.sh Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -#!/bin/sh -# Run this to generate all the initial makefiles, etc. - -DIE=0 -package=libgnomevfs2-mythtv -srcfile=configure.ac - -# a quick cvs co if necessary to alleviate the pain - may remove this -# when developers get a clue ;) -if test ! -d common; -then - echo "+ getting common/ from cvs" - cvs co common -fi - -# source helper functions -if test ! -f common/autogen-helper.sh; -then - echo There is something wrong with your source tree. - echo You are missing common/autogen-helper.sh - exit 1 -fi -. common/autogen-helper.sh - -CONFIGURE_DEF_OPT='--enable-maintainer-mode' - -autogen_options $* - -echo -n "+ check for build tools" -if test ! -z "$NOCHECK"; then echo " skipped"; else echo; fi -version_check "autoconf" "$AUTOCONF autoconf autoconf-2.54 autoconf-2.53" \ - "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 53 || DIE=1 -version_check "automake" "$AUTOMAKE automake automake-1.9 automake-1.8 automake-1.7 automake-1.6" \ - "ftp://ftp.gnu.org/pub/gnu/automake/" 1 6 || DIE=1 -version_check "libtoolize" "$LIBTOOLIZE libtoolize" \ - "ftp://ftp.gnu.org/pub/gnu/libtool/" 1 5 0 || DIE=1 -version_check "pkg-config" "" \ - "http://www.freedesktop.org/software/pkgconfig" 0 8 0 || DIE=1 - -die_check $DIE - -aclocal_check || DIE=1 -autoheader_check || DIE=1 - -die_check $DIE - -# if no arguments specified then this will be printed -if test -z "$*"; then - echo "+ checking for autogen.sh options" - echo " This autogen script will automatically run ./configure as:" - echo " ./configure $CONFIGURE_DEF_OPT" - echo " To pass any additional options, please specify them on the $0" - echo " command line." -fi - -toplevel_check $srcfile - -tool_run "$aclocal" "-I m4 $ACLOCAL_FLAGS" -tool_run "$libtoolize" "--copy --force" -tool_run "$autoheader" - -# touch the stamp-h.in build stamp so we don't re-run autoheader in maintainer mode -- wingo -echo timestamp > stamp-h.in 2> /dev/null - -tool_run "$autoconf" -tool_run "$automake" "-a -c" - -# if enable exists, add an -enable option for each of the lines in that file -if test -f enable; then - for a in `cat enable`; do - CONFIGURE_FILE_OPT="--enable-$a" - done -fi - -# if disable exists, add an -disable option for each of the lines in that file -if test -f disable; then - for a in `cat disable`; do - CONFIGURE_FILE_OPT="$CONFIGURE_FILE_OPT --disable-$a" - done -fi - -test -n "$NOCONFIGURE" && { - echo "+ skipping configure stage for package $package, as requested." - echo "+ autogen.sh done." - exit 0 -} - -echo "+ running configure ... " -test ! -z "$CONFIGURE_DEF_OPT" && echo " ./configure default flags: $CONFIGURE_DEF_OPT" -test ! -z "$CONFIGURE_EXT_OPT" && echo " ./configure external flags: $CONFIGURE_EXT_OPT" -test ! -z "$CONFIGURE_FILE_OPT" && echo " ./configure enable/disable flags: $CONFIGURE_FILE_OPT" -echo - -./configure $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT $CONFIGURE_FILE_OPT || { - echo " configure failed" - exit 1 -} - -echo "Now type 'make' to compile $package." diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/common/Makefile.am --- a/gmyth-stream/libgnomevfs2/common/Makefile.am Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -EXTRA_DIST = autogen-helper.sh diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/common/autogen-helper.sh --- a/gmyth-stream/libgnomevfs2/common/autogen-helper.sh Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,302 +0,0 @@ -# a silly hack that generates autoregen.sh but it's handy -echo "#!/bin/sh" > autoregen.sh -echo "./autogen.sh $@ \$@" >> autoregen.sh -chmod +x autoregen.sh - -# helper functions for autogen.sh - -debug () -# print out a debug message if DEBUG is a defined variable -{ - if test ! -z "$DEBUG" - then - echo "DEBUG: $1" - fi -} - -version_check () -# check the version of a package -# first argument : package name (executable) -# second argument : optional path where to look for it instead -# third argument : source download url -# rest of arguments : major, minor, micro version -# all consecutive ones : suggestions for binaries to use -# (if not specified in second argument) -{ - PACKAGE=$1 - PKG_PATH=$2 - URL=$3 - MAJOR=$4 - MINOR=$5 - MICRO=$6 - - # for backwards compatibility, we let PKG_PATH=PACKAGE when PKG_PATH null - if test -z "$PKG_PATH"; then PKG_PATH=$PACKAGE; fi - debug "major $MAJOR minor $MINOR micro $MICRO" - VERSION=$MAJOR - if test ! -z "$MINOR"; then VERSION=$VERSION.$MINOR; else MINOR=0; fi - if test ! -z "$MICRO"; then VERSION=$VERSION.$MICRO; else MICRO=0; fi - - debug "major $MAJOR minor $MINOR micro $MICRO" - - for SUGGESTION in $PKG_PATH; do - COMMAND="$SUGGESTION" - - # don't check if asked not to - test -z "$NOCHECK" && { - echo -n " checking for $COMMAND >= $VERSION ... " - } || { - # we set a var with the same name as the package, but stripped of - # unwanted chars - VAR=`echo $PACKAGE | sed 's/-//g'` - debug "setting $VAR" - eval $VAR="$COMMAND" - return 0 - } - - debug "checking version with $COMMAND" - ($COMMAND --version) < /dev/null > /dev/null 2>&1 || - { - echo "not found." - continue - } - # strip everything that's not a digit, then use cut to get the first field - pkg_version=`$COMMAND --version|head -n 1|sed 's/^[^0-9]*//'|cut -d' ' -f1` - debug "pkg_version $pkg_version" - # remove any non-digit characters from the version numbers to permit numeric - # comparison - pkg_major=`echo $pkg_version | cut -d. -f1 | sed s/[a-zA-Z\-].*//g` - pkg_minor=`echo $pkg_version | cut -d. -f2 | sed s/[a-zA-Z\-].*//g` - pkg_micro=`echo $pkg_version | cut -d. -f3 | sed s/[a-zA-Z\-].*//g` - test -z "$pkg_major" && pkg_major=0 - test -z "$pkg_minor" && pkg_minor=0 - test -z "$pkg_micro" && pkg_micro=0 - debug "found major $pkg_major minor $pkg_minor micro $pkg_micro" - - #start checking the version - debug "version check" - - # reset check - WRONG= - - if [ ! "$pkg_major" -gt "$MAJOR" ]; then - debug "major: $pkg_major <= $MAJOR" - if [ "$pkg_major" -lt "$MAJOR" ]; then - debug "major: $pkg_major < $MAJOR" - WRONG=1 - elif [ ! "$pkg_minor" -gt "$MINOR" ]; then - debug "minor: $pkg_minor <= $MINOR" - if [ "$pkg_minor" -lt "$MINOR" ]; then - debug "minor: $pkg_minor < $MINOR" - WRONG=1 - elif [ "$pkg_micro" -lt "$MICRO" ]; then - debug "micro: $pkg_micro < $MICRO" - WRONG=1 - fi - fi - fi - - if test ! -z "$WRONG"; then - echo "found $pkg_version, not ok !" - continue - else - echo "found $pkg_version, ok." - # we set a var with the same name as the package, but stripped of - # unwanted chars - VAR=`echo $PACKAGE | sed 's/-//g'` - debug "setting $VAR" - eval $VAR="$COMMAND" - return 0 - fi - done - - echo "not found !" - echo "You must have $PACKAGE installed to compile $package." - echo "Download the appropriate package for your distribution," - echo "or get the source tarball at $URL" - return 1; -} - -aclocal_check () -{ - # normally aclocal is part of automake - # so we expect it to be in the same place as automake - # so if a different automake is supplied, we need to adapt as well - # so how's about replacing automake with aclocal in the set var, - # and saving that in $aclocal ? - # note, this will fail if the actual automake isn't called automake* - # or if part of the path before it contains it - if [ -z "$automake" ]; then - echo "Error: no automake variable set !" - return 1 - else - aclocal=`echo $automake | sed s/automake/aclocal/` - debug "aclocal: $aclocal" - if [ "$aclocal" != "aclocal" ]; - then - CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-aclocal=$aclocal" - fi - if [ ! -x `which $aclocal` ]; then - echo "Error: cannot execute $aclocal !" - return 1 - fi - fi -} - -autoheader_check () -{ - # same here - autoheader is part of autoconf - # use the same voodoo - if [ -z "$autoconf" ]; then - echo "Error: no autoconf variable set !" - return 1 - else - autoheader=`echo $autoconf | sed s/autoconf/autoheader/` - debug "autoheader: $autoheader" - if [ "$autoheader" != "autoheader" ]; - then - CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoheader=$autoheader" - fi - if [ ! -x `which $autoheader` ]; then - echo "Error: cannot execute $autoheader !" - return 1 - fi - fi - -} - -autoconf_2_52d_check () -{ - # autoconf 2.52d has a weird issue involving a yes:no error - # so don't allow it's use - test -z "$NOCHECK" && { - ac_version=`$autoconf --version|head -n 1|sed 's/^[a-zA-Z\.\ ()]*//;s/ .*$//'` - if test "$ac_version" = "2.52d"; then - echo "autoconf 2.52d has an issue with our current build." - echo "We don't know who's to blame however. So until we do, get a" - echo "regular version. RPM's of a working version are on the gstreamer site." - exit 1 - fi - } - return 0 -} - -die_check () -{ - # call with $DIE - # if set to 1, we need to print something helpful then die - DIE=$1 - if test "x$DIE" = "x1"; - then - echo - echo "- Please get the right tools before proceeding." - echo "- Alternatively, if you're sure we're wrong, run with --nocheck." - exit 1 - fi -} - -autogen_options () -{ - if test "x$1" = "x"; then - return 0 - fi - - while test "x$1" != "x" ; do - optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - case "$1" in - --noconfigure) - NOCONFIGURE=defined - AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --noconfigure" - echo "+ configure run disabled" - shift - ;; - --nocheck) - AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --nocheck" - NOCHECK=defined - echo "+ autotools version check disabled" - shift - ;; - --debug) - DEBUG=defined - AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --debug" - echo "+ debug output enabled" - shift - ;; - --prefix=*) - CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT --prefix=$optarg" - echo "+ passing --prefix=$optarg to configure" - shift - ;; - --prefix) - shift - echo "DEBUG: $1" - CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT --prefix=$1" - echo "+ passing --prefix=$1 to configure" - shift - ;; - -h|--help) - echo "autogen.sh (autogen options) -- (configure options)" - echo "autogen.sh help options: " - echo " --noconfigure don't run the configure script" - echo " --nocheck don't do version checks" - echo " --debug debug the autogen process" - echo " --prefix will be passed on to configure" - echo - echo " --with-autoconf PATH use autoconf in PATH" - echo " --with-automake PATH use automake in PATH" - echo - echo "to pass options to configure, put them as arguments after -- " - exit 1 - ;; - --with-automake=*) - AUTOMAKE=$optarg - echo "+ using alternate automake in $optarg" - CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-automake=$AUTOMAKE" - shift - ;; - --with-autoconf=*) - AUTOCONF=$optarg - echo "+ using alternate autoconf in $optarg" - CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoconf=$AUTOCONF" - shift - ;; - --disable*|--enable*|--with*) - echo "+ passing option $1 to configure" - CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $1" - shift - ;; - --) shift ; break ;; - *) echo "- ignoring unknown autogen.sh argument $1"; shift ;; - esac - done - - for arg do CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $arg"; done - if test ! -z "$CONFIGURE_EXT_OPT" - then - echo "+ options passed to configure: $CONFIGURE_EXT_OPT" - fi -} - -toplevel_check () -{ - srcfile=$1 - test -f $srcfile || { - echo "You must run this script in the top-level $package directory" - exit 1 - } -} - - -tool_run () -{ - tool=$1 - options=$2 - run_if_fail=$3 - echo "+ running $tool $options..." - $tool $options || { - echo - echo $tool failed - eval $run_if_fail - exit 1 - } -} diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/configure.ac --- a/gmyth-stream/libgnomevfs2/configure.ac Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ -AC_INIT(libgnomevfs2-gmythstream, 0.1) - -dnl when going to/from release please set the nano (fourth number) right ! -dnl releases only do Wall, cvs and prerelease does Werror too -AS_VERSION(libgnomevfs2-gmythstream, LIBGNOMEVFS2_GMYTHSTREAM, 0, 1, 0, 1, LIBGNOMEVFS2_GMYTHSTREAM_CVS="no", LIBGNOMEVFS2_GMYTHSTREAM_CVS="yes") - -AM_INIT_AUTOMAKE($PACKAGE, $VERSION) - -AM_CONFIG_HEADER(config.h) - -AM_DISABLE_STATIC - -dnl AM_MAINTAINER_MODE provides the option to enable maintainer mode -AM_MAINTAINER_MODE -dnl make aclocal work in maintainer mode -AC_SUBST(ACLOCAL_AMFLAGS, "-I m4") - -dnl check for tools -dnl Make sure CFLAGS is defined to stop AC_PROC_CC adding -g -CFLAGS="$CFLAGS " -AC_PROG_CC -AC_PROG_CPP -AM_PROG_CC_STDC -AC_HEADER_STDC -AC_PROG_LIBTOOL - -dnl Test if --enable-debug given -AC_ARG_ENABLE(debug, [AC_HELP_STRING([--enable-debug],[enable debugging mode])]) -if test "x$enable_debug" = "xyes" ; then - CFLAGS="$CFLAGS -g" -fi - -dnl optimisation flag -CFLAGS="$CFLAGS -O2" - -dnl decide on error flags -AS_COMPILER_FLAG(-Wall, LIBGNOMEVFS2_MYTHTV_WALL="yes", LIBGNOMEVFS2_MYTHTV_WALL="no") - -if test "x$LIBGNOMEVFS2_MYTHTV_WALL" = "xyes"; then - CFLAGS="$CFLAGS -Wall" - - if test "x$LIBGNOMEVFS2_MYTHTV_CVS" = "xyes"; then - AS_COMPILER_FLAG(-Werror,CFLAGS="$CFLAGS -Werror",) - fi -fi - -dnl Now check required packages - -dnl Check for pkgconfig -AC_CHECK_PROG(HAVE_PKGCONFIG, pkg-config, yes, no) -dnl Give error and exit if we don't have pkgconfig -if test "x$HAVE_PKGCONFIG" = "xno"; then - AC_MSG_ERROR(you need to have pkgconfig installed !) -fi - -dnl Check for Glib2.0 -PKG_CHECK_MODULES(GLIB, glib-2.0, HAVE_GLIB=yes,HAVE_GLIB=no) - -dnl Give error and exit if we don't have glib -if test "x$HAVE_GLIB" = "xno"; then - AC_MSG_ERROR(you need glib-2.0 installed) -fi - -dnl make GLIB_CFLAGS and GLIB_LIBS available -AC_SUBST(GLIB_CFLAGS) -AC_SUBST(GLIB_LIBS) - -AC_DEFINE(HAVE_GLIB,1,[Defined when glib-2.0 was found]) - -dnl Check for GObject2.0 -PKG_CHECK_MODULES(GOBJECT, - gobject-2.0, - HAVE_GOBJECT=yes, HAVE_GOBJECT=no) - -dnl Give error and exit if we don't have gobject -if test "x$HAVE_GOBJECT" = "xno"; then - AC_MSG_ERROR(you need gobject-2.0 installed) -fi - -dnl make GOBJECT_CFLAGS and GOBJECT_LIBS available -AC_SUBST(GOBJECT_CFLAGS) -AC_SUBST(GOBJECT_LIBS) - -GNOME_VFS_REQS=2.7.4 -PKG_CHECK_MODULES(GNOME_VFS, - gnome-vfs-2.0 >= $GNOME_VFS_REQS gnome-vfs-module-2.0 >= $GNOME_VFS_REQS, - HAVE_GNOME_VFS=yes, - HAVE_GNOME_VFS=no) - -if test x"$HAVE_GNOME_VFS" = xno; then - AC_MSG_ERROR([You need gnome-vfs2 development packages to compile libgnomevfs2-gmythstream]) -fi - -AC_SUBST(GNOME_VFS_CFLAGS) -AC_SUBST(GNOME_VFS_LIBS) - -dnl Check for gmyth -MYTHSTREAM_REQS=0.1 -PKG_CHECK_MODULES(LIBMYTHSTREAM, - gmyth-stream-client >= $MYTHSTREAM_REQS, - have_libgmythstream=yes, - have_libgmythstream=no) - -if test x"$have_libgmyth" = "xno"; then - AC_MSG_ERROR(gmyth-stream-client, not found) -fi - -AC_SUBST(LIBMYTHSTREAM_CFLAGS) -AC_SUBST(LIBMYTHSTREAM_LIBS) - - -AC_OUTPUT([ -Makefile -modules/Makefile -common/Makefile -m4/Makefile -]) diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/debian/README.Debian --- a/gmyth-stream/libgnomevfs2/debian/README.Debian Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -libgnomevfs2-mythtv for Debian ------------------- - -This package provides the libgnomevfs2 mythtv modules. - - -- Hallyson Melo , Tue, 20 Oct 2006 10:53:12 -0300 diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/debian/changelog --- a/gmyth-stream/libgnomevfs2/debian/changelog Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -libgnomevfs2-gmythstream (0.1.1) unstable; urgency=low - - * Initial release - - -- Hallyson Melo Tue, 20 Oct 2006 10:53:12 -0300 - diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/debian/compat --- a/gmyth-stream/libgnomevfs2/debian/compat Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -4 diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/debian/control --- a/gmyth-stream/libgnomevfs2/debian/control Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -Source: libgnomevfs2-gmythstream -Priority: optional -Maintainer: Hallyson Melo -Build-Depends: debhelper (>= 4.0.0), autotools-dev, cdbs (>= 0.4.0), libglib2.0-dev, gmythstream-client-dev (>= 0.1) -Standards-Version: 3.6.1 -Section: user/library - -Package: libgnomevfs2-gmythstream -Section: user/library -Architecture: any -Depends: libglib2.0-0, gmythstream-client (>= 0.1) -Description: libgnomevfs2-gmythstream - Contains the gnomevfs2 modules for GMythStream protocol. - . - This package contains the libgnomevfs2 gmythstream module. diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/debian/copyright --- a/gmyth-stream/libgnomevfs2/debian/copyright Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -This package was debianized by Hallyson Melo on -Tue, 16 May 2006 10:53:12 -0300. - -Copyright Holder: 2006 INdT - -License: - - This package is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This package 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this package; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -On Debian GNU/Linux systems, the complete text of the GNU Lesser General -Public License can be found in `/usr/share/common-licenses/LGPL'. diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/debian/dirs --- a/gmyth-stream/libgnomevfs2/debian/dirs Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -usr/lib/gnome-vfs-2.0/modules/ -etc/gnome-vfs-2.0/modules/ diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/debian/rules --- a/gmyth-stream/libgnomevfs2/debian/rules Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -#!/usr/bin/make -f - -include /usr/share/cdbs/1/rules/debhelper.mk -include /usr/share/cdbs/1/class/autotools.mk -include /usr/share/cdbs/1/rules/simple-patchsys.mk -include /usr/share/cdbs/1/rules/utils.mk - -# debian package version -version=$(shell dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2) - -maint: debian/control - -common_conf_flags = \ - --disable-debug - -# FIXME: should disable docs for arch only builds -DEB_CONFIGURE_EXTRA_FLAGS := $(common_conf_flags) - -DEB_INSTALL_DOCS_ALL += debian/README.Debian NEWS - -.PHONY: maint diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/m4/Makefile.am --- a/gmyth-stream/libgnomevfs2/m4/Makefile.am Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXTRA_DIST = \ - as-compiler-flag.m4 \ - as-expand.m4 \ - as-version.m4 diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/m4/as-compiler-flag.m4 --- a/gmyth-stream/libgnomevfs2/m4/as-compiler-flag.m4 Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -dnl as-compiler-flag.m4 0.1.0 - -dnl autostars m4 macro for detection of compiler flags - -dnl David Schleef - -dnl $Id: as-compiler-flag.m4,v 1.1.1.1 2005/08/26 00:42:44 andrunko Exp $ - -dnl AS_COMPILER_FLAG(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED]) -dnl Tries to compile with the given CFLAGS. -dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags, -dnl and ACTION-IF-NOT-ACCEPTED otherwise. - -AC_DEFUN([AS_COMPILER_FLAG], -[ - AC_MSG_CHECKING([to see if compiler understands $1]) - - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $1" - - AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no]) - CFLAGS="$save_CFLAGS" - - if test "X$flag_ok" = Xyes ; then - $2 - true - else - $3 - true - fi - AC_MSG_RESULT([$flag_ok]) -]) - diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/m4/as-expand.m4 --- a/gmyth-stream/libgnomevfs2/m4/as-expand.m4 Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -dnl AS_AC_EXPAND(VAR, CONFIGURE_VAR) -dnl -dnl example -dnl AS_AC_EXPAND(SYSCONFDIR, $sysconfdir) -dnl will set SYSCONFDIR to /usr/local/etc if prefix=/usr/local - -AC_DEFUN([AS_AC_EXPAND], -[ - EXP_VAR=[$1] - FROM_VAR=[$2] - - dnl first expand prefix and exec_prefix if necessary - prefix_save=$prefix - exec_prefix_save=$exec_prefix - - dnl if no prefix given, then use /usr/local, the default prefix - if test "x$prefix" = "xNONE"; then - prefix=$ac_default_prefix - fi - dnl if no exec_prefix given, then use prefix - if test "x$exec_prefix" = "xNONE"; then - exec_prefix=$prefix - fi - - full_var="$FROM_VAR" - dnl loop until it doesn't change anymore - while true; do - new_full_var="`eval echo $full_var`" - if test "x$new_full_var"="x$full_var"; then break; fi - full_var=$new_full_var - done - - dnl clean up - full_var=$new_full_var - AC_SUBST([$1], "$full_var") - - dnl restore prefix and exec_prefix - prefix=$prefix_save - exec_prefix=$exec_prefix_save -]) diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/m4/as-version.m4 --- a/gmyth-stream/libgnomevfs2/m4/as-version.m4 Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -dnl version.m4 0.0.5 -dnl autostars m4 macro for versioning -dnl thomas@apestaart.org -dnl -dnl AS_VERSION(PACKAGE, PREFIX, MAJOR, MINOR, MICRO, NANO, ACTION_IF_NO_NANO, ACTION_IF_NANO) -dnl example -dnl AS_VERSION(gstreamer, GST_VERSION, 0, 3, 2,) -dnl for a 0.3.2 release version -dnl -dnl this macro -dnl - defines [$PREFIX]_MAJOR, MINOR and MICRO -dnl - if NANO is empty, then we're in release mode, else in cvs/dev mode -dnl - defines [$PREFIX], VERSION, and [$PREFIX]_RELEASE -dnl - executes the relevant action -dnl - AC_SUBST's PACKAGE, VERSION, [$PREFIX] and [$PREFIX]_RELEASE -dnl as well as the little ones -dnl - doesn't call AM_INIT_AUTOMAKE anymore because it prevents -dnl maintainer mode from running ok -dnl -dnl don't forget to put #undef [$2] and [$2]_RELEASE in acconfig.h - -AC_DEFUN([AS_VERSION], -[ - PACKAGE=[$1] - [$2]_MAJOR_VERSION=[$3] - [$2]_MINOR_VERSION=[$4] - [$2]_MICRO_VERSION=[$5] - NANO=[$6] - [$2]_NANO_VERSION=$NANO - if test "x$NANO" = "x" || test "x$NANO" = "x0"; - then - AC_MSG_NOTICE(configuring [$1] for release) - VERSION=[$3].[$4].[$5] - [$2]_RELEASE=1 - dnl execute action - ifelse([$7], , :, [$7]) - else - AC_MSG_NOTICE(configuring [$1] for development with nano $NANO) - VERSION=[$3].[$4].[$5].$NANO - [$2]_RELEASE=`date +%Y%m%d_%H%M%S` - dnl execute action - ifelse([$8], , :, [$8]) - fi - - [$2]_VERSION=$VERSION - AC_DEFINE_UNQUOTED([$2]_VERSION, "$[$2]_VERSION", [Define the version]) - AC_SUBST([$2]_VERSION) - - AC_SUBST([$2]_RELEASE) - - AC_SUBST([$2]_MAJOR_VERSION) - AC_SUBST([$2]_MINOR_VERSION) - AC_SUBST([$2]_MICRO_VERSION) - AC_SUBST([$2]_NANO_VERSION) - AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Define the package name]) - AC_SUBST(PACKAGE) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Define the version]) - AC_SUBST(VERSION) -]) diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/modules/Makefile.am --- a/gmyth-stream/libgnomevfs2/modules/Makefile.am Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -INCLUDES = \ - -I$(top_srcdir) \ - -I$(top_builddir) \ - $(GNOME_VFS_CFLAGS) \ - $(LIBMYTHSTREAM_CFLAGS) \ - -D_FILE_OFFSET_BITS=64 \ - -D_BSD_SOURCE \ - -D_LARGEFILE64_SOURCE \ - -D_POSIX_PTHREAD_SEMANTICS \ - -D_REENTRANT \ - -DG_DISABLE_DEPRECATED \ - -DG_LOG_DOMAIN=\"gnome-vfs-modules\" - -EXTRA_DIST = \ - gmythstream-module.conf - -modulesconfdir = $(sysconfdir)/gnome-vfs-2.0/modules -modulesconf_DATA = \ - gmythstream-module.conf - -module_flags = -export_dynamic -avoid-version -module -no-undefined -modulesdir = $(libdir)/gnome-vfs-2.0/modules -modules_LTLIBRARIES = libgmythstream.la - -libgmythstream_la_SOURCES = gmythstream-method.c -libgmythstream_la_LDFLAGS = $(module_flags) -libgmythstream_la_LIBADD = \ - $(GNOME_VFS_LIBS) \ - $(LIBMYTHSTREAM_LIBS) diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/modules/gmythstream-method.c --- a/gmyth-stream/libgnomevfs2/modules/gmythstream-method.c Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,363 +0,0 @@ -/* - * @author Artur Duque de Souza - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - m * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include /* for socket(), connect(), send(), and - * recv() */ -#include /* for sockaddr_in and inet_addr() */ -#include /* for atoi() and exit() */ -#include /* for memset() */ -#include /* for close() */ -#include - -#include -#include -#include -#include - -#include -#include - -#define BUFFER_SIZE 4096 - -typedef struct { - gint port; - gchar *hostname; - - GMythStreamClient *stream; - gint fd; -} gmsHandle; - -typedef struct { - gchar *file_name; - gchar *mux; - gchar *vcodec; - guint vbitrate; - gdouble fps; - gchar *acodec; - guint abitrate; - guint width; - guint height; - guint port; - gchar *opt; -} UriArgs; - - -static gmsHandle *gmsHandle_new(GnomeVFSURI * uri); - -static GnomeVFSResult -do_open(GnomeVFSMethod * method, - GnomeVFSMethodHandle ** method_handle, - GnomeVFSURI * uri, - GnomeVFSOpenMode mode, GnomeVFSContext * context); - -static GnomeVFSResult -do_read(GnomeVFSMethod * method, - GnomeVFSMethodHandle * method_handle, - gpointer buffer, - GnomeVFSFileSize bytes, - GnomeVFSFileSize * bytes_read, GnomeVFSContext * context); - -static GnomeVFSResult -do_close(GnomeVFSMethod * method, - GnomeVFSMethodHandle * method_handle, GnomeVFSContext * context); - -static GnomeVFSResult -do_get_file_info(GnomeVFSMethod * method, - GnomeVFSURI * uri, - GnomeVFSFileInfo * file_info, - GnomeVFSFileInfoOptions options, - GnomeVFSContext * context); - - -static GnomeVFSResult -do_get_file_info_from_handle(GnomeVFSMethod * method, - GnomeVFSMethodHandle * method_handle, - GnomeVFSFileInfo * file_info, - GnomeVFSFileInfoOptions options, - GnomeVFSContext * context); - - -static gboolean -do_is_local(GnomeVFSMethod * method, const GnomeVFSURI * uri); - - -static gmsHandle * -gmsHandle_new(GnomeVFSURI * uri) -{ - gmsHandle *handler = (gmsHandle *) g_malloc0(sizeof(gmsHandle)); - - handler->hostname = (gchar *) gnome_vfs_uri_get_host_name(uri); - handler->port = gnome_vfs_uri_get_host_port(uri); - handler->stream = gmyth_stream_client_new(); - - return handler; -} - -static GnomeVFSMethod method = { - sizeof(GnomeVFSMethod), - do_open, /* open */ - NULL, /* create */ - do_close, /* close */ - do_read, /* read */ - NULL, /* write */ - NULL, /* seek */ - NULL, /* tell */ - NULL, /* truncate_handle */ - NULL, /* open_directory */ - NULL, /* close_directory */ - NULL, /* read_directory */ - do_get_file_info, /* get_file_info */ - do_get_file_info_from_handle, /* get_file_info_from_handle */ - do_is_local, /* is_local */ - NULL, /* make_directory */ - NULL, /* remove_directory */ - NULL, /* move */ - NULL, /* unlink */ - NULL, /* check_same_fs */ - NULL, /* set_file_info */ - NULL, /* truncate */ - NULL, /* find_directory */ - NULL, /* create_symbolic_link */ - NULL, /* monitor_add */ - NULL, /* monitor_cancel */ - NULL /* file_control */ -}; - -GnomeVFSMethod * -vfs_module_init(const char *method_name, const char *args) -{ - return &method; -} - -void -vfs_module_shutdown(GnomeVFSMethod * method) -{ - return; -} - -char * -_parse_opt(char *opt) -{ - char **list = g_strsplit(opt, "opt=", 2); - char **opts = g_strsplit(list[1], "+", 32); - char *value = ""; - char *aux; - gint i = 0; - - for (aux = opts[0]; aux != NULL; aux = opts[++i]) - value = g_strdup_printf("%s %s", value, aux); - - g_free(aux); - g_strfreev(list); - g_strfreev(opts); - return value; -} - -static UriArgs * -_uri_parse_args(const GnomeVFSURI * uri) -{ - gchar *file = gnome_vfs_unescape_string(uri->text, NULL); - - gchar **list = g_strsplit(file, "\'", 3); - gchar **prefix = g_strsplit_set(list[0], "/=", 3); - gchar **lst = g_strsplit(list[2], "?", 0); - - UriArgs *info = g_new0(UriArgs, 1); - gint i = 1; - - gchar **prop = NULL; - prop = g_strsplit_set(lst[0], "/=", 3); - - info->file_name = g_strdup_printf("%s://%s", prefix[1], list[1]); - - // g_debug("FILENAME: [%s]", info->file_name); - - g_strfreev(prop); - - gchar *walk; - for (walk = lst[1]; walk != NULL; walk = lst[++i]) { - prop = g_strsplit(walk, "=", 2); - - if (g_strv_length(prop) == 2) { - if (strcmp(prop[0], "mux") == 0) { - info->mux = g_strdup(prop[1]); - } else if (strcmp(prop[0], "vcodec") == 0) { - info->vcodec = g_strdup(prop[1]); - } else if (strcmp(prop[0], "vbitrate") == 0) { - info->vbitrate = atoi(prop[1]); - } else if (strcmp(prop[0], "fps") == 0) { - info->fps = g_strtod(prop[1], NULL); - } else if (strcmp(prop[0], "acodec") == 0) { - info->acodec = g_strdup(prop[1]); - } else if (strcmp(prop[0], "abitrate") == 0) { - info->abitrate = atoi(prop[1]); - } else if (strcmp(prop[0], "width") == 0) { - info->width = atoi(prop[1]); - } else if (strcmp(prop[0], "height") == 0) { - info->height = atoi(prop[1]); - } else if (strcmp(prop[0], "opt") == 0) { - info->opt = g_strdup(_parse_opt(walk)); - } - } - g_strfreev(prop); - } - - g_free(file); - g_strfreev(list); - g_strfreev(prefix); - g_strfreev(lst); - return info; -} - -static GnomeVFSResult -do_open(GnomeVFSMethod * method, - GnomeVFSMethodHandle ** method_handle, - GnomeVFSURI * uri, - GnomeVFSOpenMode mode, GnomeVFSContext * context) -{ - gmsHandle *handle = gmsHandle_new(uri); - UriArgs *args; - - if (!gmyth_stream_client_connect(handle->stream, - gnome_vfs_uri_get_host_name(uri), - gnome_vfs_uri_get_host_port(uri))) { - - return GNOME_VFS_ERROR_HOST_NOT_FOUND; - } - - args = _uri_parse_args(uri); - - gint ret = gmyth_stream_client_open_stream(handle->stream, - args->file_name, - args->mux, - args->vcodec, - args->vbitrate, - args->fps, - args->acodec, - args->abitrate, - args->width, - args->height, - args->opt); - - g_free(args); - - if (ret == -1) { - gmyth_stream_client_disconnect(handle->stream); - return GNOME_VFS_ERROR_HOST_NOT_FOUND; - } - - handle->fd = gmyth_stream_client_play_stream(handle->stream); - - if (handle->fd == -1) { - gmyth_stream_client_disconnect(handle->stream); - return GNOME_VFS_ERROR_HOST_NOT_FOUND; - } - - *method_handle = (GnomeVFSMethodHandle *) handle; - return GNOME_VFS_OK; -} - -static GnomeVFSResult -do_read(GnomeVFSMethod * method, - GnomeVFSMethodHandle * method_handle, - gpointer buffer, - GnomeVFSFileSize bytes, - GnomeVFSFileSize * bytes_read, GnomeVFSContext * context) -{ - - gint64 total_read = 0; - gmsHandle *handle = (gmsHandle *) method_handle; - - // g_debug("waiting something"); - - total_read = recv(handle->fd, buffer, BUFFER_SIZE, 0); - // g_debug("COULD READ: %d bytes", total_read); - *bytes_read = (GnomeVFSFileSize) total_read; - - // if (total_read < 0) g_debug("ERROR!!!!!!!!!!!!!!!!"); - - if (total_read < 0) - return GNOME_VFS_ERROR_INTERNAL; - else - return GNOME_VFS_OK; - -} - -static GnomeVFSResult -do_close(GnomeVFSMethod * method, - GnomeVFSMethodHandle * method_handle, GnomeVFSContext * context) -{ - gmsHandle *handle = (gmsHandle *) method_handle; - - g_debug("close close close"); - - gmyth_stream_client_close_stream(handle->stream); - gmyth_stream_client_disconnect(handle->stream); - - g_free(handle); - return GNOME_VFS_OK; -} - - -static GnomeVFSResult -do_get_file_info(GnomeVFSMethod * method, - GnomeVFSURI * uri, - GnomeVFSFileInfo * file_info, - GnomeVFSFileInfoOptions options, - GnomeVFSContext * context) -{ - file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_TYPE | - GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; - - file_info->type = GNOME_VFS_FILE_TYPE_SOCKET; - - file_info->permissions = GNOME_VFS_PERM_USER_READ | - GNOME_VFS_PERM_OTHER_READ | GNOME_VFS_PERM_GROUP_READ; - - return GNOME_VFS_OK; -} - - -static GnomeVFSResult -do_get_file_info_from_handle(GnomeVFSMethod * method, - GnomeVFSMethodHandle * method_handle, - GnomeVFSFileInfo * file_info, - GnomeVFSFileInfoOptions options, - GnomeVFSContext * context) -{ - file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_TYPE | - GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; - - file_info->type = GNOME_VFS_FILE_TYPE_SOCKET; - - file_info->permissions = GNOME_VFS_PERM_USER_READ | - GNOME_VFS_PERM_OTHER_READ | GNOME_VFS_PERM_GROUP_READ; - - return GNOME_VFS_OK; -} - - -static gboolean -do_is_local(GnomeVFSMethod * method, const GnomeVFSURI * uri) -{ - return FALSE; -} diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth-stream/libgnomevfs2/modules/gmythstream-module.conf --- a/gmyth-stream/libgnomevfs2/modules/gmythstream-module.conf Wed Aug 29 10:00:25 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -gmyth: gmythstream diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth/src/gmyth_monitor_handler.c --- a/gmyth/src/gmyth_monitor_handler.c Wed Aug 29 10:00:25 2007 +0100 +++ b/gmyth/src/gmyth_monitor_handler.c Wed Aug 29 14:29:24 2007 +0100 @@ -70,7 +70,9 @@ #define GMYTHTV_ENABLE_DEBUG 1 #endif -gpointer gmyth_monitor_handler_listener(gpointer data); +static gboolean gmyth_monitor_handler_listener (GIOChannel *io_channel, + GIOCondition condition, + gpointer data); static void gmyth_monitor_handler_default_listener(GMythMonitorHandler * monitor, @@ -92,51 +94,10 @@ void gmyth_monitor_handler_close(GMythMonitorHandler * monitor); -G_DEFINE_TYPE(GMythMonitorHandler, gmyth_monitor_handler, G_TYPE_OBJECT) - static void +G_DEFINE_TYPE(GMythMonitorHandler, gmyth_monitor_handler, G_TYPE_OBJECT); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - gmyth_monitor_handler_class_init(GMythMonitorHandlerClass * klass) +static void +gmyth_monitor_handler_class_init(GMythMonitorHandlerClass * klass) { GObjectClass *gobject_class; GMythMonitorHandlerClass *gmonitor_class; @@ -169,23 +130,11 @@ monitor->hostname = NULL; monitor->port = 0; monitor->actual_index = 0; - monitor->allow_msgs_listener = FALSE; - - /* - * monitor->backend_msgs = g_hash_table_new( g_int_hash, g_int_equal - * ); - */ - /* * it is used for signalizing the event socket consumer thread */ monitor->mutex = g_mutex_new(); - - monitor->th = NULL; - - monitor->gmyth_monitor_handler_listener = - gmyth_monitor_handler_listener; } static void @@ -197,14 +146,9 @@ monitor->allow_msgs_listener = FALSE; - if (monitor->th != NULL) { - gboolean *ret = (gboolean *) g_thread_join(monitor->th); - - if (*ret == FALSE) - gmyth_debug("Error closing GThread listener socket!"); - else - gmyth_debug("Closed GThread listener socket."); - // g_object_unref( monitor->th ); + if (monitor->io_source != 0) { + g_source_remove (monitor->io_source); + monitor->io_source = 0; } /* @@ -226,6 +170,7 @@ monitor->hostname = NULL; } + if (monitor->backend_msgs != NULL) { g_hash_table_destroy(monitor->backend_msgs); monitor->backend_msgs = NULL; @@ -236,6 +181,7 @@ * io_watcher_cond = NULL; } */ + G_OBJECT_CLASS(gmyth_monitor_handler_parent_class)->dispose(object); } @@ -353,30 +299,22 @@ gmyth_debug("Monitor event socket --- hostname: %s, port %d\n", monitor->hostname, monitor->port); - if (NULL != monitor->event_sock) { + if (monitor->event_sock != NULL) { g_object_unref(monitor->event_sock); monitor->event_sock = NULL; } /* - * configure the event socket + * configure the event socket */ - if (NULL == monitor->event_sock) { - if (!gmyth_connect_to_backend_monitor(monitor)) { - gmyth_debug("Connection to backend failed (Event Socket)!"); - ret = FALSE; - } else { - gmyth_debug - ("Remote monitor event socket had been succesfully created. (io_fd == %d)\n", - g_io_channel_unix_get_fd(monitor->event_sock->sd_io_ch)); - } + if (!gmyth_connect_to_backend_monitor(monitor)) { + gmyth_debug("Connection to backend failed (Event Socket)!"); + ret = FALSE; } else { - gmyth_debug - ("ASSERT ERROR: Remote monitor event socket is not NULL at the setup...\n"); + gmyth_debug ("Remote monitor event socket had been succesfully create"); } return ret; - } /** @@ -493,122 +431,73 @@ * @return Pointer to a gboolean true value, if the data was * successfully read. */ -gpointer -gmyth_monitor_handler_listener(gpointer data) +static gboolean +gmyth_monitor_handler_listener (GIOChannel *io_channel, + GIOCondition io_cond, + gpointer data) { - GMythMonitorHandler *monitor = (GMythMonitorHandler *) data; + GMythMonitorHandler *monitor; guint recv = 0; - gboolean *ret = g_new0(gboolean, 1); gsize len = 0; - GIOChannel *io_channel = monitor->event_sock->sd_io_ch; - GIOCondition io_cond = - g_io_channel_get_buffer_condition(io_channel); - static guint count = 0; + GMythStringList *strlist = NULL; + gint bytes_sent = 0; - *ret = TRUE; + monitor = (GMythMonitorHandler *) data; gmyth_debug("Entering MONITOR handler listener..."); myth_control_acquire_context(monitor, TRUE); - if ((io_cond & G_IO_HUP) != 0) { - *ret = FALSE; + if (((io_cond & G_IO_HUP) != 0) || + ((io_cond & G_IO_ERR) != 0)) { goto clean_up; } - GMythStringList *strlist = NULL; - if (NULL == io_channel) { - gmyth_debug("Monitor socket is NULL! (GIOChannel)"); - *ret = FALSE; - goto clean_up; + gmyth_debug("Listening on Monitor socket...!\n"); + strlist = gmyth_string_list_new(); + + len = gmyth_socket_read_stringlist(monitor->event_sock, strlist); + if ((len > 0) && strlist != NULL && gmyth_string_list_length(strlist) > 0) { + gchar *back_msg_action; + gint msg_type; + + bytes_sent = gmyth_string_list_get_int(strlist, 0); + // on backend error + gmyth_debug ("received data buffer from IO event channel... %d strings gone!\n", len); + recv += len; + + /* + * debug purpose: prints out all the string list + * elements + */ + g_list_foreach(strlist->glist, + (GFunc) gmyth_monitor_handler_print, + NULL); + + back_msg_action = g_new0(gchar, 1); + msg_type = gmyth_monitor_handler_is_backend_message(monitor, + strlist, + &back_msg_action); + + if (msg_type != GMYTH_BACKEND_NO_MESSAGE) { + g_signal_emit(monitor, + GMYTH_MONITOR_HANDLER_GET_CLASS(monitor)->backend_events_handler_signal_id, + 0, msg_type, back_msg_action); + } + + if (back_msg_action != NULL) + g_free(back_msg_action); + + g_object_unref(strlist); } - while (monitor->allow_msgs_listener) { - ++count; - - gmyth_debug("%d - Listening on Monitor socket...!\n", count); - - do { - - gint bytes_sent = 0; - - strlist = gmyth_string_list_new(); - - if (monitor->event_sock != NULL) { - - len = - gmyth_socket_read_stringlist(monitor->event_sock, - strlist); - - if ((len > 0) && strlist != NULL - && gmyth_string_list_length(strlist) > 0) { - bytes_sent = gmyth_string_list_get_int(strlist, 0); // -1 - // - // - // on - // backend - // error - - gmyth_debug - ("[%s] MONITOR: received data buffer from IO event channel... %d strings gone!\n", - __FUNCTION__, len); - - recv += len; - - /* - * debug purpose: prints out all the string list - * elements - */ - g_list_foreach(strlist->glist, - (GFunc) gmyth_monitor_handler_print, - NULL); - - gchar *back_msg_action = g_new0(gchar, 1); - gint msg_type = - gmyth_monitor_handler_is_backend_message(monitor, - strlist, - &back_msg_action); - - if (monitor != NULL - && msg_type != GMYTH_BACKEND_NO_MESSAGE) - g_signal_emit(monitor, GMYTH_MONITOR_HANDLER_GET_CLASS(monitor)->backend_events_handler_signal_id, 0, /* details - */ - msg_type, back_msg_action); - - if (back_msg_action != NULL) - g_free(back_msg_action); - - } - - } - - if (strlist != NULL) { - g_object_unref(strlist); - strlist = NULL; - } - - io_cond = g_io_channel_get_buffer_condition(io_channel); - - g_usleep(500); - - } - while (recv <= 0 && ((io_cond & G_IO_HUP) == 0)); - - gmyth_debug("\tMONITOR EVENT: Read %d bytes\n", recv); - - } /* main GThread while */ - - clean_up: +clean_up: myth_control_release_context(monitor); - - g_thread_exit(ret); - - return (gpointer) ret; - + return TRUE; } -/** +/** * Opens connection events' socket the the Monitor socket on * MythTV backend server. * @@ -616,7 +505,7 @@ * * @return true, if the socket was successfully opened. */ -static gboolean +static gboolean gmyth_connect_to_backend_monitor(GMythMonitorHandler * monitor) { gboolean ret = TRUE; @@ -625,7 +514,7 @@ /* * Connects the socket, send Mythtv ANN Monitor and verify Mythtv - * protocol version + * protocol version */ if (!gmyth_socket_connect_to_backend_events(monitor->event_sock, monitor->hostname, @@ -638,52 +527,38 @@ return ret; } -/** +/** * Opens connection the the Monitor socket on MythTV backend server, * where all status messages are notified to the client. - * + * * @param monitor The GMythMonitorHandler instance. * @param channel The GIOChannel instance to the Monitor socket. - * + * * @return Pointer to the boolean value, and it is true only if the - * GMythMonitorHandler could be configured. + * GMythMonitorHandler could be configured. */ -static gboolean +static gboolean gmyth_monitor_handler_setup(GMythMonitorHandler * monitor, GIOChannel * channel) { - gboolean ret = TRUE; + gboolean ret = TRUE; if (channel != NULL) { monitor->allow_msgs_listener = TRUE; - - monitor->th = - g_thread_create((GThreadFunc) gmyth_monitor_handler_listener, - monitor, TRUE, NULL); - gmyth_debug("MONITOR GThread created!"); + monitor->io_source = g_io_add_watch (channel, G_IO_IN | G_IO_ERR | G_IO_HUP, + gmyth_monitor_handler_listener, + monitor); } else { ret = FALSE; - goto cleanup; } - - if (NULL == monitor->th) { - gmyth_debug - ("[%s] Error adding GThread listener function to the IO control channel!\n", - __FUNCTION__); - ret = FALSE; - goto cleanup; - } - - cleanup: - return ret; } -/** +/** * Starts the MonitorHandler thread to the GIOWatcher. - * + * * @param monitor The GMythMonitorHandler instance. - * + * * @return true, if the MonitorHandler was started. */ gboolean diff -r 0e159c5e2d32 -r e2baa6947dbf gmyth/src/gmyth_monitor_handler.h --- a/gmyth/src/gmyth_monitor_handler.h Wed Aug 29 10:00:25 2007 +0100 +++ b/gmyth/src/gmyth_monitor_handler.h Wed Aug 29 14:29:24 2007 +0100 @@ -63,12 +63,12 @@ GObjectClass parent_class; /* - * callbacks + * callbacks */ guint backend_events_handler_signal_id; /* - * signal default handlers + * signal default handlers */ void (*backend_events_handler) (GMythMonitorHandler * monitor, gint msg_code, @@ -88,13 +88,7 @@ */ GMythSocket *event_sock; - - - - - - - gpointer(*gmyth_monitor_handler_listener) (gpointer data); + //gpointer(*gmyth_monitor_handler_listener) (gpointer data); gchar *hostname; gint port; @@ -109,9 +103,7 @@ GHashTable *backend_msgs; GMutex *mutex; - - GThread *th; - + guint io_source; }; GType gmyth_monitor_handler_get_type(void);