2015-07-15 3 views
2

Обратитесь к http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-dynamic-pipelines.html, я попытался изменить udpsrc на трубопровод gstreamer. Но что-то не так, состояние конвейера не может быть изменено на PLAYING после изменения udp-источника.Динамическое изменение udpsrc на трубопроводе gstreamer

Ниже приведена последовательность изменений udpsrc. Оригинальный трубопровод бункер состоит из ...

udpsrc - очереди - tsdemux - очереди - анализатор - videodecoder - очереди videosink

  1. первых, блок ЦСИ подушечка из udpsrc
  2. отправить событие ЭОС очереди (рядом с udpsrc)
  3. Подождите, пока сообщение eos не будет получено из автобуса.
  4. установить состояние udpsrc NULL и удалить udpsrc из конвейерного бункера. (Отменить связь)
  5. Создайте новый udpsrc с новым источником uri.
  6. ссылка на queue
  7. изменить статус на ИГРОВОЙ.

Есть ошибки у этого пользователя? Спасибо заранее.

ответ

0

В этом случае вам не нужно отправлять EOS через трубопровод. Это приводит к сигналу конца потока, и в то время как его можно восстановить в большинстве случаев, для этого случая он не нужен.

Сценарий для отправки EOS через элементы при динамическом изменении конвейера - это элементы, состоящие из как приемников, так и src-пэдов, чтобы слить все данные, которые могут застрять внутри.

Смежные вопросы