You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	put/get portable for IEEE double - renamed put_native_string/get_native_string
Originally committed as revision 1062 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		| @@ -87,8 +87,8 @@ void put_le16(ByteIOContext *s, unsigned int val); | |||||||
| void put_be16(ByteIOContext *s, unsigned int val); | void put_be16(ByteIOContext *s, unsigned int val); | ||||||
| void put_tag(ByteIOContext *s, char *tag); | void put_tag(ByteIOContext *s, char *tag); | ||||||
|  |  | ||||||
| void put_native_double(ByteIOContext *s, double val); | void put_be64_double(ByteIOContext *s, double val); | ||||||
| void put_native_string(ByteIOContext *s, const char *buf); | void put_strz(ByteIOContext *s, const char *buf); | ||||||
|  |  | ||||||
| offset_t url_fseek(ByteIOContext *s, offset_t offset, int whence); | offset_t url_fseek(ByteIOContext *s, offset_t offset, int whence); | ||||||
| void url_fskip(ByteIOContext *s, offset_t offset); | void url_fskip(ByteIOContext *s, offset_t offset); | ||||||
| @@ -108,8 +108,8 @@ unsigned int get_le32(ByteIOContext *s); | |||||||
| UINT64 get_le64(ByteIOContext *s); | UINT64 get_le64(ByteIOContext *s); | ||||||
| unsigned int get_le16(ByteIOContext *s); | unsigned int get_le16(ByteIOContext *s); | ||||||
|  |  | ||||||
| double get_native_double(ByteIOContext *s); | double get_be64_double(ByteIOContext *s); | ||||||
| char *get_native_string(ByteIOContext *s, char *buf, int maxlen); | char *get_strz(ByteIOContext *s, char *buf, int maxlen); | ||||||
| unsigned int get_be16(ByteIOContext *s); | unsigned int get_be16(ByteIOContext *s); | ||||||
| unsigned int get_be32(ByteIOContext *s); | unsigned int get_be32(ByteIOContext *s); | ||||||
| UINT64 get_be64(ByteIOContext *s); | UINT64 get_be64(ByteIOContext *s); | ||||||
|   | |||||||
| @@ -176,12 +176,18 @@ void put_be32(ByteIOContext *s, unsigned int val) | |||||||
|     put_byte(s, val); |     put_byte(s, val); | ||||||
| } | } | ||||||
|  |  | ||||||
| void put_native_double(ByteIOContext *s, double val) | /* IEEE format is assumed */ | ||||||
|  | void put_be64_double(ByteIOContext *s, double val) | ||||||
| { | { | ||||||
|     put_buffer(s, (const unsigned char *) &val, sizeof(val)); |     union { | ||||||
|  |         double d; | ||||||
|  |         UINT64 ull; | ||||||
|  |     } u; | ||||||
|  |     u.d = val; | ||||||
|  |     put_be64(s, u.ull); | ||||||
| } | } | ||||||
|  |  | ||||||
| void put_native_string(ByteIOContext *s, const char *str) | void put_strz(ByteIOContext *s, const char *str) | ||||||
| { | { | ||||||
|     if (str) |     if (str) | ||||||
|         put_buffer(s, (const unsigned char *) str, strlen(str) + 1); |         put_buffer(s, (const unsigned char *) str, strlen(str) + 1); | ||||||
| @@ -339,16 +345,18 @@ unsigned int get_be32(ByteIOContext *s) | |||||||
|     return val; |     return val; | ||||||
| } | } | ||||||
|  |  | ||||||
| double get_native_double(ByteIOContext *s) | double get_be64_double(ByteIOContext *s) | ||||||
| { | { | ||||||
|     double val; |     union { | ||||||
|  |         double d; | ||||||
|  |         UINT64 ull; | ||||||
|  |     } u; | ||||||
|  |  | ||||||
|     get_buffer(s, (unsigned char *) &val, sizeof(val)); |     u.ull = get_be64(s); | ||||||
|  |     return u.d; | ||||||
|     return val; |  | ||||||
| } | } | ||||||
|  |  | ||||||
| char *get_native_string(ByteIOContext *s, char *buf, int maxlen) | char *get_strz(ByteIOContext *s, char *buf, int maxlen) | ||||||
| { | { | ||||||
|     int i = 0; |     int i = 0; | ||||||
|     char c; |     char c; | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								libav/ffm.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								libav/ffm.c
									
									
									
									
									
								
							| @@ -166,14 +166,14 @@ static int ffm_write_header(AVFormatContext *s) | |||||||
|             put_be16(pb, (int) (codec->qcompress * 10000.0)); |             put_be16(pb, (int) (codec->qcompress * 10000.0)); | ||||||
|             put_be16(pb, (int) (codec->qblur * 10000.0)); |             put_be16(pb, (int) (codec->qblur * 10000.0)); | ||||||
|             put_be32(pb, codec->bit_rate_tolerance); |             put_be32(pb, codec->bit_rate_tolerance); | ||||||
|             put_native_string(pb, codec->rc_eq); |             put_strz(pb, codec->rc_eq); | ||||||
|             put_be32(pb, codec->rc_max_rate); |             put_be32(pb, codec->rc_max_rate); | ||||||
|             put_be32(pb, codec->rc_min_rate); |             put_be32(pb, codec->rc_min_rate); | ||||||
|             put_be32(pb, codec->rc_buffer_size); |             put_be32(pb, codec->rc_buffer_size); | ||||||
|             put_native_double(pb, codec->i_quant_factor); |             put_be64_double(pb, codec->i_quant_factor); | ||||||
|             put_native_double(pb, codec->b_quant_factor); |             put_be64_double(pb, codec->b_quant_factor); | ||||||
|             put_native_double(pb, codec->i_quant_offset); |             put_be64_double(pb, codec->i_quant_offset); | ||||||
|             put_native_double(pb, codec->b_quant_offset); |             put_be64_double(pb, codec->b_quant_offset); | ||||||
|             put_be32(pb, codec->dct_algo); |             put_be32(pb, codec->dct_algo); | ||||||
|             break; |             break; | ||||||
|         case CODEC_TYPE_AUDIO: |         case CODEC_TYPE_AUDIO: | ||||||
| @@ -420,14 +420,14 @@ static int ffm_read_header(AVFormatContext *s, AVFormatParameters *ap) | |||||||
|             codec->qcompress = get_be16(pb) / 10000.0; |             codec->qcompress = get_be16(pb) / 10000.0; | ||||||
|             codec->qblur = get_be16(pb) / 10000.0; |             codec->qblur = get_be16(pb) / 10000.0; | ||||||
|             codec->bit_rate_tolerance = get_be32(pb); |             codec->bit_rate_tolerance = get_be32(pb); | ||||||
|             codec->rc_eq = strdup(get_native_string(pb, rc_eq_buf, sizeof(rc_eq_buf))); |             codec->rc_eq = strdup(get_strz(pb, rc_eq_buf, sizeof(rc_eq_buf))); | ||||||
|             codec->rc_max_rate = get_be32(pb); |             codec->rc_max_rate = get_be32(pb); | ||||||
|             codec->rc_min_rate = get_be32(pb); |             codec->rc_min_rate = get_be32(pb); | ||||||
|             codec->rc_buffer_size = get_be32(pb); |             codec->rc_buffer_size = get_be32(pb); | ||||||
|             codec->i_quant_factor = get_native_double(pb); |             codec->i_quant_factor = get_be64_double(pb); | ||||||
|             codec->b_quant_factor = get_native_double(pb); |             codec->b_quant_factor = get_be64_double(pb); | ||||||
|             codec->i_quant_offset = get_native_double(pb); |             codec->i_quant_offset = get_be64_double(pb); | ||||||
|             codec->b_quant_offset = get_native_double(pb); |             codec->b_quant_offset = get_be64_double(pb); | ||||||
|             codec->dct_algo = get_be32(pb); |             codec->dct_algo = get_be32(pb); | ||||||
|             break; |             break; | ||||||
|         case CODEC_TYPE_AUDIO: |         case CODEC_TYPE_AUDIO: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user