[FFmpeg-devel] [PATCH 2/3] avcodec: add SGA Video decoder
James Almer
jamrial at gmail.com
Tue Feb 23 19:49:15 EET 2021
On 2/23/2021 2:25 PM, Paul B Mahol wrote:
> Signed-off-by: Paul B Mahol <onemda at gmail.com>
> ---
> libavcodec/Makefile | 1 +
> libavcodec/allcodecs.c | 1 +
> libavcodec/codec_desc.c | 7 +
> libavcodec/codec_id.h | 1 +
> libavcodec/sga.c | 525 ++++++++++++++++++++++++++++++++++++++++
> 5 files changed, 535 insertions(+)
> create mode 100644 libavcodec/sga.c
>
> diff --git a/libavcodec/Makefile b/libavcodec/Makefile
> index 8685c15eeb..dfb4a89c92 100644
> --- a/libavcodec/Makefile
> +++ b/libavcodec/Makefile
> @@ -609,6 +609,7 @@ OBJS-$(CONFIG_SANM_DECODER) += sanm.o
> OBJS-$(CONFIG_SCPR_DECODER) += scpr.o
> OBJS-$(CONFIG_SCREENPRESSO_DECODER) += screenpresso.o
> OBJS-$(CONFIG_SDX2_DPCM_DECODER) += dpcm.o
> +OBJS-$(CONFIG_SGA_DECODER) += sga.o
> OBJS-$(CONFIG_SGI_DECODER) += sgidec.o
> OBJS-$(CONFIG_SGI_ENCODER) += sgienc.o rle.o
> OBJS-$(CONFIG_SGIRLE_DECODER) += sgirledec.o
> diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
> index 990998b64b..a04faead16 100644
> --- a/libavcodec/allcodecs.c
> +++ b/libavcodec/allcodecs.c
> @@ -289,6 +289,7 @@ extern AVCodec ff_s302m_decoder;
> extern AVCodec ff_sanm_decoder;
> extern AVCodec ff_scpr_decoder;
> extern AVCodec ff_screenpresso_decoder;
> +extern AVCodec ff_sga_decoder;
> extern AVCodec ff_sgi_encoder;
> extern AVCodec ff_sgi_decoder;
> extern AVCodec ff_sgirle_decoder;
> diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
> index f64ba488f2..17f8a14044 100644
> --- a/libavcodec/codec_desc.c
> +++ b/libavcodec/codec_desc.c
> @@ -1849,6 +1849,13 @@ static const AVCodecDescriptor codec_descriptors[] = {
> .long_name = NULL_IF_CONFIG_SMALL("Simbiosis Interactive IMX Video"),
> .props = AV_CODEC_PROP_LOSSY,
> },
> + {
> + .id = AV_CODEC_ID_SGA_VIDEO,
> + .type = AVMEDIA_TYPE_VIDEO,
> + .name = "sga",
> + .long_name = NULL_IF_CONFIG_SMALL("Digital Pictures SGA Video"),
> + .props = AV_CODEC_PROP_LOSSY,
AV_CODEC_PROP_INTRA_ONLY? Judging by how the demuxer sets every packet
as a key frame.
[...]
> +
> + memcpy(frame->data[1], s->pal, AVPALETTE_SIZE);
> + frame->palette_has_changed = 1;
Missing frame->key_frame and frame->pict_type.
> +
> + *got_frame = 1;
> +
> + return avpkt->size;
> +}
More information about the ffmpeg-devel
mailing list