@@ -127,6 +127,7 @@ static CVReturn MyDisplayLinkCallback (CVDisplayLinkRef displayLink,
127127 uint32_t m_selection_start, m_selection_finish;
128128 uint32_t m_selection_duration;
129129 uint32_t m_buffered_time;
130+ double m_scale;
130131 CMTimeScale m_time_scale;
131132
132133 bool m_play_selection_only : 1 ;
@@ -286,6 +287,8 @@ - (void)setPlayer:(AVPlayer *)player
286287 m_selection_start = 0 ;
287288 m_selection_finish = 0 ;
288289 m_buffered_time = 0 ;
290+
291+ m_scale = 1.0 ;
289292
290293 m_time_observer_token = nil ;
291294 m_endtime_observer_token = nil ;
@@ -834,9 +837,16 @@ - (void)setPlayer:(AVPlayer *)player
834837 MCMacPlatformWindow *t_window;
835838 t_window = (MCMacPlatformWindow *)m_window;
836839
840+ // PM-2015-11-26: [[ Bug 13277 ]] Scale m_rect before mapping
841+ MCRectangle t_rect = m_rect;
842+ t_rect.x *= m_scale;
843+ t_rect.y *= m_scale;
844+ t_rect.width *= m_scale;
845+ t_rect.height *= m_scale;
846+
837847 NSRect t_frame;
838- t_window -> MapMCRectangleToNSRect (m_rect , t_frame);
839-
848+ t_window -> MapMCRectangleToNSRect (t_rect , t_frame);
849+
840850 m_synchronizing = true ;
841851
842852 [m_view setFrame: t_frame];
@@ -1052,6 +1062,10 @@ - (void)setPlayer:(AVPlayer *)player
10521062 case kMCPlatformPlayerPropertyOffscreen :
10531063 Switch (*(bool *)p_value);
10541064 break ;
1065+ case kMCPlatformPlayerPropertyScalefactor :
1066+ m_scale = *(double *)p_value;
1067+ Synchronize ();
1068+ break ;
10551069 case kMCPlatformPlayerPropertyRect :
10561070 m_rect = *(MCRectangle *)p_value;
10571071 Synchronize ();
@@ -1248,6 +1262,10 @@ static Boolean AVAssetHasType(AVAsset *p_asset, NSString *p_type)
12481262 case kMCPlatformPlayerPropertyMirrored :
12491263 *(bool *)r_value = m_mirrored;
12501264 break ;
1265+
1266+ case kMCPlatformPlayerPropertyScalefactor :
1267+ *(double *)r_value = m_scale;
1268+ break ;
12511269 }
12521270}
12531271
0 commit comments