changeset 7160:cb4bdda4c0af default tip

fix understimated memory in transcoder cache (only the DICOM header size was considered instead of the whole file size)
author Alain Mazy <am@orthanc.team>
date Mon, 28 Sep 2026 15:37:02 +0200
parents c5e867a181e9
children
files NEWS OrthancFramework/Sources/DataSource/TranscoderDataSource.cpp
diffstat 2 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS	Fri Sep 25 16:07:31 2026 +0200
+++ b/NEWS	Mon Sep 28 15:37:02 2026 +0200
@@ -17,6 +17,10 @@
 Maintenance
 -----------
 
+* Fixed a memory management issue related to the transcoder cache.  The memory consumed by each
+  transcoded file was greatly under-estimated which could lead to out-of-memory crashes when 
+  transcoding was used when downloading files/archive or during a C-Store.  The transcoding
+  happening at ingest time was not affected by this issue.
 * Renamed the "DICOM conformance statement" of Orthanc as "DICOM conformance summary",
   as it is not a formal DICOM Conformance Statement in the sense of DICOM PS3.2, but only
   a summary of supported SOP Classes and Transfer Syntaxes (thanks Jörg Riesmeier).
--- a/OrthancFramework/Sources/DataSource/TranscoderDataSource.cpp	Fri Sep 25 16:07:31 2026 +0200
+++ b/OrthancFramework/Sources/DataSource/TranscoderDataSource.cpp	Mon Sep 28 15:37:02 2026 +0200
@@ -97,7 +97,7 @@
       {
         assert(parsed_.get() != NULL);
         DcmFileFormat& f = parsed_->GetDcmtkObject();
-        size_ = f.calcElementLength(f.getDataset()->getOriginalXfer(), EET_ExplicitLength);
+        size_ = f.calcElementLength(f.getDataset()->getCurrentXfer(), EET_ExplicitLength);
       }
     }