- buf += n;
- ptr += linesize;
- }
- break;
- case 8:
- for(i = 0; i < avctx->height; i++){
- memcpy(ptr, buf, avctx->width);
- buf += n;
- ptr += linesize;
- }
- break;
- case 24:
- for(i = 0; i < avctx->height; i++){
- memcpy(ptr, buf, avctx->width*(depth>>3));
- buf += n;
- ptr += linesize;
- }
- break;
- case 16:
- for(i = 0; i < avctx->height; i++){
- const uint16_t *src = (const uint16_t *) buf;
- uint16_t *dst = (uint16_t *) ptr;
+ break;
+ case 4:
+ for(i = 0; i < avctx->height; i++){
+ int j;
+ for(j = 0; j < n; j++){
+ ptr[j*2+0] = (buf[j] >> 4) & 0xF;
+ ptr[j*2+1] = buf[j] & 0xF;
+ }
+ buf += n;
+ ptr += linesize;
+ }
+ break;
+ case 8:
+ for(i = 0; i < avctx->height; i++){
+ memcpy(ptr, buf, avctx->width);
+ buf += n;
+ ptr += linesize;
+ }
+ break;
+ case 24:
+ for(i = 0; i < avctx->height; i++){
+ memcpy(ptr, buf, avctx->width*(depth>>3));
+ buf += n;
+ ptr += linesize;
+ }
+ break;
+ case 16:
+ for(i = 0; i < avctx->height; i++){
+ const uint16_t *src = (const uint16_t *) buf;
+ uint16_t *dst = (uint16_t *) ptr;