You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
pngdec: 4bpp support
Fixes Ticket208 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -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,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
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)) {
|
||||||
|
Reference in New Issue
Block a user