@@ -897,6 +897,37 @@ export interface Destination {
897
897
detail ?: DestinationDetail ;
898
898
}
899
899
900
+ /**
901
+ * @public
902
+ * @enum
903
+ */
904
+ export const VideoAspectRatio = {
905
+ AUTO : "AUTO" ,
906
+ PORTRAIT : "PORTRAIT" ,
907
+ SQUARE : "SQUARE" ,
908
+ VIDEO : "VIDEO" ,
909
+ } as const ;
910
+
911
+ /**
912
+ * @public
913
+ */
914
+ export type VideoAspectRatio = ( typeof VideoAspectRatio ) [ keyof typeof VideoAspectRatio ] ;
915
+
916
+ /**
917
+ * @public
918
+ * @enum
919
+ */
920
+ export const VideoFillMode = {
921
+ CONTAIN : "CONTAIN" ,
922
+ COVER : "COVER" ,
923
+ FILL : "FILL" ,
924
+ } as const ;
925
+
926
+ /**
927
+ * @public
928
+ */
929
+ export type VideoFillMode = ( typeof VideoFillMode ) [ keyof typeof VideoFillMode ] ;
930
+
900
931
/**
901
932
* @public
902
933
* <p>Configuration information specific to Grid layout, for server-side composition. See
@@ -911,6 +942,140 @@ export interface GridConfiguration {
911
942
* slot.</p>
912
943
*/
913
944
featuredParticipantAttribute ?: string ;
945
+
946
+ /**
947
+ * @public
948
+ * <p>Determines whether to omit participants with stopped video in the composition. Default: <code>false</code>.</p>
949
+ */
950
+ omitStoppedVideo ?: boolean ;
951
+
952
+ /**
953
+ * @public
954
+ * <p>Sets the non-featured participant display mode. Default: <code>VIDEO</code>.</p>
955
+ */
956
+ videoAspectRatio ?: VideoAspectRatio ;
957
+
958
+ /**
959
+ * @public
960
+ * <p>Defines how video fits within the participant tile. When not set,
961
+ * <code>videoFillMode</code> defaults to <code>COVER</code> fill mode for participants in the grid
962
+ * and to <code>CONTAIN</code> fill mode for featured participants.</p>
963
+ */
964
+ videoFillMode ?: VideoFillMode ;
965
+
966
+ /**
967
+ * @public
968
+ * <p>Specifies the spacing between participant tiles in pixels. Default: <code>2</code>.</p>
969
+ */
970
+ gridGap ?: number ;
971
+ }
972
+
973
+ /**
974
+ * @public
975
+ * @enum
976
+ */
977
+ export const PipBehavior = {
978
+ DYNAMIC : "DYNAMIC" ,
979
+ STATIC : "STATIC" ,
980
+ } as const ;
981
+
982
+ /**
983
+ * @public
984
+ */
985
+ export type PipBehavior = ( typeof PipBehavior ) [ keyof typeof PipBehavior ] ;
986
+
987
+ /**
988
+ * @public
989
+ * @enum
990
+ */
991
+ export const PipPosition = {
992
+ BOTTOM_LEFT : "BOTTOM_LEFT" ,
993
+ BOTTOM_RIGHT : "BOTTOM_RIGHT" ,
994
+ TOP_LEFT : "TOP_LEFT" ,
995
+ TOP_RIGHT : "TOP_RIGHT" ,
996
+ } as const ;
997
+
998
+ /**
999
+ * @public
1000
+ */
1001
+ export type PipPosition = ( typeof PipPosition ) [ keyof typeof PipPosition ] ;
1002
+
1003
+ /**
1004
+ * @public
1005
+ * <p>Configuration information specific to Picture-in-Picture (PiP) layout,
1006
+ * for <a href="https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/server-side-composition.html">server-side composition</a>.
1007
+ * </p>
1008
+ */
1009
+ export interface PipConfiguration {
1010
+ /**
1011
+ * @public
1012
+ * <p>This attribute name identifies the featured slot. A participant with this attribute set
1013
+ * to <code>"true"</code> (as a string value) in <a>ParticipantTokenConfiguration</a> is placed in the featured
1014
+ * slot.</p>
1015
+ */
1016
+ featuredParticipantAttribute ?: string ;
1017
+
1018
+ /**
1019
+ * @public
1020
+ * <p>Determines whether to omit participants with stopped video in the composition. Default: <code>false</code>.</p>
1021
+ */
1022
+ omitStoppedVideo ?: boolean ;
1023
+
1024
+ /**
1025
+ * @public
1026
+ * <p>Defines how video fits within the participant tile. Default: <code>COVER</code>.
1027
+ * </p>
1028
+ */
1029
+ videoFillMode ?: VideoFillMode ;
1030
+
1031
+ /**
1032
+ * @public
1033
+ * <p>Specifies the spacing between participant tiles in pixels. Default: <code>0</code>.</p>
1034
+ */
1035
+ gridGap ?: number ;
1036
+
1037
+ /**
1038
+ * @public
1039
+ * <p>Identifies the PiP slot. A participant with this attribute set
1040
+ * to <code>"true"</code> (as a string value) in <a>ParticipantTokenConfiguration</a>
1041
+ * is placed in the PiP slot.</p>
1042
+ */
1043
+ pipParticipantAttribute ?: string ;
1044
+
1045
+ /**
1046
+ * @public
1047
+ * <p>Defines PiP behavior when all participants have left. Default: <code>STATIC</code>.</p>
1048
+ */
1049
+ pipBehavior ?: PipBehavior ;
1050
+
1051
+ /**
1052
+ * @public
1053
+ * <p>Sets the PiP window’s offset position in pixels from the closest edges determined by <code>PipPosition</code>.
1054
+ * Default: <code>0</code>.</p>
1055
+ */
1056
+ pipOffset ?: number ;
1057
+
1058
+ /**
1059
+ * @public
1060
+ * <p>Determines the corner position of the PiP window. Default: <code>BOTTOM_RIGHT</code>.</p>
1061
+ */
1062
+ pipPosition ?: PipPosition ;
1063
+
1064
+ /**
1065
+ * @public
1066
+ * <p>Specifies the width of the PiP window in pixels. When this is not set explicitly,
1067
+ * <code>pipWidth</code>’s value will be based on the size of the composition and the
1068
+ * aspect ratio of the participant’s video.</p>
1069
+ */
1070
+ pipWidth ?: number ;
1071
+
1072
+ /**
1073
+ * @public
1074
+ * <p>Specifies the height of the PiP window in pixels. When this is not set explicitly,
1075
+ * <code>pipHeight</code>’s value will be based on the size of the composition and the
1076
+ * aspect ratio of the participant’s video.</p>
1077
+ */
1078
+ pipHeight ?: number ;
914
1079
}
915
1080
916
1081
/**
@@ -923,6 +1088,12 @@ export interface LayoutConfiguration {
923
1088
* <p>Configuration related to grid layout. Default: Grid layout.</p>
924
1089
*/
925
1090
grid ?: GridConfiguration ;
1091
+
1092
+ /**
1093
+ * @public
1094
+ * <p>Configuration related to PiP layout.</p>
1095
+ */
1096
+ pip ?: PipConfiguration ;
926
1097
}
927
1098
928
1099
/**
0 commit comments