2010/2/14 Reimar D?ffinger <Reimar.Doeffinger at gmx.de>: > On Fri, Feb 12, 2010 at 10:28:58PM +0100, Giorgio wrote: >> ?// to set/get/query special features/parameters >> ?static int control(sh_video_t *sh,int cmd,void* arg,...){ >> + ? ?theora_struct_t *context = (theora_struct_t *)sh->context; > > Useless cast. Fixed. >> ? ? ?switch(cmd) { >> ? ? ?case VDCTRL_QUERY_FORMAT: >> - ? ? ? ?if ((*((int*)arg)) == IMGFMT_YV12) >> - ? ? ? ? return CONTROL_TRUE; >> + ? ?if ((*((int*)arg)) == IMGFMT_YV12 ?&& ?context->inf.pixelformat == OC_PF_420) return CONTROL_TRUE; >> + ? ?if ((*((int*)arg)) == IMGFMT_422P ?&& ?context->inf.pixelformat == OC_PF_422) return CONTROL_TRUE; >> + ? ?if ((*((int*)arg)) == IMGFMT_444P ?&& ?context->inf.pixelformat == OC_PF_444) return CONTROL_TRUE; > > Make a function that converts the context->inf.pixelformat to the corresponding IMGFMT_ and use > that in both places. Fixed. >> ? ? ? return CONTROL_FALSE; >> ? ? ?} >> - >> ? ? ?return CONTROL_UNKNOWN; > > Unrelated/cosmetic change. Fixed. >> @@ -73,6 +75,8 @@ >> ? ? ?switch(sh->codec->outfmt[sh->outfmtidx]) >> ? ? ?{ >> ? ? ? ? case IMGFMT_YV12: /* well, this should work... */ break; >> + ? ? ? case IMGFMT_422P: break; >> + ? ? ? case IMGFMT_444P: break; >> ? ? ? ? default: >> ? ? ? ? mp_msg (MSGT_DECVIDEO,MSGL_ERR,"Unsupported out_fmt: 0x%X\n", >> ? ? ? ? ? ? ? ? sh->codec->outfmt[sh->outfmtidx]); > > I removed this useless piece of code. Thanks :) >> @@ -133,7 +137,14 @@ >> >> ? ? ?mp_msg(MSGT_DECVIDEO,MSGL_V,"INFO: Theora video init ok!\n"); >> >> - ? ?return mpcodecs_config_vo (sh,context->inf.frame_width,context->inf.frame_height,IMGFMT_YV12); >> + ? ?switch(context->inf.pixelformat) { >> + ? ? ? ?case OC_PF_420: >> + ? ? ? ?return mpcodecs_config_vo (sh,context->inf.frame_width,context->inf.frame_height,IMGFMT_YV12); >> + ? ? ? ?case OC_PF_422: >> + ? ? ? ?return mpcodecs_config_vo (sh,context->inf.frame_width,context->inf.frame_height,IMGFMT_422P); >> + ? ? ? ?case OC_PF_444: >> + ? ? ? ?return mpcodecs_config_vo (sh,context->inf.frame_width,context->inf.frame_height,IMGFMT_444P); >> + ? ?} > > Trailing whitespace and also code duplication (see my suggestion about the conversion function > for how to avoid it. Fixed. > Apart from that I think it looks ok. I made all the corrections, I hope it's better now. This is my first patch, so thank you for your patience. Giorgio Vazzana -------------- next part -------------- A non-text attachment was scrubbed... Name: mplayer_theora_422_444_2.diff Type: text/x-diff Size: 1965 bytes Desc: not available URL: <http://lists.mplayerhq.hu/pipermail/mplayer-users/attachments/20100214/bb36f49d/attachment.diff>