diff --git a/encode.m b/encode.m index 6c6b5c94fb042c6b08c689da0ad93c802d3f06ee..f1a84488152bd7fc4e85329408c8263ffedd6051 100644 --- a/encode.m +++ b/encode.m @@ -16,6 +16,7 @@ p.addParameter('LogFile' ,'log.rtf' ,@ischar); p.addParameter('SourceWidth' ,'512' ,@ischar); p.addParameter('SourceHeight' ,'512' ,@ischar); p.addParameter('InputBitDepth' ,'8' ,@ischar); +p.addParameter('InternalBitDepth' ,'8' ,@ischar); p.addParameter('InputChromaFormat','420' ,@ischar); p.addParameter('FrameRate' ,'60' ,@ischar); p.addParameter('FrameSkip' ,'0' ,@ischar); @@ -31,6 +32,17 @@ values = struct2cell(p.Results); extraParameters = fieldnames (p.Unmatched); extraValues = struct2cell(p.Unmatched); +ReconFile = p.Results.ReconFile; +BitstreamFile = p.Results.BitstreamFile; +LogFile = p.Results.LogFile; + +for file={ReconFile,BitstreamFile,LogFile} + [folder,~,~] = fileparts(file{:}); + if ~(7==exist(folder,'dir')) + mkdir(folder); + end +end + try argList = paramToArg([parameters;extraParameters],[values;extraValues]); status = system([TAppEncoder,' ',argList]); @@ -42,19 +54,18 @@ catch system([TAppEncoder,' ',argList]); end - function argList = paramToArg(parameters,values) - indConf = cellfun(@(str) strcmp(str,'ConfigFile'),parameters); - indLog = cellfun(@(str) strcmp(str,'LogFile' ),parameters); - ind = indConf|indLog; - - argConf = strjoin(['-c',values(indConf)]); - argLog = strjoin(['>' ,values(indLog) ]); - argList = cellfun(@(param,val) ['--',param,'=',val],... - parameters(~ind),values(~ind),'UniformOutput',false); - - argList = [argConf;argList;argLog]; - argList = strjoin(argList(:)); - end - end +function argList = paramToArg(parameters,values) +indConf = cellfun(@(str) strcmp(str,'ConfigFile'),parameters); +indLog = cellfun(@(str) strcmp(str,'LogFile' ),parameters); +ind = indConf|indLog; + +argConf = strjoin(['-c',values(indConf)]); +argLog = strjoin(['>' ,values(indLog) ]); +argList = cellfun(@(param,val) ['--',param,'=',val],... + parameters(~ind),values(~ind),'UniformOutput',false); + +argList = [argConf;argList;argLog]; +argList = strjoin(argList(:)); +end \ No newline at end of file