GStreamer-sharp замирает при поиске с SeekFlags.Flush - PullRequest
0 голосов
/ 14 мая 2018

На практике я пытаюсь преобразовать примеры GStreamer из c в c #, и я застрял в базовом уроке 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);

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

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

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

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

СпасибоТом

1 Ответ

0 голосов
/ 24 мая 2018

Я заставил это работать, перестроив из источника, острого по gstreamer (https://github.com/GStreamer/gstreamer-sharp).

Я преобразовал в .netstandard 2.0 и добавил пакет Nuget GioSharp (https://www.nuget.org/packages/GioSharp/3.22.24.36)

В качестве альтернативы я перестраиваю оригинальный проект gstreamer-sharp и пакет Nuget GtkSharp.Win32 (https://www.nuget.org/packages/GtkSharp.Win32/3.1.2)

Надеюсь, что он найдет свой путь в официальном пакете GstSharp Nuget.

...