[GStreamer]Извлечение метаданных
Доброго всем времени суток! Сейчас занимаюсь изучением данного фреймворка по туториалу на офф сайте. По ходу чтения возник вопрос, как правильно извлечь из видеофайла данные о разрешении, кодеке, битрейте и т.д. Т.е., если я правильно понял, создаем следующий pipeline: filesrc->demuxer->fakesink, на demuxer вешаем обработчик сигнала «pad-added», в котором связываем новые pad'ы с fakesink, получаем от них список capabilities, из которых получаем нужные нам метаданные. Собственно, как из pad'a получить список caps и определить, какой из них нам нужен? Для извлечения определенных свойств используется следующий код
str = gst_caps_get_structure (caps, 0);
if (!gst_structure_get_int (str, "width", &width) ||
!gst_structure_get_int (str, "height", &height)) {
g_print ("No width/height available\n");
return;
}
g_print ("The video size of this set of capabilities is %dx%d\n",
width, height);