@@ -251,7 +251,7 @@ int OSD::libschrift_init()
251251 return 0 ;
252252}
253253
254- void OSD::set_text (OSDItem *osdItem, IMPOSDRgnAttr *rgnAttr , const char *text, int posX, int posY, int angle)
254+ void OSD::set_text (OSDItem *osdItem, IMPOSDRgnAttr *irgnAttr , const char *text, int posX, int posY, int angle)
255255{
256256
257257 // size and stroke
@@ -279,21 +279,20 @@ void OSD::set_text(OSDItem *osdItem, IMPOSDRgnAttr *rgnAttr, const char *text, i
279279
280280 if (item_width != osdItem->width || item_height != osdItem->height )
281281 {
282- if (rgnAttr == nullptr )
282+ if (irgnAttr == nullptr )
283283 {
284- rgnAttr = new IMPOSDRgnAttr ();
285- IMP_OSD_GetRgnAttr (osdItem->imp_rgn , rgnAttr);
284+ IMP_OSD_GetRgnAttr (osdItem->imp_rgn , &osdItem->rgnAttr );
286285 }
287286
288- set_pos (rgnAttr, posX, posY, item_width, item_height, stream_width, stream_height);
287+ set_pos (&osdItem-> rgnAttr , posX, posY, item_width, item_height, stream_width, stream_height);
289288
290- rgnAttr-> data .picData .pData = osdItem->data ;
291- osdItem->rgnAttrData = &rgnAttr-> data ;
289+ osdItem-> rgnAttr . data .picData .pData = osdItem->data ;
290+ osdItem->rgnAttrData = &osdItem-> rgnAttr . data ;
292291
293292 osdItem->width = item_width;
294293 osdItem->height = item_height;
295294
296- IMP_OSD_SetRgnAttr (osdItem->imp_rgn , rgnAttr);
295+ IMP_OSD_SetRgnAttr (osdItem->imp_rgn , &osdItem-> rgnAttr );
297296 }
298297 else
299298 {
@@ -564,13 +563,12 @@ void OSD::init()
564563 IMP_OSD_RegisterRgn (osdTime.imp_rgn , osdGrp, nullptr );
565564 osd.regions .time = osdTime.imp_rgn ;
566565
567- IMPOSDRgnAttr rgnAttr;
568- memset (&rgnAttr, 0 , sizeof (IMPOSDRgnAttr));
569- rgnAttr.type = OSD_REG_PIC;
570- rgnAttr.fmt = PIX_FMT_BGRA;
571- set_text (&osdTime, &rgnAttr, osd.time_format ,
566+ memset (&osdTime.rgnAttr , 0 , sizeof (IMPOSDRgnAttr));
567+ osdTime.rgnAttr .type = OSD_REG_PIC;
568+ osdTime.rgnAttr .fmt = PIX_FMT_BGRA;
569+ set_text (&osdTime, &osdTime.rgnAttr , osd.time_format ,
572570 osd.pos_time_x , osd.pos_time_y , osd.time_rotation );
573- IMP_OSD_SetRgnAttr (osdTime.imp_rgn , &rgnAttr);
571+ IMP_OSD_SetRgnAttr (osdTime.imp_rgn , &osdTime. rgnAttr );
574572
575573 IMPOSDGrpRgnAttr grpRgnAttr;
576574 memset (&grpRgnAttr, 0 , sizeof (IMPOSDGrpRgnAttr));
@@ -603,13 +601,12 @@ void OSD::init()
603601 IMP_OSD_RegisterRgn (osdUser.imp_rgn , osdGrp, nullptr );
604602 osd.regions .user = osdUser.imp_rgn ;
605603
606- IMPOSDRgnAttr rgnAttr;
607- memset (&rgnAttr, 0 , sizeof (IMPOSDRgnAttr));
608- rgnAttr.type = OSD_REG_PIC;
609- rgnAttr.fmt = PIX_FMT_BGRA;
610- set_text (&osdUser, &rgnAttr, osd.user_text_format ,
604+ memset (&osdUser.rgnAttr , 0 , sizeof (IMPOSDRgnAttr));
605+ osdUser.rgnAttr .type = OSD_REG_PIC;
606+ osdUser.rgnAttr .fmt = PIX_FMT_BGRA;
607+ set_text (&osdUser, &osdUser.rgnAttr , osd.user_text_format ,
611608 osd.pos_user_text_x , osd.pos_user_text_y , osd.user_text_rotation );
612- IMP_OSD_SetRgnAttr (osdUser.imp_rgn , &rgnAttr);
609+ IMP_OSD_SetRgnAttr (osdUser.imp_rgn , &osdUser. rgnAttr );
613610
614611 IMPOSDGrpRgnAttr grpRgnAttr;
615612 memset (&grpRgnAttr, 0 , sizeof (IMPOSDGrpRgnAttr));
@@ -639,13 +636,12 @@ void OSD::init()
639636 IMP_OSD_RegisterRgn (osdUptm.imp_rgn , osdGrp, nullptr );
640637 osd.regions .uptime = osdUptm.imp_rgn ;
641638
642- IMPOSDRgnAttr rgnAttr;
643- memset (&rgnAttr, 0 , sizeof (IMPOSDRgnAttr));
644- rgnAttr.type = OSD_REG_PIC;
645- rgnAttr.fmt = PIX_FMT_BGRA;
646- set_text (&osdUptm, &rgnAttr, osd.uptime_format ,
639+ memset (&osdUptm.rgnAttr , 0 , sizeof (IMPOSDRgnAttr));
640+ osdUptm.rgnAttr .type = OSD_REG_PIC;
641+ osdUptm.rgnAttr .fmt = PIX_FMT_BGRA;
642+ set_text (&osdUptm, &osdUptm.rgnAttr , osd.uptime_format ,
647643 osd.pos_uptime_x , osd.pos_uptime_y , osd.uptime_rotation );
648- IMP_OSD_SetRgnAttr (osdUptm.imp_rgn , &rgnAttr);
644+ IMP_OSD_SetRgnAttr (osdUptm.imp_rgn , &osdUptm. rgnAttr );
649645
650646 IMPOSDGrpRgnAttr grpRgnAttr;
651647 memset (&grpRgnAttr, 0 , sizeof (IMPOSDGrpRgnAttr));
@@ -678,28 +674,27 @@ void OSD::init()
678674 IMP_OSD_RegisterRgn (osdLogo.imp_rgn , osdGrp, nullptr );
679675 osd.regions .logo = osdLogo.imp_rgn ;
680676
681- IMPOSDRgnAttr rgnAttr;
682- memset (&rgnAttr, 0 , sizeof (IMPOSDRgnAttr));
677+ memset (&osdLogo.rgnAttr , 0 , sizeof (IMPOSDRgnAttr));
683678
684679 // Verify OSD logo size vs dimensions
685680 if ((osd.logo_width * osd.logo_height * 4 ) == (int )imageSize)
686681 {
687- rgnAttr.type = OSD_REG_PIC;
688- rgnAttr.fmt = PIX_FMT_BGRA;
689- rgnAttr.data .picData .pData = imageData;
682+ osdLogo. rgnAttr .type = OSD_REG_PIC;
683+ osdLogo. rgnAttr .fmt = PIX_FMT_BGRA;
684+ osdLogo. rgnAttr .data .picData .pData = imageData;
690685
691686 // Logo rotation
692687 uint16_t logo_width = osd.logo_width ;
693688 uint16_t logo_height = osd.logo_height ;
694689 if (osd.logo_rotation )
695690 {
696- uint8_t *imageData = static_cast <uint8_t *>(rgnAttr.data .picData .pData );
691+ uint8_t *imageData = static_cast <uint8_t *>(osdLogo. rgnAttr .data .picData .pData );
697692 rotateBGRAImage (imageData, logo_width,
698693 logo_height, osd.logo_rotation , false );
699- rgnAttr.data .picData .pData = imageData;
694+ osdLogo. rgnAttr .data .picData .pData = imageData;
700695 }
701696
702- set_pos (&rgnAttr, osd.pos_logo_x ,
697+ set_pos (&osdLogo. rgnAttr , osd.pos_logo_x ,
703698 osd.pos_logo_y , logo_width, logo_height, stream_width, stream_height);
704699 }
705700 else
@@ -708,7 +703,7 @@ void OSD::init()
708703 LOG_ERROR (" Invalid OSD logo dimensions. Imagesize=" << imageSize << " , " << osd.logo_width
709704 << " *" << osd.logo_height << " *4=" << (osd.logo_width * osd.logo_height * 4 ));
710705 }
711- IMP_OSD_SetRgnAttr (osdLogo.imp_rgn , &rgnAttr);
706+ IMP_OSD_SetRgnAttr (osdLogo.imp_rgn , &osdLogo. rgnAttr );
712707
713708 IMPOSDGrpRgnAttr grpRgnAttr;
714709 memset (&grpRgnAttr, 0 , sizeof (IMPOSDGrpRgnAttr));
0 commit comments