Re: [FFmpeg-devel] [PATCH] avformat/swfdec: Do not change the pixel format

2014-09-06 Thread Michael Niedermayer
On Tue, Sep 02, 2014 at 04:51:27PM +0200, Michael Niedermayer wrote:
> This is currently not supported
> Fixes part of Ticket 3539
> 
> Signed-off-by: Michael Niedermayer 

applied


[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Republics decline into democracies and democracies degenerate into
despotisms. -- Aristotle


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] avformat/swfdec: Do not change the pixel format

2014-09-02 Thread Michael Niedermayer
This is currently not supported
Fixes part of Ticket 3539

Signed-off-by: Michael Niedermayer 
---
 libavformat/swfdec.c |   13 ++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/libavformat/swfdec.c b/libavformat/swfdec.c
index ca2a1c4..528bc23 100644
--- a/libavformat/swfdec.c
+++ b/libavformat/swfdec.c
@@ -289,6 +289,7 @@ static int swf_read_packet(AVFormatContext *s, AVPacket 
*pkt)
 const int bmp_fmt = avio_r8(pb);
 const int width   = avio_rl16(pb);
 const int height  = avio_rl16(pb);
+int pix_fmt;
 
 len -= 2+1+2+2;
 
@@ -367,7 +368,7 @@ static int swf_read_packet(AVFormatContext *s, AVPacket 
*pkt)
 
 switch (bmp_fmt) {
 case 3:
-st->codec->pix_fmt = AV_PIX_FMT_PAL8;
+pix_fmt = AV_PIX_FMT_PAL8;
 for (i = 0; i < colormapsize; i++)
 if (alpha_bmp)  colormap[i] = buf[3]<<24 | AV_RB24(buf + 
4*i);
 elsecolormap[i] = 0xffU <<24 | AV_RB24(buf + 
3*i);
@@ -379,14 +380,20 @@ static int swf_read_packet(AVFormatContext *s, AVPacket 
*pkt)
 memcpy(pal, colormap, AVPALETTE_SIZE);
 break;
 case 4:
-st->codec->pix_fmt = AV_PIX_FMT_RGB555;
+pix_fmt = AV_PIX_FMT_RGB555;
 break;
 case 5:
-st->codec->pix_fmt = alpha_bmp ? AV_PIX_FMT_ARGB : 
AV_PIX_FMT_0RGB;
+pix_fmt = alpha_bmp ? AV_PIX_FMT_ARGB : AV_PIX_FMT_0RGB;
 break;
 default:
 av_assert0(0);
 }
+if (st->codec->pix_fmt != AV_PIX_FMT_NONE && st->codec->pix_fmt != 
pix_fmt) {
+av_log(s, AV_LOG_ERROR, "pixel format change unsupported\n");
+res = AVERROR_PATCHWELCOME;
+goto bitmap_end;
+}
+st->codec->pix_fmt = pix_fmt;
 
 if (linesize * height > pkt->size) {
 res = AVERROR_INVALIDDATA;
-- 
1.7.9.5

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel