The FLAC specification requires GIF images to contain their number of colors. While I can't find a specific reference to that effect, I'm assuming that's why GIF images were previously unsupported. This was implemented by just writing AVPALETTE_COUNT for paletted images. --- Changelog | 1 + libavformat/flacenc.c | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/Changelog b/Changelog index e8ee74775e..3ff783c61d 100644 --- a/Changelog +++ b/Changelog @@ -61,6 +61,7 @@ version <next>: - shear filter - kirsch filter - colortemperature filter +- GIF support in FLAC version 4.3: diff --git a/libavformat/flacenc.c b/libavformat/flacenc.c index 1c983486aa..c156d13b14 100644 --- a/libavformat/flacenc.c +++ b/libavformat/flacenc.c @@ -151,11 +151,16 @@ static int flac_write_picture(struct AVFormatContext *s, AVPacket *pkt) avio_wb32(pb, st->codecpar->width); avio_wb32(pb, st->codecpar->height); + if ((pixdesc = av_pix_fmt_desc_get(st->codecpar->format))) avio_wb32(pb, av_get_bits_per_pixel(pixdesc)); else avio_wb32(pb, 0); - avio_wb32(pb, 0); + + if (st->codecpar->format == AV_PIX_FMT_PAL8) + avio_wb32(pb, AVPALETTE_COUNT); + else + avio_wb32(pb, 0); avio_wb32(pb, pkt->size); avio_write(pb, pkt->data, pkt->size); @@ -218,9 +223,6 @@ static int flac_init(struct AVFormatContext *s) if (!(st->disposition & AV_DISPOSITION_ATTACHED_PIC)) { av_log(s, AV_LOG_WARNING, "Video stream #%d is not an attached picture. Ignoring\n", i); continue; - } else if (st->codecpar->codec_id == AV_CODEC_ID_GIF) { - av_log(s, AV_LOG_ERROR, "GIF image support is not implemented.\n"); - return AVERROR_PATCHWELCOME; } else if (!c->write_header) { av_log(s, AV_LOG_ERROR, "Can't write attached pictures without a header.\n"); return AVERROR(EINVAL); -- 2.28.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".