Exemple #1
0
static void
gst_crossfeed_set_property (GObject * object, guint prop_id,
    const GValue * value, GParamSpec * pspec)
{
  GstCrossfeed *crossfeed = GST_CROSSFEED (object);

  switch (prop_id) {
    case ARG_ACTIVE:
      GST_CROSSFEED_LOCK (crossfeed);
      crossfeed->active = g_value_get_boolean (value);
      gst_crossfeed_update_passthrough (crossfeed);
      /* Clear the filter buffer if it gets set inactive, so we have
       * a fresh start when it gets activated again. */
      if (!crossfeed->active) {
        GST_CROSSFEED_UNLOCK (crossfeed);
        GST_CROSSFEED_BS2B_LOCK (crossfeed);
        bs2b_clear (crossfeed->bs2bdp);
        GST_CROSSFEED_BS2B_UNLOCK (crossfeed);
      } else {
        GST_CROSSFEED_UNLOCK (crossfeed);
      }
      break;
    case ARG_FCUT:
      GST_CROSSFEED_BS2B_LOCK (crossfeed);
      bs2b_set_level_fcut (crossfeed->bs2bdp, g_value_get_int (value));
      GST_CROSSFEED_BS2B_UNLOCK (crossfeed);
      break;
    case ARG_FEED:
      GST_CROSSFEED_BS2B_LOCK (crossfeed);
      bs2b_set_level_feed (crossfeed->bs2bdp, g_value_get_int (value));
      GST_CROSSFEED_BS2B_UNLOCK (crossfeed);
      break;
    case ARG_PRESET:
      switch (g_value_get_enum (value)) {
        case PRESET_DEFAULT:
          GST_CROSSFEED_BS2B_LOCK (crossfeed);
          bs2b_set_level (crossfeed->bs2bdp, BS2B_DEFAULT_CLEVEL);
          GST_CROSSFEED_BS2B_UNLOCK (crossfeed);
          break;
        case PRESET_CMOY:
          GST_CROSSFEED_BS2B_LOCK (crossfeed);
          bs2b_set_level (crossfeed->bs2bdp, BS2B_CMOY_CLEVEL);
          GST_CROSSFEED_BS2B_UNLOCK (crossfeed);
          break;
        case PRESET_JMEIER:
          GST_CROSSFEED_BS2B_LOCK (crossfeed);
          bs2b_set_level (crossfeed->bs2bdp, BS2B_JMEIER_CLEVEL);
          GST_CROSSFEED_BS2B_UNLOCK (crossfeed);
          break;
        default:
          G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
          break;
      }
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
      break;
  }
}
Exemple #2
0
gboolean init()
{
    aud_config_set_defaults("bs2b", bs2b_defaults);
    bs2b = bs2b_open();

    if (bs2b == NULL)
        return FALSE;

    bs2b_set_level_feed(bs2b, feed_level);
    bs2b_set_level_fcut(bs2b, fcut_level);

    return TRUE;
}
Exemple #3
0
static av_cold int init(AVFilterContext *ctx)
{
    Bs2bContext *bs2b = ctx->priv;

    if (!(bs2b->bs2bp = bs2b_open()))
        return AVERROR(ENOMEM);

    bs2b_set_level(bs2b->bs2bp, bs2b->profile);

    if (bs2b->fcut)
        bs2b_set_level_fcut(bs2b->bs2bp, bs2b->fcut);

    if (bs2b->feed)
        bs2b_set_level_feed(bs2b->bs2bp, bs2b->feed);

    return 0;
}
Exemple #4
0
static void fcut_value_changed(GtkRange *range, gpointer data)
{
    aud_set_int("bs2b", "fcut", gtk_range_get_value(range));
    bs2b_set_level_fcut(bs2b, fcut_level);
}