--
Mats Peterson
http://matsp888.no-ip.org/~mats/
>From eec3d4bb49d0ac4b73a10f8436d517a130999892 Mon Sep 17 00:00:00 2001
From: Mats Peterson <matsp...@yahoo.com>
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
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to