function [ labels, valid_ids, vid_ids  ] = extract_SEMAINE_labels( SEMAINE_dir, recs, aus )
%EXTRACT_SEMAINE_LABELS Summary of this function goes here
%   Detailed explanation goes here

    % Get the right eaf file

    aus_SEMAINE = [2 12 17 25 28 45];

    inds_to_use = [];
    
    for i=1:numel(aus)
    
        inds_to_use = cat(1, inds_to_use, find(aus_SEMAINE == aus(i)));
        
    end
    
    labels = cell(numel(recs), 1);
    valid_ids = cell(numel(recs), 1);
    vid_ids = zeros(numel(recs), 2);
    
    for i=1:numel(recs)
       
        file = dir([SEMAINE_dir, '/', recs{i}, '/*.eaf']);
        
        vid_ids(i,:) = dlmread([SEMAINE_dir, '/', recs{i}, '.txt'], ' ');
        
        xml_file = [SEMAINE_dir, recs{i}, '\' file.name];
        [root_xml, name_xml, ~] = fileparts(xml_file);
        m_file = [root_xml, name_xml, '.mat'];
            
        if(~exist(m_file, 'file'))            
            activations = ParseSEMAINEAnnotations([SEMAINE_dir, recs{i}, '\' file.name]);
            save(m_file, 'activations');
        else
            load(m_file);
        end
        if(size(activations,1) < vid_ids(i,2))
            vid_ids(i,2) = size(activations,1);
            if(vid_ids(i,2) > 2999)
                vid_ids(i,1) = vid_ids(i,2) - 2999;
            end
        end
        
        labels{i} = activations(vid_ids(i,1)+1:vid_ids(i,2), 1 + inds_to_use);
        
        % all indices in SEMAINE are valid
        valid_ids{i} = ones(size(labels{i},1),1);
        
    end
    
end