Mercurial > mplayer.hg
comparison libmpcodecs/vd_ffmpeg.c @ 8190:c3716e345dfb
ffhuffyuv
author | michael |
---|---|
date | Thu, 14 Nov 2002 19:27:51 +0000 |
parents | 7018fadf1a94 |
children | 3ae71e4f2858 |
comparison
equal
deleted
inserted
replaced
8189:332f083385ac | 8190:c3716e345dfb |
---|---|
234 // printf("%X %X %d %d\n", extrahdr[0], extrahdr[1]); | 234 // printf("%X %X %d %d\n", extrahdr[0], extrahdr[1]); |
235 } | 235 } |
236 if (sh->bih && (sh->bih->biSize != sizeof(BITMAPINFOHEADER)) && | 236 if (sh->bih && (sh->bih->biSize != sizeof(BITMAPINFOHEADER)) && |
237 (sh->format == mmioFOURCC('M','4','S','2') || | 237 (sh->format == mmioFOURCC('M','4','S','2') || |
238 sh->format == mmioFOURCC('M','P','4','S') || | 238 sh->format == mmioFOURCC('M','P','4','S') || |
239 sh->format == mmioFOURCC('H','F','Y','U') || | |
239 sh->format == mmioFOURCC('W','M','V','2') | 240 sh->format == mmioFOURCC('W','M','V','2') |
240 )) | 241 )) |
241 { | 242 { |
242 avctx->extradata_size = sh->bih->biSize-sizeof(BITMAPINFOHEADER); | 243 avctx->extradata_size = sh->bih->biSize-sizeof(BITMAPINFOHEADER); |
243 avctx->extradata = malloc(avctx->extradata_size); | 244 avctx->extradata = malloc(avctx->extradata_size); |
244 memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size); | 245 memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size); |
245 } | 246 } |
247 | |
248 #if LIBAVCODEC_BUILD >= 4639 | |
249 avctx->bits_per_sample= sh->bih->biBitCount; | |
250 #endif | |
246 | 251 |
247 /* open it */ | 252 /* open it */ |
248 if (avcodec_open(avctx, lavc_codec) < 0) { | 253 if (avcodec_open(avctx, lavc_codec) < 0) { |
249 mp_msg(MSGT_DECVIDEO,MSGL_ERR, MSGTR_CantOpenCodec); | 254 mp_msg(MSGT_DECVIDEO,MSGL_ERR, MSGTR_CantOpenCodec); |
250 return 0; | 255 return 0; |
359 switch(avctx->pix_fmt){ | 364 switch(avctx->pix_fmt){ |
360 #if LIBAVCODEC_BUILD >= 4615 | 365 #if LIBAVCODEC_BUILD >= 4615 |
361 case PIX_FMT_YUV410P: ctx->best_csp=IMGFMT_YVU9;break; //svq1 | 366 case PIX_FMT_YUV410P: ctx->best_csp=IMGFMT_YVU9;break; //svq1 |
362 #endif | 367 #endif |
363 case PIX_FMT_YUV420P: ctx->best_csp=IMGFMT_YV12;break; //mpegs | 368 case PIX_FMT_YUV420P: ctx->best_csp=IMGFMT_YV12;break; //mpegs |
364 case PIX_FMT_YUV422P: ctx->best_csp=IMGFMT_422P;break; //mjpeg | 369 case PIX_FMT_YUV422P: ctx->best_csp=IMGFMT_422P;break; //mjpeg / huffyuv |
365 case PIX_FMT_YUV444P: ctx->best_csp=IMGFMT_444P;break; //??? | 370 case PIX_FMT_YUV444P: ctx->best_csp=IMGFMT_444P;break; //??? |
366 #if LIBAVCODEC_BUILD >= 4631 | 371 #if LIBAVCODEC_BUILD >= 4631 |
367 case PIX_FMT_YUV411P: ctx->best_csp=IMGFMT_411P;break; //dv ntsc | 372 case PIX_FMT_YUV411P: ctx->best_csp=IMGFMT_411P;break; //dv ntsc |
368 #endif | 373 #endif |
369 case PIX_FMT_YUV422: ctx->best_csp=IMGFMT_YUY2;break; //??? | 374 case PIX_FMT_YUV422: ctx->best_csp=IMGFMT_YUY2;break; //huffyuv perhaps in the future |
375 case PIX_FMT_BGR24 : ctx->best_csp=IMGFMT_BGR24;break; //huffyuv | |
376 case PIX_FMT_BGRA32: ctx->best_csp=IMGFMT_BGR32;break; //huffyuv | |
370 default: | 377 default: |
371 ctx->best_csp=0; | 378 ctx->best_csp=0; |
372 } | 379 } |
373 if (!mpcodecs_config_vo(sh,sh->disp_w,sh->disp_h, ctx->best_csp)) | 380 if (!mpcodecs_config_vo(sh,sh->disp_w,sh->disp_h, ctx->best_csp)) |
374 return -1; | 381 return -1; |