[FFmpeg-devel] [PATCH] libavformat/riffenc: support raw avi for raw PAL8 or Gray8 pixel data
Ray
229135609 at qq.com
Mon Aug 16 12:54:44 EEST 2021
This is a my latest committed patch. Please ignore those similar mails I sent before.
> 2021年8月16日 下午5:01,rui.jiang <229135609 at qq.com> 写道:
>
> add palette data in avi header when the input data is raw PAL8 or Gray8 pixel data and the output data is 8bit raw avi video;
>
> Signed-off-by: rui.jiang <229135609 at qq.com>
> ---
> libavformat/riffenc.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/riffenc.c b/libavformat/riffenc.c
> index 43c8bf957a..bc654b3cd3 100644
> --- a/libavformat/riffenc.c
> +++ b/libavformat/riffenc.c
> @@ -228,7 +228,8 @@ void ff_put_bmp_header(AVIOContext *pb, AVCodecParameters *par,
> pal_avi = !for_asf &&
> (pix_fmt == AV_PIX_FMT_PAL8 ||
> pix_fmt == AV_PIX_FMT_MONOWHITE ||
> - pix_fmt == AV_PIX_FMT_MONOBLACK);
> + pix_fmt == AV_PIX_FMT_MONOBLACK ||
> + pix_fmt == AV_PIX_FMT_GRAY8);
>
> /* Size (not including the size of the color table or color masks) */
> avio_wl32(pb, 40 + (ignore_extradata || pal_avi ? 0 : extradata_size));
> @@ -263,6 +264,13 @@ void ff_put_bmp_header(AVIOContext *pb, AVCodecParameters *par,
> avio_wl32(pb, 0xffffff);
> else if (i == 1 && pix_fmt == AV_PIX_FMT_MONOBLACK)
> avio_wl32(pb, 0xffffff);
> + else if (pix_fmt == AV_PIX_FMT_PAL8 || pix_fmt == AV_PIX_FMT_GRAY8) {
> + /* Initialize palette */
> + avio_w8(pb,i);
> + avio_w8(pb,i);
> + avio_w8(pb,i);
> + avio_w8(pb,0);
> + }
> else
> avio_wl32(pb, 0);
> }
> --
> 2.30.1 (Apple Git-130)
>
More information about the ffmpeg-devel
mailing list