1
0
mirror of https://github.com/clementine-player/Clementine synced 2025-02-02 12:26:48 +01:00

Fix gst_buffer_unref assertion in chromaprinter

This commit is contained in:
Jonas Kvinge 2019-04-26 20:40:42 +02:00
parent d079f00cfe
commit 8094957e09

View File

@ -204,12 +204,16 @@ GstFlowReturn Chromaprinter::NewBufferCallback(GstAppSink* app_sink,
Chromaprinter* me = reinterpret_cast<Chromaprinter*>(self);
GstSample* sample = gst_app_sink_pull_sample(app_sink);
if (!sample) return GST_FLOW_ERROR;
GstBuffer* buffer = gst_sample_get_buffer(sample);
GstMapInfo map;
gst_buffer_map(buffer, &map, GST_MAP_READ);
me->buffer_.write(reinterpret_cast<const char*>(map.data), map.size);
gst_buffer_unmap(buffer, &map);
gst_buffer_unref(buffer);
if (buffer) {
GstMapInfo map;
if (gst_buffer_map(buffer, &map, GST_MAP_READ)) {
me->buffer_.write(reinterpret_cast<const char*>(map.data), map.size);
gst_buffer_unmap(buffer, &map);
}
}
gst_sample_unref(sample);
return GST_FLOW_OK;
}