From 218157ffcf668fbb681508527badafdb68ac64fe Mon Sep 17 00:00:00 2001 From: Vivia Nikolaidou Date: Mon, 27 Jan 2020 15:53:27 +0200 Subject: [PATCH] basic-tutorial-3: Add audioresample If whatever is in autoaudiosink doesn't do resampling, and 48000 isn't its configured rate, the tutorial will fail. --- examples/tutorials/basic-tutorial-3.c | 9 ++++++--- markdown/tutorials/basic/dynamic-pipelines.md | 8 +++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/examples/tutorials/basic-tutorial-3.c b/examples/tutorials/basic-tutorial-3.c index 5e9585e..320382d 100644 --- a/examples/tutorials/basic-tutorial-3.c +++ b/examples/tutorials/basic-tutorial-3.c @@ -6,6 +6,7 @@ typedef struct _CustomData GstElement *pipeline; GstElement *source; GstElement *convert; + GstElement *resample; GstElement *sink; } CustomData; @@ -28,12 +29,14 @@ main (int argc, char *argv[]) /* Create the elements */ data.source = gst_element_factory_make ("uridecodebin", "source"); data.convert = gst_element_factory_make ("audioconvert", "convert"); + data.resample = gst_element_factory_make ("audioresample", "resample"); data.sink = gst_element_factory_make ("autoaudiosink", "sink"); /* Create the empty pipeline */ data.pipeline = gst_pipeline_new ("test-pipeline"); - if (!data.pipeline || !data.source || !data.convert || !data.sink) { + if (!data.pipeline || !data.source || !data.convert || !data.resample + || !data.sink) { g_printerr ("Not all elements could be created.\n"); return -1; } @@ -41,8 +44,8 @@ main (int argc, char *argv[]) /* Build the pipeline. Note that we are NOT linking the source at this * point. We will do it later. */ gst_bin_add_many (GST_BIN (data.pipeline), data.source, data.convert, - data.sink, NULL); - if (!gst_element_link (data.convert, data.sink)) { + data.resample, data.sink, NULL); + if (!gst_element_link_many (data.convert, data.resample, data.sink, NULL)) { g_printerr ("Elements could not be linked.\n"); gst_object_unref (data.pipeline); return -1; diff --git a/markdown/tutorials/basic/dynamic-pipelines.md b/markdown/tutorials/basic/dynamic-pipelines.md index f34156d..96f546b 100644 --- a/markdown/tutorials/basic/dynamic-pipelines.md +++ b/markdown/tutorials/basic/dynamic-pipelines.md @@ -93,6 +93,7 @@ typedef struct _CustomData { GstElement *pipeline; GstElement *source; GstElement *convert; + GstElement *resample; GstElement *sink; } CustomData; @@ -112,20 +113,21 @@ int main(int argc, char *argv[]) { /* Create the elements */ data.source = gst_element_factory_make ("uridecodebin", "source"); data.convert = gst_element_factory_make ("audioconvert", "convert"); + data.resample = gst_element_factory_make ("audioresample", "resample"); data.sink = gst_element_factory_make ("autoaudiosink", "sink"); /* Create the empty pipeline */ data.pipeline = gst_pipeline_new ("test-pipeline"); - if (!data.pipeline || !data.source || !data.convert || !data.sink) { + if (!data.pipeline || !data.source || !data.convert || !data.resample || !data.sink) { g_printerr ("Not all elements could be created.\n"); return -1; } /* Build the pipeline. Note that we are NOT linking the source at this * point. We will do it later. */ - gst_bin_add_many (GST_BIN (data.pipeline), data.source, data.convert , data.sink, NULL); - if (!gst_element_link (data.convert, data.sink)) { + gst_bin_add_many (GST_BIN (data.pipeline), data.source, data.convert, data.resample, data.sink, NULL); + if (!gst_element_link_many (data.convert, data.resample, data.sink, NULL)) { g_printerr ("Elements could not be linked.\n"); gst_object_unref (data.pipeline); return -1; -- 2.7.4