[FFmpeg-devel] [PATCH v1] avcodec/magicyuv: remove duplicate code
Limin Wang
lance.lmwang at gmail.com
Wed Oct 9 17:38:03 EEST 2019
ping, I hope it makes sense to reduce the code size.
On Tue, Sep 24, 2019 at 09:13:52AM +0800, lance.lmwang at gmail.com wrote:
> From: Limin Wang <lance.lmwang at gmail.com>
>
> Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> ---
> libavcodec/magicyuv.c | 30 ++++++------------------------
> 1 file changed, 6 insertions(+), 24 deletions(-)
>
> diff --git a/libavcodec/magicyuv.c b/libavcodec/magicyuv.c
> index f4fb2a7809..21a32785bc 100644
> --- a/libavcodec/magicyuv.c
> +++ b/libavcodec/magicyuv.c
> @@ -547,10 +547,7 @@ static int magy_decode_frame(AVCodecContext *avctx, void *data,
> s->hshift[2] =
> s->vshift[2] = 0;
> s->decorrelate = 0;
> - s->max = 256;
> s->bps = 8;
> - s->huff_build = huff_build;
> - s->magy_decode_slice = magy_decode_slice;
>
> format = bytestream2_get_byte(&gbyte);
> switch (format) {
> @@ -587,61 +584,46 @@ static int magy_decode_frame(AVCodecContext *avctx, void *data,
> avctx->pix_fmt = AV_PIX_FMT_YUV422P10;
> s->hshift[1] =
> s->hshift[2] = 1;
> - s->max = 1024;
> - s->huff_build = huff_build10;
> - s->magy_decode_slice = magy_decode_slice10;
> s->bps = 10;
> break;
> case 0x76:
> avctx->pix_fmt = AV_PIX_FMT_YUV444P10;
> - s->max = 1024;
> - s->huff_build = huff_build10;
> - s->magy_decode_slice = magy_decode_slice10;
> s->bps = 10;
> break;
> case 0x6d:
> avctx->pix_fmt = AV_PIX_FMT_GBRP10;
> s->decorrelate = 1;
> - s->max = 1024;
> - s->huff_build = huff_build10;
> - s->magy_decode_slice = magy_decode_slice10;
> s->bps = 10;
> break;
> case 0x6e:
> avctx->pix_fmt = AV_PIX_FMT_GBRAP10;
> s->decorrelate = 1;
> - s->max = 1024;
> - s->huff_build = huff_build10;
> - s->magy_decode_slice = magy_decode_slice10;
> s->bps = 10;
> break;
> case 0x6f:
> avctx->pix_fmt = AV_PIX_FMT_GBRP12;
> s->decorrelate = 1;
> - s->max = 4096;
> - s->huff_build = huff_build12;
> - s->magy_decode_slice = magy_decode_slice10;
> s->bps = 12;
> break;
> case 0x70:
> avctx->pix_fmt = AV_PIX_FMT_GBRAP12;
> s->decorrelate = 1;
> - s->max = 4096;
> - s->huff_build = huff_build12;
> - s->magy_decode_slice = magy_decode_slice10;
> s->bps = 12;
> break;
> case 0x73:
> avctx->pix_fmt = AV_PIX_FMT_GRAY10;
> - s->max = 1024;
> - s->huff_build = huff_build10;
> - s->magy_decode_slice = magy_decode_slice10;
> s->bps = 10;
> break;
> default:
> avpriv_request_sample(avctx, "Format 0x%X", format);
> return AVERROR_PATCHWELCOME;
> }
> + s->max = 1 << s->bps;
> + s->magy_decode_slice = s->bps == 8 ? magy_decode_slice : magy_decode_slice10;
> + if ( s->bps == 8)
> + s->huff_build = huff_build;
> + else
> + s->huff_build = s->bps == 10 ? huff_build10 : huff_build12;
> s->planes = av_pix_fmt_count_planes(avctx->pix_fmt);
>
> bytestream2_skip(&gbyte, 1);
> --
> 2.21.0
>
More information about the ffmpeg-devel
mailing list