You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	v210enc: clip values according to specifications
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
		
				
					committed by
					
						 Anton Khirnov
						Anton Khirnov
					
				
			
			
				
	
			
			
			
						parent
						
							d239b83e2e
						
					
				
				
					commit
					635bbecfc3
				
			| @@ -66,11 +66,13 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf, | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
| #define CLIP(v) av_clip(v, 4, 1019) | ||||
|  | ||||
| #define WRITE_PIXELS(a, b, c)           \ | ||||
|     do {                                \ | ||||
|         val =   *a++;             \ | ||||
|         val |= (*b++ << 10) |     \ | ||||
|                (*c++ << 20);      \ | ||||
|         val =   CLIP(*a++);             \ | ||||
|         val |= (CLIP(*b++) << 10) |     \ | ||||
|                (CLIP(*c++) << 20);      \ | ||||
|         bytestream_put_le32(&p, val);   \ | ||||
|     } while (0) | ||||
|  | ||||
| @@ -85,15 +87,15 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf, | ||||
|         if (w < avctx->width - 1) { | ||||
|             WRITE_PIXELS(u, y, v); | ||||
|  | ||||
|             val =   *y++; | ||||
|             val = CLIP(*y++); | ||||
|             if (w == avctx->width - 2) | ||||
|                 bytestream_put_le32(&p, val); | ||||
|         } | ||||
|         if (w < avctx->width - 3) { | ||||
|             val |= (*u++ << 10) | (*y++ << 20); | ||||
|             val |= (CLIP(*u++) << 10) | (CLIP(*y++) << 20); | ||||
|             bytestream_put_le32(&p, val); | ||||
|  | ||||
|             val = *v++ | (*y++ << 10); | ||||
|             val = CLIP(*v++) | (CLIP(*y++) << 10); | ||||
|             bytestream_put_le32(&p, val); | ||||
|         } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user