* If not enough data, returns FALSE.
*/
static gboolean
-gst_mp3parse_find_freerate (GstMpegAudioParse * mp3parse, GstBuffer * buf,
+gst_mp3parse_find_freerate (GstMpegAudioParse * mp3parse, GstMapInfo * map,
guint32 header, gboolean at_eos, gint * _rate)
{
guint32 next_header;
gboolean valid;
gint lsf, mpg25;
- available = GST_BUFFER_SIZE (buf);
- data = GST_BUFFER_DATA (buf);
+ available = map->size;
+ data = map->data;
*_rate = 0;
GST_LOG_OBJECT (mp3parse, "possibly free format");
if (lost_sync || mp3parse->freerate == 0) {
GST_DEBUG_OBJECT (mp3parse, "finding free format rate");
- if (!gst_mp3parse_find_freerate (mp3parse, buf, header, draining, &valid)) {
+ if (!gst_mp3parse_find_freerate (mp3parse, &map, header, draining,
+ &valid)) {
/* not enough data */
- *framesize = G_MAXUINT;
+ gst_base_parse_set_min_frame_size (parse, valid);
*skipsize = 0;
return FALSE;
} else {