ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/CV/CV.xs
(Generate patch)

Comparing CV/CV.xs (file contents):
Revision 1.64 by root, Wed Dec 1 03:32:40 2021 UTC vs.
Revision 1.65 by root, Thu Dec 2 03:11:45 2021 UTC

589 JxlBasicInfo info; 589 JxlBasicInfo info;
590 const uint8_t *next_in = (uint8_t *)SvPVbyte_nolen (image_data); 590 const uint8_t *next_in = (uint8_t *)SvPVbyte_nolen (image_data);
591 size_t avail_in = SvCUR (image_data); 591 size_t avail_in = SvCUR (image_data);
592 const char *error = 0; 592 const char *error = 0;
593 JxlDecoderStatus status; 593 JxlDecoderStatus status;
594 static void *runner_cache;
594 void *runner = 0; 595 void *runner = 0;
595 596
596 RETVAL = 0; 597 RETVAL = 0;
598
599 if (runner_cache)
600 runner = runner_cache;
601 else
602 runner = JxlThreadParallelRunnerCreate (0, JxlThreadParallelRunnerDefaultNumWorkerThreads ());
603
604 runner_cache = 0;
597 605
598 perlinterp_release (); 606 perlinterp_release ();
599 607
600 dec = JxlDecoderCreate (0); 608 dec = JxlDecoderCreate (0);
601 609
602 error = "JxlDecoderCreate failed"; 610 error = "JxlDecoderCreate failed";
603 if (!dec) 611 if (!dec)
604 goto done; 612 goto done;
605
606 runner = JxlThreadParallelRunnerCreate (0, JxlThreadParallelRunnerDefaultNumWorkerThreads ());
607 613
608 status = JxlDecoderSetParallelRunner (dec, JxlThreadParallelRunner, runner); 614 status = JxlDecoderSetParallelRunner (dec, JxlThreadParallelRunner, runner);
609 error = "JxlDecoderSetParallelRunner failed"; 615 error = "JxlDecoderSetParallelRunner failed";
610 if (status != JXL_DEC_SUCCESS) 616 if (status != JXL_DEC_SUCCESS)
611 goto done; 617 goto done;
687 693
688 done: 694 done:
689 if (dec) 695 if (dec)
690 JxlDecoderDestroy (dec); 696 JxlDecoderDestroy (dec);
691 697
698 perlinterp_acquire ();
699
692 if (runner) 700 if (runner_cache)
693 JxlThreadParallelRunnerDestroy (runner); 701 JxlThreadParallelRunnerDestroy (runner);
694 702
695 perlinterp_acquire (); 703 runner_cache = runner;
696 704
697 if (error) 705 if (error)
698 { 706 {
699 if (RETVAL) 707 if (RETVAL)
700 g_object_unref (RETVAL); 708 g_object_unref (RETVAL);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines