diff --git a/codec.m b/codec.m
index e4104ebd7b03bd6b6277848d8bdb4f838bfef029..486d82842274a6507a46a857fcfbe974ebe70b77 100644
--- a/codec.m
+++ b/codec.m
@@ -65,24 +65,31 @@ end
 
 % Do padding
 LFSize  = size(LFRef);
-LFSizePad = ceil(LFSize./LFParams.padding).*LFParams.padding-LFSize;
-LFSizePad(3:end) = 0;
-LFRef = padarray(LFRef,LFSizePad,'replicate','post');
+padSize = ceil(LFSize./LFParams.padding).*LFParams.padding-LFSize;
+padSize(3:end) = 0;
+LFSizePad  = LFSize + padSize;
+imgSizePad = LFSizePad(1:3);
+imgResPad  = LFSizePad(4:end);
+imgResPad(end+1:2) = 1; 
+LFRef = padarray(LFRef,padSize,'replicate','post');
+
+% Convert inputs for HEVC
+LFHEVCParams = LF.LFtoHEVC(imgSizePad,imgResPad,LFParams,HEVCParams);
+
+LFParams.refFilename = LFHEVCParams.InputFile;
+LFParams.recFilename = LFHEVCParams.ReconFile;
 
 % Write input yuv file
 if LFParams.encode
-    [imgSizePad,imgRes] = LF.write(LFRef,LFParams,'filename',LFParams.refFilename);
+    LF.write(LFRef,'filename',LFParams.refFilename,'addInfo',false);
 end
 
-% Convert inputs for HEVC
-LFHEVCParams = LF.LFtoHEVC(imgSizePad,imgRes,LFParams,HEVCParams);
-
 % Encode frames using HEVC
 [nbBits,peaksnr] = HEVC.codec(LFHEVCParams,HEVCParams);
 
 % Read output yuv file
 if LFParams.decode
-    LFRec = LF.read(imgSizePad,imgRes,LFParams,'filename',LFParams.recFilename);
+    LFRec = LF.read('filename',LFParams.recFilename);
 end
 
 % Undo padding