mirror of
				https://github.com/nyanmisaka/ffmpeg-rockchip.git
				synced 2025-10-31 12:36:41 +08:00 
			
		
		
		
	avcodec/iff: Factorize av_pix_fmt_desc_get() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		| @@ -677,11 +677,15 @@ static int decode_frame(AVCodecContext *avctx, | ||||
|     const uint8_t *buf_end = buf + buf_size; | ||||
|     int y, plane, res; | ||||
|     GetByteContext gb; | ||||
|     const AVPixFmtDescriptor *desc; | ||||
|  | ||||
|     if ((res = extract_header(avctx, avpkt)) < 0) | ||||
|         return res; | ||||
|     if ((res = ff_reget_buffer(avctx, s->frame)) < 0) | ||||
|         return res; | ||||
|  | ||||
|     desc = av_pix_fmt_desc_get(avctx->pix_fmt); | ||||
|  | ||||
|     if (!s->init && avctx->bits_per_coded_sample <= 8 && | ||||
|         avctx->pix_fmt == AV_PIX_FMT_PAL8) { | ||||
|         if ((res = cmap_read_palette(avctx, (uint32_t *)s->frame->data[1])) < 0) | ||||
| @@ -721,7 +725,6 @@ static int decode_frame(AVCodecContext *avctx, | ||||
|             } else | ||||
|                 return unsupported(avctx); | ||||
|         } else if (avctx->codec_tag == MKTAG('D', 'E', 'E', 'P')) { | ||||
|             const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt); | ||||
|             int raw_width = avctx->width * (av_get_bits_per_pixel(desc) >> 3); | ||||
|             int x; | ||||
|             for (y = 0; y < avctx->height && buf < buf_end; y++) { | ||||
| @@ -838,7 +841,6 @@ static int decode_frame(AVCodecContext *avctx, | ||||
|             } else | ||||
|                 return unsupported(avctx); | ||||
|         } else if (avctx->codec_tag == MKTAG('D', 'E', 'E', 'P')) { // IFF-DEEP | ||||
|             const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt); | ||||
|             if (av_get_bits_per_pixel(desc) == 32) | ||||
|                 decode_deep_rle32(s->frame->data[0], buf, buf_size, avctx->width, avctx->height, s->frame->linesize[0]); | ||||
|             else | ||||
| @@ -856,7 +858,6 @@ static int decode_frame(AVCodecContext *avctx, | ||||
|         break; | ||||
|     case 5: | ||||
|         if (avctx->codec_tag == MKTAG('D', 'E', 'E', 'P')) { | ||||
|             const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt); | ||||
|             if (av_get_bits_per_pixel(desc) == 32) | ||||
|                 decode_deep_tvdc32(s->frame->data[0], buf, buf_size, avctx->width, avctx->height, s->frame->linesize[0], s->tvdc); | ||||
|             else | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Michael Niedermayer
					Michael Niedermayer