Commit 738219c9 authored by Michael Niedermayer's avatar Michael Niedermayer

pngdec: 4bpp support

Fixes Ticket208
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 6dbac85f
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#include "png.h" #include "png.h"
/* TODO: /* TODO:
* - add 2, 4 and 16 bit depth support * - add 2 and 16 bit depth support
*/ */
#include <zlib.h> #include <zlib.h>
...@@ -580,6 +580,19 @@ static int decode_frame(AVCodecContext *avctx, ...@@ -580,6 +580,19 @@ static int decode_frame(AVCodecContext *avctx,
} }
} }
exit_loop: exit_loop:
if(s->bits_per_pixel == 4){
int i, j;
uint8_t *pd = s->current_picture->data[0];
for(j=0; j < s->height; j++) {
for(i=s->width/2-1; i>=0; i--) {
pd[2*i+1]= pd[i]&15;
pd[2*i+0]= pd[i]>>4;
}
pd += s->image_linesize;
}
}
/* handle p-frames only if a predecessor frame is available */ /* handle p-frames only if a predecessor frame is available */
if(s->last_picture->data[0] != NULL) { if(s->last_picture->data[0] != NULL) {
if(!(avpkt->flags & AV_PKT_FLAG_KEY)) { if(!(avpkt->flags & AV_PKT_FLAG_KEY)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment