From fc4b2136c765402e5a64a351ef9c46226405855c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 11 Aug 2020 16:49:26 +0200 Subject: Does a decode without crashing. --- src/lib/fastvideo.cc | 46 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/src/lib/fastvideo.cc b/src/lib/fastvideo.cc index b1a70f86d..bd3d480c6 100644 --- a/src/lib/fastvideo.cc +++ b/src/lib/fastvideo.cc @@ -1,6 +1,7 @@ #include "exceptions.h" #include "fastvideo.h" #include +#include #include @@ -10,10 +11,24 @@ using boost::shared_ptr; shared_ptr fastvideo_decompress_j2k (dcp::Data data, int reduce) { - fastStatus_t r = fastInit(1, true); + fastTraceCreate("/home/carl/trace.log"); + + /* + fastStatus_t r = fastInit(0, true); if (r != FAST_OK) { throw FastvideoError ("Init", r); } + */ + + fastSdkParametersHandle_t sdk_parameters; + fastStatus_t r = fastGetSdkParametersHandle(&sdk_parameters); + if (r != FAST_OK) { + throw FastvideoError ("GetSdkParametersHandle", r); + } + r = fastDecoderJ2kLibraryInit(sdk_parameters); + if (r != FAST_OK) { + throw FastvideoError ("J2kLibraryInit", r); + } fastJ2kImageInfo_t info; r = fastDecoderJ2kPredecode(&info, data.data().get(), data.size()); @@ -28,12 +43,12 @@ fastvideo_decompress_j2k (dcp::Data data, int reduce) fastDecoderJ2kStaticParameters_t parameters; memset(¶meters, 0, sizeof(fastDecoderJ2kStaticParameters_t)); - parameters.ResolutionLevels = 5 - reduce; + parameters.ResolutionLevels = 0; parameters.verboseLevel = 1; parameters.enableROI = 0; - parameters.maxTileHeight = info.width; - parameters.maxTileWidth = info.height; + parameters.maxTileHeight = info.height; + parameters.maxTileWidth = info.width; parameters.windowX0 = 0; parameters.windowY0 = 0; @@ -48,7 +63,23 @@ fastvideo_decompress_j2k (dcp::Data data, int reduce) parameters.imageInfo = &info; parameters.maxStreamSize = info.streamSize; - fastDecoderJ2kHandle_t decoder; + std::cout << "verboseLevel " << parameters.verboseLevel << "\n"; + std::cout << "maxTileWidth " << parameters.maxTileWidth << "\n"; + std::cout << "maxTileHeight " << parameters.maxTileHeight << "\n"; + std::cout << "ResolutionLevels " << parameters.ResolutionLevels << "\n"; + std::cout << "DecodePasses " << parameters.DecodePasses << "\n"; + std::cout << "maxStreamSize " << parameters.maxStreamSize << "\n"; + std::cout << "truncationMode " << parameters.truncationMode << "\n"; + std::cout << "truncationRate " << parameters.truncationRate << "\n"; + std::cout << "truncationLength " << parameters.truncationLength << "\n"; + std::cout << "windowX0 " << parameters.windowX0 << "\n"; + std::cout << "windowY0 " << parameters.windowY0 << "\n"; + std::cout << "windowWidth " << parameters.windowWidth << "\n"; + std::cout << "windowHeight " << parameters.windowHeight << "\n"; + std::cout << "enableROI " << parameters.enableROI << "\n"; + std::cout << "enableMemoryReallocation " << parameters.enableMemoryReallocation << "\n"; + + fastDecoderJ2kHandle_t decoder = 0; fastDeviceSurfaceBufferHandle_t buffer; r = fastDecoderJ2kCreate( &decoder, @@ -58,6 +89,7 @@ fastvideo_decompress_j2k (dcp::Data data, int reduce) &buffer ); if (r != FAST_OK) { + fastTraceClose (); throw FastvideoError ("J2kCreate", r); } @@ -111,7 +143,7 @@ fastvideo_decompress_j2k (dcp::Data data, int reduce) throw FastvideoError ("fastMalloc"); } - r = fastDecoderJ2kTransform (decoder, decoded, decoded_size, &report); + r = fastDecoderJ2kTransform (decoder, data.data().get(), data.size(), &report); if (r != FAST_OK) { throw FastvideoError ("J2kTransform"); } @@ -171,5 +203,7 @@ fastvideo_decompress_j2k (dcp::Data data, int reduce) } fastFree(decoded); + + return shared_ptr(); } -- cgit v1.2.3