+#define TDC_DECRYPT_BLOCKSIZE 512
+
+namespace {
+
+using FileHeaderPtr = std::unique_ptr<T_FILE_HEADER, int(*)(T_FILE_HEADER *)>;
+using DrmHeaderPtr = std::unique_ptr<T_DRM_HEADER, int(*)(T_DRM_HEADER *)>;
+using RoPtr = std::unique_ptr<T_RO, int(*)(T_RO *)>;
+
+using BufPtr = std::unique_ptr<unsigned char[]>;
+
+inline FileHeaderPtr createFileHeaderPtr(T_FILE_HEADER *ptr)
+{
+ return FileHeaderPtr(ptr, TADC_MEMFree_FileHeader);
+}
+
+inline DrmHeaderPtr createDrmHeaderPtr(T_DRM_HEADER *ptr)
+{
+ return DrmHeaderPtr(ptr, TADC_MEMFree_DRMHeader);
+}