mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 09:10:36 +00:00
Merge branch 'master' into 0.11-fdo
This commit is contained in:
commit
95f7fd8edf
14 changed files with 289 additions and 34 deletions
18
configure.ac
18
configure.ac
|
@ -135,18 +135,20 @@ dnl *** checks for programs ***
|
|||
dnl find a compiler
|
||||
AC_PROG_CC
|
||||
AC_PROG_CC_STDC
|
||||
AC_PROG_CXX
|
||||
|
||||
dnl determine if c++ is available on this system
|
||||
AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
|
||||
|
||||
dnl determine c++ preprocessor
|
||||
dnl FIXME: do we need this ?
|
||||
AC_PROG_CXXCPP
|
||||
|
||||
dnl check if the compiler supports '-c' and '-o' options
|
||||
AM_PROG_CC_C_O
|
||||
|
||||
dnl determine if c++ is available on this system
|
||||
AC_PROG_CXX
|
||||
dnl CXX may be set to some default even if no c++ compiler is available
|
||||
dnl (thanks autotools!), so just try to compile some c++ code to make sure
|
||||
AC_LANG_PUSH([C++])
|
||||
AC_TRY_COMPILE([ class Foo { int bar; };], , working_cxx=yes, working_cxx=no)
|
||||
AC_LANG_POP([C++])
|
||||
AC_MSG_NOTICE([working c++ compiler found: $working_cxx])
|
||||
AM_CONDITIONAL(HAVE_CXX, test "x$working_cxx" = "xyes")
|
||||
|
||||
AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
|
||||
AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
|
||||
|
||||
|
|
|
@ -835,6 +835,7 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux)
|
|||
GST_DEBUG_OBJECT (ogg_mux,
|
||||
"got header buffer in control state, ignoring");
|
||||
/* just ignore */
|
||||
pad->map.n_header_packets_seen++;
|
||||
gst_buffer_unref (buf);
|
||||
buf = NULL;
|
||||
} else {
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
* the text set via the "text" property will be rendered. If the text sink
|
||||
* pad is linked, text will be rendered as it is received on that pad,
|
||||
* honouring and matching the buffer timestamps of both input streams.
|
||||
*
|
||||
*
|
||||
* The text can contain newline characters and text wrapping is enabled by
|
||||
* default.
|
||||
*
|
||||
|
@ -41,7 +41,7 @@
|
|||
* |[
|
||||
* gst-launch -v videotestsrc ! textoverlay text="Room A" valign=top halign=left ! xvimagesink
|
||||
* ]| Here is a simple pipeline that displays a static text in the top left
|
||||
* corner of the video picture
|
||||
* corner of the video picture
|
||||
* |[
|
||||
* gst-launch -v filesrc location=subtitles.srt ! subparse ! txt. videotestsrc ! timeoverlay ! textoverlay name=txt shaded-background=yes ! xvimagesink
|
||||
* ]| Here is another pipeline that displays subtitles from an .srt subtitle
|
||||
|
@ -54,12 +54,12 @@
|
|||
* 1
|
||||
* 00:00:03,000 --> 00:00:05,000
|
||||
* Hello? (3-5s)
|
||||
*
|
||||
*
|
||||
* 2
|
||||
* 00:00:08,000 --> 00:00:13,000
|
||||
* Yes, this is a subtitle. Don't
|
||||
* you like it? (8-13s)
|
||||
*
|
||||
*
|
||||
* 3
|
||||
* 00:00:18,826 --> 00:01:02,886
|
||||
* Uh? What are you talking about?
|
||||
|
@ -375,6 +375,8 @@ gst_text_overlay_class_init (GstTextOverlayClass * klass)
|
|||
gstelement_class->change_state =
|
||||
GST_DEBUG_FUNCPTR (gst_text_overlay_change_state);
|
||||
|
||||
klass->pango_lock = g_mutex_new ();
|
||||
|
||||
klass->get_text = gst_text_overlay_get_text;
|
||||
fontmap = pango_cairo_font_map_get_default ();
|
||||
klass->pango_context =
|
||||
|
@ -1235,6 +1237,8 @@ gst_text_overlay_render_pangocairo (GstTextOverlay * overlay,
|
|||
double scalef = 1.0;
|
||||
double a, r, g, b;
|
||||
|
||||
g_mutex_lock (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
|
||||
|
||||
if (overlay->auto_adjust_size) {
|
||||
/* 640 pixel is default */
|
||||
scalef = (double) (overlay->width) / DEFAULT_SCALE_BASIS;
|
||||
|
@ -1250,8 +1254,8 @@ gst_text_overlay_render_pangocairo (GstTextOverlay * overlay,
|
|||
|
||||
if (width + overlay->deltax >
|
||||
(overlay->use_vertical_render ? overlay->height : overlay->width)) {
|
||||
/*
|
||||
* subtitle image width is larger then overlay width
|
||||
/*
|
||||
* subtitle image width is larger then overlay width
|
||||
* so rearrange overlay wrap mode.
|
||||
*/
|
||||
gst_text_overlay_update_wrap_mode (overlay);
|
||||
|
@ -1298,6 +1302,8 @@ gst_text_overlay_render_pangocairo (GstTextOverlay * overlay,
|
|||
cairo_matrix_init_scale (&cairo_matrix, scalef, scalef);
|
||||
}
|
||||
|
||||
g_mutex_unlock (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
|
||||
|
||||
/* reallocate surface */
|
||||
overlay->text_image = g_realloc (overlay->text_image, 4 * width * height);
|
||||
|
||||
|
|
|
@ -155,6 +155,7 @@ struct _GstTextOverlayClass {
|
|||
GstElementClass parent_class;
|
||||
|
||||
PangoContext *pango_context;
|
||||
GMutex *pango_lock;
|
||||
|
||||
gchar * (*get_text) (GstTextOverlay *overlay, GstBuffer *video_frame);
|
||||
};
|
||||
|
|
|
@ -443,6 +443,15 @@ uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad,
|
|||
{
|
||||
PrivateStream *ps;
|
||||
GstPad *sinkpad = NULL;
|
||||
GstCaps *caps;
|
||||
static GstCaps *subs_caps = NULL;
|
||||
|
||||
if (!subs_caps) {
|
||||
subs_caps = gst_caps_from_string ("text/plain; text/x-pango-markup; "
|
||||
"subpicture/x-pgs; subpicture/x-dvb; application/x-subtitle-unknown; "
|
||||
"application/x-ssa; application/x-ass; subtitle/x-kate; "
|
||||
"video/x-dvd-subpicture; ");
|
||||
}
|
||||
|
||||
GST_DEBUG_OBJECT (dc, "pad %s:%s", GST_DEBUG_PAD_NAME (pad));
|
||||
|
||||
|
@ -459,6 +468,16 @@ uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad,
|
|||
g_object_set (ps->sink, "silent", TRUE, NULL);
|
||||
g_object_set (ps->queue, "max-size-buffers", 1, "silent", TRUE, NULL);
|
||||
|
||||
caps = gst_pad_get_caps_reffed (pad);
|
||||
|
||||
if (gst_caps_can_intersect (caps, subs_caps)) {
|
||||
/* Subtitle streams are sparse and don't provide any information - don't
|
||||
* wait for data to preroll */
|
||||
g_object_set (ps->sink, "async", FALSE, NULL);
|
||||
}
|
||||
|
||||
gst_caps_unref (caps);
|
||||
|
||||
gst_bin_add_many (dc->priv->pipeline, ps->queue, ps->sink, NULL);
|
||||
|
||||
if (!gst_element_link_pads_full (ps->queue, "src", ps->sink, "sink",
|
||||
|
|
|
@ -1698,9 +1698,9 @@ gst_encode_bin_set_profile (GstEncodeBin * ebin, GstEncodingProfile * profile)
|
|||
}
|
||||
|
||||
/* If we're not active, we can deactivate the previous profile */
|
||||
if (ebin->profile)
|
||||
gst_encoding_profile_unref (ebin->profile);
|
||||
ebin->profile = NULL;
|
||||
if (ebin->profile) {
|
||||
gst_encode_bin_tear_down_profile (ebin);
|
||||
}
|
||||
|
||||
return gst_encode_bin_setup_profile (ebin, profile);
|
||||
}
|
||||
|
|
|
@ -678,7 +678,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
|
|||
* If this function returns NULL, @pad will be exposed as a final caps.
|
||||
*
|
||||
* If this function returns an empty array, the pad will be considered as
|
||||
* having an unhandled type media type.
|
||||
* having an unhandled type media type.
|
||||
*
|
||||
* <note>
|
||||
* Only the signal handler that is connected first will ever by invoked.
|
||||
|
@ -2696,10 +2696,12 @@ gst_decode_group_new (GstDecodeBin * dbin, GstDecodeChain * parent)
|
|||
if (G_UNLIKELY (!group->multiqueue))
|
||||
goto missing_multiqueue;
|
||||
|
||||
g_object_set (mq, "use-buffering", dbin->use_buffering, NULL);
|
||||
/* default is for use-buffering is FALSE */
|
||||
if (dbin->use_buffering) {
|
||||
g_object_set (mq, "low-percent", dbin->low_percent, NULL);
|
||||
g_object_set (mq, "high-percent", dbin->high_percent, NULL);
|
||||
g_object_set (mq,
|
||||
"use-buffering", TRUE,
|
||||
"low-percent", dbin->low_percent,
|
||||
"high-percent", dbin->high_percent, NULL);
|
||||
}
|
||||
|
||||
/* configure queue sizes for preroll */
|
||||
|
|
|
@ -705,7 +705,7 @@ queue_threshold_reached (GstElement * queue, GstPlayBaseBin * play_base_bin)
|
|||
}
|
||||
|
||||
/* this signal will be fired when one of the queues with raw
|
||||
* data is filled. This means that the group building stage is over
|
||||
* data is filled. This means that the group building stage is over
|
||||
* and playback of the new queued group should start. This is a rather unusual
|
||||
* situation because normally the group is commited when the "no_more_pads"
|
||||
* signal is fired.
|
||||
|
@ -843,7 +843,7 @@ gen_preroll_element (GstPlayBaseBin * play_base_bin,
|
|||
|
||||
/* the overrun signal is always attached and serves two purposes:
|
||||
*
|
||||
* 1) when we are building a group and the overrun is called, we commit the
|
||||
* 1) when we are building a group and the overrun is called, we commit the
|
||||
* group. The reason being that if we fill the entire queue without a
|
||||
* normal group commit (with _no_more_pads()) we can assume the
|
||||
* audio/video is completely wacked or the element just does not know when
|
||||
|
@ -1252,7 +1252,7 @@ probe_triggered (GstPad * pad, GstEvent * event, gpointer user_data)
|
|||
|
||||
/* This function will be called when the sinkpad of the preroll element
|
||||
* is unlinked, we have to connect something to the sinkpad or else the
|
||||
* state change will fail..
|
||||
* state change will fail..
|
||||
*/
|
||||
static void
|
||||
preroll_unlinked (GstPad * pad, GstPad * peerpad,
|
||||
|
@ -1315,8 +1315,8 @@ silence_stream (GstPad * pad, GstMiniObject * data, gpointer user_data)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/* Called by the signal handlers when a decodebin (main or subtitle) has
|
||||
* found a new raw pad. We create a preroll element if needed and the
|
||||
/* Called by the signal handlers when a decodebin (main or subtitle) has
|
||||
* found a new raw pad. We create a preroll element if needed and the
|
||||
* appropriate streaminfo. Commits the group if there will be no more pads
|
||||
* from decodebin */
|
||||
static void
|
||||
|
@ -1936,7 +1936,7 @@ analyse_source (GstPlayBaseBin * play_base_bin, gboolean * is_raw,
|
|||
if (GST_PAD_TEMPLATE_DIRECTION (templ) == GST_PAD_SRC) {
|
||||
if (GST_PAD_TEMPLATE_PRESENCE (templ) == GST_PAD_SOMETIMES) {
|
||||
*is_dynamic = TRUE;
|
||||
break; /* only break out if we found a sometimes src pad
|
||||
break; /* only break out if we found a sometimes src pad
|
||||
continue walking through if say a request src pad is found
|
||||
elements such as mpegtsparse and dvbbasebin have request
|
||||
and sometimes src pads */
|
||||
|
|
|
@ -2426,7 +2426,7 @@ notify_tags_cb (GObject * object, GParamSpec * pspec, gpointer user_data)
|
|||
}
|
||||
|
||||
/* this function is called when a new pad is added to decodebin. We check the
|
||||
* type of the pad and add it to the selector element of the group.
|
||||
* type of the pad and add it to the selector element of the group.
|
||||
*/
|
||||
static void
|
||||
pad_added_cb (GstElement * decodebin, GstPad * pad, GstSourceGroup * group)
|
||||
|
@ -3431,7 +3431,7 @@ deactivate_group (GstPlayBin * playbin, GstSourceGroup * group)
|
|||
}
|
||||
|
||||
/* setup the next group to play, this assumes the next_group is valid and
|
||||
* configured. It swaps out the current_group and activates the valid
|
||||
* configured. It swaps out the current_group and activates the valid
|
||||
* next_group. */
|
||||
static gboolean
|
||||
setup_next_source (GstPlayBin * playbin, GstState target)
|
||||
|
|
|
@ -1333,7 +1333,7 @@ static GstStaticCaps dts_caps = GST_STATIC_CAPS ("audio/x-dts");
|
|||
|
||||
static gboolean
|
||||
dts_parse_frame_header (DataScanCtx * c, guint * frame_size,
|
||||
guint * sample_rate, guint * channels)
|
||||
guint * sample_rate, guint * channels, guint * depth, guint * endianness)
|
||||
{
|
||||
static const int sample_rates[16] = { 0, 8000, 16000, 32000, 0, 0, 11025,
|
||||
22050, 44100, 0, 0, 12000, 24000, 48000, 96000, 192000
|
||||
|
@ -1349,11 +1349,13 @@ dts_parse_frame_header (DataScanCtx * c, guint * frame_size,
|
|||
|
||||
/* raw big endian or 14-bit big endian */
|
||||
if (marker == 0x7FFE8001 || marker == 0x1FFFE800) {
|
||||
*endianness = G_BIG_ENDIAN;
|
||||
for (i = 0; i < G_N_ELEMENTS (hdr); ++i)
|
||||
hdr[i] = GST_READ_UINT16_BE (c->data + (i * sizeof (guint16)));
|
||||
} else
|
||||
/* raw little endian or 14-bit little endian */
|
||||
if (marker == 0xFE7F0180 || marker == 0xFF1F00E8) {
|
||||
*endianness = G_LITTLE_ENDIAN;
|
||||
for (i = 0; i < G_N_ELEMENTS (hdr); ++i)
|
||||
hdr[i] = GST_READ_UINT16_LE (c->data + (i * sizeof (guint16)));
|
||||
} else {
|
||||
|
@ -1376,6 +1378,9 @@ dts_parse_frame_header (DataScanCtx * c, guint * frame_size,
|
|||
hdr[5] = (hdr[5] << 12) | ((hdr[6] >> 2) & 0x0FFF);
|
||||
hdr[6] = (hdr[6] << 14) | ((hdr[7] >> 0) & 0x3FFF);
|
||||
g_assert (hdr[0] == 0x7FFE && hdr[1] == 0x8001);
|
||||
*depth = 14;
|
||||
} else {
|
||||
*depth = 16;
|
||||
}
|
||||
|
||||
GST_LOG ("frame header: %04x%04x%04x%04x", hdr[2], hdr[3], hdr[4], hdr[5]);
|
||||
|
@ -1409,12 +1414,13 @@ dts_type_find (GstTypeFind * tf, gpointer unused)
|
|||
* a lower probability if not found right at the start. Check that the
|
||||
* frame is followed by a second frame at the expected offset. */
|
||||
while (c.offset <= DTS_MAX_FRAMESIZE) {
|
||||
guint frame_size = 0, rate = 0, chans = 0;
|
||||
guint frame_size = 0, rate = 0, chans = 0, depth = 0, endianness = 0;
|
||||
|
||||
if (G_UNLIKELY (!data_scan_ctx_ensure_data (tf, &c, DTS_MIN_FRAMESIZE)))
|
||||
return;
|
||||
|
||||
if (G_UNLIKELY (dts_parse_frame_header (&c, &frame_size, &rate, &chans))) {
|
||||
if (G_UNLIKELY (dts_parse_frame_header (&c, &frame_size, &rate, &chans,
|
||||
&depth, &endianness))) {
|
||||
GstTypeFindProbability prob;
|
||||
DataScanCtx next_c;
|
||||
|
||||
|
@ -1433,10 +1439,13 @@ dts_type_find (GstTypeFind * tf, gpointer unused)
|
|||
if (chans > 0) {
|
||||
gst_type_find_suggest_simple (tf, prob, "audio/x-dts",
|
||||
"rate", G_TYPE_INT, rate, "channels", G_TYPE_INT, chans,
|
||||
"depth", G_TYPE_INT, depth, "endianness", G_TYPE_INT, endianness,
|
||||
"framed", G_TYPE_BOOLEAN, FALSE, NULL);
|
||||
} else {
|
||||
gst_type_find_suggest_simple (tf, prob, "audio/x-dts",
|
||||
"rate", G_TYPE_INT, rate, "framed", G_TYPE_BOOLEAN, FALSE, NULL);
|
||||
"rate", G_TYPE_INT, rate, "depth", G_TYPE_INT, depth,
|
||||
"endianness", G_TYPE_INT, endianness,
|
||||
"framed", G_TYPE_BOOLEAN, FALSE, NULL);
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
|
@ -99,6 +99,12 @@ else
|
|||
check_orc =
|
||||
endif
|
||||
|
||||
if HAVE_CXX
|
||||
cxx_checks = libs/gstlibscpp
|
||||
else
|
||||
cxx_checks =
|
||||
endif
|
||||
|
||||
check_PROGRAMS = \
|
||||
$(check_alsa) \
|
||||
$(check_gnomevfs) \
|
||||
|
@ -144,6 +150,7 @@ check_PROGRAMS = \
|
|||
libs/rtsp \
|
||||
libs/tag \
|
||||
libs/video \
|
||||
$(cxx_checks) \
|
||||
$(check_orc) \
|
||||
pipelines/simple-launch-lines \
|
||||
pipelines/streamheader \
|
||||
|
@ -170,7 +177,12 @@ noinst_HEADERS = \
|
|||
# libs/struct_sparc.h \
|
||||
# libs/struct_x86_64.h
|
||||
|
||||
AM_CFLAGS = $(GST_CFLAGS) $(GST_CHECK_CFLAGS) \
|
||||
AM_CFLAGS = -I$(top_srcdir)/gst-libs -I$(top_builddir)/gst-libs \
|
||||
$(GST_CFLAGS) $(GST_CHECK_CFLAGS) \
|
||||
-DGST_TEST_FILES_PATH="\"$(TEST_FILES_DIRECTORY)\"" \
|
||||
-UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
|
||||
AM_CXXFLAGS = -I$(top_srcdir)/gst-libs -I$(top_builddir)/gst-libs \
|
||||
$(GST_CXXFLAGS) $(GST_CHECK_CFLAGS) \
|
||||
-DGST_TEST_FILES_PATH="\"$(TEST_FILES_DIRECTORY)\"" \
|
||||
-UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
|
||||
LDADD = $(GST_LIBS) $(GST_CHECK_LIBS)
|
||||
|
@ -295,6 +307,8 @@ libs_profile_CFLAGS = \
|
|||
libs_profile_LDADD = \
|
||||
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la $(LDADD)
|
||||
|
||||
libs_gstlibscpp_SOURCES = libs/gstlibscpp.cc
|
||||
|
||||
elements_appsink_CFLAGS = \
|
||||
$(GST_PLUGINS_BASE_CFLAGS) \
|
||||
$(AM_CFLAGS)
|
||||
|
|
|
@ -810,6 +810,66 @@ GST_START_TEST (test_encodebin_impossible_element_combination)
|
|||
|
||||
GST_END_TEST;
|
||||
|
||||
static void
|
||||
_test_encodebin_reuse (GstEncodingProfile * prof1, GstEncodingProfile * prof2)
|
||||
{
|
||||
GstElement *ebin;
|
||||
|
||||
ebin = gst_element_factory_make ("encodebin", NULL);
|
||||
|
||||
/* Set a profile on encodebin... */
|
||||
if (prof1)
|
||||
g_object_set (ebin, "profile", prof1, NULL);
|
||||
|
||||
/* Make sure we can go to PAUSED */
|
||||
fail_unless_equals_int (gst_element_set_state (ebin, GST_STATE_PAUSED),
|
||||
GST_STATE_CHANGE_SUCCESS);
|
||||
|
||||
/* Set back to NULL */
|
||||
fail_unless_equals_int (gst_element_set_state (ebin, GST_STATE_NULL),
|
||||
GST_STATE_CHANGE_SUCCESS);
|
||||
|
||||
if (prof2)
|
||||
g_object_set (ebin, "profile", prof2, NULL);
|
||||
|
||||
/* Make sure we can go to PLAYING */
|
||||
fail_unless_equals_int (gst_element_set_state (ebin, GST_STATE_PAUSED),
|
||||
GST_STATE_CHANGE_SUCCESS);
|
||||
|
||||
/* Set back to NULL */
|
||||
fail_unless_equals_int (gst_element_set_state (ebin, GST_STATE_NULL),
|
||||
GST_STATE_CHANGE_SUCCESS);
|
||||
|
||||
gst_object_unref (ebin);
|
||||
}
|
||||
|
||||
GST_START_TEST (test_encodebin_reuse)
|
||||
{
|
||||
GstEncodingProfile *prof1;
|
||||
GstEncodingProfile *prof2;
|
||||
GstEncodingProfile *prof3;
|
||||
GstCaps *caps;
|
||||
|
||||
caps = gst_caps_new_simple ("application/ogg", NULL);
|
||||
prof1 = (GstEncodingProfile *) gst_encoding_container_profile_new ((gchar *)
|
||||
"myprofile", NULL, caps, NULL);
|
||||
gst_caps_unref (caps);
|
||||
|
||||
prof2 = create_ogg_theora_vorbis_profile (1, 1);
|
||||
prof3 = create_vorbis_only_profile ();
|
||||
|
||||
_test_encodebin_reuse (prof1, NULL);
|
||||
_test_encodebin_reuse (prof1, prof1);
|
||||
|
||||
_test_encodebin_reuse (prof1, prof2);
|
||||
|
||||
_test_encodebin_reuse (prof2, prof3);
|
||||
|
||||
gst_encoding_profile_unref (prof1);
|
||||
};
|
||||
|
||||
GST_END_TEST;
|
||||
|
||||
|
||||
static Suite *
|
||||
encodebin_suite (void)
|
||||
|
@ -831,6 +891,7 @@ encodebin_suite (void)
|
|||
tcase_add_test (tc_chain, test_encodebin_render_audio_video_static);
|
||||
tcase_add_test (tc_chain, test_encodebin_render_audio_video_dynamic);
|
||||
tcase_add_test (tc_chain, test_encodebin_impossible_element_combination);
|
||||
tcase_add_test (tc_chain, test_encodebin_reuse);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
|
1
tests/check/libs/.gitignore
vendored
1
tests/check/libs/.gitignore
vendored
|
@ -2,6 +2,7 @@
|
|||
audio
|
||||
cddabasesrc
|
||||
fft
|
||||
gstlibscpp
|
||||
mixer
|
||||
navigation
|
||||
netbuffer
|
||||
|
|
139
tests/check/libs/gstlibscpp.cc
Normal file
139
tests/check/libs/gstlibscpp.cc
Normal file
|
@ -0,0 +1,139 @@
|
|||
/* GStreamer
|
||||
* Copyright (C) 2011 Tim-Philipp Müller <tim centricular net>
|
||||
*
|
||||
* 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., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <gst/gst.h>
|
||||
#include <gst/check/gstcheck.h>
|
||||
|
||||
#include <gst/app/gstappbuffer.h>
|
||||
#include <gst/app/gstapp-marshal.h>
|
||||
#include <gst/app/gstappsink.h>
|
||||
#include <gst/app/gstappsrc.h>
|
||||
|
||||
#include <gst/audio/audio-enumtypes.h>
|
||||
#include <gst/audio/audio.h>
|
||||
#include <gst/audio/gstaudioclock.h>
|
||||
#include <gst/audio/gstaudiofilter.h>
|
||||
#include <gst/audio/gstaudiosink.h>
|
||||
#include <gst/audio/gstaudiosrc.h>
|
||||
#include <gst/audio/gstbaseaudiosink.h>
|
||||
#include <gst/audio/gstbaseaudiosrc.h>
|
||||
#include <gst/audio/gstringbuffer.h>
|
||||
#include <gst/audio/mixerutils.h>
|
||||
#include <gst/audio/multichannel.h>
|
||||
|
||||
#include <gst/cdda/gstcddabasesrc.h>
|
||||
|
||||
#include <gst/fft/gstfftf32.h>
|
||||
#include <gst/fft/gstfftf64.h>
|
||||
#include <gst/fft/gstfft.h>
|
||||
#include <gst/fft/gstffts16.h>
|
||||
#include <gst/fft/gstffts32.h>
|
||||
|
||||
#include <gst/floatcast/floatcast.h>
|
||||
|
||||
#include <gst/interfaces/colorbalancechannel.h>
|
||||
#include <gst/interfaces/colorbalance.h>
|
||||
#include <gst/interfaces/interfaces-enumtypes.h>
|
||||
#include <gst/interfaces/interfaces-marshal.h>
|
||||
#include <gst/interfaces/mixer.h>
|
||||
#include <gst/interfaces/mixeroptions.h>
|
||||
#include <gst/interfaces/mixertrack.h>
|
||||
#include <gst/interfaces/navigation.h>
|
||||
#include <gst/interfaces/propertyprobe.h>
|
||||
#include <gst/interfaces/streamvolume.h>
|
||||
#include <gst/interfaces/tunerchannel.h>
|
||||
#include <gst/interfaces/tuner.h>
|
||||
#include <gst/interfaces/tunernorm.h>
|
||||
#include <gst/interfaces/videoorientation.h>
|
||||
#include <gst/interfaces/xoverlay.h>
|
||||
|
||||
#include <gst/netbuffer/gstnetbuffer.h>
|
||||
|
||||
#include <gst/pbutils/codec-utils.h>
|
||||
#include <gst/pbutils/descriptions.h>
|
||||
#include <gst/pbutils/encoding-profile.h>
|
||||
#include <gst/pbutils/encoding-target.h>
|
||||
#include <gst/pbutils/gstdiscoverer.h>
|
||||
#include <gst/pbutils/gstpluginsbaseversion.h>
|
||||
#include <gst/pbutils/install-plugins.h>
|
||||
#include <gst/pbutils/missing-plugins.h>
|
||||
#include <gst/pbutils/pbutils-enumtypes.h>
|
||||
#include <gst/pbutils/pbutils.h>
|
||||
#include <gst/pbutils/pbutils-marshal.h>
|
||||
|
||||
#include <gst/riff/riff-ids.h>
|
||||
#include <gst/riff/riff-media.h>
|
||||
#include <gst/riff/riff-read.h>
|
||||
|
||||
#include <gst/rtp/gstbasertpaudiopayload.h>
|
||||
#include <gst/rtp/gstbasertpdepayload.h>
|
||||
#include <gst/rtp/gstbasertppayload.h>
|
||||
#include <gst/rtp/gstrtcpbuffer.h>
|
||||
#include <gst/rtp/gstrtpbuffer.h>
|
||||
#include <gst/rtp/gstrtppayloads.h>
|
||||
|
||||
#include <gst/rtsp/gstrtspbase64.h>
|
||||
#include <gst/rtsp/gstrtspconnection.h>
|
||||
#include <gst/rtsp/gstrtspdefs.h>
|
||||
#include <gst/rtsp/gstrtsp-enumtypes.h>
|
||||
#include <gst/rtsp/gstrtspextension.h>
|
||||
#include <gst/rtsp/gstrtsp.h>
|
||||
#include <gst/rtsp/gstrtsp-marshal.h>
|
||||
#include <gst/rtsp/gstrtspmessage.h>
|
||||
#include <gst/rtsp/gstrtsprange.h>
|
||||
#include <gst/rtsp/gstrtsptransport.h>
|
||||
#include <gst/rtsp/gstrtspurl.h>
|
||||
|
||||
#include <gst/sdp/gstsdp.h>
|
||||
#include <gst/sdp/gstsdpmessage.h>
|
||||
#include <gst/tag/gsttagdemux.h>
|
||||
|
||||
#include <gst/tag/tag.h>
|
||||
|
||||
#include <gst/video/gstvideofilter.h>
|
||||
#include <gst/video/gstvideosink.h>
|
||||
#include <gst/video/video-enumtypes.h>
|
||||
#include <gst/video/video.h>
|
||||
|
||||
/* we mostly just want to make sure that our library headers don't
|
||||
* contain anything a C++ compiler might not like */
|
||||
GST_START_TEST (test_nothing)
|
||||
{
|
||||
gst_init (NULL, NULL);
|
||||
}
|
||||
|
||||
GST_END_TEST;
|
||||
|
||||
static Suite *
|
||||
libscpp_suite (void)
|
||||
{
|
||||
Suite *s = suite_create ("GstLibsCpp");
|
||||
TCase *tc_chain = tcase_create ("C++ libs header tests");
|
||||
|
||||
suite_add_tcase (s, tc_chain);
|
||||
tcase_add_test (tc_chain, test_nothing);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
GST_CHECK_MAIN (libscpp);
|
Loading…
Reference in a new issue