From 0854a4cc444368da571919e61b8bb45b1d51be4a Mon Sep 17 00:00:00 2001 From: Markus Pfundstein Date: Wed, 17 Sep 2025 18:10:46 +0200 Subject: [PATCH] as-02-unwrap: support writing IAB files to disk when unwrapping them --- src/as-02-unwrap.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/as-02-unwrap.cpp b/src/as-02-unwrap.cpp index 614a6240..b7a43fe9 100755 --- a/src/as-02-unwrap.cpp +++ b/src/as-02-unwrap.cpp @@ -1078,8 +1078,23 @@ Result_t read_iab_file(CommandOptions& Options, const Kumu::IFileReaderFactory& } last_frame = last_frame - Options.start_frame; + } + Kumu::FileWriter writer; + ui32_t write_count = 0; + if ( ! Options.no_write_flag ) + { + if ( Options.verbose_flag ) + { + fprintf(stdout, "Opening output file %s\n", Options.file_prefix); + } + result = writer.OpenWrite(Options.file_prefix); + if ( ! ASDCP_SUCCESS(result) ) + { + fprintf(stderr, "Error opening output file %s.\n", Options.file_prefix); + return RESULT_FAIL; + } } for ( ui32_t i = Options.start_frame; ASDCP_SUCCESS(result) && i < last_frame; i++ ) @@ -1088,6 +1103,15 @@ Result_t read_iab_file(CommandOptions& Options, const Kumu::IFileReaderFactory& if ( ASDCP_SUCCESS(result) ) { + if ( ! Options.no_write_flag ) + { + result = writer.Write(FrameBuffer.RoData(), FrameBuffer.Size(), &write_count); + if ( ! ASDCP_SUCCESS(result) ) + { + fprintf(stderr, "Error writing to output file %s.\n", Options.file_prefix); + return RESULT_FAIL; + } + } if ( Options.verbose_flag ) { FrameBuffer.FrameNumber(i);