diff --git a/decode.m b/decode.m
index df9feba20e3da729a43916379837eb7e6b730911..7fd51e704f017b5c405198a6f1302444ec6464fb 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 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