From c5693add1ff0e489531d76613e37d1431d0cc980 Mon Sep 17 00:00:00 2001 From: Unknown <elian.di@laposte.net> Date: Wed, 18 Oct 2017 10:47:12 +0200 Subject: [PATCH] Create folders before executing HEVC --- decode.m | 31 +++++++++++++------------------ encode.m | 39 +++++++++++++++++++++++++-------------- 2 files changed, 38 insertions(+), 32 deletions(-) diff --git a/decode.m b/decode.m index df9feba..7fd51e7 100644 --- a/decode.m +++ b/decode.m @@ -10,31 +10,26 @@ p = inputParser; p.KeepUnmatched = true; p.StructExpand = true; p.addParameter('BitstreamFile','bit.hevc',@ischar); p.addParameter('ReconFile' ,'rec.yuv' ,@ischar); p.addParameter('SkipFrames' ,'0' ,@ischar); +%p.addParameter('LogFile' ,'log.rtf' ,@ischar); + % Add additional default parameters here p.parse(varargin{:}); parameters = fieldnames (p.Results); values = struct2cell(p.Results); -extraParameters = fieldnames (p.Unmatched); -extraValues = struct2cell(p.Unmatched); - -try - argList = paramToArg([parameters;extraParameters],[values;extraValues]); - status = system([TAppDecoder,' ',argList]); - if status - error('Execution with extra parameters failed, trying execution without'); - end -catch - argList = paramToArg(parameters,values); - system([TAppDecoder,' ',argList]); -end - function argList = paramToArg(parameters,values) - argList = cellfun(@(param,val) ['--',param,'=',val],... - parameters(~ind),values(~ind),'UniformOutput',false); - argList = strjoin(argList(:)); - end +% extraParameters = fieldnames (p.Unmatched); +% extraValues = struct2cell(p.Unmatched); +% argList = paramToArg([parameters;extraParameters],[values;extraValues]); + +argList = paramToArg(parameters,values); +system([TAppDecoder,' ',argList]); end +function argList = paramToArg(parameters,values) +argList = cellfun(@(param,val) ['--',param,'=',val],... + parameters,values,'UniformOutput',false); +argList = strjoin(argList(:)); +end \ No newline at end of file diff --git a/encode.m b/encode.m index 6c6b5c9..f1a8448 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 -- GitLab