Beispiel #1
0
static GstElement *
setup_opusenc (void)
{
  GstElement *opusenc;

  GST_DEBUG ("setup_opusenc");
  opusenc = gst_check_setup_element ("opusenc");
  myencsrcpad = gst_check_setup_src_pad (opusenc, &srctemplate);
  myencsinkpad = gst_check_setup_sink_pad (opusenc, &sinktemplate);
  gst_pad_set_active (myencsrcpad, TRUE);
  gst_pad_set_active (myencsinkpad, TRUE);

  return opusenc;
}
static GstElement *
setup_amplify (void)
{
  GstElement *amplify;

  GST_DEBUG ("setup_amplify");
  amplify = gst_check_setup_element ("audioamplify");
  mysrcpad = gst_check_setup_src_pad (amplify, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (amplify, &sinktemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return amplify;
}
Beispiel #3
0
static GstElement *
setup_echo (void)
{
  GstElement *echo;

  GST_DEBUG ("setup_echo");
  echo = gst_check_setup_element ("audioecho");
  mysrcpad = gst_check_setup_src_pad (echo, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (echo, &sinktemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return echo;
}
static GstElement *
setup_rglimiter (void)
{
  GstElement *element;

  GST_DEBUG ("setup_rglimiter");
  element = gst_check_setup_element ("rglimiter");
  mysrcpad = gst_check_setup_src_pad (element, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (element, &sinktemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return element;
}
static GstElement *
setup_jpegenc (GstStaticPadTemplate * sinktemplate)
{
  GstElement *jpegenc;

  GST_DEBUG ("setup_jpegenc");
  jpegenc = gst_check_setup_element ("jpegenc");
  mysinkpad = gst_check_setup_sink_pad (jpegenc, sinktemplate);
  mysrcpad = gst_check_setup_src_pad (jpegenc, &any_srctemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return jpegenc;
}
Beispiel #6
0
static void
setup_subparse (void)
{
    subparse = gst_check_setup_element ("subparse");

    mysrcpad = gst_check_setup_src_pad (subparse, &srctemplate, NULL);
    mysinkpad = gst_check_setup_sink_pad (subparse, &sinktemplate, NULL);

    gst_pad_set_active (mysrcpad, TRUE);
    gst_pad_set_active (mysinkpad, TRUE);

    fail_unless_equals_int (gst_element_set_state (subparse, GST_STATE_PLAYING),
                            GST_STATE_CHANGE_SUCCESS);
}
static GstElement *
setup_vorbisdec (void)
{
  GstElement *vorbisdec;

  GST_DEBUG ("setup_vorbisdec");
  vorbisdec = gst_check_setup_element ("vorbisdec");
  mysrcpad = gst_check_setup_src_pad (vorbisdec, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (vorbisdec, &sinktemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return vorbisdec;
}
Beispiel #8
0
/* takes over reference for outcaps */
GstElement *
setup_level ()
{
  GstElement *level;

  GST_DEBUG ("setup_level");
  level = gst_check_setup_element ("level");
  mysrcpad = gst_check_setup_src_pad (level, &srctemplate, NULL);
  mysinkpad = gst_check_setup_sink_pad (level, &sinktemplate, NULL);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return level;
}
Beispiel #9
0
GstElement *
setup_wavpackdec ()
{
  GstElement *wavpackdec;

  GST_DEBUG ("setup_wavpackdec");
  wavpackdec = gst_check_setup_element ("wavpackdec");
  mysrcpad = gst_check_setup_src_pad (wavpackdec, &srctemplate, NULL);
  mysinkpad = gst_check_setup_sink_pad (wavpackdec, &sinktemplate, NULL);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return wavpackdec;
}
Beispiel #10
0
static GstElement *
setup_videorate (void)
 {
  GstElement *videorate;

  GST_DEBUG ("setup_videorate");
  videorate = gst_check_setup_element ("videorate");
  mysrcpad = gst_check_setup_src_pad (videorate, &srctemplate, NULL);
  mysinkpad = gst_check_setup_sink_pad (videorate, &sinktemplate, NULL);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return videorate;
}
Beispiel #11
0
static GstElement *
setup_videorate_full (GstStaticPadTemplate * srctemplate,
    GstStaticPadTemplate * sinktemplate)
{
  GstElement *videorate;

  GST_DEBUG ("setup_videorate");
  videorate = gst_check_setup_element ("videorate");
  mysrcpad = gst_check_setup_src_pad (videorate, srctemplate, NULL);
  mysinkpad = gst_check_setup_sink_pad (videorate, sinktemplate, NULL);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return videorate;
}
static GstElement *
setup_wavpackparse (void)
{
  GstElement *wavpackparse;

  GST_DEBUG ("setup_wavpackparse");

  wavpackparse = gst_check_setup_element ("wavpackparse");
  mysrcpad = gst_check_setup_src_pad (wavpackparse, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (wavpackparse, &sinktemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return wavpackparse;
}
/* takes over reference for outcaps */
static GstElement *
setup_filter (const gchar * name, const gchar * prop, va_list var_args)
{
  GstElement *element;

  GST_DEBUG ("setup_element");
  element = gst_check_setup_element (name);
  g_object_set_valist (G_OBJECT (element), prop, var_args);
  mysrcpad = gst_check_setup_src_pad (element, &srctemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  mysinkpad = gst_check_setup_sink_pad (element, &sinktemplate);
  gst_pad_set_active (mysinkpad, TRUE);

  return element;
}
static GstElement *
setup_capssetter (void)
{
  GstElement *capssetter;

  GST_DEBUG ("setup_capssetter");

  capssetter = gst_check_setup_element ("capssetter");
  mysrcpad = gst_check_setup_src_pad (capssetter, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (capssetter, &sinktemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return capssetter;
}
static void
setup_videodecodertester (GstStaticPadTemplate * sinktmpl,
    GstStaticPadTemplate * srctmpl)
{
  if (sinktmpl == NULL)
    sinktmpl = &sinktemplate;
  if (srctmpl == NULL)
    srctmpl = &srctemplate;

  dec = g_object_new (GST_VIDEO_DECODER_TESTER_TYPE, NULL);
  mysrcpad = gst_check_setup_src_pad (dec, srctmpl);
  mysinkpad = gst_check_setup_sink_pad (dec, sinktmpl);

  gst_pad_set_event_function (mysinkpad, _mysinkpad_event);
}
Beispiel #16
0
static GstElement *
setup_identity (void)
{
  GstElement *identity;

  GST_DEBUG ("setup_identity");

  identity = gst_check_setup_element ("identity");
  mysrcpad = gst_check_setup_src_pad (identity, &srctemplate, NULL);
  mysinkpad = gst_check_setup_sink_pad (identity, &sinktemplate, NULL);
  gst_pad_set_event_function (mysinkpad, event_func);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return identity;
}
Beispiel #17
0
static void
setup_dtmfsrc (void)
{
  testclock = gst_test_clock_new ();
  bus = gst_bus_new ();

  method = 2;
  dtmfsrc = gst_check_setup_element ("dtmfsrc");
  sink = gst_check_setup_sink_pad (dtmfsrc, &audio_dtmfsrc_sink_template);
  gst_element_set_bus (dtmfsrc, bus);
  fail_unless (gst_element_set_clock (dtmfsrc, testclock));

  gst_pad_set_active (sink, TRUE);
  fail_unless (gst_element_set_state (dtmfsrc, GST_STATE_PLAYING) ==
      GST_STATE_CHANGE_SUCCESS);
}
Beispiel #18
0
static GstElement *
setup_filesrc (void)
{
  GstElement *filesrc;

  GST_DEBUG ("setup_filesrc");
  filesrc = gst_check_setup_element ("filesrc");
  mysinkpad = gst_check_setup_sink_pad (filesrc, &sinktemplate, NULL);
  gst_pad_set_event_function (mysinkpad, event_func);
  gst_pad_set_active (mysinkpad, TRUE);

  eos_cond = g_cond_new ();
  event_mutex = g_mutex_new ();

  return filesrc;
}
static GstElement *
setup_avisubtitle (void)
{
  GstElement *avisubtitle;
  GstCaps *srccaps;

  GST_DEBUG ("setup_avisubtitle");
  avisubtitle = gst_check_setup_element ("avisubtitle");
  mysinkpad = gst_check_setup_sink_pad (avisubtitle, &sink_template);
  mysrcpad = gst_check_setup_src_pad (avisubtitle, &src_template);
  gst_pad_set_active (mysinkpad, TRUE);
  gst_pad_set_active (mysrcpad, TRUE);
  srccaps = gst_caps_new_empty_simple ("application/x-subtitle-avi");
  gst_check_setup_events (mysrcpad, avisubtitle, srccaps, GST_FORMAT_TIME);
  gst_caps_unref (srccaps);
  return avisubtitle;
}
static GstElement *
setup_audioresample (int channels, int inrate, int outrate)
{
  GstElement *audioresample;
  GstCaps *caps;
  GstStructure *structure;
  GstPad *pad;

  GST_DEBUG ("setup_audioresample");
  audioresample = gst_check_setup_element ("audioresample");

  caps = gst_caps_from_string (RESAMPLE_CAPS_TEMPLATE_STRING);
  structure = gst_caps_get_structure (caps, 0);
  gst_structure_set (structure, "channels", G_TYPE_INT, channels,
      "rate", G_TYPE_INT, inrate, NULL);
  fail_unless (gst_caps_is_fixed (caps));

  fail_unless (gst_element_set_state (audioresample,
          GST_STATE_PAUSED) == GST_STATE_CHANGE_SUCCESS,
      "could not set to paused");

  mysrcpad = gst_check_setup_src_pad (audioresample, &srctemplate, caps);
  pad = gst_pad_get_peer (mysrcpad);
  gst_pad_set_caps (pad, caps);
  gst_object_unref (GST_OBJECT (pad));
  gst_caps_unref (caps);
  gst_pad_set_active (mysrcpad, TRUE);

  caps = gst_caps_from_string (RESAMPLE_CAPS_TEMPLATE_STRING);
  structure = gst_caps_get_structure (caps, 0);
  gst_structure_set (structure, "channels", G_TYPE_INT, channels,
      "rate", G_TYPE_INT, outrate, NULL);
  fail_unless (gst_caps_is_fixed (caps));

  mysinkpad = gst_check_setup_sink_pad (audioresample, &sinktemplate, caps);
  /* this installs a getcaps func that will always return the caps we set
   * later */
  gst_pad_use_fixed_caps (mysinkpad);
  pad = gst_pad_get_peer (mysinkpad);
  gst_pad_set_caps (pad, caps);
  gst_object_unref (GST_OBJECT (pad));
  gst_caps_unref (caps);
  gst_pad_set_active (mysinkpad, TRUE);

  return audioresample;
}
Beispiel #21
0
GstElement *
setup_rgvolume ()
{
  GstElement *element;

  GST_DEBUG ("setup_rgvolume");
  element = gst_check_setup_element ("rgvolume");
  mysrcpad = gst_check_setup_src_pad (element, &srctemplate, NULL);
  mysinkpad = gst_check_setup_sink_pad (element, &sinktemplate, NULL);

  /* Capture events, to test tag filtering behavior: */
  gst_pad_set_event_function (mysinkpad, event_func);

  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  return element;
}
Beispiel #22
0
static GstElement *
setup_wavpackdec (void)
{
  GstElement *wavpackdec;

  GST_DEBUG ("setup_wavpackdec");
  wavpackdec = gst_check_setup_element ("wavpackdec");
  mysrcpad = gst_check_setup_src_pad (wavpackdec, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (wavpackdec, &sinktemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);
  gst_check_setup_events (mysrcpad, wavpackdec, NULL, GST_FORMAT_TIME);

  fail_unless (gst_element_set_state (wavpackdec,
          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
      "could not set to playing");

  return wavpackdec;
}
/* takes over reference for outcaps */
static GstElement *
setup_spectrum (const gchar * caps_str)
{
  GstElement *spectrum;
  GstCaps *caps;

  GST_DEBUG ("setup_spectrum");
  spectrum = gst_check_setup_element ("spectrum");
  mysrcpad = gst_check_setup_src_pad (spectrum, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (spectrum, &sinktemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  caps = gst_caps_from_string (caps_str);
  gst_check_setup_events (mysrcpad, spectrum, caps, GST_FORMAT_TIME);
  gst_caps_unref (caps);

  return spectrum;
}
/* Create input-selector with given number of sink pads and switch
   given number of input buffers to each sink pad.
 */
static void
run_input_selector_buffer_count (gint num_input_pads,
    gint num_buffers_per_input)
{
  /* set up input_pads ! selector ! output_pad */
  gint i = 0, probe_id = 0;
  GList *input_pads = NULL, *output_pads = NULL;
  GstElement *sel = gst_check_setup_element ("input-selector");
  GstPad *output_pad = gst_check_setup_sink_pad (sel, &sinktemplate);

  output_pads = g_list_append (output_pads, output_pad);
  gst_pad_set_active (output_pad, TRUE);
  for (i = 0; i < num_input_pads; i++) {
    input_pads = g_list_append (input_pads, setup_input_pad (sel));
  }
  /* add probe */
  probe_id =
      gst_pad_add_probe (output_pad, GST_PAD_PROBE_TYPE_DATA_BOTH,
      (GstPadProbeCallback) probe_cb, NULL, NULL);
  g_object_set_data (G_OBJECT (output_pad), "probe_id",
      GINT_TO_POINTER (probe_id));

  /* run the test */
  fail_unless (gst_element_set_state (sel,
          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
      "could not set to playing");
  push_newsegment_events (input_pads);
  push_switched_buffers (input_pads, sel, input_pads, num_buffers_per_input);
  count_output_buffers (output_pads, (num_input_pads * num_buffers_per_input));
  fail_unless (gst_element_set_state (sel,
          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");

  /* clean up */
  gst_pad_remove_probe (output_pad, probe_id);
  gst_pad_set_active (output_pad, FALSE);
  gst_check_teardown_sink_pad (sel);
  GST_DEBUG ("setting selector pad to NULL");
  selector_set_active_pad (sel, NULL);  // unref input-selector active pad
  g_list_foreach (input_pads, (GFunc) cleanup_pad, sel);
  g_list_free (input_pads);
  g_list_free (output_pads);
  gst_check_teardown_element (sel);
}
Beispiel #25
0
GstElement *
setup_xingmux ()
{
    GstElement *xingmux;
    GstCaps *caps;

    GST_DEBUG ("setup_xingmux");
    xingmux = gst_check_setup_element ("xingmux");
    mysrcpad = gst_check_setup_src_pad (xingmux, &srctemplate);
    mysinkpad = gst_check_setup_sink_pad (xingmux, &sinktemplate);
    gst_pad_set_active (mysrcpad, TRUE);
    gst_pad_set_active (mysinkpad, TRUE);

    caps = gst_caps_new_simple ("audio/mpeg",
                                "mpegversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 3, NULL);
    gst_check_setup_events (mysrcpad, xingmux, caps, GST_FORMAT_TIME);
    gst_caps_unref (caps);

    return xingmux;
}
Beispiel #26
0
static void
setup_videoencodertester (void)
{
  static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
      GST_PAD_SINK,
      GST_PAD_ALWAYS,
      GST_STATIC_CAPS ("video/x-test-custom")
      );
  static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
      GST_PAD_SRC,
      GST_PAD_ALWAYS,
      GST_STATIC_CAPS ("video/x-raw")
      );

  dec = g_object_new (GST_VIDEO_ENCODER_TESTER_TYPE, NULL);
  mysrcpad = gst_check_setup_src_pad (dec, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (dec, &sinktemplate);

  gst_pad_set_event_function (mysinkpad, _mysinkpad_event);
}
static GstElement *
setup_wavpackenc (void)
{
  GstElement *wavpackenc;

  GST_DEBUG ("setup_wavpackenc");
  wavpackenc = gst_check_setup_element ("wavpackenc");
  mysrcpad = gst_check_setup_src_pad (wavpackenc, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (wavpackenc, &sinktemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  fail_unless (gst_element_set_state (wavpackenc,
          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
      "could not set to playing");
  bus = gst_bus_new ();

  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test-silence"));

  return wavpackenc;
}
Beispiel #28
0
static GstElement *
setup_mpeg2enc (void)
{
  GstElement *mpeg2enc;

  GST_DEBUG ("setup_mpeg2enc");
  mpeg2enc = gst_check_setup_element ("mpeg2enc");
  mysrcpad = gst_check_setup_src_pad (mpeg2enc, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (mpeg2enc, &sinktemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  /* need to know when we are eos */
  gst_pad_set_event_function (mysinkpad, test_sink_event);

  /* and notify the test run */
  g_mutex_init (&mpeg2enc_mutex);
  g_cond_init (&mpeg2enc_cond);

  return mpeg2enc;
}
Beispiel #29
0
static void
setup_audiodecodertester (void)
{
  static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
      GST_PAD_SINK,
      GST_PAD_ALWAYS,
      GST_STATIC_CAPS ("audio/x-raw, format=(string)S32LE, "
          "rate=(int)[1, 320000], channels=(int)[1, 32],"
          "layout=(string)interleaved")
      );
  static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
      GST_PAD_SRC,
      GST_PAD_ALWAYS,
      GST_STATIC_CAPS ("audio/x-test-custom")
      );

  dec = g_object_new (GST_AUDIO_DECODER_TESTER_TYPE, NULL);
  mysrcpad = gst_check_setup_src_pad (dec, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (dec, &sinktemplate);

  gst_pad_set_event_function (mysinkpad, _mysinkpad_event);
}
static GstElement *
setup_x264enc (const gchar * profile, const gchar * stream_format,
    const gchar * input_format)
{
  GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
      GST_PAD_SINK,
      GST_PAD_ALWAYS,
      GST_STATIC_CAPS (MPEG_CAPS_STRING));

  GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
      GST_PAD_SRC,
      GST_PAD_ALWAYS,
      GST_STATIC_CAPS (VIDEO_CAPS_STRING));
  GstElement *x264enc;
  gchar *caps_str;
  GstCaps *caps;

  GST_DEBUG ("setup_x264enc");

  caps_str = g_strdup_printf ("%s, profile = (string) %s, "
      "stream-format = (string) %s", MPEG_CAPS_STRING, profile, stream_format);
  sinktemplate.static_caps.string = caps_str;

  x264enc = gst_check_setup_element ("x264enc");
  mysrcpad = gst_check_setup_src_pad (x264enc, &srctemplate);
  mysinkpad = gst_check_setup_sink_pad (x264enc, &sinktemplate);
  gst_pad_set_active (mysrcpad, TRUE);
  gst_pad_set_active (mysinkpad, TRUE);

  caps = gst_caps_from_string (VIDEO_CAPS_STRING);
  gst_caps_set_simple (caps, "format", G_TYPE_STRING, input_format, NULL);
  gst_check_setup_events (mysrcpad, x264enc, caps, GST_FORMAT_TIME);
  gst_caps_unref (caps);

  g_free (caps_str);

  return x264enc;
}