GStreamer-резкие замерзает на поиск с SeekFlags.Flush

Обновить

April 2019

Просмотры

124 раз

1

Я стараюсь, как практика, чтобы преобразовать примеры GStreamer из С в С #, и я застрял на основном учебнике 4 ( https://gstreamer.freedesktop.org/documentation/tutorials/basic/time-management.html ). В примере , искание выполняется следующим образом

gst_element_seek_simple (data.playbin, GST_FORMAT_TIME,
          GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT, 30 * GST_SECOND);

который я перевел на C #:

playbin.SeekSimple(Format.Time, SeekFlags.Flush | SeekFlags.KeyUnit, 30L * Constants.SECOND);

Однако, после того, как поиск, только один кадр играет, а затем замерзает воспроизведения.

Существует С # учебник здесь: ( https://github.com/GStreamer/gstreamer-sharp/blob/master/samples/BasicTutorial4.cs ). Тем не менее, в этом учебнике поисках выполняются без SeekFlags.Flush(в линии 73). Искание в примере работает, но выполняется с задержкой в несколько секунд.

Таким образом, делает SeekFlags.Flushработу в привязок C # GStreamer или я что - то пропустил?

Я установил последнюю GStreamer и GstSharp (версия 1.14.0).

Спасибо, Том

Tom

1 ответы

0

I made it work, by rebuilding from the gstreamer-sharp source (https://github.com/GStreamer/gstreamer-sharp).

I converted to .netstandard 2.0 and added Nuget package GioSharp (https://www.nuget.org/packages/GioSharp/3.22.24.36)

Alternatively, I rebuild the original gstreamer-sharp project and GtkSharp.Win32 Nuget package (https://www.nuget.org/packages/GtkSharp.Win32/3.1.2)

Hope it finds its way in the official GstSharp Nuget package.

Tom