Merge release 0.15.10 from branch 'v0.15.x'
Conflicts: NEWS configure.ac src/input/mms_input_plugin.c
This commit is contained in:
		| @@ -468,7 +468,27 @@ static void mp3_parse_id3(struct mp3_data *data, size_t tagsize, | ||||
| 	/* This code is enabled when libid3tag is disabled.  Instead | ||||
| 	   of parsing the ID3 frame, it just skips it. */ | ||||
|  | ||||
| 	mad_stream_skip(&data->stream, tagsize); | ||||
| 	size_t count = data->stream.bufend - data->stream.this_frame; | ||||
|  | ||||
| 	if (tagsize <= count) { | ||||
| 		mad_stream_skip(&data->stream, tagsize); | ||||
| 	} else { | ||||
| 		mad_stream_skip(&data->stream, count); | ||||
|  | ||||
| 		while (count < tagsize) { | ||||
| 			size_t len = tagsize - count; | ||||
| 			char ignored[1024]; | ||||
| 			if (len > sizeof(ignored)) | ||||
| 				len = sizeof(ignored); | ||||
|  | ||||
| 			len = decoder_read(data->decoder, data->input_stream, | ||||
| 					   ignored, len); | ||||
| 			if (len == 0) | ||||
| 				break; | ||||
| 			else | ||||
| 				count += len; | ||||
| 		} | ||||
| 	} | ||||
| #endif | ||||
| } | ||||
|  | ||||
| @@ -476,16 +496,16 @@ static void mp3_parse_id3(struct mp3_data *data, size_t tagsize, | ||||
| /** | ||||
|  * This function emulates libid3tag when it is disabled.  Instead of | ||||
|  * doing a real analyzation of the frame, it just checks whether the | ||||
|  * frame begins with the string "ID3".  If so, it returns the full | ||||
|  * length. | ||||
|  * frame begins with the string "ID3".  If so, it returns the length | ||||
|  * of the ID3 frame. | ||||
|  */ | ||||
| static signed long | ||||
| id3_tag_query(const void *p0, size_t length) | ||||
| { | ||||
| 	const char *p = p0; | ||||
|  | ||||
| 	return length > 3 && memcmp(p, "ID3", 3) == 0 | ||||
| 		? length | ||||
| 	return length >= 10 && memcmp(p, "ID3", 3) == 0 | ||||
| 		? (p[8] << 7) + p[9] + 10 | ||||
| 		: 0; | ||||
| } | ||||
| #endif /* !HAVE_ID3TAG */ | ||||
|   | ||||
| @@ -60,10 +60,13 @@ input_mms_open(const char *url, GError **error_r) | ||||
|  | ||||
| 	m->mms = mmsx_connect(NULL, NULL, url, 128 * 1024); | ||||
| 	if (m->mms == NULL) { | ||||
| 		g_free(m); | ||||
| 		g_set_error(error_r, mms_quark(), 0, "mmsx_connect() failed"); | ||||
| 		return NULL; | ||||
| 	} | ||||
|  | ||||
| 	m->eof = false; | ||||
|  | ||||
| 	/* XX is this correct?  at least this selects the ffmpeg | ||||
| 	   decoder, which seems to work fine*/ | ||||
| 	m->base.mime = g_strdup("audio/x-ms-wma"); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann