@@ -523,95 +523,119 @@ shaka.ads.InterstitialAdManager = class {
523
523
const uri = overlayEvent . attributes [ 'uri' ] ;
524
524
const mimeType = overlayEvent . attributes [ 'mimeType' ] ;
525
525
const loop = overlayEvent . attributes [ 'loop' ] == 'true' ;
526
+ const background = overlayEvent . attributes [ 'background' ] || null ;
526
527
const z = TXml . parseAttr ( overlayEvent , 'z' , TXml . parseInt ) ;
527
528
if ( ! uri || z == 0 ) {
528
529
shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
529
530
return ;
530
531
}
531
532
533
+ const viewport = {
534
+ x : 1920 ,
535
+ y : 1080 ,
536
+ } ;
537
+
538
+ const viewportElement = TXml . findChild ( overlayEvent , 'Viewport' ) ;
539
+ if ( viewportElement ) {
540
+ const viewportX = TXml . parseAttr ( viewportElement , 'x' , TXml . parseInt ) ;
541
+ if ( viewportX == null ) {
542
+ shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
543
+ return ;
544
+ }
545
+ const viewportY = TXml . parseAttr ( viewportElement , 'y' , TXml . parseInt ) ;
546
+ if ( viewportY == null ) {
547
+ shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
548
+ return ;
549
+ }
550
+ viewport . x = viewportX ;
551
+ viewport . y = viewportY ;
552
+ }
553
+
532
554
/** @type {!shaka.extern.AdPositionInfo } */
533
- let overlay = {
555
+ const overlay = {
534
556
viewport : {
535
- x : 1920 ,
536
- y : 1080 ,
557
+ x : viewport . x ,
558
+ y : viewport . y ,
537
559
} ,
538
560
topLeft : {
539
561
x : 0 ,
540
562
y : 0 ,
541
563
} ,
542
564
size : {
543
- x : 1920 ,
544
- y : 1080 ,
565
+ x : viewport . x ,
566
+ y : viewport . y ,
545
567
} ,
546
568
} ;
547
569
548
- const viewport = TXml . findChild ( overlayEvent , 'Viewport' ) ;
549
- const topLeft = TXml . findChild ( overlayEvent , 'TopLeft' ) ;
550
- const size = TXml . findChild ( overlayEvent , 'Size' ) ;
551
- if ( viewport && topLeft && size ) {
552
- const viewportX = TXml . parseAttr ( viewport , 'x' , TXml . parseInt ) ;
553
- if ( viewportX == null ) {
554
- shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
555
- return ;
556
- }
557
- const viewportY = TXml . parseAttr ( viewport , 'y' , TXml . parseInt ) ;
558
- if ( viewportY == null ) {
559
- shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
560
- return ;
561
- }
562
- const topLeftX = TXml . parseAttr ( topLeft , 'x' , TXml . parseInt ) ;
563
- if ( topLeftX == null ) {
564
- shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
565
- return ;
566
- }
567
- const topLeftY = TXml . parseAttr ( topLeft , 'y' , TXml . parseInt ) ;
568
- if ( topLeftY == null ) {
569
- shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
570
- return ;
571
- }
572
- const sizeX = TXml . parseAttr ( size , 'x' , TXml . parseInt ) ;
573
- if ( sizeX == null ) {
574
- shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
575
- return ;
576
- }
577
- const sizeY = TXml . parseAttr ( size , 'y' , TXml . parseInt ) ;
578
- if ( sizeY == null ) {
579
- shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
580
- return ;
570
+ const overlayElement = TXml . findChild ( overlayEvent , 'Overlay' ) ;
571
+ if ( viewportElement && overlayElement ) {
572
+ const topLeft = TXml . findChild ( overlayElement , 'TopLeft' ) ;
573
+ const size = TXml . findChild ( overlayElement , 'Size' ) ;
574
+ if ( topLeft && size ) {
575
+ const topLeftX = TXml . parseAttr ( topLeft , 'x' , TXml . parseInt ) ;
576
+ if ( topLeftX == null ) {
577
+ shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
578
+ return ;
579
+ }
580
+ const topLeftY = TXml . parseAttr ( topLeft , 'y' , TXml . parseInt ) ;
581
+ if ( topLeftY == null ) {
582
+ shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
583
+ return ;
584
+ }
585
+ const sizeX = TXml . parseAttr ( size , 'x' , TXml . parseInt ) ;
586
+ if ( sizeX == null ) {
587
+ shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
588
+ return ;
589
+ }
590
+ const sizeY = TXml . parseAttr ( size , 'y' , TXml . parseInt ) ;
591
+ if ( sizeY == null ) {
592
+ shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
593
+ return ;
594
+ }
595
+ overlay . topLeft . x = topLeftX ;
596
+ overlay . topLeft . y = topLeftY ;
597
+ overlay . size . x = sizeX ;
598
+ overlay . size . y = sizeY ;
581
599
}
582
- overlay = {
583
- viewport : {
584
- x : viewportX ,
585
- y : viewportY ,
586
- } ,
587
- topLeft : {
588
- x : topLeftX ,
589
- y : topLeftY ,
590
- } ,
591
- size : {
592
- x : sizeX ,
593
- y : sizeY ,
594
- } ,
595
- } ;
596
600
}
597
- const squeezeCurrent = TXml . findChild ( overlayEvent , 'SqueezeCurrent' ) ;
598
601
let currentVideo = null ;
599
- if ( squeezeCurrent ) {
600
- const percentage =
601
- TXml . parseAttr ( squeezeCurrent , 'percentage' , TXml . parseFloat ) ;
602
- if ( percentage ) {
602
+ const squeezeElement = TXml . findChild ( overlayEvent , 'Squeeze' ) ;
603
+ if ( viewportElement && squeezeElement ) {
604
+ const topLeft = TXml . findChild ( squeezeElement , 'TopLeft' ) ;
605
+ const size = TXml . findChild ( squeezeElement , 'Size' ) ;
606
+ if ( topLeft && size ) {
607
+ const topLeftX = TXml . parseAttr ( topLeft , 'x' , TXml . parseInt ) ;
608
+ if ( topLeftX == null ) {
609
+ shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
610
+ return ;
611
+ }
612
+ const topLeftY = TXml . parseAttr ( topLeft , 'y' , TXml . parseInt ) ;
613
+ if ( topLeftY == null ) {
614
+ shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
615
+ return ;
616
+ }
617
+ const sizeX = TXml . parseAttr ( size , 'x' , TXml . parseInt ) ;
618
+ if ( sizeX == null ) {
619
+ shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
620
+ return ;
621
+ }
622
+ const sizeY = TXml . parseAttr ( size , 'y' , TXml . parseInt ) ;
623
+ if ( sizeY == null ) {
624
+ shaka . log . warning ( 'Unsupported OverlayEvent' , region ) ;
625
+ return ;
626
+ }
603
627
currentVideo = {
604
628
viewport : {
605
- x : 1920 ,
606
- y : 1080 ,
629
+ x : viewport . x ,
630
+ y : viewport . y ,
607
631
} ,
608
632
topLeft : {
609
- x : 0 ,
610
- y : 0 ,
633
+ x : topLeftX ,
634
+ y : topLeftY ,
611
635
} ,
612
636
size : {
613
- x : 1920 * percentage ,
614
- y : 1080 * percentage ,
637
+ x : sizeX ,
638
+ y : sizeY ,
615
639
} ,
616
640
} ;
617
641
}
@@ -639,7 +663,7 @@ shaka.ads.InterstitialAdManager = class {
639
663
overlay,
640
664
displayOnBackground : z == - 1 ,
641
665
currentVideo,
642
- background : null ,
666
+ background,
643
667
} ;
644
668
this . addInterstitials ( [ interstitial ] ) ;
645
669
}
0 commit comments