@@ -527,7 +527,7 @@ size_t webp_encoder_write(webp_encoder e, const opencv_mat src, const int* opt,
527
527
WebPAnimEncoderDelete (e->anim );
528
528
e->anim = nullptr ;
529
529
} else {
530
- // Finalize still image using existing WebPMux code
530
+ // Finalize still image
531
531
WebPData out_mux = { nullptr , 0 };
532
532
533
533
// Add ICC profile if it exists
@@ -633,8 +633,9 @@ size_t webp_encoder_write(webp_encoder e, const opencv_mat src, const int* opt,
633
633
}
634
634
635
635
// Handle current frame
636
+ size_t size = 0 ;
636
637
if (e->is_animation ) {
637
- // Add frame to animation
638
+ // Add frame to animation being accumulated
638
639
WebPPicture frame;
639
640
WebPPictureInit (&frame);
640
641
frame.width = mat->cols ;
@@ -648,7 +649,6 @@ size_t webp_encoder_write(webp_encoder e, const opencv_mat src, const int* opt,
648
649
}
649
650
650
651
// Import the frame
651
- size_t size = 0 ;
652
652
if (mat->channels () == 3 ) {
653
653
size = WebPPictureImportBGR (&frame, mat->data , mat->step );
654
654
} else {
@@ -670,8 +670,7 @@ size_t webp_encoder_write(webp_encoder e, const opencv_mat src, const int* opt,
670
670
e->timestamp_ms += delay;
671
671
WebPPictureFree (&frame);
672
672
} else {
673
- // Handle single frame using existing WebPMux code
674
- size_t size = 0 ;
673
+ // Handle single frame
675
674
uint8_t * out_picture = nullptr ;
676
675
677
676
if (config.lossless ) {
@@ -710,7 +709,7 @@ size_t webp_encoder_write(webp_encoder e, const opencv_mat src, const int* opt,
710
709
}
711
710
712
711
e->frame_count ++;
713
- return mat-> total () * mat-> elemSize (); // Return approximate size of processed data
712
+ return size;
714
713
}
715
714
716
715
/* *
0 commit comments