@@ -655,8 +655,8 @@ err_dcol_buffer:
655655 }
656656
657657 /* Convert pixel data */
658- pal_line = pal_lock. vl_data ;
659- dcol_line = frame_lock. vl_data ;
658+ pal_line = video_lock_getdata (& pal_lock) ;
659+ dcol_line = video_lock_getdata (& frame_lock) ;
660660 iter_y = video_buffer_getydim (frame);
661661 if (format.vbf_codec ->vc_specs .vcs_pxsz == 3 ) {
662662 do {
@@ -670,8 +670,8 @@ err_dcol_buffer:
670670 *dcol_iter++ = VIDEO_COLOR_GET_GREEN (color);
671671 *dcol_iter++ = VIDEO_COLOR_GET_BLUE (color);
672672 } while (--iter_x);
673- dcol_line += frame_lock. vl_stride ;
674- pal_line += pal_lock. vl_stride ;
673+ dcol_line += video_lock_getstride (& frame_lock) ;
674+ pal_line += video_lock_getstride (& pal_lock) ;
675675 } while (--iter_y);
676676 } else {
677677 do {
@@ -689,8 +689,8 @@ err_dcol_buffer:
689689 *(uint32_t *)dcol_iter = color;
690690 dcol_iter += 4 ;
691691 } while (--iter_x);
692- dcol_line += frame_lock. vl_stride ;
693- pal_line += pal_lock. vl_stride ;
692+ dcol_line += video_lock_getstride (& frame_lock) ;
693+ pal_line += video_lock_getstride (& pal_lock) ;
694694 } while (--iter_y);
695695 }
696696 video_buffer_unlock (frame, &pal_lock);
@@ -732,10 +732,13 @@ err_dcol_buffer:
732732 self->gb_restore_stride = req.vbs_stride ;
733733 }
734734 (*codec->vc_rectcopy )(self->gb_restore , 0 , self->gb_restore_stride ,
735- frame_lock.vl_data , 0 , frame_lock.vl_stride ,
736- video_buffer_getxdim (frame), video_buffer_getydim (frame));
735+ video_lock_getdata (&frame_lock), 0 ,
736+ video_lock_getstride (&frame_lock),
737+ video_buffer_getxdim (frame),
738+ video_buffer_getydim (frame));
737739 }
738- (*codec->vc_rectfill )(frame_lock.vl_data , 0 , frame_lock.vl_stride ,
740+ (*codec->vc_rectfill )(video_lock_getdata (&frame_lock), 0 ,
741+ video_lock_getstride (&frame_lock),
739742 anim->ga_cfg .gc_trans ,
740743 video_buffer_getxdim (frame),
741744 video_buffer_getydim (frame));
@@ -745,7 +748,8 @@ err_dcol_buffer:
745748 self->gb_encountered_GIF_DISPOSE_RESTORE_PREVIOUS = true ;
746749 /* Restore previous frame */
747750 if (self->gb_restore ) {
748- (*codec->vc_rectcopy )(frame_lock.vl_data , 0 , frame_lock.vl_stride ,
751+ (*codec->vc_rectcopy )(video_lock_getdata (&frame_lock), 0 ,
752+ video_lock_getstride (&frame_lock),
749753 self->gb_restore , 0 , self->gb_restore_stride ,
750754 video_buffer_getxdim (frame),
751755 video_buffer_getydim (frame));
@@ -770,7 +774,8 @@ err_dcol_buffer:
770774 self->gb_restore_stride = req.vbs_stride ;
771775 }
772776 (*codec->vc_rectcopy )(self->gb_restore , 0 , self->gb_restore_stride ,
773- frame_lock.vl_data , 0 , frame_lock.vl_stride ,
777+ video_lock_getdata (&frame_lock), 0 ,
778+ video_lock_getstride (&frame_lock),
774779 video_buffer_getxdim (frame),
775780 video_buffer_getydim (frame));
776781 } break ;
@@ -787,8 +792,8 @@ err_dcol_buffer:
787792 frame_endy <= video_buffer_getydim (frame))) {
788793 /* Can render directly into the frame buffer (no scratch buffer needed) */
789794 byte_t *dst;
790- dst = frame_lock. vl_data + frame_x + frame_y * frame_lock. vl_stride ;
791- reader = gif_read_frame (self, dst, frame_lock. vl_stride , frame_w, frame_h,
795+ dst = video_lock_getline (& frame_lock, frame_y) + frame_x ;
796+ reader = gif_read_frame (self, dst, video_lock_getstride (& frame_lock) , frame_w, frame_h,
792797 reader, eof, ctrl, self->gb_cfg .gc_trans );
793798 if unlikely (!reader)
794799 goto err_frame_lock;
@@ -809,13 +814,13 @@ set_has_global_transparency:
809814 ATTR_FALLTHROUGH
810815 case GIF_DISPOSE_RESTORE_PREVIOUS: {
811816 /* Check if pixel data contains transparent pixels */
812- byte_t *line_iter = frame_lock. vl_data ;
817+ byte_t *line_iter = video_lock_getdata (& frame_lock) ;
813818 video_coord_t y_iter = video_buffer_getydim (frame);
814819 do {
815820 if (memchr (line_iter, anim->ga_cfg .gc_trans ,
816821 video_buffer_getxdim (frame)))
817822 goto set_has_global_transparency;
818- line_iter += frame_lock. vl_stride ;
823+ line_iter += video_lock_getstride (& frame_lock) ;
819824 } while (--y_iter);
820825 video_buffer_disablecolorkey (frame);
821826 } break ;
@@ -864,7 +869,8 @@ set_has_global_transparency:
864869 codec->vc_specs .vcs_pxsz == 3 || /* RGB888 */
865870 codec->vc_specs .vcs_pxsz == 4 ); /* RGBA8888 */
866871 src = self->gb_scratch ;
867- dst = frame_lock.vl_data + (frame_x * codec->vc_specs .vcs_pxsz ) + (frame_y * frame_lock.vl_stride );
872+ dst = video_lock_getline (&frame_lock, frame_y) +
873+ (frame_x * codec->vc_specs .vcs_pxsz );
868874 switch (codec->vc_specs .vcs_pxsz ) {
869875 case 1 :
870876 for (y = 0 ; y < frame_h; ++y) {
@@ -875,7 +881,7 @@ set_has_global_transparency:
875881 *line = pixel;
876882 ++line;
877883 }
878- dst += frame_lock. vl_stride ;
884+ dst += video_lock_getstride (& frame_lock) ;
879885 }
880886 goto check_for_global_transparency;
881887 case 3 :
@@ -898,7 +904,7 @@ set_has_global_transparency:
898904 }
899905 line += 3 ;
900906 }
901- dst += frame_lock. vl_stride ;
907+ dst += video_lock_getstride (& frame_lock) ;
902908 }
903909 break ;
904910 case 4 :
@@ -920,7 +926,7 @@ set_has_global_transparency:
920926 }
921927 line += 4 ;
922928 }
923- dst += frame_lock. vl_stride ;
929+ dst += video_lock_getstride (& frame_lock) ;
924930 }
925931 break ;
926932 default : __builtin_unreachable ();
@@ -1029,7 +1035,7 @@ gif_anim_firstframe(struct video_anim const *__restrict self,
10291035
10301036 /* Fill with global transparency, or "0" if not defined */
10311037 if (me->ga_cfg .gc_trans <= 0xff && me->ga_cfg .gc_trans != 0 ) {
1032- (*format.vbf_codec ->vc_rectfill )(result_lock. vl_data , 0 , result_lock. vl_stride ,
1038+ (*format.vbf_codec ->vc_rectfill )(video_lock_getdata (& result_lock) , 0 , video_lock_getstride (& result_lock) ,
10331039 me->ga_cfg .gc_trans ,
10341040 video_buffer_getxdim (result),
10351041 video_buffer_getydim (result));
@@ -1052,8 +1058,9 @@ gif_anim_firstframe(struct video_anim const *__restrict self,
10521058
10531059 /* Read frame into buffer */
10541060 reader = gif_read_frame (frame,
1055- result_lock.vl_data + frame_x + frame_y * result_lock.vl_stride ,
1056- result_lock.vl_stride , frame_w, frame_h, reader, eof, ctrl,
1061+ video_lock_getline (&result_lock, frame_y) + frame_x,
1062+ video_lock_getstride (&result_lock),
1063+ frame_w, frame_h, reader, eof, ctrl,
10571064 (video_pixel_t )-1 );
10581065 if unlikely (!reader)
10591066 goto err_r_lock;
@@ -1074,13 +1081,13 @@ set_have_global_trans:
10741081 me->ga_frame1_global_trans = GIF_ANIM_FRAME1_GLOBAL_TRANS__YES;
10751082 goto have_global_trans;
10761083 }
1077- line_iter = result_lock. vl_data ;
1084+ line_iter = video_lock_getdata (& result_lock) ;
10781085 y_iter = video_buffer_getydim (result);
10791086 do {
10801087 if (memchr (line_iter, me->ga_cfg .gc_trans ,
10811088 video_buffer_getxdim (result)))
10821089 goto set_have_global_trans;
1083- line_iter += result_lock. vl_stride ;
1090+ line_iter += video_lock_getstride (& result_lock) ;
10841091 } while (--y_iter);
10851092 me->ga_frame1_global_trans = GIF_ANIM_FRAME1_GLOBAL_TRANS__NO;
10861093 } break ;
0 commit comments