gst1-plugins-bad-openipc: Shadow gst1-plugins-bad (#1424)

Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
pull/1426/head
Alex Lennon 2024-04-29 19:15:01 +01:00 committed by GitHub
parent aa677b47a4
commit 32b7856c1b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 2497 additions and 0 deletions

View File

@ -22,6 +22,7 @@ source "$BR2_EXTERNAL_GENERAL_PATH/package/go2rtc/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/goke-osdrv-gk710x/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/goke-osdrv-gk7205v200/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/grainmedia-osdrv-gm8136/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/gst1-plugins-bad-openipc/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/hisi-gpio/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/hisilicon-opensdk/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/hisilicon-osdrv-hi3516av100/Config.in"

View File

@ -0,0 +1,883 @@
From d5755744c3e2b70e9f04704ae9d18b928d9fa456 Mon Sep 17 00:00:00 2001
From: Arun Raghavan <arun@asymptotic.io>
Date: Wed, 2 Dec 2020 18:31:44 -0500
Subject: [PATCH] webrtcdsp: Update code for webrtc-audio-processing-1
Updated API usage appropriately, and now we have a versioned package to
track breaking vs. non-breaking updates.
Deprecates a number of properties (and we have to plug in our own values
for related enums which are now gone):
* echo-suprression-level
* experimental-agc
* extended-filter
* delay-agnostic
* voice-detection-frame-size-ms
* voice-detection-likelihood
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2943>
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Upstream: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/d5755744c3e2b70e9f04704ae9d18b928d9fa456
---
.../ext/webrtcdsp/gstwebrtcdsp.cpp | 271 +++++++-----------
.../ext/webrtcdsp/gstwebrtcechoprobe.cpp | 87 +++---
.../ext/webrtcdsp/gstwebrtcechoprobe.h | 9 +-
.../gst-plugins-bad/ext/webrtcdsp/meson.build | 4 +-
4 files changed, 164 insertions(+), 207 deletions(-)
diff --git a/ext/webrtcdsp/gstwebrtcdsp.cpp b/ext/webrtcdsp/gstwebrtcdsp.cpp
index 7ee09488fb..c9a7cdae2f 100644
--- a/ext/webrtcdsp/gstwebrtcdsp.cpp
+++ b/ext/webrtcdsp/gstwebrtcdsp.cpp
@@ -71,9 +71,7 @@
#include "gstwebrtcdsp.h"
#include "gstwebrtcechoprobe.h"
-#include <webrtc/modules/audio_processing/include/audio_processing.h>
-#include <webrtc/modules/interface/module_common_types.h>
-#include <webrtc/system_wrappers/include/trace.h>
+#include <modules/audio_processing/include/audio_processing.h>
GST_DEBUG_CATEGORY (webrtc_dsp_debug);
#define GST_CAT_DEFAULT (webrtc_dsp_debug)
@@ -82,10 +80,9 @@ GST_DEBUG_CATEGORY (webrtc_dsp_debug);
#define DEFAULT_COMPRESSION_GAIN_DB 9
#define DEFAULT_STARTUP_MIN_VOLUME 12
#define DEFAULT_LIMITER TRUE
-#define DEFAULT_GAIN_CONTROL_MODE webrtc::GainControl::kAdaptiveDigital
+#define DEFAULT_GAIN_CONTROL_MODE webrtc::AudioProcessing::Config::GainController1::Mode::kAdaptiveDigital
#define DEFAULT_VOICE_DETECTION FALSE
#define DEFAULT_VOICE_DETECTION_FRAME_SIZE_MS 10
-#define DEFAULT_VOICE_DETECTION_LIKELIHOOD webrtc::VoiceDetection::kLowLikelihood
static GstStaticPadTemplate gst_webrtc_dsp_sink_template =
GST_STATIC_PAD_TEMPLATE ("sink",
@@ -119,7 +116,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
"channels = (int) [1, MAX]")
);
-typedef webrtc::EchoCancellation::SuppressionLevel GstWebrtcEchoSuppressionLevel;
+typedef int GstWebrtcEchoSuppressionLevel;
#define GST_TYPE_WEBRTC_ECHO_SUPPRESSION_LEVEL \
(gst_webrtc_echo_suppression_level_get_type ())
static GType
@@ -127,10 +124,9 @@ gst_webrtc_echo_suppression_level_get_type (void)
{
static GType suppression_level_type = 0;
static const GEnumValue level_types[] = {
- {webrtc::EchoCancellation::kLowSuppression, "Low Suppression", "low"},
- {webrtc::EchoCancellation::kModerateSuppression,
- "Moderate Suppression", "moderate"},
- {webrtc::EchoCancellation::kHighSuppression, "high Suppression", "high"},
+ {1, "Low Suppression", "low"},
+ {2, "Moderate Suppression", "moderate"},
+ {3, "high Suppression", "high"},
{0, NULL, NULL}
};
@@ -141,7 +137,7 @@ gst_webrtc_echo_suppression_level_get_type (void)
return suppression_level_type;
}
-typedef webrtc::NoiseSuppression::Level GstWebrtcNoiseSuppressionLevel;
+typedef webrtc::AudioProcessing::Config::NoiseSuppression::Level GstWebrtcNoiseSuppressionLevel;
#define GST_TYPE_WEBRTC_NOISE_SUPPRESSION_LEVEL \
(gst_webrtc_noise_suppression_level_get_type ())
static GType
@@ -149,10 +145,10 @@ gst_webrtc_noise_suppression_level_get_type (void)
{
static GType suppression_level_type = 0;
static const GEnumValue level_types[] = {
- {webrtc::NoiseSuppression::kLow, "Low Suppression", "low"},
- {webrtc::NoiseSuppression::kModerate, "Moderate Suppression", "moderate"},
- {webrtc::NoiseSuppression::kHigh, "High Suppression", "high"},
- {webrtc::NoiseSuppression::kVeryHigh, "Very High Suppression",
+ {webrtc::AudioProcessing::Config::NoiseSuppression::Level::kLow, "Low Suppression", "low"},
+ {webrtc::AudioProcessing::Config::NoiseSuppression::Level::kModerate, "Moderate Suppression", "moderate"},
+ {webrtc::AudioProcessing::Config::NoiseSuppression::Level::kHigh, "High Suppression", "high"},
+ {webrtc::AudioProcessing::Config::NoiseSuppression::Level::kVeryHigh, "Very High Suppression",
"very-high"},
{0, NULL, NULL}
};
@@ -164,7 +160,7 @@ gst_webrtc_noise_suppression_level_get_type (void)
return suppression_level_type;
}
-typedef webrtc::GainControl::Mode GstWebrtcGainControlMode;
+typedef webrtc::AudioProcessing::Config::GainController1::Mode GstWebrtcGainControlMode;
#define GST_TYPE_WEBRTC_GAIN_CONTROL_MODE \
(gst_webrtc_gain_control_mode_get_type ())
static GType
@@ -172,8 +168,9 @@ gst_webrtc_gain_control_mode_get_type (void)
{
static GType gain_control_mode_type = 0;
static const GEnumValue mode_types[] = {
- {webrtc::GainControl::kAdaptiveDigital, "Adaptive Digital", "adaptive-digital"},
- {webrtc::GainControl::kFixedDigital, "Fixed Digital", "fixed-digital"},
+ {webrtc::AudioProcessing::Config::GainController1::kAdaptiveDigital, "Adaptive Digital", "adaptive-digital"},
+ {webrtc::AudioProcessing::Config::GainController1::kFixedDigital, "Fixed Digital", "fixed-digital"},
+ {webrtc::AudioProcessing::Config::GainController1::kAdaptiveAnalog, "Adaptive Analog", "adaptive-analog"},
{0, NULL, NULL}
};
@@ -184,7 +181,7 @@ gst_webrtc_gain_control_mode_get_type (void)
return gain_control_mode_type;
}
-typedef webrtc::VoiceDetection::Likelihood GstWebrtcVoiceDetectionLikelihood;
+typedef int GstWebrtcVoiceDetectionLikelihood;
#define GST_TYPE_WEBRTC_VOICE_DETECTION_LIKELIHOOD \
(gst_webrtc_voice_detection_likelihood_get_type ())
static GType
@@ -192,10 +189,10 @@ gst_webrtc_voice_detection_likelihood_get_type (void)
{
static GType likelihood_type = 0;
static const GEnumValue likelihood_types[] = {
- {webrtc::VoiceDetection::kVeryLowLikelihood, "Very Low Likelihood", "very-low"},
- {webrtc::VoiceDetection::kLowLikelihood, "Low Likelihood", "low"},
- {webrtc::VoiceDetection::kModerateLikelihood, "Moderate Likelihood", "moderate"},
- {webrtc::VoiceDetection::kHighLikelihood, "High Likelihood", "high"},
+ {1, "Very Low Likelihood", "very-low"},
+ {2, "Low Likelihood", "low"},
+ {3, "Moderate Likelihood", "moderate"},
+ {4, "High Likelihood", "high"},
{0, NULL, NULL}
};
@@ -227,6 +224,7 @@ enum
PROP_VOICE_DETECTION,
PROP_VOICE_DETECTION_FRAME_SIZE_MS,
PROP_VOICE_DETECTION_LIKELIHOOD,
+ PROP_EXTRA_DELAY_MS,
};
/**
@@ -248,7 +246,7 @@ struct _GstWebrtcDsp
/* Protected by the stream lock */
GstAdapter *adapter;
GstPlanarAudioAdapter *padapter;
- webrtc::AudioProcessing * apm;
+ webrtc::AudioProcessing *apm;
/* Protected by the object lock */
gchar *probe_name;
@@ -257,21 +255,15 @@ struct _GstWebrtcDsp
/* Properties */
gboolean high_pass_filter;
gboolean echo_cancel;
- webrtc::EchoCancellation::SuppressionLevel echo_suppression_level;
gboolean noise_suppression;
- webrtc::NoiseSuppression::Level noise_suppression_level;
+ webrtc::AudioProcessing::Config::NoiseSuppression::Level noise_suppression_level;
gboolean gain_control;
- gboolean experimental_agc;
- gboolean extended_filter;
- gboolean delay_agnostic;
gint target_level_dbfs;
gint compression_gain_db;
gint startup_min_volume;
gboolean limiter;
- webrtc::GainControl::Mode gain_control_mode;
+ webrtc::AudioProcessing::Config::GainController1::Mode gain_control_mode;
gboolean voice_detection;
- gint voice_detection_frame_size_ms;
- webrtc::VoiceDetection::Likelihood voice_detection_likelihood;
};
G_DEFINE_TYPE_WITH_CODE (GstWebrtcDsp, gst_webrtc_dsp, GST_TYPE_AUDIO_FILTER,
@@ -376,9 +368,9 @@ gst_webrtc_dsp_analyze_reverse_stream (GstWebrtcDsp * self,
GstClockTime rec_time)
{
GstWebrtcEchoProbe *probe = NULL;
- webrtc::AudioProcessing * apm;
- webrtc::AudioFrame frame;
+ webrtc::AudioProcessing *apm;
GstBuffer *buf = NULL;
+ GstAudioBuffer abuf;
GstFlowReturn ret = GST_FLOW_OK;
gint err, delay;
@@ -391,48 +383,44 @@ gst_webrtc_dsp_analyze_reverse_stream (GstWebrtcDsp * self,
if (!probe)
return GST_FLOW_OK;
+ webrtc::StreamConfig config (probe->info.rate, probe->info.channels,
+ false);
apm = self->apm;
- if (self->delay_agnostic)
- rec_time = GST_CLOCK_TIME_NONE;
-
-again:
- delay = gst_webrtc_echo_probe_read (probe, rec_time, (gpointer) &frame, &buf);
+ delay = gst_webrtc_echo_probe_read (probe, rec_time, &buf);
apm->set_stream_delay_ms (delay);
+ g_return_val_if_fail (buf != NULL, GST_FLOW_ERROR);
+
if (delay < 0)
goto done;
- if (frame.sample_rate_hz_ != self->info.rate) {
+ if (probe->info.rate != self->info.rate) {
GST_ELEMENT_ERROR (self, STREAM, FORMAT,
("Echo Probe has rate %i , while the DSP is running at rate %i,"
" use a caps filter to ensure those are the same.",
- frame.sample_rate_hz_, self->info.rate), (NULL));
+ probe->info.rate, self->info.rate), (NULL));
ret = GST_FLOW_ERROR;
goto done;
}
- if (buf) {
- webrtc::StreamConfig config (frame.sample_rate_hz_, frame.num_channels_,
- false);
- GstAudioBuffer abuf;
- float * const * data;
+ gst_audio_buffer_map (&abuf, &self->info, buf, GST_MAP_READWRITE);
+
+ if (probe->interleaved) {
+ int16_t * const data = (int16_t * const) abuf.planes[0];
- gst_audio_buffer_map (&abuf, &self->info, buf, GST_MAP_READWRITE);
- data = (float * const *) abuf.planes;
if ((err = apm->ProcessReverseStream (data, config, config, data)) < 0)
GST_WARNING_OBJECT (self, "Reverse stream analyses failed: %s.",
webrtc_error_to_string (err));
- gst_audio_buffer_unmap (&abuf);
- gst_buffer_replace (&buf, NULL);
} else {
- if ((err = apm->AnalyzeReverseStream (&frame)) < 0)
+ float * const * data = (float * const *) abuf.planes;
+
+ if ((err = apm->ProcessReverseStream (data, config, config, data)) < 0)
GST_WARNING_OBJECT (self, "Reverse stream analyses failed: %s.",
webrtc_error_to_string (err));
}
- if (self->delay_agnostic)
- goto again;
+ gst_audio_buffer_unmap (&abuf);
done:
gst_object_unref (probe);
@@ -443,16 +431,14 @@ done:
static void
gst_webrtc_vad_post_activity (GstWebrtcDsp *self, GstBuffer *buffer,
- gboolean stream_has_voice)
+ gboolean stream_has_voice, guint8 level)
{
GstClockTime timestamp = GST_BUFFER_PTS (buffer);
GstBaseTransform *trans = GST_BASE_TRANSFORM_CAST (self);
GstStructure *s;
GstClockTime stream_time;
GstAudioLevelMeta *meta;
- guint8 level;
- level = self->apm->level_estimator ()->RMS ();
meta = gst_buffer_get_audio_level_meta (buffer);
if (meta) {
meta->voice_activity = stream_has_voice;
@@ -481,6 +467,7 @@ gst_webrtc_dsp_process_stream (GstWebrtcDsp * self,
{
GstAudioBuffer abuf;
webrtc::AudioProcessing * apm = self->apm;
+ webrtc::StreamConfig config (self->info.rate, self->info.channels, false);
gint err;
if (!gst_audio_buffer_map (&abuf, &self->info, buffer,
@@ -490,19 +477,10 @@ gst_webrtc_dsp_process_stream (GstWebrtcDsp * self,
}
if (self->interleaved) {
- webrtc::AudioFrame frame;
- frame.num_channels_ = self->info.channels;
- frame.sample_rate_hz_ = self->info.rate;
- frame.samples_per_channel_ = self->period_samples;
-
- memcpy (frame.data_, abuf.planes[0], self->period_size);
- err = apm->ProcessStream (&frame);
- if (err >= 0)
- memcpy (abuf.planes[0], frame.data_, self->period_size);
+ int16_t * const data = (int16_t * const) abuf.planes[0];
+ err = apm->ProcessStream (data, config, config, data);
} else {
float * const * data = (float * const *) abuf.planes;
- webrtc::StreamConfig config (self->info.rate, self->info.channels, false);
-
err = apm->ProcessStream (data, config, config, data);
}
@@ -511,10 +489,13 @@ gst_webrtc_dsp_process_stream (GstWebrtcDsp * self,
webrtc_error_to_string (err));
} else {
if (self->voice_detection) {
- gboolean stream_has_voice = apm->voice_detection ()->stream_has_voice ();
+ webrtc::AudioProcessingStats stats = apm->GetStatistics ();
+ gboolean stream_has_voice = stats.voice_detected && *stats.voice_detected;
+ // The meta takes the value as -dbov, so we negate
+ guint8 level = stats.output_rms_dbfs ? (guint8) -(*stats.output_rms_dbfs) : 127;
if (stream_has_voice != self->stream_has_voice)
- gst_webrtc_vad_post_activity (self, buffer, stream_has_voice);
+ gst_webrtc_vad_post_activity (self, buffer, stream_has_voice, level);
self->stream_has_voice = stream_has_voice;
}
@@ -583,21 +564,9 @@ static gboolean
gst_webrtc_dsp_start (GstBaseTransform * btrans)
{
GstWebrtcDsp *self = GST_WEBRTC_DSP (btrans);
- webrtc::Config config;
GST_OBJECT_LOCK (self);
- config.Set < webrtc::ExtendedFilter >
- (new webrtc::ExtendedFilter (self->extended_filter));
- config.Set < webrtc::ExperimentalAgc >
- (new webrtc::ExperimentalAgc (self->experimental_agc, self->startup_min_volume));
- config.Set < webrtc::DelayAgnostic >
- (new webrtc::DelayAgnostic (self->delay_agnostic));
-
- /* TODO Intelligibility enhancer, Beamforming, etc. */
-
- self->apm = webrtc::AudioProcessing::Create (config);
-
if (self->echo_cancel) {
self->probe = gst_webrtc_acquire_echo_probe (self->probe_name);
@@ -618,10 +587,8 @@ static gboolean
gst_webrtc_dsp_setup (GstAudioFilter * filter, const GstAudioInfo * info)
{
GstWebrtcDsp *self = GST_WEBRTC_DSP (filter);
- webrtc::AudioProcessing * apm;
- webrtc::ProcessingConfig pconfig;
+ webrtc::AudioProcessing::Config config;
GstAudioInfo probe_info = *info;
- gint err = 0;
GST_LOG_OBJECT (self, "setting format to %s with %i Hz and %i channels",
info->finfo->description, info->rate, info->channels);
@@ -633,7 +600,7 @@ gst_webrtc_dsp_setup (GstAudioFilter * filter, const GstAudioInfo * info)
self->info = *info;
self->interleaved = (info->layout == GST_AUDIO_LAYOUT_INTERLEAVED);
- apm = self->apm;
+ self->apm = webrtc::AudioProcessingBuilder().Create();
if (!self->interleaved)
gst_planar_audio_adapter_configure (self->padapter, info);
@@ -642,8 +609,7 @@ gst_webrtc_dsp_setup (GstAudioFilter * filter, const GstAudioInfo * info)
self->period_samples = info->rate / 100;
self->period_size = self->period_samples * info->bpf;
- if (self->interleaved &&
- (webrtc::AudioFrame::kMaxDataSizeSamples * 2) < self->period_size)
+ if (self->interleaved && (self->period_size > MAX_DATA_SIZE_SAMPLES * 2))
goto period_too_big;
if (self->probe) {
@@ -658,40 +624,31 @@ gst_webrtc_dsp_setup (GstAudioFilter * filter, const GstAudioInfo * info)
GST_WEBRTC_ECHO_PROBE_UNLOCK (self->probe);
}
- /* input stream */
- pconfig.streams[webrtc::ProcessingConfig::kInputStream] =
- webrtc::StreamConfig (info->rate, info->channels, false);
- /* output stream */
- pconfig.streams[webrtc::ProcessingConfig::kOutputStream] =
- webrtc::StreamConfig (info->rate, info->channels, false);
- /* reverse input stream */
- pconfig.streams[webrtc::ProcessingConfig::kReverseInputStream] =
- webrtc::StreamConfig (probe_info.rate, probe_info.channels, false);
- /* reverse output stream */
- pconfig.streams[webrtc::ProcessingConfig::kReverseOutputStream] =
- webrtc::StreamConfig (probe_info.rate, probe_info.channels, false);
-
- if ((err = apm->Initialize (pconfig)) < 0)
- goto initialize_failed;
-
/* Setup Filters */
+ // TODO: expose pre_amplifier
+
if (self->high_pass_filter) {
GST_DEBUG_OBJECT (self, "Enabling High Pass filter");
- apm->high_pass_filter ()->Enable (true);
+ config.high_pass_filter.enabled = true;
}
if (self->echo_cancel) {
GST_DEBUG_OBJECT (self, "Enabling Echo Cancellation");
- apm->echo_cancellation ()->enable_drift_compensation (false);
- apm->echo_cancellation ()
- ->set_suppression_level (self->echo_suppression_level);
- apm->echo_cancellation ()->Enable (true);
+ config.echo_canceller.enabled = true;
}
if (self->noise_suppression) {
GST_DEBUG_OBJECT (self, "Enabling Noise Suppression");
- apm->noise_suppression ()->set_level (self->noise_suppression_level);
- apm->noise_suppression ()->Enable (true);
+ config.noise_suppression.enabled = true;
+ config.noise_suppression.level = self->noise_suppression_level;
+ }
+
+ // TODO: expose transient suppression
+
+ if (self->voice_detection) {
+ GST_DEBUG_OBJECT (self, "Enabling Voice Activity Detection");
+ config.voice_detection.enabled = true;
+ self->stream_has_voice = FALSE;
}
if (self->gain_control) {
@@ -706,30 +663,17 @@ gst_webrtc_dsp_setup (GstAudioFilter * filter, const GstAudioInfo * info)
g_type_class_unref (mode_class);
- apm->gain_control ()->set_mode (self->gain_control_mode);
- apm->gain_control ()->set_target_level_dbfs (self->target_level_dbfs);
- apm->gain_control ()->set_compression_gain_db (self->compression_gain_db);
- apm->gain_control ()->enable_limiter (self->limiter);
- apm->gain_control ()->Enable (true);
+ config.gain_controller1.enabled = true;
+ config.gain_controller1.target_level_dbfs = self->target_level_dbfs;
+ config.gain_controller1.compression_gain_db = self->compression_gain_db;
+ config.gain_controller1.enable_limiter = self->limiter;
+ config.level_estimation.enabled = true;
}
- if (self->voice_detection) {
- GEnumClass *likelihood_class = (GEnumClass *)
- g_type_class_ref (GST_TYPE_WEBRTC_VOICE_DETECTION_LIKELIHOOD);
- GST_DEBUG_OBJECT (self, "Enabling Voice Activity Detection, frame size "
- "%d milliseconds, likelihood: %s", self->voice_detection_frame_size_ms,
- g_enum_get_value (likelihood_class,
- self->voice_detection_likelihood)->value_name);
- g_type_class_unref (likelihood_class);
+ // TODO: expose gain controller 2
+ // TODO: expose residual echo detector
- self->stream_has_voice = FALSE;
-
- apm->voice_detection ()->Enable (true);
- apm->voice_detection ()->set_likelihood (self->voice_detection_likelihood);
- apm->voice_detection ()->set_frame_size_ms (
- self->voice_detection_frame_size_ms);
- apm->level_estimator ()->Enable (true);
- }
+ self->apm->ApplyConfig (config);
GST_OBJECT_UNLOCK (self);
@@ -738,9 +682,9 @@ gst_webrtc_dsp_setup (GstAudioFilter * filter, const GstAudioInfo * info)
period_too_big:
GST_OBJECT_UNLOCK (self);
GST_WARNING_OBJECT (self, "webrtcdsp format produce too big period "
- "(maximum is %" G_GSIZE_FORMAT " samples and we have %u samples), "
+ "(maximum is %d samples and we have %u samples), "
"reduce the number of channels or the rate.",
- webrtc::AudioFrame::kMaxDataSizeSamples, self->period_size / 2);
+ MAX_DATA_SIZE_SAMPLES, self->period_size / 2);
return FALSE;
probe_has_wrong_rate:
@@ -751,14 +695,6 @@ probe_has_wrong_rate:
" use a caps filter to ensure those are the same.",
probe_info.rate, info->rate), (NULL));
return FALSE;
-
-initialize_failed:
- GST_OBJECT_UNLOCK (self);
- GST_ELEMENT_ERROR (self, LIBRARY, INIT,
- ("Failed to initialize WebRTC Audio Processing library"),
- ("webrtc::AudioProcessing::Initialize() failed: %s",
- webrtc_error_to_string (err)));
- return FALSE;
}
static gboolean
@@ -803,8 +739,6 @@ gst_webrtc_dsp_set_property (GObject * object,
self->echo_cancel = g_value_get_boolean (value);
break;
case PROP_ECHO_SUPPRESSION_LEVEL:
- self->echo_suppression_level =
- (GstWebrtcEchoSuppressionLevel) g_value_get_enum (value);
break;
case PROP_NOISE_SUPPRESSION:
self->noise_suppression = g_value_get_boolean (value);
@@ -817,13 +751,10 @@ gst_webrtc_dsp_set_property (GObject * object,
self->gain_control = g_value_get_boolean (value);
break;
case PROP_EXPERIMENTAL_AGC:
- self->experimental_agc = g_value_get_boolean (value);
break;
case PROP_EXTENDED_FILTER:
- self->extended_filter = g_value_get_boolean (value);
break;
case PROP_DELAY_AGNOSTIC:
- self->delay_agnostic = g_value_get_boolean (value);
break;
case PROP_TARGET_LEVEL_DBFS:
self->target_level_dbfs = g_value_get_int (value);
@@ -845,11 +776,8 @@ gst_webrtc_dsp_set_property (GObject * object,
self->voice_detection = g_value_get_boolean (value);
break;
case PROP_VOICE_DETECTION_FRAME_SIZE_MS:
- self->voice_detection_frame_size_ms = g_value_get_int (value);
break;
case PROP_VOICE_DETECTION_LIKELIHOOD:
- self->voice_detection_likelihood =
- (GstWebrtcVoiceDetectionLikelihood) g_value_get_enum (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -876,7 +804,7 @@ gst_webrtc_dsp_get_property (GObject * object,
g_value_set_boolean (value, self->echo_cancel);
break;
case PROP_ECHO_SUPPRESSION_LEVEL:
- g_value_set_enum (value, self->echo_suppression_level);
+ g_value_set_enum (value, (GstWebrtcEchoSuppressionLevel) 2);
break;
case PROP_NOISE_SUPPRESSION:
g_value_set_boolean (value, self->noise_suppression);
@@ -888,13 +816,13 @@ gst_webrtc_dsp_get_property (GObject * object,
g_value_set_boolean (value, self->gain_control);
break;
case PROP_EXPERIMENTAL_AGC:
- g_value_set_boolean (value, self->experimental_agc);
+ g_value_set_boolean (value, false);
break;
case PROP_EXTENDED_FILTER:
- g_value_set_boolean (value, self->extended_filter);
+ g_value_set_boolean (value, false);
break;
case PROP_DELAY_AGNOSTIC:
- g_value_set_boolean (value, self->delay_agnostic);
+ g_value_set_boolean (value, false);
break;
case PROP_TARGET_LEVEL_DBFS:
g_value_set_int (value, self->target_level_dbfs);
@@ -915,10 +843,10 @@ gst_webrtc_dsp_get_property (GObject * object,
g_value_set_boolean (value, self->voice_detection);
break;
case PROP_VOICE_DETECTION_FRAME_SIZE_MS:
- g_value_set_int (value, self->voice_detection_frame_size_ms);
+ g_value_set_int (value, 0);
break;
case PROP_VOICE_DETECTION_LIKELIHOOD:
- g_value_set_enum (value, self->voice_detection_likelihood);
+ g_value_set_enum (value, 2);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -1005,13 +933,13 @@ gst_webrtc_dsp_class_init (GstWebrtcDspClass * klass)
g_object_class_install_property (gobject_class,
PROP_ECHO_SUPPRESSION_LEVEL,
- g_param_spec_enum ("echo-suppression-level", "Echo Suppression Level",
+ g_param_spec_enum ("echo-suppression-level",
+ "Echo Suppression Level (does nothing)",
"Controls the aggressiveness of the suppressor. A higher level "
"trades off double-talk performance for increased echo suppression.",
- GST_TYPE_WEBRTC_ECHO_SUPPRESSION_LEVEL,
- webrtc::EchoCancellation::kModerateSuppression,
+ GST_TYPE_WEBRTC_ECHO_SUPPRESSION_LEVEL, 2,
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
- G_PARAM_CONSTRUCT)));
+ G_PARAM_CONSTRUCT | G_PARAM_DEPRECATED)));
g_object_class_install_property (gobject_class,
PROP_NOISE_SUPPRESSION,
@@ -1026,7 +954,7 @@ gst_webrtc_dsp_class_init (GstWebrtcDspClass * klass)
"Controls the aggressiveness of the suppression. Increasing the "
"level will reduce the noise level at the expense of a higher "
"speech distortion.", GST_TYPE_WEBRTC_NOISE_SUPPRESSION_LEVEL,
- webrtc::EchoCancellation::kModerateSuppression,
+ webrtc::AudioProcessing::Config::NoiseSuppression::Level::kModerate,
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
G_PARAM_CONSTRUCT)));
@@ -1039,24 +967,26 @@ gst_webrtc_dsp_class_init (GstWebrtcDspClass * klass)
g_object_class_install_property (gobject_class,
PROP_EXPERIMENTAL_AGC,
- g_param_spec_boolean ("experimental-agc", "Experimental AGC",
+ g_param_spec_boolean ("experimental-agc",
+ "Experimental AGC (does nothing)",
"Enable or disable experimental automatic gain control.",
FALSE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
- G_PARAM_CONSTRUCT)));
+ G_PARAM_CONSTRUCT | G_PARAM_DEPRECATED)));
g_object_class_install_property (gobject_class,
PROP_EXTENDED_FILTER,
g_param_spec_boolean ("extended-filter", "Extended Filter",
"Enable or disable the extended filter.",
TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
- G_PARAM_CONSTRUCT)));
+ G_PARAM_CONSTRUCT | G_PARAM_DEPRECATED)));
g_object_class_install_property (gobject_class,
PROP_DELAY_AGNOSTIC,
- g_param_spec_boolean ("delay-agnostic", "Delay Agnostic",
+ g_param_spec_boolean ("delay-agnostic",
+ "Delay agnostic mode (does nothing)",
"Enable or disable the delay agnostic mode.",
FALSE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
- G_PARAM_CONSTRUCT)));
+ G_PARAM_CONSTRUCT | G_PARAM_DEPRECATED)));
g_object_class_install_property (gobject_class,
PROP_TARGET_LEVEL_DBFS,
@@ -1111,24 +1041,23 @@ gst_webrtc_dsp_class_init (GstWebrtcDspClass * klass)
g_object_class_install_property (gobject_class,
PROP_VOICE_DETECTION_FRAME_SIZE_MS,
g_param_spec_int ("voice-detection-frame-size-ms",
- "Voice Detection Frame Size Milliseconds",
+ "Voice detection frame size in milliseconds (does nothing)",
"Sets the |size| of the frames in ms on which the VAD will operate. "
"Larger frames will improve detection accuracy, but reduce the "
"frequency of updates",
10, 30, DEFAULT_VOICE_DETECTION_FRAME_SIZE_MS,
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
- G_PARAM_CONSTRUCT)));
+ G_PARAM_CONSTRUCT | G_PARAM_DEPRECATED)));
g_object_class_install_property (gobject_class,
PROP_VOICE_DETECTION_LIKELIHOOD,
g_param_spec_enum ("voice-detection-likelihood",
- "Voice Detection Likelihood",
+ "Voice detection likelihood (does nothing)",
"Specifies the likelihood that a frame will be declared to contain "
"voice.",
- GST_TYPE_WEBRTC_VOICE_DETECTION_LIKELIHOOD,
- DEFAULT_VOICE_DETECTION_LIKELIHOOD,
+ GST_TYPE_WEBRTC_VOICE_DETECTION_LIKELIHOOD, 2,
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
- G_PARAM_CONSTRUCT)));
+ G_PARAM_CONSTRUCT | G_PARAM_DEPRECATED)));
gst_type_mark_as_plugin_api (GST_TYPE_WEBRTC_GAIN_CONTROL_MODE, (GstPluginAPIFlags) 0);
gst_type_mark_as_plugin_api (GST_TYPE_WEBRTC_NOISE_SUPPRESSION_LEVEL, (GstPluginAPIFlags) 0);
diff --git a/ext/webrtcdsp/gstwebrtcechoprobe.cpp b/ext/webrtcdsp/gstwebrtcechoprobe.cpp
index acdb3d8a7d..8e8ca064c4 100644
--- a/ext/webrtcdsp/gstwebrtcechoprobe.cpp
+++ b/ext/webrtcdsp/gstwebrtcechoprobe.cpp
@@ -33,7 +33,8 @@
#include "gstwebrtcechoprobe.h"
-#include <webrtc/modules/interface/module_common_types.h>
+#include <modules/audio_processing/include/audio_processing.h>
+
#include <gst/audio/audio.h>
GST_DEBUG_CATEGORY_EXTERN (webrtc_dsp_debug);
@@ -102,7 +103,7 @@ gst_webrtc_echo_probe_setup (GstAudioFilter * filter, const GstAudioInfo * info)
self->period_size = self->period_samples * info->bpf;
if (self->interleaved &&
- (webrtc::AudioFrame::kMaxDataSizeSamples * 2) < self->period_size)
+ (MAX_DATA_SIZE_SAMPLES * 2) < self->period_size)
goto period_too_big;
GST_WEBRTC_ECHO_PROBE_UNLOCK (self);
@@ -112,9 +113,9 @@ gst_webrtc_echo_probe_setup (GstAudioFilter * filter, const GstAudioInfo * info)
period_too_big:
GST_WEBRTC_ECHO_PROBE_UNLOCK (self);
GST_WARNING_OBJECT (self, "webrtcdsp format produce too big period "
- "(maximum is %" G_GSIZE_FORMAT " samples and we have %u samples), "
+ "(maximum is %d samples and we have %u samples), "
"reduce the number of channels or the rate.",
- webrtc::AudioFrame::kMaxDataSizeSamples, self->period_size / 2);
+ MAX_DATA_SIZE_SAMPLES, self->period_size / 2);
return FALSE;
}
@@ -303,18 +304,20 @@ gst_webrtc_release_echo_probe (GstWebrtcEchoProbe * probe)
gint
gst_webrtc_echo_probe_read (GstWebrtcEchoProbe * self, GstClockTime rec_time,
- gpointer _frame, GstBuffer ** buf)
+ GstBuffer ** buf)
{
- webrtc::AudioFrame * frame = (webrtc::AudioFrame *) _frame;
GstClockTimeDiff diff;
- gsize avail, skip, offset, size;
+ gsize avail, skip, offset, size = 0;
gint delay = -1;
GST_WEBRTC_ECHO_PROBE_LOCK (self);
+ /* We always return a buffer -- if don't have data (size == 0), we generate a
+ * silence buffer */
+
if (!GST_CLOCK_TIME_IS_VALID (self->latency) ||
!GST_AUDIO_INFO_IS_VALID (&self->info))
- goto done;
+ goto copy;
if (self->interleaved)
avail = gst_adapter_available (self->adapter) / self->info.bpf;
@@ -324,7 +327,7 @@ gst_webrtc_echo_probe_read (GstWebrtcEchoProbe * self, GstClockTime rec_time,
/* In delay agnostic mode, just return 10ms of data */
if (!GST_CLOCK_TIME_IS_VALID (rec_time)) {
if (avail < self->period_samples)
- goto done;
+ goto copy;
size = self->period_samples;
skip = 0;
@@ -371,23 +374,51 @@ gst_webrtc_echo_probe_read (GstWebrtcEchoProbe * self, GstClockTime rec_time,
size = MIN (avail - offset, self->period_samples - skip);
copy:
- if (self->interleaved) {
- skip *= self->info.bpf;
- offset *= self->info.bpf;
- size *= self->info.bpf;
-
- if (size < self->period_size)
- memset (frame->data_, 0, self->period_size);
-
- if (size) {
- gst_adapter_copy (self->adapter, (guint8 *) frame->data_ + skip,
- offset, size);
- gst_adapter_flush (self->adapter, offset + size);
- }
+ if (!size) {
+ /* No data, provide a period's worth of silence */
+ *buf = gst_buffer_new_allocate (NULL, self->period_size, NULL);
+ gst_buffer_memset (*buf, 0, 0, self->period_size);
+ gst_buffer_add_audio_meta (*buf, &self->info, self->period_samples,
+ NULL);
} else {
+ /* We have some actual data, pop period_samples' worth if have it, else pad
+ * with silence and provide what we do have */
GstBuffer *ret, *taken, *tmp;
- if (size) {
+ if (self->interleaved) {
+ skip *= self->info.bpf;
+ offset *= self->info.bpf;
+ size *= self->info.bpf;
+
+ gst_adapter_flush (self->adapter, offset);
+
+ /* we need to fill silence at the beginning and/or the end of the
+ * buffer in order to have period_samples in the buffer */
+ if (size < self->period_size) {
+ gsize padding = self->period_size - (skip + size);
+
+ taken = gst_adapter_take_buffer (self->adapter, size);
+ ret = gst_buffer_new ();
+
+ /* need some silence at the beginning */
+ if (skip) {
+ tmp = gst_buffer_new_allocate (NULL, skip, NULL);
+ gst_buffer_memset (tmp, 0, 0, skip);
+ ret = gst_buffer_append (ret, tmp);
+ }
+
+ ret = gst_buffer_append (ret, taken);
+
+ /* need some silence at the end */
+ if (padding) {
+ tmp = gst_buffer_new_allocate (NULL, padding, NULL);
+ gst_buffer_memset (tmp, 0, 0, padding);
+ ret = gst_buffer_append (ret, tmp);
+ }
+ } else {
+ ret = gst_adapter_take_buffer (self->adapter, size);
+ }
+ } else {
gst_planar_audio_adapter_flush (self->padapter, offset);
/* we need to fill silence at the beginning and/or the end of each
@@ -430,23 +461,13 @@ copy:
ret = gst_planar_audio_adapter_take_buffer (self->padapter, size,
GST_MAP_READWRITE);
}
- } else {
- ret = gst_buffer_new_allocate (NULL, self->period_size, NULL);
- gst_buffer_memset (ret, 0, 0, self->period_size);
- gst_buffer_add_audio_meta (ret, &self->info, self->period_samples,
- NULL);
}
*buf = ret;
}
- frame->num_channels_ = self->info.channels;
- frame->sample_rate_hz_ = self->info.rate;
- frame->samples_per_channel_ = self->period_samples;
-
delay = self->delay;
-done:
GST_WEBRTC_ECHO_PROBE_UNLOCK (self);
return delay;
diff --git a/ext/webrtcdsp/gstwebrtcechoprobe.h b/ext/webrtcdsp/gstwebrtcechoprobe.h
index 36fd34f179..488c0e958f 100644
--- a/ext/webrtcdsp/gstwebrtcechoprobe.h
+++ b/ext/webrtcdsp/gstwebrtcechoprobe.h
@@ -45,6 +45,12 @@ G_BEGIN_DECLS
#define GST_WEBRTC_ECHO_PROBE_LOCK(obj) g_mutex_lock (&GST_WEBRTC_ECHO_PROBE (obj)->lock)
#define GST_WEBRTC_ECHO_PROBE_UNLOCK(obj) g_mutex_unlock (&GST_WEBRTC_ECHO_PROBE (obj)->lock)
+/* From the webrtc audio_frame.h definition of kMaxDataSizeSamples:
+ * Stereo, 32 kHz, 120 ms (2 * 32 * 120)
+ * Stereo, 192 kHz, 20 ms (2 * 192 * 20)
+ */
+#define MAX_DATA_SIZE_SAMPLES 7680
+
typedef struct _GstWebrtcEchoProbe GstWebrtcEchoProbe;
typedef struct _GstWebrtcEchoProbeClass GstWebrtcEchoProbeClass;
@@ -71,6 +77,7 @@ struct _GstWebrtcEchoProbe
GstClockTime latency;
gint delay;
gboolean interleaved;
+ gint extra_delay;
GstSegment segment;
GstAdapter *adapter;
@@ -92,7 +99,7 @@ GST_ELEMENT_REGISTER_DECLARE (webrtcechoprobe);
GstWebrtcEchoProbe *gst_webrtc_acquire_echo_probe (const gchar * name);
void gst_webrtc_release_echo_probe (GstWebrtcEchoProbe * probe);
gint gst_webrtc_echo_probe_read (GstWebrtcEchoProbe * self,
- GstClockTime rec_time, gpointer frame, GstBuffer ** buf);
+ GstClockTime rec_time, GstBuffer ** buf);
G_END_DECLS
#endif /* __GST_WEBRTC_ECHO_PROBE_H__ */
diff --git a/ext/webrtcdsp/meson.build b/ext/webrtcdsp/meson.build
index 5aeae69a44..09565e27c7 100644
--- a/ext/webrtcdsp/meson.build
+++ b/ext/webrtcdsp/meson.build
@@ -4,7 +4,7 @@ webrtc_sources = [
'gstwebrtcdspplugin.cpp'
]
-webrtc_dep = dependency('webrtc-audio-processing', version : ['>= 0.2', '< 0.4'],
+webrtc_dep = dependency('webrtc-audio-processing-1', version : ['>= 1.0'],
required : get_option('webrtcdsp'))
if not gnustl_dep.found() and get_option('webrtcdsp').enabled()
@@ -20,7 +20,7 @@ if webrtc_dep.found() and gnustl_dep.found()
dependencies : [gstbase_dep, gstaudio_dep, gstbadaudio_dep, webrtc_dep, gnustl_dep],
install : true,
install_dir : plugins_install_dir,
- override_options : ['cpp_std=c++11'],
+ override_options : ['cpp_std=c++17'],
)
plugins += [gstwebrtcdsp]
endif
--
2.34.1

View File

@ -0,0 +1,760 @@
menuconfig BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC
bool "gst1-plugins-bad-openipc"
depends on BR2_INSTALL_LIBSTDCPP
select BR2_PACKAGE_GST1_PLUGINS_BASE
help
A set of plug-ins for GStreamer that may be of poor quality
or lacking some features.
Shadowed for OpenIPC
https://gstreamer.freedesktop.org/
if BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC
comment "dependency-less plugins"
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ACCURIP
bool "accurip"
help
Accurip plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ADPCMDEC
bool "adpcmdec"
help
ADPCM decoder
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ADPCMENC
bool "adpcmenc"
help
ADPCM encoder
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AIFF
bool "aiff"
help
Create and parse Audio interchange File Format (AIFF) files
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ASFMUX
bool "asfmux"
help
ASF Muxer Plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AUDIOBUFFERSPLIT
bool "audiobuffersplit"
help
Audio buffersplit plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AUDIOFXBAD
bool "audiofxbad"
help
Audio filters plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AUDIOLATENCY
bool "audiolatency"
help
Audio latency plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AUDIOMIXMATRIX
bool "audiomixmatrix"
help
Audio N:M mixer plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AUDIOVISUALIZERS
bool "audiovisualizers"
help
Creates video visualizations of audio input
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AUTOCONVERT
bool "autoconvert"
help
Selects convertor element based on caps
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_BAYER
bool "bayer"
help
Elements to convert Bayer images
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_CAMERABIN2
bool "camerabin2"
help
Take image snapshots and record movies from camera
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_CODECALPHA
bool "codecalpha"
help
Elements for VP8/VP9 alpha support (codecalphademux,
alphacombine, vp8alphadecodebin, vp9alphadecodebin)
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_COLOREFFECTS
bool "coloreffects"
help
Color Look-up Table filters
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DEBUGUTILS
bool "debugutils"
help
Collection of elements that may or may not be useful for
debugging
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DVBSUBENC
bool "dvbsubenc"
help
DVB subpicture encoding support
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVBSUBOVERLAY
bool "dvbsuboverlay"
help
DVB subtitle renderer plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DVDSPU
bool "dvdspu"
help
DVD Sub-picture Overlay element
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FACEOVERLAY
bool "faceoverlay"
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FESTIVAL
bool "festival"
help
Synthesizes plain text into audio
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FIELDANALYSIS
bool "fieldanalysis"
help
Video field analysis
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FREEVERB
bool "freeverb"
help
Reverberation/room effect
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FREI0R
bool "frei0r"
help
frei0r plugin library
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_GAUDIEFFECTS
bool "gaudieffects"
help
Gaudi video effects
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_GEOMETRICTRANSFORM
bool "geometrictransform"
help
Various geometric image transform elements
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_GDP
bool "gdp"
help
Payload/depayload GDP packets
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ID3TAG
bool "id3tag"
help
ID3 v1 and v2 muxing plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_INTER
bool "inter"
help
plugin for inter-pipeline communication
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_INTERLACE
bool "interlace"
help
Create an interlaced video stream
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_IVFPARSE
bool "ivfparse"
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_IVTC
bool "ivtc"
help
Inverse Telecine plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_JP2KDECIMATOR
bool "jp2kdecimator"
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC-PLUGIN_JPEGFORMAT
bool "jpegformat"
help
JPEG interchange format plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_LIBRFB
bool "librfb"
help
Connects to a VNC server and decodes RFB stream
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MIDI
bool "midi"
help
MIDI plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MPEGDEMUX
bool "mpegdemux"
help
MPEG-PS demuxer
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MPEGTSDEMUX
bool "mpegtsdemux"
help
MPEG TS demuxer
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MPEGTSMUX
bool "mpegtsmux"
help
MPEG-TS muxer
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MPEGPSMUX
bool "mpegpsmux"
help
MPEG-PS muxer
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MXF
bool "mxf"
help
MXF plugin library
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_NETSIM
bool "netsim"
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ONVIF
bool "onvif"
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_PCAPPARSE
bool "pcapparse"
help
Element parsing raw pcap streams
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_PNM
bool "pnm"
help
PNM plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_PROXY
bool "proxy"
help
Proxy plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_RAWPARSE
bool "rawparse"
help
Parses byte streams into raw frames
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_REMOVESILENCE
bool "removesilence"
help
Removes silence from an audio stream
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_RIST
bool "rist"
help
RIST streaming
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_RTMP2
bool "rtmp2"
help
RTMP sink/source (rtmp2sink, rtmp2src)
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_RTP2
bool "rtp"
help
RTP (rtpsrc/rtpsink)
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_RTMP
bool "rtmp"
select BR2_PACKAGE_RTMPDUMP
help
RTMP plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SDP
bool "sdp"
help
configure streaming sessions using SDP
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SEGMENTCLIP
bool "segmentclip"
help
Segment clip elements
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SIREN
bool "siren"
help
Siren encoder/decoder/payloader/depayloader plugins
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SMOOTH
bool "smooth"
help
Apply a smooth filter to an image
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SPEED
bool "speed"
help
Set speed/pitch on audio/raw streams (resampler)
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SUBENC
bool "subenc"
help
subtitle encoders
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SWITCHBIN
bool "switchbin"
help
Switching between paths based on input caps
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_TIMECODE
bool "timecode"
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VIDEOFILTERS
bool "videofilters"
help
Video filters in gst-plugins-bad
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VIDEOFRAME_AUDIOLEVEL
bool "videoframe_audiolevel"
help
videoframe_audiolevel
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VIDEOPARSERS
bool "videoparsers"
help
videoparsers
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VIDEOSIGNAL
bool "videosignal"
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VMNC
bool "vmnc"
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_Y4M
bool "y4m"
help
Demuxes/decodes YUV4MPEG streams
comment "plugins with external dependencies"
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AES
bool "aes"
select BR2_PACKAGE_OPENSSL
help
"AES encryption/decryption plugin"
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ASSRENDER
bool "assrender"
depends on BR2_INSTALL_LIBSTDCPP # libass -> harfbuzz
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libass -> harfbuzz
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libass -> harfbuzz
select BR2_PACKAGE_LIBASS
comment "assrender plugin needs a toolchain w/ C++, gcc >= 4.9"
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_BLUEZ
bool "bluez"
depends on BR2_USE_WCHAR # bluez5_utils -> libglib2
depends on BR2_TOOLCHAIN_HAS_THREADS # bluez5_utils -> dbus, libglib2
depends on BR2_USE_MMU # bluez5_utils -> dbus
depends on !BR2_STATIC_LIBS # bluez5_utils -> uses dlfcn
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # bluez5_utils
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # bluez5_utils
select BR2_PACKAGE_BLUEZ5_UTILS
select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO # runtime
help
Bluetooth audio A2DP/AVDTP sink, AVDTP source plugin
comment "bluez plugin needs a toolchain w/ wchar, threads, headers >= 3.4, dynamic library"
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 || BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_USE_MMU
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_BZ2
bool "bz2"
select BR2_PACKAGE_BZIP2
help
Compress or decompress streams
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_CURL
bool "curl"
select BR2_PACKAGE_LIBCURL
help
libcurl-based elements
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DASH
bool "dash"
select BR2_PACKAGE_LIBXML2
help
DASH demuxer plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DECKLINK
bool "decklink"
depends on BR2_INSTALL_LIBSTDCPP
depends on !BR2_STATIC_LIBS # <dlfcn.h>
help
Blackmagic Decklink plugin
comment "decklink needs a toolchain w/ C++, dynamic library"
depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DIRECTFB
bool "directfb"
default y
depends on BR2_PACKAGE_DIRECTFB
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DVB
bool "dvb"
# FEC_2_5 / QAM_4_NR definitions
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
select BR2_PACKAGE_DTV_SCAN_TABLES
help
DVB elements
comment "dvb needs a toolchain w/ headers >= 3.7"
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FAAD
bool "faad"
select BR2_PACKAGE_FAAD2
help
Free AAC Decoder (FAAD)
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FBDEV
bool "fbdev"
help
Linux framebuffer video sink
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FDK_AAC
bool "fdk-aac"
depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS
depends on BR2_INSTALL_LIBSTDCPP
select BR2_PACKAGE_FDK_AAC
help
MPEG AAC encoder/decoder
comment "fdk-aac needs a toolchain w/ C++"
depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS
depends on !BR2_INSTALL_LIBSTDCPP
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FLUIDSYNTH
bool "fluidsynth"
depends on !BR2_STATIC_LIBS # fluidsynth
depends on BR2_USE_WCHAR # fluidsynth
depends on BR2_TOOLCHAIN_HAS_THREADS # fluidsynth
depends on BR2_USE_MMU # fluidsynth
select BR2_PACKAGE_FLUIDSYNTH
help
Fluidsynth MIDI decoder plugin
comment "fluidsynth needs a toolchain w/ threads, wchar, dynamic library"
depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
BR2_STATIC_LIBS
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_GL
bool "gl"
default y
depends on BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL
comment "gl needs the gst1-plugins-base opengl library"
depends on !BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_HLS
bool "hls"
select BR2_PACKAGE_NETTLE if !(BR2_PACKAGE_LIBGCRYPT || BR2_PACKAGE_OPENSSL)
help
Fragmented streaming plugins
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_KMS
bool "kmssink"
depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm -> libpthread-stubs
select BR2_PACKAGE_LIBDRM
help
KMS video sink
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DTLS
bool "dtls"
select BR2_PACKAGE_OPENSSL
help
DTLS plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_TTML
bool "ttml"
depends on BR2_USE_WCHAR # pango -> glib2
depends on BR2_TOOLCHAIN_HAS_THREADS # pango -> glib2
depends on BR2_USE_MMU # pango -> glib2
depends on BR2_INSTALL_LIBSTDCPP # pango -> freetype
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_LIBXML2
select BR2_PACKAGE_PANGO
help
Timed Text Markup Language (TTML) subtitle plugin
comment "ttml needs a toolchain w/ wchar, threads, C++, gcc >= 4.9"
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MPEG2ENC
bool "mpeg2enc"
depends on BR2_USE_MMU # fork
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS
select BR2_PACKAGE_LIBMPEG2
select BR2_PACKAGE_MJPEGTOOLS
help
High-quality MPEG-1/2 video encoder
comment "mpeg2enc needs a toolchain w/ threads, C++"
depends on BR2_USE_MMU
depends on !BR2_TOOLCHAIN_HAS_THREADS \
|| !BR2_INSTALL_LIBSTDCPP
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MUSEPACK
bool "musepack"
select BR2_PACKAGE_MUSEPACK
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_NEON
bool "neon"
select BR2_PACKAGE_NEON
help
lib neon http client src
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_OPENAL
bool "openal"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS
select BR2_PACKAGE_OPENAL
comment "openal plugin needs a toolchain w/ NPTL, C++, gcc >= 4.9"
depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL \
|| !BR2_INSTALL_LIBSTDCPP \
|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_OPENH264
bool "openh264"
depends on BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS
depends on BR2_INSTALL_LIBSTDCPP # libopenh264
depends on !BR2_STATIC_LIBS # libopenh264
depends on BR2_TOOLCHAIN_HAS_THREADS # libopenh264
select BR2_PACKAGE_LIBOPENH264
help
OpenH264 based encoding/decoding plugin
comment "openh264 plugin needs a toolchain w/ C++, dynamic library, threads"
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
BR2_STATIC_LIBS
depends on BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_OPENJPEG
bool "openjpeg"
select BR2_PACKAGE_OPENJPEG
help
GStreamer OpenJPEG plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_OPUS
bool "opus"
select BR2_PACKAGE_OPUS
help
OPUS plugin library
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_QROVERLAY
bool "qroverlay"
select BR2_PACKAGE_JSON_GLIB
select BR2_PACKAGE_LIBQRENCODE
help
Elements qroverlay, debugqroverlay (overlay data on top of
video in the form of a QR code)
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_RSVG
bool "rsvg"
depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # librsvg
depends on BR2_INSTALL_LIBSTDCPP # librsvg -> pango
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # librsvg -> pango -> harfbuzz
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # librsvg -> pango -> harfbuzz
select BR2_PACKAGE_LIBRSVG
help
RSVG plugin library
comment "rsvg plugin needs a toolchain w/ C++, gcc >= 4.9"
depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
depends on !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
depends on BR2_TOOLCHAIN_HAS_SYNC_4
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SBC
bool "sbc"
select BR2_PACKAGE_SBC
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SCTP
bool "sctp"
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # __sync_*_4 intrinsics
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SHM
bool "shm"
help
shared memory sink source
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SNDFILE
bool "sndfile"
select BR2_PACKAGE_LIBSNDFILE
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SRTP
bool "srtp"
select BR2_PACKAGE_LIBSRTP
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_UVCH264
bool "uvch264"
depends on BR2_PACKAGE_HAS_UDEV # libgudev
depends on BR2_TOOLCHAIN_HAS_THREADS # libgudev, libusb
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
depends on BR2_USE_MMU # libgudev
depends on BR2_USE_WCHAR # libgudev
select BR2_PACKAGE_LIBGUDEV
select BR2_PACKAGE_LIBUSB
help
UVC compliant H.264 camera source plugin
comment "uvch264 needs udev /dev management"
depends on BR2_USE_MMU
depends on !BR2_PACKAGE_HAS_UDEV
comment "uvch264 needs a toolchain w/ threads, wchar, gcc >= 4.9"
depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VA
bool "va"
depends on !BR2_STATIC_LIBS # libva
depends on BR2_TOOLCHAIN_HAS_THREADS # libva
select BR2_PACKAGE_LIBVA
help
VA-API new plugin
comment "va needs a toolchain w/ threads, dynamic library"
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENIPC_VOAACENC
bool "voaacenc"
select BR2_PACKAGE_VO_AACENC
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_WAYLAND
bool "wayland"
default y
depends on BR2_PACKAGE_WAYLAND
depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm -> libpthread-stubs
select BR2_PACKAGE_LIBDRM
select BR2_PACKAGE_WAYLAND_PROTOCOLS
help
Wayland Video Sink
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_WEBP
bool "webp"
select BR2_PACKAGE_WEBP
help
Webp image format plugin
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_WEBRTC
bool "webrtc"
depends on !BR2_STATIC_LIBS # libnice -> gnutls
select BR2_PACKAGE_GST1_PLUGINS_BASE # libgstsdp
select BR2_PACKAGE_LIBNICE
help
WebRTC plugins (webrtcbin - a bin for webrtc connections)
comment "webrtc needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_WEBRTCDSP
bool "webrtcdsp"
# All depends from webrtc-audio-processing
depends on BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS
depends on BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
depends on !BR2_STATIC_LIBS
select BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING
help
WebRTC echo-cancellation, gain control and noise suppression
comment "webrtcdsp needs a toolchain w/ C++, NPTL, dynamic library, gcc >= 8"
depends on BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS
depends on BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \
|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_8
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_WPE
bool "wpe"
default y
depends on BR2_PACKAGE_WPEWEBKIT
depends on BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL
depends on !BR2_PACKAGE_WPEWEBKIT_MEDIA_STREAM
comment "wpe needs the gst1-plugins-base opengl library and wpewebkit"
depends on !BR2_PACKAGE_WPEWEBKIT \
|| !BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL
comment "wpe is incompatible w/ wpewebkit media-stream support"
depends on BR2_PACKAGE_WPEWEBKIT
depends on BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL
depends on BR2_PACKAGE_WPEWEBKIT_MEDIA_STREAM
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_V4L2CODECS
bool "v4l2codecs"
depends on BR2_PACKAGE_HAS_UDEV # libgudev
select BR2_PACKAGE_LIBGUDEV
help
Video4Linux Stateless CODECs support
comment "v4l2codecs need udev /dev management"
depends on !BR2_PACKAGE_HAS_UDEV
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_X265
bool "x265"
depends on BR2_INSTALL_LIBSTDCPP
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # x265
select BR2_PACKAGE_X265
help
x265 encoding plugin
comment "x265 needs a toolchain w/ C++, dynamic library"
depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_ZBAR
bool "zbar"
depends on BR2_TOOLCHAIN_HAS_THREADS # zbar-> libv4l
depends on BR2_USE_MMU # zbar-> libv4l
depends on BR2_INSTALL_LIBSTDCPP # zbar-> libv4l
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # zbar -> libv4l
select BR2_PACKAGE_ZBAR
comment "zbar plugin needs a toolchain w/ threads, C++ and headers >= 3.0"
depends on BR2_USE_MMU
depends on !BR2_TOOLCHAIN_HAS_THREADS \
|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
config BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_ZXING
bool "zxing"
depends on !BR2_STATIC_LIBS # zxing-cpp
depends on BR2_USE_WCHAR # zxing-cpp
depends on BR2_INSTALL_LIBSTDCPP # zxing-cpp
select BR2_PACKAGE_ZXING_CPP
comment "zxing plugin needs a toolchain w/ C++, wchar, dynamic library"
depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR || \
!BR2_INSTALL_LIBSTDCPP
endif
comment "gst1-plugins-bad-openipc needs a toolchain w/ C++"
depends on !BR2_INSTALL_LIBSTDCPP

View File

@ -0,0 +1,3 @@
# From https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.22.9.tar.xz.sha256sum
sha256 1bc65d0fd5f53a3636564efd3fcf318c3edcdec39c4109a503c1fc8203840a1d gst-plugins-bad-1.22.9.tar.xz
sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING

View File

@ -0,0 +1,850 @@
################################################################################
#
# gst1-plugins-bad-openipc
#
# Changes from upstream
# - disable build of nvcodec
################################################################################
GST1_PLUGINS_BAD_OPENIPC_VERSION = 1.22.9
GST1_PLUGINS_BAD_OPENIPC_SOURCE = gst-plugins-bad-$(GST1_PLUGINS_BAD_VERSION).tar.xz
GST1_PLUGINS_BAD_OPENIPC_SITE = https://gstreamer.freedesktop.org/src/gst-plugins-bad
GST1_PLUGINS_BAD_OPENIPC_INSTALL_STAGING = YES
# Additional plugin licenses will be appended to GST1_PLUGINS_BAD_OPENIPC_LICENSE and
# GST1_PLUGINS_BAD_OPENIPC_LICENSE_FILES if enabled.
GST1_PLUGINS_BAD_OPENIPC_LICENSE_FILES = COPYING
GST1_PLUGINS_BAD_OPENIPC_LICENSE = LGPL-2.0+
GST1_PLUGINS_BAD_OPENIPC_CPE_ID_VENDOR = freedesktop
GST1_PLUGINS_BAD_OPENIPC_CPE_ID_PRODUCT = gst-plugins-bad
GST1_PLUGINS_BAD_OPENIPC_CFLAGS = $(TARGET_CFLAGS) -std=c99 -D_GNU_SOURCE
GST1_PLUGINS_BAD_OPENIPC_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS = \
-Dexamples=disabled \
-Dtests=disabled \
-Ddirectsound=disabled \
-Dd3dvideosink=disabled \
-Dwinks=disabled \
-Dandroidmedia=disabled \
-Dapplemedia=disabled \
-Dgobject-cast-checks=disabled \
-Dglib-asserts=disabled \
-Dglib-checks=disabled \
-Dextra-checks=disabled \
-Ddoc=disabled \
# Options which require currently unpackaged libraries
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += \
-Dasio=disabled \
-Davtp=disabled \
-Dopensles=disabled \
-Dmsdk=disabled \
-Dvoamrwbenc=disabled \
-Dbs2b=disabled \
-Dchromaprint=disabled \
-Dd3d11=disabled \
-Ddc1394=disabled \
-Ddts=disabled \
-Dresindvd=disabled \
-Dfaac=disabled \
-Dflite=disabled \
-Dgs=disabled \
-Dgsm=disabled \
-Dkate=disabled \
-Dladspa=disabled \
-Dldac=disabled \
-Dlv2=disabled \
-Dmediafoundation=disabled \
-Dmicrodns=disabled \
-Dlibde265=disabled \
-Dmodplug=disabled \
-Dmplex=disabled \
-Donnx=disabled \
-Dopenexr=disabled \
-Dopenni2=disabled \
-Dteletext=disabled \
-Dwildmidi=disabled \
-Dsmoothstreaming=disabled \
-Dsoundtouch=disabled \
-Dgme=disabled \
-Dspandsp=disabled \
-Dsvthevcenc=disabled \
-Dtranscode=disabled \
-Dwasapi2=disabled \
-Dmagicleap=disabled \
-Disac=disabled \
-Diqa=disabled \
-Dopencv=disabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES = gst1-plugins-base gstreamer1
ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dintrospection=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += gobject-introspection
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dintrospection=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_WAYLAND),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dwayland=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libdrm wayland wayland-protocols
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dwayland=disabled
endif
ifeq ($(BR2_PACKAGE_ORC),y)
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += orc
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dorc=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dorc=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_BLUEZ),y)
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += bluez5_utils
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dbluez=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dbluez=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ACCURIP),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daccurip=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daccurip=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ADPCMDEC),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dadpcmdec=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dadpcmdec=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ADPCMENC),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dadpcmenc=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dadpcmenc=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AIFF),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daiff=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daiff=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ASFMUX),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dasfmux=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dasfmux=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AUDIOBUFFERSPLIT),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daudiobuffersplit=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daudiobuffersplit=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AUDIOFXBAD),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daudiofxbad=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daudiofxbad=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AUDIOLATENCY),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daudiolatency=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daudiolatency=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AUDIOMIXMATRIX),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daudiomixmatrix=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daudiomixmatrix=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AUDIOVISUALIZERS),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daudiovisualizers=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daudiovisualizers=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AUTOCONVERT),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dautoconvert=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dautoconvert=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_OPENIPC_BAD_PLUGIN_BAYER),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dbayer=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dbayer=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_CAMERABIN2),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dcamerabin2=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dcamerabin2=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_CODECALPHA),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dcodecalpha=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dcodecalpha=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_COLOREFFECTS),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dcoloreffects=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dcoloreffects=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DEBUGUTILS),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddebugutils=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddebugutils=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DVBSUBENC),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddvbsubenc=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddvbsubenc=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DVBSUBOVERLAY),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddvbsuboverlay=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddvbsuboverlay=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DVDSPU),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddvdspu=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddvdspu=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FACEOVERLAY),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfaceoverlay=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfaceoverlay=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FESTIVAL),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfestival=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfestival=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FIELDANALYSIS),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfieldanalysis=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfieldanalysis=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FREEVERB),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfreeverb=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfreeverb=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FREI0R),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfrei0r=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfrei0r=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_GAUDIEFFECTS),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dgaudieffects=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dgaudieffects=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_GEOMETRICTRANSFORM),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dgeometrictransform=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dgeometrictransform=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_GDP),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dgdp=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dgdp=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ID3TAG),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Did3tag=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Did3tag=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_INTER),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dinter=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dinter=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_INTERLACE),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dinterlace=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dinterlace=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_IVFPARSE),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Divfparse=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Divfparse=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_IVTC),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Divtc=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Divtc=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_JP2KDECIMATOR),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Djp2kdecimator=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Djp2kdecimator=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_JPEGFORMAT),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Djpegformat=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Djpegformat=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_LIBRFB),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dlibrfb=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dlibrfb=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MIDI),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmidi=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmidi=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MPEGDEMUX),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmpegdemux=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmpegdemux=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MPEGPSMUX),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmpegpsmux=enabled
GST1_PLUGINS_BAD_OPENIPC_HAS_UNKNOWN_LICENSE = y
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmpegpsmux=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MPEGTSMUX),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmpegtsmux=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmpegtsmux=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MPEGTSDEMUX),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmpegtsdemux=enabled
GST1_PLUGINS_BAD_OPENIPC_HAS_UNKNOWN_LICENSE = y
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmpegtsdemux=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MXF),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmxf=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmxf=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_NETSIM),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dnetsim=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dnetsim=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ONVIF),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Donvif=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Donvif=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_PCAPPARSE),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dpcapparse=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dpcapparse=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_PNM),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dpnm=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dpnm=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_PROXY),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dproxy=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dproxy=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_RAWPARSE),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Drawparse=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Drawparse=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_REMOVESILENCE),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dremovesilence=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dremovesilence=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_RIST),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Drist=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Drist=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_RTMP2),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Drtmp2=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Drtmp2=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_RTP2),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Drtp=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Drtp=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_RTMP),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Drtmp=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += rtmpdump
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Drtmp=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SDP),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsdp=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsdp=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SEGMENTCLIP),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsegmentclip=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsegmentclip=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SIREN),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsiren=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsiren=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SMOOTH),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsmooth=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsmooth=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SPEED),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dspeed=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dspeed=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SUBENC),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsubenc=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsubenc=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SWITCHBIN),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dswitchbin=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dswitchbin=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_TIMECODE),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dtimecode=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dtimecode=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VIDEOFILTERS),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dvideofilters=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dvideofilters=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VIDEOFRAME_AUDIOLEVEL),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dvideoframe_audiolevel=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dvideoframe_audiolevel=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VIDEOPARSERS),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dvideoparsers=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dvideoparsers=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VIDEOSIGNAL),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dvideosignal=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dvideosignal=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VMNC),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dvmnc=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dvmnc=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_Y4M),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dy4m=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dy4m=disabled
endif
# Plugins with dependencies
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_AES),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daes=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += openssl
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Daes=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_ASSRENDER),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dassrender=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libass
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dassrender=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_BZ2),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dbz2=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += bzip2
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dbz2=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_CURL),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dcurl=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libcurl
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dcurl=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DASH),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddash=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libxml2
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddash=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DECKLINK),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddecklink=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddecklink=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DIRECTFB),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddirectfb=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += directfb
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddirectfb=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DVB),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddvb=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += dtv-scan-tables
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddvb=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FAAD),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfaad=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += faad2
GST1_PLUGINS_BAD_OPENIPC_HAS_GPL_LICENSE = y
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfaad=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FBDEV),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfbdev=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfbdev=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FDK_AAC),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfdkaac=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += fdk-aac
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfdkaac=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_FLUIDSYNTH),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfluidsynth=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += fluidsynth
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dfluidsynth=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_GL),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dgl=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dgl=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_HLS),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dhls=enabled
ifeq ($(BR2_PACKAGE_NETTLE),y)
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += nettle
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dhls-crypto='nettle'
else ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libgcrypt
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dhls-crypto='libgcrypt'
else
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += openssl
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dhls-crypto='openssl'
endif
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dhls=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_KMS),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dkms=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libdrm
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dkms=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_DTLS),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddtls=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += openssl
GST1_PLUGINS_BAD_OPENIPC_HAS_BSD2C_LICENSE = y
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Ddtls=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_TTML),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dttml=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += cairo libxml2 pango
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dttml=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MPEG2ENC),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmpeg2enc=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libmpeg2 mjpegtools
GST1_PLUGINS_BAD_OPENIPC_HAS_GPL_LICENSE = y
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmpeg2enc=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_MUSEPACK),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmusepack=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += musepack
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dmusepack=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_NEON),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dneon=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += neon
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dneon=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_NVCODEC),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dnvcodec=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += nvcodec
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dnvcodec=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_OPENAL),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dopenal=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += openal
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dopenal=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_OPENH264),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dopenh264=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libopenh264
GST1_PLUGINS_BAD_OPENIPC_HAS_BSD2C_LICENSE = y
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dopenh264=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_OPENJPEG),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dopenjpeg=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += openjpeg
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dopenjpeg=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_OPUS),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dopus=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += opus
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dopus=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_QROVERLAY),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dqroverlay=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += json-glib libqrencode
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dqroverlay=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_RSVG),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Drsvg=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += librsvg
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Drsvg=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SBC),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsbc=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += sbc
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsbc=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SCTP),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += \
-Dsctp=enabled \
-Dsctp-internal-usrsctp=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += \
-Dsctp=disabled \
-Dsctp-internal-usrsctp=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SHM),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dshm=enabled
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dshm=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS__BAD_OPENIPC_PLUGIN_SNDFILE),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsndfile=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libsndfile
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsndfile=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_SRTP),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsrtp=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libsrtp
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dsrtp=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_UVCH264),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Duvch264=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libgudev libusb
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Duvch264=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VA),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dva=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libva
ifeq ($(BR2_PACKAGE_LIBDRM),y)
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libdrm
endif
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dva=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_VOAACENC),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dvoaacenc=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += vo-aacenc
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dvoaacenc=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_WEBP),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dwebp=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += webp
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dwebp=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_WEBRTC),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dwebrtc=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += gst1-plugins-base libnice
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dwebrtc=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_WEBRTCDSP),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dwebrtcdsp=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += webrtc-audio-processing
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dwebrtcdsp=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_WPE),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dwpe=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libwpe wpewebkit wpebackend-fdo
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dwpe=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_V4L2CODECS),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dv4l2codecs=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += libgudev
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dv4l2codecs=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_PLUGIN_X265),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dx265=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += x265
GST1_PLUGINS_BAD_OPENIPC_HAS_GPL_LICENSE = y
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dx265=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_ZBAR),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dzbar=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += zbar
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dzbar=disabled
endif
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_OPENIPC_ZXING),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dzxing=enabled
GST1_PLUGINS_BAD_OPENIPC_DEPENDENCIES += zxing-cpp
else
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dzxing=disabled
endif
# Add GPL license if GPL licensed plugins enabled.
ifeq ($(GST1_PLUGINS_BAD_OPENIPC_HAS_GPL_LICENSE),y)
GST1_PLUGINS_BAD_OPENIPC_CONF_OPTS += -Dgpl=enabled
GST1_PLUGINS_BAD_OPENIPC_LICENSE += , GPL-2.0+
GST1_PLUGINS_BAD_OPENIPC_LICENSE_FILES += COPYING
endif
# Add BSD license if BSD licensed plugins enabled.
ifeq ($(GST1_PLUGINS_BAD_OPENIPC_HAS_BSD2C_LICENSE),y)
GST1_PLUGINS_BAD_OPENIPC_LICENSE += , BSD-2-Clause
endif
# Add Unknown license if Unknown licensed plugins enabled.
ifeq ($(GST1_PLUGINS_BAD_OPENIPC_HAS_UNKNOWN_LICENSE),y)
GST1_PLUGINS_BAD_OPENIPC_LICENSE += , UNKNOWN
endif
# Use the following command to extract license info for plugins.
# # find . -name 'plugin-*.xml' | xargs grep license
$(eval $(meson-package))