mirror of
				http://mpg123.de/trunk/.git
				synced 2025-10-31 01:25:33 +03:00 
			
		
		
		
	libmpg123: no MPG123_NEED_MORE for non-feeder
git-svn-id: svn://scm.orgis.org/mpg123/trunk@4622 35dc7657-300d-0410-a2e5-dc2837fedb53
This commit is contained in:
		
							
								
								
									
										5
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								NEWS
									
									
									
									
									
								
							| @@ -1,8 +1,6 @@ | |||||||
| 1.26.0 | 1.26.0 | ||||||
| ------ | ------ | ||||||
|  |  | ||||||
| TODO: avoid MPG123_NEED_MORE from non-feed reader reading frame |  | ||||||
|       bodies or see it as a feature |  | ||||||
| TODO: Figure out terminal printout encoding for Windows. | TODO: Figure out terminal printout encoding for Windows. | ||||||
| TODO: Fix up --quiet: either all errors or none, I guess errors should | TODO: Fix up --quiet: either all errors or none, I guess errors should | ||||||
|       still be shown, but only fatal ones (no junk in the beginning stuff) |       still be shown, but only fatal ones (no junk in the beginning stuff) | ||||||
| @@ -90,6 +88,9 @@ TODO: Make libout123 and/or mpg123 use that to convert on the fly. Optionally? | |||||||
|    opening. This was never recommened and only now should work at all. |    opening. This was never recommened and only now should work at all. | ||||||
| -- Also mpg123_decode_frame() now sets return buffer to NULL and returned byte | -- Also mpg123_decode_frame() now sets return buffer to NULL and returned byte | ||||||
|    count to zero in case of MPG123_NEED_MORE (or any other early abort). |    count to zero in case of MPG123_NEED_MORE (or any other early abort). | ||||||
|  | -- MPG123_NEED_MORE not returned anymore for non-feeder streams. Got in | ||||||
|  |    there for generic partial frame body reads, but was only intended for | ||||||
|  |    feeder API. | ||||||
| -- Added mpg123_set_moreinfo() to support the Lame project's frame analyzer, | -- Added mpg123_set_moreinfo() to support the Lame project's frame analyzer, | ||||||
|    disabled by ./configure --disable-moreinfo. |    disabled by ./configure --disable-moreinfo. | ||||||
| -- Added optional storage and retrieval of raw ID3 data. | -- Added optional storage and retrieval of raw ID3 data. | ||||||
|   | |||||||
| @@ -565,7 +565,7 @@ init_resync: | |||||||
| 		if((ret=fr->rd->read_frame_body(fr,newbuf,fr->framesize))<0) | 		if((ret=fr->rd->read_frame_body(fr,newbuf,fr->framesize))<0) | ||||||
| 		{ | 		{ | ||||||
| 			/* if failed: flip back */ | 			/* if failed: flip back */ | ||||||
| 			debug("need more?"); | 			debug1("%s", ret == MPG123_NEED_MORE ? "need more" : "read error"); | ||||||
| 			goto read_frame_bad; | 			goto read_frame_bad; | ||||||
| 		} | 		} | ||||||
| 		fr->bsbufold = fr->bsbuf; | 		fr->bsbufold = fr->bsbuf; | ||||||
|   | |||||||
| @@ -384,18 +384,12 @@ static int stream_back_bytes(mpg123_handle *fr, off_t bytes) | |||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| /* returns size on success... */ | /* returns size on success... otherwise an error code < 0 */ | ||||||
| static int generic_read_frame_body(mpg123_handle *fr,unsigned char *buf, int size) | static int generic_read_frame_body(mpg123_handle *fr,unsigned char *buf, int size) | ||||||
| { | { | ||||||
| 	long l; | 	long l; | ||||||
|  | 	l=fr->rd->fullread(fr,buf,size); | ||||||
| 	if((l=fr->rd->fullread(fr,buf,size)) != size) | 	return (l >= 0 && l<size) ? READER_ERROR : l; | ||||||
| 	{ |  | ||||||
| 		long ll = l; |  | ||||||
| 		if(ll <= 0) ll = 0; |  | ||||||
| 		return READER_MORE; |  | ||||||
| 	} |  | ||||||
| 	return l; |  | ||||||
| } | } | ||||||
|  |  | ||||||
| static off_t generic_tell(mpg123_handle *fr) | static off_t generic_tell(mpg123_handle *fr) | ||||||
| @@ -849,6 +843,8 @@ static ssize_t buffered_fullread(mpg123_handle *fr, unsigned char *out, ssize_t | |||||||
| { | { | ||||||
| 	struct bufferchain *bc = &fr->rdat.buffer; | 	struct bufferchain *bc = &fr->rdat.buffer; | ||||||
| 	ssize_t gotcount; | 	ssize_t gotcount; | ||||||
|  | 	if(VERBOSE3) | ||||||
|  | 		mdebug("buffered_fullread: want %zd", count); | ||||||
| 	if(bc->size - bc->pos < count) | 	if(bc->size - bc->pos < count) | ||||||
| 	{ /* Add more stuff to buffer. If hitting end of file, adjust count. */ | 	{ /* Add more stuff to buffer. If hitting end of file, adjust count. */ | ||||||
| 		unsigned char readbuf[4096]; | 		unsigned char readbuf[4096]; | ||||||
| @@ -881,9 +877,8 @@ static ssize_t buffered_fullread(mpg123_handle *fr, unsigned char *out, ssize_t | |||||||
| 		count = bc->size - bc->pos; /* We want only what we got. */ | 		count = bc->size - bc->pos; /* We want only what we got. */ | ||||||
| 	} | 	} | ||||||
| 	gotcount = bc_give(bc, out, count); | 	gotcount = bc_give(bc, out, count); | ||||||
|  | 	if(VERBOSE3) | ||||||
| 	if(VERBOSE3) debug2("wanted %li, got %li", (long)count, (long)gotcount); | 		mdebug("buffered_fullread: got %zd", gotcount); | ||||||
|  |  | ||||||
| 	if(gotcount != count){ if(NOQUIET) error("gotcount != count"); return READER_ERROR; } | 	if(gotcount != count){ if(NOQUIET) error("gotcount != count"); return READER_ERROR; } | ||||||
| 	else return gotcount; | 	else return gotcount; | ||||||
| } | } | ||||||
| @@ -1116,7 +1111,7 @@ static int default_init(mpg123_handle *fr) | |||||||
| 		bc_init(&fr->rdat.buffer); | 		bc_init(&fr->rdat.buffer); | ||||||
| 		fr->rdat.filelen = 0; /* We carry the offset, but never know how big the stream is. */ | 		fr->rdat.filelen = 0; /* We carry the offset, but never know how big the stream is. */ | ||||||
| 		fr->rdat.flags |= READER_BUFFERED; | 		fr->rdat.flags |= READER_BUFFERED; | ||||||
| #endif /* NO_FEEDER */ | #endif /* NO_ICY */ | ||||||
| 	} | 	} | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -826,7 +826,7 @@ int play_frame(void) | |||||||
| 		{ | 		{ | ||||||
| 			if(!param.quiet && mc == MPG123_ERR) error1("...in decoding next frame: %s", mpg123_strerror(mh)); | 			if(!param.quiet && mc == MPG123_ERR) error1("...in decoding next frame: %s", mpg123_strerror(mh)); | ||||||
| 			if(!param.quiet && mc == MPG123_NEED_MORE) | 			if(!param.quiet && mc == MPG123_NEED_MORE) | ||||||
| 				error("The decoder expected more. File cut off early?"); | 				error("The decoder expected more. Old libmpg123 that does this for non-feed readers?"); | ||||||
| 			if(mc != MPG123_DONE && !got_played) | 			if(mc != MPG123_DONE && !got_played) | ||||||
| 				got_played = -1; | 				got_played = -1; | ||||||
| 			return 0; | 			return 0; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user