[FFmpeg-cvslog] Apply clut changes only to one table.

JULIAN GARDNER git at videolan.org
Sat Sep 21 09:51:46 CEST 2013


ffmpeg | branch: master | JULIAN GARDNER <joolzg at btinternet.com> | Wed Sep  4 22:51:34 2013 +0100| [97ff584af432b4ad77c388b201a6861bfeb95e3f] | committer: Reimar Döffinger

Apply clut changes only to one table.

The specification does not allow multiple bits to be set,
but some encoders do it anyway.
Applying it only to the first seems to give better results.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger at gmx.de>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=97ff584af432b4ad77c388b201a6861bfeb95e3f
---

 libavcodec/dvbsubdec.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/dvbsubdec.c b/libavcodec/dvbsubdec.c
index 955925a..faa510a 100644
--- a/libavcodec/dvbsubdec.c
+++ b/libavcodec/dvbsubdec.c
@@ -1015,9 +1015,9 @@ static void dvbsub_parse_clut_segment(AVCodecContext *avctx,
 
         if (depth & 0x80)
             clut->clut4[entry_id] = RGBA(r,g,b,255 - alpha);
-        if (depth & 0x40)
+        else if (depth & 0x40)
             clut->clut16[entry_id] = RGBA(r,g,b,255 - alpha);
-        if (depth & 0x20)
+        else if (depth & 0x20)
             clut->clut256[entry_id] = RGBA(r,g,b,255 - alpha);
     }
     }



More information about the ffmpeg-cvslog mailing list