Otherwise baseparse will incrementally send us bigger buffers until the
full header size is reached, which is not only pointless but also means
that baseparse will reallocate and copy into a bigger buffer for every
input buffers. In pull mode that's done in 64kb increments, in push mode
usually in much smaller increments, causing a lot of overhead for
example when parsing high-quality coverart.
GST_DEBUG_OBJECT (flacparse, "Found metadata block of size %u", size);
framesize = size;
+ gst_base_parse_set_min_frame_size (GST_BASE_PARSE (flacparse), framesize);
goto cleanup;
}
if (res != GST_FLOW_OK)
goto cleanup;
+ } else {
+ /* Header length */
+ gst_base_parse_set_min_frame_size (GST_BASE_PARSE (flacparse), 4);
}
/* DROPPED because we pushed already or will push all headers manually */