average bitrate for mp4's
git-svn-id: https://svn.musicpd.org/mpd/trunk@325 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
		| @@ -409,7 +409,7 @@ int mp3ChildSendData(mp3DecodeData * data, Buffer * cb, DecoderControl * dc) { | |||||||
| #endif | #endif | ||||||
| 	memcpy(cb->chunks+cb->end*CHUNK_SIZE,data->outputBuffer,CHUNK_SIZE); | 	memcpy(cb->chunks+cb->end*CHUNK_SIZE,data->outputBuffer,CHUNK_SIZE); | ||||||
| 	cb->chunkSize[cb->end] = data->outputPtr-data->outputBuffer; | 	cb->chunkSize[cb->end] = data->outputPtr-data->outputBuffer; | ||||||
| 	cb->bitRate[cb->end] = data->bitRate/1000; | 	cb->bitRate[cb->end] = data->bitRate/1024; | ||||||
| 	cb->times[cb->end] = data->elapsedTime; | 	cb->times[cb->end] = data->elapsedTime; | ||||||
|  |  | ||||||
| 	cb->end++; | 	cb->end++; | ||||||
|   | |||||||
| @@ -98,6 +98,7 @@ int mp4_decode(Buffer * cb, AudioFormat * af, DecoderControl * dc) { | |||||||
| 	long seekTableEnd = -1; | 	long seekTableEnd = -1; | ||||||
| 	int seekPositionFound = 0; | 	int seekPositionFound = 0; | ||||||
| 	long offset; | 	long offset; | ||||||
|  | 	mpd_uint16 bitRate; | ||||||
|  |  | ||||||
| 	fh = fopen(dc->file,"r"); | 	fh = fopen(dc->file,"r"); | ||||||
| 	if(!fh) { | 	if(!fh) { | ||||||
| @@ -155,6 +156,7 @@ int mp4_decode(Buffer * cb, AudioFormat * af, DecoderControl * dc) { | |||||||
| 	af->sampleRate = sampleRate; | 	af->sampleRate = sampleRate; | ||||||
| 	af->channels = channels; | 	af->channels = channels; | ||||||
| 	time = mp4ff_get_track_duration_use_offsets(mp4fh,track); | 	time = mp4ff_get_track_duration_use_offsets(mp4fh,track); | ||||||
|  | 	bitRate = mp4ff_get_avg_bitrate(mp4fh,track); | ||||||
| 	scale = mp4ff_time_scale(mp4fh,track); | 	scale = mp4ff_time_scale(mp4fh,track); | ||||||
|  |  | ||||||
| 	if(mp4Buffer) free(mp4Buffer); | 	if(mp4Buffer) free(mp4Buffer); | ||||||
| @@ -260,6 +262,7 @@ int mp4_decode(Buffer * cb, AudioFormat * af, DecoderControl * dc) { | |||||||
| 				memcpy(cb->chunks+cb->end*CHUNK_SIZE+chunkLen, | 				memcpy(cb->chunks+cb->end*CHUNK_SIZE+chunkLen, | ||||||
| 						sampleBuffer,size); | 						sampleBuffer,size); | ||||||
| 				cb->times[cb->end] = time; | 				cb->times[cb->end] = time; | ||||||
|  | 				cb->bitRate[cb->end] = bitRate/1024; | ||||||
| 				sampleBuffer+=size; | 				sampleBuffer+=size; | ||||||
| 				chunkLen+=size; | 				chunkLen+=size; | ||||||
| 				if(chunkLen>=CHUNK_SIZE) { | 				if(chunkLen>=CHUNK_SIZE) { | ||||||
|   | |||||||
| @@ -122,7 +122,7 @@ int ogg_decode(Buffer * cb, AudioFormat * af, DecoderControl * dc) | |||||||
| 				chunkpos = 0; | 				chunkpos = 0; | ||||||
| 				cb->times[cb->end] = ov_time_tell(&vf); | 				cb->times[cb->end] = ov_time_tell(&vf); | ||||||
| 				if((test = ov_bitrate_instant(&vf))>0) { | 				if((test = ov_bitrate_instant(&vf))>0) { | ||||||
| 					bitRate = test/1000; | 					bitRate = test/1024; | ||||||
| 				} | 				} | ||||||
| 				cb->bitRate[cb->end] = bitRate; | 				cb->bitRate[cb->end] = bitRate; | ||||||
| 				cb->end++; | 				cb->end++; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Warren Dukes
					Warren Dukes