# HG changeset patch # User Alain Mazy # Date 1790602622 -7200 # Node ID cb4bdda4c0afe9bd6d00873e8e8369a8742d34a3 # Parent c5e867a181e9dc4a796ce3add1b03c56c7a0277e fix understimated memory in transcoder cache (only the DICOM header size was considered instead of the whole file size) diff -r c5e867a181e9 -r cb4bdda4c0af NEWS --- 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). diff -r c5e867a181e9 -r cb4bdda4c0af OrthancFramework/Sources/DataSource/TranscoderDataSource.cpp --- 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); } }