Only allow specific roles to upload specific extension files
I have a quick solution for this using hook_form_alter. 

So in your hook_form_alter you can check the user role and alter the validators key for that field. In my case the field was called field_material

global $user;
$valid_role = 'animator';

if(in_array($valid, $user-&gt;roles)) {
    //Change the extension in the validators key of that upload field
    $form['field_material']['und'][0]['#upload_validators']['file_validate_extensions'][0]  = 'mp4 mp3';  
} 


I am sure there are better solutions but this is quickest one so far for me to get going.