цепочка: souphttpsrc - ffdec_mpeg4 - avidemux - videoconvert/ffmpegcolorspace - appsink
- Код: Выделить всё
caps = VideoFormatToCaps(DestVideoFormat)
LinkEncode(image_filter, encode, encode2, sink, caps, DestVideoFormat)
gst_caps_unref(caps)
...
где LinkEncode это по сути image_filter, sink, caps - остальное не используется
- Код: Выделить всё
if not gst_element_link_filtered (image_filter, sink, caps) {
return;
}
VideoFormatToCaps это в принципе
- Код: Выделить всё
саps = gst_caps_new_empty_simple(strVideoType, NULL);
if (Depth != 0) {
gst_caps_set_simple(саps, "depth", G_TYPE_INT, Depth, NULL); }
...
проблема в том, что
мне приходиться ставить паузы между
- Код: Выделить всё
pаuse 500 мсек
caps = VideoFormatToCaps(DestVideoFormat)
pаuse 500 мсек
LinkEncode(image_filter, encode, encode2, sink, caps, DestVideoFormat)
pаuse 500 мсек
gst_caps_unref(caps)
чтобы настройки применялись нормально, иначе выдает: Internal data flow error.
в чем может быть проблема? Может есть метод, который определяет, готова стема к работе или еще нет?
И еще если писать линейный код, вместо оформления в функцию VideoFormatToCaps... то все нормально. Вообщем как я понимаю, дело в то что система подготавливает что-то для работы?
источник видео: http://download.blender.org/peach/bigbu ... nd-fix.avi