comparison rawdec.c @ 6423:4cf5fde3c99e libavcodec

code is ok for 4bpp in mov too, fix 16grey.mov
author bcoudurier
date Thu, 28 Feb 2008 16:08:52 +0000
parents aa954496a445
children 66969d0e4a6d
comparison
equal deleted inserted replaced
6422:e82ca9167c1f 6423:4cf5fde3c99e
44 }; 44 };
45 45
46 static const PixelFormatTag pixelFormatBpsMOV[] = { 46 static const PixelFormatTag pixelFormatBpsMOV[] = {
47 /* FIXME fix swscaler to support those */ 47 /* FIXME fix swscaler to support those */
48 /* http://developer.apple.com/documentation/QuickTime/QTFF/QTFFChap3/chapter_4_section_2.html */ 48 /* http://developer.apple.com/documentation/QuickTime/QTFF/QTFFChap3/chapter_4_section_2.html */
49 { PIX_FMT_PAL8, 4 },
49 { PIX_FMT_PAL8, 8 }, 50 { PIX_FMT_PAL8, 8 },
50 { PIX_FMT_BGR555, 16 }, 51 { PIX_FMT_BGR555, 16 },
51 { PIX_FMT_RGB24, 24 }, 52 { PIX_FMT_RGB24, 24 },
52 { PIX_FMT_BGR32_1, 32 }, 53 { PIX_FMT_BGR32_1, 32 },
53 { -1, 0 }, 54 { -1, 0 },
104 AVPicture * picture = (AVPicture *) data; 105 AVPicture * picture = (AVPicture *) data;
105 106
106 frame->interlaced_frame = avctx->coded_frame->interlaced_frame; 107 frame->interlaced_frame = avctx->coded_frame->interlaced_frame;
107 frame->top_field_first = avctx->coded_frame->top_field_first; 108 frame->top_field_first = avctx->coded_frame->top_field_first;
108 109
109 //4bpp raw in avi (yes this is ugly ...) 110 //4bpp raw in avi and mov (yes this is ugly ...)
110 if(avctx->bits_per_sample == 4 && avctx->pix_fmt==PIX_FMT_PAL8 && !avctx->codec_tag){ 111 if(avctx->bits_per_sample == 4 && avctx->pix_fmt==PIX_FMT_PAL8 &&
112 !avctx->codec_tag || avctx->codec_tag == MKTAG('r','a','w',' ')){
111 int i; 113 int i;
112 for(i=256*2; i+1 < context->length>>1; i++){ 114 for(i=256*2; i+1 < context->length>>1; i++){
113 context->buffer[2*i+0]= buf[i-256*2]>>4; 115 context->buffer[2*i+0]= buf[i-256*2]>>4;
114 context->buffer[2*i+1]= buf[i-256*2]&15; 116 context->buffer[2*i+1]= buf[i-256*2]&15;
115 } 117 }