Start adding pixel definitions for planar rgb.
This commit is contained in:
		
							parent
							
								
									96fad826ff
								
							
						
					
					
						commit
						a3e11fa43c
					
				| @ -2704,6 +2704,10 @@ static int decode_slice_header(H264Context *h, H264Context *h0){ | |||||||
|             default: |             default: | ||||||
|                 if (CHROMA444){ |                 if (CHROMA444){ | ||||||
|                     s->avctx->pix_fmt = s->avctx->color_range == AVCOL_RANGE_JPEG ? PIX_FMT_YUVJ444P : PIX_FMT_YUV444P; |                     s->avctx->pix_fmt = s->avctx->color_range == AVCOL_RANGE_JPEG ? PIX_FMT_YUVJ444P : PIX_FMT_YUV444P; | ||||||
|  |                     if (s->avctx->colorspace == AVCOL_SPC_RGB) { | ||||||
|  |                        s->avctx->pix_fmt = PIX_FMT_GBR24P; | ||||||
|  |                        av_log(h->s.avctx, AV_LOG_DEBUG, "Detected GBR colorspace.\n"); | ||||||
|  |                     } | ||||||
|                 }else if (CHROMA422) { |                 }else if (CHROMA422) { | ||||||
|                     s->avctx->pix_fmt = s->avctx->color_range == AVCOL_RANGE_JPEG ? PIX_FMT_YUVJ422P : PIX_FMT_YUV422P; |                     s->avctx->pix_fmt = s->avctx->color_range == AVCOL_RANGE_JPEG ? PIX_FMT_YUVJ422P : PIX_FMT_YUV422P; | ||||||
|                 }else{ |                 }else{ | ||||||
|  | |||||||
| @ -988,6 +988,15 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { | |||||||
|             {0,1,2,0,7},        /* A */ |             {0,1,2,0,7},        /* A */ | ||||||
|         }, |         }, | ||||||
|     }, |     }, | ||||||
|  |     [PIX_FMT_GBR24P] = { | ||||||
|  |         .name = "gbr24p", | ||||||
|  |         .nb_components= 3, | ||||||
|  |         .comp = { | ||||||
|  |             {0,1,1,0,7},        /* G */ | ||||||
|  |             {1,1,1,0,7},        /* B */ | ||||||
|  |             {2,1,1,0,7},        /* R */ | ||||||
|  |         }, | ||||||
|  |     }, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static enum PixelFormat get_pix_fmt_internal(const char *name) | static enum PixelFormat get_pix_fmt_internal(const char *name) | ||||||
|  | |||||||
| @ -154,6 +154,7 @@ enum PixelFormat { | |||||||
|     PIX_FMT_RGBA64LE,  ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian
 |     PIX_FMT_RGBA64LE,  ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian
 | ||||||
|     PIX_FMT_BGRA64BE,  ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian
 |     PIX_FMT_BGRA64BE,  ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian
 | ||||||
|     PIX_FMT_BGRA64LE,  ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian
 |     PIX_FMT_BGRA64LE,  ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian
 | ||||||
|  |     PIX_FMT_GBR24P,    ///< planar GBR, 24bpp, 8G, 8B, 8R.
 | ||||||
|     PIX_FMT_NB,        ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
 |     PIX_FMT_NB,        ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user