--
Mats Peterson
http://matsp888.no-ip.org/~mats/
>From eec3d4bb49d0ac4b73a10f8436d517a130999892 Mon Sep 17 00:00:00 2001
From: Mats Peterson <[email protected]>
Date: Sat, 27 Feb 2016 15:31:35 +0100
Subject: [PATCH 2/2] lavf/movenc: Simplify palette handling
---
libavformat/movenc.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index e0223b2..bf9e1e0 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -1718,11 +1718,12 @@ static int mov_write_video_tag(AVIOContext *pb, MOVMuxContext *mov, MOVTrack *tr
if (track->is_unaligned_qt_rgb && track->enc->pix_fmt == AV_PIX_FMT_PAL8) {
int i;
+ int pal_size = 1 << track->enc->bits_per_coded_sample;
avio_wb16(pb, 0); /* Color table ID */
avio_wb32(pb, 0); /* Color table seed */
avio_wb16(pb, 0x8000); /* Color table flags */
- avio_wb16(pb, 255); /* Color table size (zero-relative) */
- for (i = 0; i < 256; i++) {
+ avio_wb16(pb, pal_size - 1); /* Color table size (zero-relative) */
+ for (i = 0; i < pal_size; i++) {
uint32_t rgb = AV_RL32(&track->palette[i]);
uint16_t r = (rgb >> 16) & 0xff;
uint16_t g = (rgb >> 8) & 0xff;
@@ -4769,9 +4770,7 @@ static int mov_write_packet(AVFormatContext *s, AVPacket *pkt)
if (ret < 0)
return ret;
if (ret == CONTAINS_PAL && !trk->pal_done) {
- int pal_size = 1 << trk->enc->bits_per_coded_sample;
- memset(trk->palette, 0, AVPALETTE_SIZE);
- memcpy(trk->palette, data + size - 4*pal_size, 4*pal_size);
+ memcpy(trk->palette, data + size - AVPALETTE_SIZE, AVPALETTE_SIZE);
trk->pal_done++;
} else if (trk->enc->pix_fmt == AV_PIX_FMT_GRAY8 ||
trk->enc->pix_fmt == AV_PIX_FMT_MONOBLACK) {
--
1.7.10.4
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel