This file is indexed.

/usr/include/gstreamermm-1.0/gstreamermm/parse.h is in libgstreamermm-1.0-dev 1.10.0+dfsg-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
// Generated by gmmproc 2.50.1 -- DO NOT MODIFY!
#ifndef _GSTREAMERMM_PARSE_H
#define _GSTREAMERMM_PARSE_H


#include <glibmm/ustring.h>
#include <sigc++/sigc++.h>

/* gstreamermm - a C++ wrapper for gstreamer
 *
 * Copyright 2008 The gstreamermm Development Team
 *
 * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include <gst/gst.h>


namespace Gst
{

class Element;

/**  The different parsing errors that can occur.
 *
 * - SYNTAX - A syntax error occured.
 * - NO_SUCH_ELEMENT - The description contained an unknown element
 * - NO_SUCH_PROPERTY - An element did not have a specified property
 * - LINK - There was an error linking two pads.
 * - COULD_NOT_SET_PROPERTY - There was an error setting a property
 * - EMPTY_BIN - An empty bin was specified.
 * - EMPTY - An empty description was specified
 */
class ParseError : public Glib::Error
{
public:
  /**  @var Code SYNTAX
   * A syntax error occurred.
   * 
   *  @var Code NO_SUCH_ELEMENT
   * The description contained an unknown element.
   * 
   *  @var Code NO_SUCH_PROPERTY
   * An element did not have a specified property.
   * 
   *  @var Code LINK
   * There was an error linking two pads.
   * 
   *  @var Code COULD_NOT_SET_PROPERTY
   * There was an error setting a property.
   * 
   *  @var Code EMPTY_BIN
   * An empty bin was specified.
   * 
   *  @var Code EMPTY
   * An empty description was specified.
   * 
   *  @var Code DELAYED_LINK
   * A delayed link did not get resolved.
   * 
   *  @enum Code
   * 
   * The different parsing errors that can occur.
   */
  enum Code
  {
    SYNTAX,
    NO_SUCH_ELEMENT,
    NO_SUCH_PROPERTY,
    LINK,
    COULD_NOT_SET_PROPERTY,
    EMPTY_BIN,
    EMPTY,
    DELAYED_LINK
  };

  ParseError(Code error_code, const Glib::ustring& error_message);
  explicit ParseError(GError* gobject);
  Code code() const;

#ifndef DOXYGEN_SHOULD_SKIP_THIS
private:

  static void throw_func(GError* gobject);

  friend void wrap_init(); // uses throw_func()

  #endif //DOXYGEN_SHOULD_SKIP_THIS
};

} // namespace Gst

#ifndef DOXYGEN_SHOULD_SKIP_THIS
namespace Glib
{

template <>
class Value<Gst::ParseError::Code> : public Glib::Value_Enum<Gst::ParseError::Code>
{
public:
  static GType value_type() G_GNUC_CONST;
};

} // namespace Glib
#endif /* DOXYGEN_SHOULD_SKIP_THIS */

namespace Gst
{


/** A class that gets a pipeline from a text pipeline description.
 * The methods in this class allow to create a pipeline based on the syntax
 * used in the gst-launch utillity.
 */
class Parse
{
public:
  /** Get the error quark used by the parsing subsystem.
   * @return The quark of the parse errors.
   */
  static Glib::QueryQuark error_quark();

  /** Create a new pipeline based on command line syntax. Please note that you
   * might get a return value that is not a null RefPtr<> even though the error
   * is set. In this case there was a recoverable parsing error and you can try
   * to play the pipeline.
   * @param pipeline_description The command line describing the pipeline.
   * @return A new element on success, a null RefPtr<> on failure. If more than
   * one toplevel element is specified by the pipeline_description, all
   * elements are put into a Gst::Pipeline, which than is returned.
   * @throw Gst::CoreError
   * @throw Gst::ParseError
   */
  static Glib::RefPtr<Gst::Element> launch(const Glib::ustring& pipeline_description);

  /** Create a new element based on command line syntax. An error does not
   * mean that the pipeline could not be constructed.
   * @param argv null-terminated array of arguments.
   * specified. 
   * @return A new element on success and null on failure.
   * @throw Gst::CoreError
   * @throw Gst::ParseError
   */
  static Glib::RefPtr<Gst::Element> launchv(const gchar *argv[]);

  /** This is a convenience wrapper around launch() to create a Gst::Bin from a
   * gst-launch-style pipeline description. See launch() and the gst-launch man
   * page for details about the syntax. Ghost pads on the bin for unconnected
   * source or sink pads within the bin can automatically be created (but only
   * a maximum of one ghost pad for each direction will be created; if you
   * expect multiple unconnected source pads or multiple unconnected sink pads
   * and want them all ghosted, you will have to create the ghost pads
   * yourself).
   *
   * @param bin_description Command line describing the bin.
   * @param ghost_unconnected_pads Whether to automatically create ghost pads
   * for unconnected source or sink pads within the bin.
   * @return A newly-created bin, or a null RefPtr<> if an error occurred.
   * @throw Gst::CoreError
   * @throw Gst::ParseError
   */
  static Glib::RefPtr<Gst::Element> create_bin(const Glib::ustring& bin_description, bool ghost_unconnected_pads);
};

} // namespace Gst


#endif /* _GSTREAMERMM_PARSE_H */