diff --git a/src/RagePhoto-Extract.c b/src/RagePhoto-Extract.c
index 7edf926..dcd37d4 100644
--- a/src/RagePhoto-Extract.c
+++ b/src/RagePhoto-Extract.c
@@ -33,12 +33,13 @@ int main(int argc, char *argv[])
     const int loaded = ragephoto_loadfile(ragephoto_in, argv[1]);
 
     if (loaded != 1) {
-        if (ragephoto_error(ragephoto_in) == 0) {
+        const int32_t error = ragephoto_error(ragephoto_in);
+        if (error == RAGEPHOTO_ERROR_UNINITIALISED) {
             printf("Failed to open file: %s\n", argv[1]);
             ragephoto_close(ragephoto_in);
             return 1;
         }
-        else if (ragephoto_getphotosize(ragephoto_in) <= 0) {
+        else if (error <= RAGEPHOTO_ERROR_PHOTOREADERROR) {
             printf("Failed to load photo\n");
             ragephoto_close(ragephoto_in);
             return 1;
@@ -68,9 +69,9 @@ int main(int argc, char *argv[])
     }
 
     const uint32_t photoFormat = ragephoto_getphotoformat(ragephoto_in);
-    if (photoFormat == ragephoto_format_gta5())
+    if (photoFormat == RAGEPHOTO_FORMAT_GTA5)
         printf("GTA V Photo successfully exported\n");
-    else if (photoFormat == ragephoto_format_rdr2())
+    else if (photoFormat == RAGEPHOTO_FORMAT_RDR2)
         printf("RDR 2 Photo successfully exported\n");
     else
         printf("Photo successfully exported\n");
diff --git a/src/RagePhotoTypedefs.h b/src/RagePhotoTypedefs.h
index 1081f77..9e634d0 100644
--- a/src/RagePhotoTypedefs.h
+++ b/src/RagePhotoTypedefs.h
@@ -73,6 +73,62 @@ typedef struct RagePhotoFormatParser {
     ragephoto_saveszfunc_t funcSaveSz; /**< Pointer to saveSize function */
 } RagePhotoFormatParser;
 
+/* RagePhoto default sizes */
+#define RAGEPHOTO_DEFAULT_GTA5_PHOTOBUFFER 524288UL /**< GTA V default Photo Buffer Size */
+#define RAGEPHOTO_DEFAULT_RDR2_PHOTOBUFFER 1048576UL /**< RDR 2 default Photo Buffer Size */
+#define RAGEPHOTO_DEFAULT_DESCBUFFER 256UL /**< Default Description Buffer Size */
+#define RAGEPHOTO_DEFAULT_JSONBUFFER 3072UL /**< Default JSON Buffer Size */
+#define RAGEPHOTO_DEFAULT_TITLBUFFER 256UL /**< Default Title Buffer Size */
+#define RAGEPHOTO_GTA5_HEADERSIZE 264UL /**< GTA V Header Size */
+#define RAGEPHOTO_RDR2_HEADERSIZE 272UL /**< RDR 2 Header Size */
+
+/* RagePhoto error codes */
+#define RAGEPHOTO_ERROR_DESCBUFFERTIGHT 39L /**< Description Buffer is too tight */
+#define RAGEPHOTO_ERROR_DESCMALLOCERROR 31L /**< Description Buffer can't be allocated */
+#define RAGEPHOTO_ERROR_DESCREADERROR 32L /**< Description can't be read successfully */
+#define RAGEPHOTO_ERROR_HEADERBUFFERTIGHT 35L /**< Header Buffer is too tight */
+#define RAGEPHOTO_ERROR_HEADERMALLOCERROR 4L /**< Header Buffer can't be allocated */
+#define RAGEPHOTO_ERROR_INCOMPATIBLEFORMAT 2L /**< Format is incompatible */
+#define RAGEPHOTO_ERROR_INCOMPLETECHECKSUM 7L /**< Header checksum is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETEDESCBUFFER 30L /**< Description Buffer Size is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETEDESCMARKER 28L /**< Description Marker is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETEDESCOFFSET 11L /**< Description Offset is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETEEOF 8L /**< End Of File Offset is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETEHEADER 3L /**< Header is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETEJENDMARKER 33L /**< JEND Marker is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETEJPEGMARKER 12L /**< JPEG Marker is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETEJSONBUFFER 20L /**< JSON Buffer Size is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETEJSONMARKER 18L /**< JSON Marker incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETEJSONOFFSET 9L /**< JSON Offset incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETEPHOTOBUFFER 14L /**< Photo Buffer Size is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETEPHOTOSIZE 15L /**< Photo Size is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETETITLEBUFFER 25L /**< Title Buffer Size is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETETITLEMARKER 23L /**< Title Marker is incomplete */
+#define RAGEPHOTO_ERROR_INCOMPLETETITLEOFFSET 10L /**< Title Offset is incomplete */
+#define RAGEPHOTO_ERROR_INCORRECTDESCMARKER 29L /**< Description Marker is incorrect */
+#define RAGEPHOTO_ERROR_INCORRECTJENDMARKER 34L /**< JEND Marker is incorrect */
+#define RAGEPHOTO_ERROR_INCORRECTJPEGMARKER 13L /**< JPEG Marker is incorrect */
+#define RAGEPHOTO_ERROR_INCORRECTJSONMARKER 19L /**< JSON Marker is incorrect */
+#define RAGEPHOTO_ERROR_INCORRECTTITLEMARKER 24L /**< Title Marker is incorrect */
+#define RAGEPHOTO_ERROR_JSONBUFFERTIGHT 37L /**< JSON Buffer is too tight */
+#define RAGEPHOTO_ERROR_JSONMALLOCERROR 21L /**< JSON Buffer can't be allocated */
+#define RAGEPHOTO_ERROR_JSONREADERROR 22L /**< JSON can't be read successfully */
+#define RAGEPHOTO_ERROR_NOERROR 255L /**< Finished without errors */
+#define RAGEPHOTO_ERROR_NOFORMATIDENTIFIER 1L /**< No format detected, empty file */
+#define RAGEPHOTO_ERROR_PHOTOBUFFERTIGHT 36L /**< Photo Buffer is too tight */
+#define RAGEPHOTO_ERROR_PHOTOMALLOCERROR 16L /**< Photo Buffer can't be allocated */
+#define RAGEPHOTO_ERROR_PHOTOREADERROR 17L /**< Photo can't be read */
+#define RAGEPHOTO_ERROR_TITLEBUFFERTIGHT 38L /**< Title Buffer is too tight */
+#define RAGEPHOTO_ERROR_TITLEMALLOCERROR 26L /**< Title Buffer can't be allocated */
+#define RAGEPHOTO_ERROR_TITLEREADERROR 27L /**< Title can't be read */
+#define RAGEPHOTO_ERROR_UNICODEINITERROR 5L /**< Failed to initialise Unicode decoder */
+#define RAGEPHOTO_ERROR_UNICODEHEADERERROR 6L /**< Header can't be encoded/decoded successfully */
+#define RAGEPHOTO_ERROR_UNINITIALISED 0L /**< Uninitialised, file access failed */
+
+/* RagePhoto formats */
+#define RAGEPHOTO_FORMAT_GTA5 0x01000000UL /**< GTA V Photo Format */
+#define RAGEPHOTO_FORMAT_RDR2 0x04000000UL /**< RDR 2 Photo Format */
+
 #ifdef __cplusplus
 }
 #endif // __cplusplus