Mercurial > libavcodec.hg
comparison pnmenc.c @ 9002:eb98d61af310 libavcodec
Support 48-bit RGB PPM image.
author | pross |
---|---|
date | Sun, 22 Feb 2009 00:56:55 +0000 |
parents | 04423b2f6e0b |
children | 18b83dac1221 |
comparison
equal
deleted
inserted
replaced
9001:ec04c3c5a3e5 | 9002:eb98d61af310 |
---|---|
61 p->key_frame= 1; | 61 p->key_frame= 1; |
62 | 62 |
63 switch(avctx->pix_fmt) { | 63 switch(avctx->pix_fmt) { |
64 default: | 64 default: |
65 return -1; | 65 return -1; |
66 case PIX_FMT_RGB48BE: | |
67 n = avctx->width * 6; | |
68 goto do_read; | |
66 case PIX_FMT_RGB24: | 69 case PIX_FMT_RGB24: |
67 n = avctx->width * 3; | 70 n = avctx->width * 3; |
68 goto do_read; | 71 goto do_read; |
69 case PIX_FMT_GRAY8: | 72 case PIX_FMT_GRAY8: |
70 n = avctx->width; | 73 n = avctx->width; |
193 break; | 196 break; |
194 case PIX_FMT_RGB24: | 197 case PIX_FMT_RGB24: |
195 c = '6'; | 198 c = '6'; |
196 n = avctx->width * 3; | 199 n = avctx->width * 3; |
197 break; | 200 break; |
201 case PIX_FMT_RGB48BE: | |
202 c = '6'; | |
203 n = avctx->width * 6; | |
204 break; | |
198 case PIX_FMT_YUV420P: | 205 case PIX_FMT_YUV420P: |
199 c = '5'; | 206 c = '5'; |
200 n = avctx->width; | 207 n = avctx->width; |
201 h1 = (h * 3) / 2; | 208 h1 = (h * 3) / 2; |
202 break; | 209 break; |
207 "P%c\n%d %d\n", | 214 "P%c\n%d %d\n", |
208 c, avctx->width, h1); | 215 c, avctx->width, h1); |
209 s->bytestream += strlen(s->bytestream); | 216 s->bytestream += strlen(s->bytestream); |
210 if (avctx->pix_fmt != PIX_FMT_MONOWHITE) { | 217 if (avctx->pix_fmt != PIX_FMT_MONOWHITE) { |
211 snprintf(s->bytestream, s->bytestream_end - s->bytestream, | 218 snprintf(s->bytestream, s->bytestream_end - s->bytestream, |
212 "%d\n", (avctx->pix_fmt != PIX_FMT_GRAY16BE) ? 255 : 65535); | 219 "%d\n", (avctx->pix_fmt != PIX_FMT_GRAY16BE && avctx->pix_fmt != PIX_FMT_RGB48BE) ? 255 : 65535); |
213 s->bytestream += strlen(s->bytestream); | 220 s->bytestream += strlen(s->bytestream); |
214 } | 221 } |
215 | 222 |
216 ptr = p->data[0]; | 223 ptr = p->data[0]; |
217 linesize = p->linesize[0]; | 224 linesize = p->linesize[0]; |
392 sizeof(PNMContext), | 399 sizeof(PNMContext), |
393 common_init, | 400 common_init, |
394 pnm_encode_frame, | 401 pnm_encode_frame, |
395 NULL, //encode_end, | 402 NULL, //encode_end, |
396 pnm_decode_frame, | 403 pnm_decode_frame, |
397 .pix_fmts= (enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_NONE}, | 404 .pix_fmts= (enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB48BE, PIX_FMT_NONE}, |
398 .long_name= NULL_IF_CONFIG_SMALL("PPM (Portable PixelMap) image"), | 405 .long_name= NULL_IF_CONFIG_SMALL("PPM (Portable PixelMap) image"), |
399 }; | 406 }; |
400 #endif // CONFIG_PPM_ENCODER | 407 #endif // CONFIG_PPM_ENCODER |
401 | 408 |
402 #if CONFIG_PBM_ENCODER | 409 #if CONFIG_PBM_ENCODER |