mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 09:40:37 +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
|
dnl find a compiler
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
AC_PROG_CC_STDC
|
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
|
dnl check if the compiler supports '-c' and '-o' options
|
||||||
AM_PROG_CC_C_O
|
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)
|
AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
|
||||||
AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
|
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,
|
GST_DEBUG_OBJECT (ogg_mux,
|
||||||
"got header buffer in control state, ignoring");
|
"got header buffer in control state, ignoring");
|
||||||
/* just ignore */
|
/* just ignore */
|
||||||
|
pad->map.n_header_packets_seen++;
|
||||||
gst_buffer_unref (buf);
|
gst_buffer_unref (buf);
|
||||||
buf = NULL;
|
buf = NULL;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -375,6 +375,8 @@ gst_text_overlay_class_init (GstTextOverlayClass * klass)
|
||||||
gstelement_class->change_state =
|
gstelement_class->change_state =
|
||||||
GST_DEBUG_FUNCPTR (gst_text_overlay_change_state);
|
GST_DEBUG_FUNCPTR (gst_text_overlay_change_state);
|
||||||
|
|
||||||
|
klass->pango_lock = g_mutex_new ();
|
||||||
|
|
||||||
klass->get_text = gst_text_overlay_get_text;
|
klass->get_text = gst_text_overlay_get_text;
|
||||||
fontmap = pango_cairo_font_map_get_default ();
|
fontmap = pango_cairo_font_map_get_default ();
|
||||||
klass->pango_context =
|
klass->pango_context =
|
||||||
|
@ -1235,6 +1237,8 @@ gst_text_overlay_render_pangocairo (GstTextOverlay * overlay,
|
||||||
double scalef = 1.0;
|
double scalef = 1.0;
|
||||||
double a, r, g, b;
|
double a, r, g, b;
|
||||||
|
|
||||||
|
g_mutex_lock (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
|
||||||
|
|
||||||
if (overlay->auto_adjust_size) {
|
if (overlay->auto_adjust_size) {
|
||||||
/* 640 pixel is default */
|
/* 640 pixel is default */
|
||||||
scalef = (double) (overlay->width) / DEFAULT_SCALE_BASIS;
|
scalef = (double) (overlay->width) / DEFAULT_SCALE_BASIS;
|
||||||
|
@ -1298,6 +1302,8 @@ gst_text_overlay_render_pangocairo (GstTextOverlay * overlay,
|
||||||
cairo_matrix_init_scale (&cairo_matrix, scalef, scalef);
|
cairo_matrix_init_scale (&cairo_matrix, scalef, scalef);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_mutex_unlock (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
|
||||||
|
|
||||||
/* reallocate surface */
|
/* reallocate surface */
|
||||||
overlay->text_image = g_realloc (overlay->text_image, 4 * width * height);
|
overlay->text_image = g_realloc (overlay->text_image, 4 * width * height);
|
||||||
|
|
||||||
|
|
|
@ -155,6 +155,7 @@ struct _GstTextOverlayClass {
|
||||||
GstElementClass parent_class;
|
GstElementClass parent_class;
|
||||||
|
|
||||||
PangoContext *pango_context;
|
PangoContext *pango_context;
|
||||||
|
GMutex *pango_lock;
|
||||||
|
|
||||||
gchar * (*get_text) (GstTextOverlay *overlay, GstBuffer *video_frame);
|
gchar * (*get_text) (GstTextOverlay *overlay, GstBuffer *video_frame);
|
||||||
};
|
};
|
||||||
|
|
|
@ -443,6 +443,15 @@ uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad,
|
||||||
{
|
{
|
||||||
PrivateStream *ps;
|
PrivateStream *ps;
|
||||||
GstPad *sinkpad = NULL;
|
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));
|
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->sink, "silent", TRUE, NULL);
|
||||||
g_object_set (ps->queue, "max-size-buffers", 1, "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);
|
gst_bin_add_many (dc->priv->pipeline, ps->queue, ps->sink, NULL);
|
||||||
|
|
||||||
if (!gst_element_link_pads_full (ps->queue, "src", ps->sink, "sink",
|
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 we're not active, we can deactivate the previous profile */
|
||||||
if (ebin->profile)
|
if (ebin->profile) {
|
||||||
gst_encoding_profile_unref (ebin->profile);
|
gst_encode_bin_tear_down_profile (ebin);
|
||||||
ebin->profile = NULL;
|
}
|
||||||
|
|
||||||
return gst_encode_bin_setup_profile (ebin, profile);
|
return gst_encode_bin_setup_profile (ebin, profile);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2696,10 +2696,12 @@ gst_decode_group_new (GstDecodeBin * dbin, GstDecodeChain * parent)
|
||||||
if (G_UNLIKELY (!group->multiqueue))
|
if (G_UNLIKELY (!group->multiqueue))
|
||||||
goto missing_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) {
|
if (dbin->use_buffering) {
|
||||||
g_object_set (mq, "low-percent", dbin->low_percent, NULL);
|
g_object_set (mq,
|
||||||
g_object_set (mq, "high-percent", dbin->high_percent, NULL);
|
"use-buffering", TRUE,
|
||||||
|
"low-percent", dbin->low_percent,
|
||||||
|
"high-percent", dbin->high_percent, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* configure queue sizes for preroll */
|
/* configure queue sizes for preroll */
|
||||||
|
|
|
@ -1333,7 +1333,7 @@ static GstStaticCaps dts_caps = GST_STATIC_CAPS ("audio/x-dts");
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
dts_parse_frame_header (DataScanCtx * c, guint * frame_size,
|
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,
|
static const int sample_rates[16] = { 0, 8000, 16000, 32000, 0, 0, 11025,
|
||||||
22050, 44100, 0, 0, 12000, 24000, 48000, 96000, 192000
|
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 */
|
/* raw big endian or 14-bit big endian */
|
||||||
if (marker == 0x7FFE8001 || marker == 0x1FFFE800) {
|
if (marker == 0x7FFE8001 || marker == 0x1FFFE800) {
|
||||||
|
*endianness = G_BIG_ENDIAN;
|
||||||
for (i = 0; i < G_N_ELEMENTS (hdr); ++i)
|
for (i = 0; i < G_N_ELEMENTS (hdr); ++i)
|
||||||
hdr[i] = GST_READ_UINT16_BE (c->data + (i * sizeof (guint16)));
|
hdr[i] = GST_READ_UINT16_BE (c->data + (i * sizeof (guint16)));
|
||||||
} else
|
} else
|
||||||
/* raw little endian or 14-bit little endian */
|
/* raw little endian or 14-bit little endian */
|
||||||
if (marker == 0xFE7F0180 || marker == 0xFF1F00E8) {
|
if (marker == 0xFE7F0180 || marker == 0xFF1F00E8) {
|
||||||
|
*endianness = G_LITTLE_ENDIAN;
|
||||||
for (i = 0; i < G_N_ELEMENTS (hdr); ++i)
|
for (i = 0; i < G_N_ELEMENTS (hdr); ++i)
|
||||||
hdr[i] = GST_READ_UINT16_LE (c->data + (i * sizeof (guint16)));
|
hdr[i] = GST_READ_UINT16_LE (c->data + (i * sizeof (guint16)));
|
||||||
} else {
|
} else {
|
||||||
|
@ -1376,6 +1378,9 @@ dts_parse_frame_header (DataScanCtx * c, guint * frame_size,
|
||||||
hdr[5] = (hdr[5] << 12) | ((hdr[6] >> 2) & 0x0FFF);
|
hdr[5] = (hdr[5] << 12) | ((hdr[6] >> 2) & 0x0FFF);
|
||||||
hdr[6] = (hdr[6] << 14) | ((hdr[7] >> 0) & 0x3FFF);
|
hdr[6] = (hdr[6] << 14) | ((hdr[7] >> 0) & 0x3FFF);
|
||||||
g_assert (hdr[0] == 0x7FFE && hdr[1] == 0x8001);
|
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]);
|
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
|
* a lower probability if not found right at the start. Check that the
|
||||||
* frame is followed by a second frame at the expected offset. */
|
* frame is followed by a second frame at the expected offset. */
|
||||||
while (c.offset <= DTS_MAX_FRAMESIZE) {
|
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)))
|
if (G_UNLIKELY (!data_scan_ctx_ensure_data (tf, &c, DTS_MIN_FRAMESIZE)))
|
||||||
return;
|
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;
|
GstTypeFindProbability prob;
|
||||||
DataScanCtx next_c;
|
DataScanCtx next_c;
|
||||||
|
|
||||||
|
@ -1433,10 +1439,13 @@ dts_type_find (GstTypeFind * tf, gpointer unused)
|
||||||
if (chans > 0) {
|
if (chans > 0) {
|
||||||
gst_type_find_suggest_simple (tf, prob, "audio/x-dts",
|
gst_type_find_suggest_simple (tf, prob, "audio/x-dts",
|
||||||
"rate", G_TYPE_INT, rate, "channels", G_TYPE_INT, chans,
|
"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);
|
"framed", G_TYPE_BOOLEAN, FALSE, NULL);
|
||||||
} else {
|
} else {
|
||||||
gst_type_find_suggest_simple (tf, prob, "audio/x-dts",
|
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;
|
return;
|
||||||
|
|
|
@ -99,6 +99,12 @@ else
|
||||||
check_orc =
|
check_orc =
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if HAVE_CXX
|
||||||
|
cxx_checks = libs/gstlibscpp
|
||||||
|
else
|
||||||
|
cxx_checks =
|
||||||
|
endif
|
||||||
|
|
||||||
check_PROGRAMS = \
|
check_PROGRAMS = \
|
||||||
$(check_alsa) \
|
$(check_alsa) \
|
||||||
$(check_gnomevfs) \
|
$(check_gnomevfs) \
|
||||||
|
@ -144,6 +150,7 @@ check_PROGRAMS = \
|
||||||
libs/rtsp \
|
libs/rtsp \
|
||||||
libs/tag \
|
libs/tag \
|
||||||
libs/video \
|
libs/video \
|
||||||
|
$(cxx_checks) \
|
||||||
$(check_orc) \
|
$(check_orc) \
|
||||||
pipelines/simple-launch-lines \
|
pipelines/simple-launch-lines \
|
||||||
pipelines/streamheader \
|
pipelines/streamheader \
|
||||||
|
@ -170,7 +177,12 @@ noinst_HEADERS = \
|
||||||
# libs/struct_sparc.h \
|
# libs/struct_sparc.h \
|
||||||
# libs/struct_x86_64.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)\"" \
|
-DGST_TEST_FILES_PATH="\"$(TEST_FILES_DIRECTORY)\"" \
|
||||||
-UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
|
-UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
|
||||||
LDADD = $(GST_LIBS) $(GST_CHECK_LIBS)
|
LDADD = $(GST_LIBS) $(GST_CHECK_LIBS)
|
||||||
|
@ -295,6 +307,8 @@ libs_profile_CFLAGS = \
|
||||||
libs_profile_LDADD = \
|
libs_profile_LDADD = \
|
||||||
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la $(LDADD)
|
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la $(LDADD)
|
||||||
|
|
||||||
|
libs_gstlibscpp_SOURCES = libs/gstlibscpp.cc
|
||||||
|
|
||||||
elements_appsink_CFLAGS = \
|
elements_appsink_CFLAGS = \
|
||||||
$(GST_PLUGINS_BASE_CFLAGS) \
|
$(GST_PLUGINS_BASE_CFLAGS) \
|
||||||
$(AM_CFLAGS)
|
$(AM_CFLAGS)
|
||||||
|
|
|
@ -810,6 +810,66 @@ GST_START_TEST (test_encodebin_impossible_element_combination)
|
||||||
|
|
||||||
GST_END_TEST;
|
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 *
|
static Suite *
|
||||||
encodebin_suite (void)
|
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_static);
|
||||||
tcase_add_test (tc_chain, test_encodebin_render_audio_video_dynamic);
|
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_impossible_element_combination);
|
||||||
|
tcase_add_test (tc_chain, test_encodebin_reuse);
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
1
tests/check/libs/.gitignore
vendored
1
tests/check/libs/.gitignore
vendored
|
@ -2,6 +2,7 @@
|
||||||
audio
|
audio
|
||||||
cddabasesrc
|
cddabasesrc
|
||||||
fft
|
fft
|
||||||
|
gstlibscpp
|
||||||
mixer
|
mixer
|
||||||
navigation
|
navigation
|
||||||
netbuffer
|
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