Сразу скажу что я только начинаю знакомиться с GStreamer. И еще не разобрался в нем как надо бы, но ...
По образу приложения «Hello world»
с сайта с документацией на GSTreamer создал своё приложение для трансляции аудиопотока с одного хоста на другой со сжатием voip кодеком. И даже сделал паралельную запись потока в файл. Все заработало прекрасно.
Но вот как перевести конвейер в другое состояние, например поставить на паузу - не пойму.
После выполнения в программе методов
gst_element_set_state (pipeline, GST_STATE_PLAYING);
/* Итерация */
g_print ("STARTING ...\n");
g_main_loop_run (loop);
программа уходит в бесконечный цикл.
Есть метод для остановки конвейера с передачей ему EOS,
gst_element_set_state (pipeline, GST_STATE_NULL);
Из этой же программы ? Или допустим послать команду на остановку потока в паузу из другого процесса -тоже не понятно.
Хочу сделать чтоб запись начиналась/останавливалась не с запуском всего конвейера, а по моей команде , например при изменении значения кокой-нибудь переменной, например. Что-то прям застрял на этом и все - и не туды и не сюды :)
Подскажите, люди добрые.