You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	intreadwrite.h: fix AV_RL32/AV_RB32 signedness.
The output type of the AV_RL32/AV_RB32 macros was signed int. The resulting overflow broke at least some ASF streams with large timestamps. Fix by adding a cast to uint32_t. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
		
				
					committed by
					
						 Anton Khirnov
						Anton Khirnov
					
				
			
			
				
	
			
			
			
						parent
						
							aa15e68721
						
					
				
				
					commit
					c98b928fa7
				
			| @@ -229,11 +229,11 @@ union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias; | ||||
| #endif | ||||
|  | ||||
| #ifndef AV_RB32 | ||||
| #   define AV_RB32(x)                           \ | ||||
|     ((((const uint8_t*)(x))[0] << 24) |         \ | ||||
|      (((const uint8_t*)(x))[1] << 16) |         \ | ||||
|      (((const uint8_t*)(x))[2] <<  8) |         \ | ||||
|       ((const uint8_t*)(x))[3]) | ||||
| #   define AV_RB32(x)                                \ | ||||
|     (((uint32_t)((const uint8_t*)(x))[0] << 24) |    \ | ||||
|                (((const uint8_t*)(x))[1] << 16) |    \ | ||||
|                (((const uint8_t*)(x))[2] <<  8) |    \ | ||||
|                 ((const uint8_t*)(x))[3]) | ||||
| #endif | ||||
| #ifndef AV_WB32 | ||||
| #   define AV_WB32(p, d) do {                   \ | ||||
| @@ -245,11 +245,11 @@ union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias; | ||||
| #endif | ||||
|  | ||||
| #ifndef AV_RL32 | ||||
| #   define AV_RL32(x)                           \ | ||||
|     ((((const uint8_t*)(x))[3] << 24) |         \ | ||||
|      (((const uint8_t*)(x))[2] << 16) |         \ | ||||
|      (((const uint8_t*)(x))[1] <<  8) |         \ | ||||
|       ((const uint8_t*)(x))[0]) | ||||
| #   define AV_RL32(x)                                \ | ||||
|     (((uint32_t)((const uint8_t*)(x))[3] << 24) |    \ | ||||
|                (((const uint8_t*)(x))[2] << 16) |    \ | ||||
|                (((const uint8_t*)(x))[1] <<  8) |    \ | ||||
|                 ((const uint8_t*)(x))[0]) | ||||
| #endif | ||||
| #ifndef AV_WL32 | ||||
| #   define AV_WL32(p, d) do {                   \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user