#ifdef CONFIG_ASS &vf_info_ass, #endif &vf_info_yadif, &vf_info_blackframe, &vf_info_ow, &vf_info_fixpts, &vf_info_stereo3d, NULL }; // For the vf option m_obj_settings_t* vf_settings = NULL; const m_obj_list_t vf_obj_list = { (void**)filter_list, M_ST_OFF(vf_info_t,name), M_ST_OFF(vf_info_t,info), M_ST_OFF(vf_info_t,opts) }; //============================================================================ // mpi stuff: void vf_mpi_clear(mp_image_t* mpi,int x0,int y0,int w,int h){ int y; if(mpi->flags&MP_IMGFLAG_PLANAR){ y0&=~1;h+=h&1; if(x0==0 && w==mpi->width){ // full width clear: memset(mpi->planes[0]+mpi->stride[0]*y0,0,mpi->stride[0]*h); memset(mpi->planes[1]+mpi->stride[1]*(y0>>mpi->chroma_y_shift),128,mpi->stride[1]*(h>>mpi->chroma_y_shift));
int set_offset(T_PkgType *pkg_type) { int i,k,l; int ali,dali,lali,llali,ldli; int max_align=1; if(pkg_type->offset>-1) return cnt_type(pkg_type); ali= M_ST_OFF(align,b) - 1; dali=M_ST_OFF(dalign,b) - 1; lali= M_ST_OFF(l_ali,b) - 1; llali= M_ST_OFF(ll_ali,b) - 1; ldli= M_ST_OFF(dfali,b) - 1; k=0; switch(pkg_type->type &127) { case CH_SHORT: max_align=2; break; case CH_INT: max_align=sizeof(int); break; case CH_LONG: max_align=sizeof(long); break; case CH_INT64: max_align=llali+1; break; case CH_DOUBLE: max_align=(dali+1); break; case CH_LDOUBLE: max_align=sizeof(long double); break; case CH_FLOAT: max_align=sizeof(float); break; case CH_CLOB: max_align=sizeof(char *); break; case CH_STRUCT: l=set_offset((T_PkgType *)pkg_type->format); pkg_type->len=((T_PkgType *)pkg_type->format)[l].offset; l=((T_PkgType *)pkg_type->format)[l].bindtype; max_align=l; break; default: max_align=1; break; } for(i=0;pkg_type[i].type>-1;i++){ if(i>0) pkg_type[i].offset=k; pkg_type[i].bindtype=0; if((pkg_type[i].type&127)!=CH_CLOB)k+=pkg_type[i].len; else k+=sizeof(char *); switch(pkg_type[i+1].type&127) { case 127: break; case CH_CHAR: case CH_BYTE: case CH_TINY: break; case CH_INT64: k=(k+llali)&~llali; max_align=(max_align>(llali+1))?max_align:(llali+1); // max_align=(max_align>sizeof(INT64))?max_align:sizeof(INT64); break; case CH_LDOUBLE: k=(k+ldli)&~ldli; max_align=(max_align>sizeof(long double))?max_align:sizeof(long double); break; case CH_DOUBLE: k=(k+dali)&~dali; max_align=(max_align>(dali+1))?max_align:(dali+1); break; case CH_SHORT: k=(k+1)&~1; max_align=(max_align>sizeof(short))?max_align:sizeof(short); break; case CH_CLOB: k=(k+(sizeof(char *)-1)) & ~(sizeof(char *)-1); max_align=(max_align>sizeof(char *))?max_align:sizeof(char *); break; case CH_FLOAT: case CH_INT: k=(k+3)&~3; max_align=(max_align>sizeof(int))?max_align:sizeof(int); break; case CH_STRUCT: l=set_offset((T_PkgType *)pkg_type[i+1].format); pkg_type[i+1].len=((T_PkgType *)pkg_type[i+1].format)[l].offset; l=((T_PkgType *)pkg_type[i+1].format)[l].bindtype; max_align=(max_align>l)?max_align:l; if(l>1) { l--; k=(k+l)&~l; } break; case CH_LONG: max_align=(max_align>(lali+1))?max_align:(lali+1); k=(k+lali)&~lali; break; default: k=(k+ali)&~ali; break; } } // 2009-06-22 by ylh,adjuct to struct align pkg_type[i].bindtype=max_align; if(max_align>1) { max_align--; pkg_type[i].offset=(k+max_align)&~max_align; } else pkg_type[i].offset=k; pkg_type->offset=0; return i; }