You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avcodec/utvideodec: add support for ULY4 and ULH4
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
		| @@ -676,6 +676,26 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, | ||||
|             } | ||||
|         } | ||||
|         break; | ||||
|     case AV_PIX_FMT_YUV444P: | ||||
|         for (i = 0; i < 3; i++) { | ||||
|             ret = decode_plane(c, i, frame.f->data[i], 1, frame.f->linesize[i], | ||||
|                                avctx->width, avctx->height, | ||||
|                                plane_start[i], c->frame_pred == PRED_LEFT); | ||||
|             if (ret) | ||||
|                 return ret; | ||||
|             if (c->frame_pred == PRED_MEDIAN) { | ||||
|                 if (!c->interlaced) { | ||||
|                     restore_median(frame.f->data[i], 1, frame.f->linesize[i], | ||||
|                                    avctx->width, avctx->height, | ||||
|                                    c->slices, 0); | ||||
|                 } else { | ||||
|                     restore_median_il(frame.f->data[i], 1, frame.f->linesize[i], | ||||
|                                       avctx->width, avctx->height, | ||||
|                                       c->slices, 0); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         break; | ||||
|     case AV_PIX_FMT_YUV422P10: | ||||
|         for (i = 0; i < 3; i++) { | ||||
|             ret = decode_plane10(c, i, (uint16_t *)frame.f->data[i], 1, frame.f->linesize[i] / 2, | ||||
| @@ -757,6 +777,11 @@ static av_cold int decode_init(AVCodecContext *avctx) | ||||
|         avctx->pix_fmt = AV_PIX_FMT_YUV422P; | ||||
|         avctx->colorspace = AVCOL_SPC_BT470BG; | ||||
|         break; | ||||
|     case MKTAG('U', 'L', 'Y', '4'): | ||||
|         c->planes      = 3; | ||||
|         avctx->pix_fmt = AV_PIX_FMT_YUV444P; | ||||
|         avctx->colorspace = AVCOL_SPC_BT470BG; | ||||
|         break; | ||||
|     case MKTAG('U', 'Q', 'Y', '2'): | ||||
|         c->planes      = 3; | ||||
|         avctx->pix_fmt = AV_PIX_FMT_YUV422P10; | ||||
| @@ -779,6 +804,11 @@ static av_cold int decode_init(AVCodecContext *avctx) | ||||
|         avctx->pix_fmt = AV_PIX_FMT_YUV422P; | ||||
|         avctx->colorspace = AVCOL_SPC_BT709; | ||||
|         break; | ||||
|     case MKTAG('U', 'L', 'H', '4'): | ||||
|         c->planes      = 3; | ||||
|         avctx->pix_fmt = AV_PIX_FMT_YUV444P; | ||||
|         avctx->colorspace = AVCOL_SPC_BT709; | ||||
|         break; | ||||
|     default: | ||||
|         av_log(avctx, AV_LOG_ERROR, "Unknown Ut Video FOURCC provided (%08X)\n", | ||||
|                avctx->codec_tag); | ||||
|   | ||||
| @@ -388,9 +388,11 @@ const AVCodecTag ff_codec_bmp_tags[] = { | ||||
|     { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'R', 'G') }, | ||||
|     { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'Y', '0') }, | ||||
|     { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'Y', '2') }, | ||||
|     { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'Y', '4') }, | ||||
|     /* Ut Video version 13.0.1 BT.709 codecs */ | ||||
|     { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'H', '0') }, | ||||
|     { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'H', '2') }, | ||||
|     { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'H', '4') }, | ||||
|     { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'Q', 'Y', '2') }, | ||||
|     { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'Q', 'R', 'A') }, | ||||
|     { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'Q', 'R', 'G') }, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user