GES: Problem applying certain effects when seeking with a non-1.0 rate

Steve Rubin srubin at cs.berkeley.edu
Wed Aug 15 00:54:24 UTC 2018


In case anyone else is having this issue, here's what worked for me.

I used the playback speed parameter in `gst_element_seek` as in my original
message:


Steve Rubin wrote
>   gst_element_seek(GST_ELEMENT(gesPipeline),
>                    2,
>                    GST_FORMAT_TIME,
>                    GST_SEEK_FLAG_FLUSH,
>                    GST_SEEK_TYPE_NONE,
>                    GST_CLOCK_TIME_NONE,
>                    GST_SEEK_TYPE_NONE,
>                    GST_CLOCK_TIME_NONE);

Then, I augmented the pipeline's output sink to use a `scaletempo` effect:

  GstElement *audioSink = gst_element_factory_make("osxaudiosink",
"mac-audio-sink");
  // Add scaletempo effect to remove "chipmunking"
  GstElement *scaleTempo = gst_element_factory_make("scaletempo", NULL);
  GstPad *sink = gst_element_get_static_pad(scaleTempo, "sink");
  GstBin *sinkBin =
      reinterpret_cast<GstBin *>(gst_bin_new("media-engine-sink"));
  gst_bin_add_many(sinkBin, scaleTempo, audioSink, NULL);
  gst_element_link(scaleTempo, audioSink);
  gst_element_add_pad(reinterpret_cast<GstElement *>(sinkBin),
                      gst_ghost_pad_new(NULL, sink));
  ges_pipeline_preview_set_audio_sink(pipeline,
                                      reinterpret_cast<GstElement
*>(sinkBin));
  gst_object_unref(sink);

This worked - my GESPipeline will play at non-1.0 rates and adjust the audio
pitch appropriately to not "chipmunk."



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list