Я пишу некоторые модульные тесты для проверки написанного мной элемента GStreamer, и я столкнулся со странным случаем, который я не могу объяснить / исправить.
Если я выделил буфер, как показано ниже работает; он выделен, и я могу передать его другим функциям для записи метаданных
GstBuffer *crop1_buf = gst_buffer_new_allocate(NULL, 1920 * 1080 * 3, NULL);
Если я сделаю простую функцию
void allocate_buffer(GstBuffer *buf)
{
buf = gst_buffer_new_allocate(NULL, 1920 * 1080 * 3, NULL);
}
и тогда, где я ранее выделил свой буфер, я вместо этого делать:
GstBuffer *crop1_buf;
allocate_buffer(crop1_buf);
Я получаю Unexpected critical/warning: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed