func: int parse_optgroup(void *optctx,OptionGroup *g) int i ; int ret ; for (i = 0; i < g -> nb_opts; i++) Option * o = & g -> opts [ i ] ; ret = write_option ( optctx , o -> opt , o -> key , o -> val ); if ( ret < 0 )  static int write_option(void *optctx,const OptionDef *po,const char *opt,const char *arg) void * dst = po -> flags & ( 0x4000 | 0x8000 ) ? ( ( ( uint8_t * ) optctx ) + po -> u . off ) : po -> u . dst_ptr ; int * dstcount ; if ( po -> flags & 0x8000 )  SpecifierOpt * * so = dst ; dstcount = ( ( int * ) ( so + 1 ) ); * so = ( grow_array ( ( * so ) , ( sizeof ( ( * ( * so ) ) ) ) , dstcount , * dstcount + 1 ) ); void *grow_array(void *array,int elem_size,int *size,int new_size) if ( * size < new_size )  uint8_t * tmp = ( av_realloc ( array , ( new_size * elem_size ) ) ) ; memset ( ( tmp + * size * elem_size ) , 0 , ( ( new_size - * size ) * elem_size ) ); 