+
    œ°³jÞ3  ã                   óæ   € ^ RI t ^ RIt^ RIt^ RIHt ^RIHt ^RI	H
t
HtHtHtHtHt ^RIHtHt ^RIHtHt ^RIHt ^RIHtHtHt  ! R	 R
]RR7      tRR R llt] ! R R]4      4       tR.tR# )é    N)Ú
functional)ÚBatchFeature)ÚOPENAI_CLIP_MEANÚOPENAI_CLIP_STDÚChannelDimensionÚPILImageResamplingÚSizeDictÚget_image_size)ÚUnpackÚVideosKwargs)Ú
TensorTypeÚauto_docstring)ÚBaseVideoProcessor)ÚVideoMetadataÚgroup_videos_by_shapeÚreorder_videosc                   ó0   a € ] tR t^*t o RtV 3R ltRtV tR# )ÚGlmgaVideoProcessorInitKwargsaœ  
patch_size (`int`, *optional*, defaults to 14):
    The spatial patch size of the vision encoder.
temporal_patch_size (`int`, *optional*, defaults to 2):
    The temporal patch size of the vision encoder.
merge_size (`int`, *optional*, defaults to 2):
    The merge size of the vision encoder to llm encoder.
max_frames (`int`, *optional*, defaults to 640):
    The maximum number of frames that can be sampled.
max_image_size (`dict`, *optional*, defaults to `28 * 28 * 2 * 55790`):
    The maximum pixels a video can be resized to.
patch_expand_factor (`int`, *optional*, defaults to 1):
    The factor that will be multiplied to `patch_size` when resizing videos.
c                óx   <€ V ^8„  d   Qh/ S[ S[S[3,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )é   Úmax_image_sizeÚ
patch_sizeÚtemporal_patch_sizeÚ
merge_sizeÚpatch_expand_factorÚ
max_frames)ÚdictÚstrÚint)ÚformatÚ__classdict__s   "€Úq/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/glmga/video_processing_glmga.pyÚ__annotate__Ú*GlmgaVideoProcessorInitKwargs.__annotate__*   sX   ø‡ ‚ ñ  ™™c˜•NÑ"ñ! ñ" �Oñ# ñ$ Ññ% ñ& �Oñ' ñ( Ññ) ñ* �Oò+ ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r!   s   @r"   r   r   *   s   ø‡ € ñ÷ ƒ r%   r   F)Útotalc                ól   € V ^8„  d   QhR\         R\         R\         R\         R\         R\         R\         /# )r   Ú
num_framesÚheightÚwidthÚtemporal_factorÚfactorÚ
min_pixelsÚ
max_pixels)r   )r    s   "r"   r#   r#   B   sN   € ÷ !ñ !Üð!äð!ô ð!ô ð	!ô
 ð!ô ð!ô ñ!r%   c                 óV  € W8  d   \        R V  RV 24      hW8  g   W$8  d;   \        WA,          WB,          4      p\        W,          4      p\        W',          4      p\        W4      \        W4      ,          ^È8”  d(   \        R\        W4      \        W4      ,           24      h\	        W,          4      V,          p\	        W$,          4      V,          p	\	        W,          4      V,          p
W¨,          V	,          V8”  d–   \
        P                  ! W,          V,          V,          4      p\        V\
        P                  ! W,          V,          4      V,          4      p\        V\
        P                  ! W+,          V,          4      V,          4      p	W‰3# W¨,          V	,          V8  d   \
        P                  ! WPV,          V,          ,          4      p\
        P                  ! W,          V,          4      V,          p\
        P                  ! W+,          V,          4      V,          p	W‰3# )zt:z% must be larger than temporal_factor:z4absolute aspect ratio must be smaller than 200, got )	Ú
ValueErrorÚmaxr   ÚminÚroundÚmathÚsqrtÚfloorÚceil)r1   r2   r3   r4   r5   r6   r7   ÚscaleÚh_barÚw_barÚt_barÚbetas   &&&&&&&     r"   Úsmart_resizerF   B   s©  € ð Ô#Ü˜2˜j˜\Ð)NÈÐN_Ð`ÓaÐaØ„˜%œ.Ü�F•O V¥^Ó4ˆÜ�V•^Ó$ˆÜ�E•MÓ"ˆä
ˆ6ÓœC Ó.Õ.°Ô4ÜØBÄ3ÀvÓCUÔX[Ð\bÓXjÕCjÐBkÐló
ð 	
ô �&•/Ó" VÕ+€EÜ�%•.Ó! FÕ*€EÜ�*Õ.Ó/°/ÕA€Eà…}�uÕ˜zÔ)Ü�yŠy˜*Õ-°Õ5¸ÕCÓDˆÜ�FœDŸJšJ v¥}°vÕ'=Ó>ÀÕGÓHˆÜ�FœDŸJšJ u¥|°fÕ'<Ó=ÀÕFÓGˆð ˆ<Ðð 
�˜Õ	 Ô	+Ü�yŠy˜°FÕ':¸UÕ'BÕCÓDˆÜ—	’	˜&�-¨&Õ0Ó1°FÕ:ˆÜ—	’	˜%�,¨Õ/Ó0°6Õ9ˆàˆ<Ðr%   c                   ó8  a a€ ] tR t^ft o]P
                  tRRRR/tRR/t]	t
]tRtRtRtRtRt^t^tRt^t]t^t^tRR.t^tRtV3R lV 3R	 lltRV3R lR lltV3R lV 3R lltV3R lR lt RRR
]P
                  RRRR
R
R
R
R
R
R
3V3R lR llt!Rt"Vt#V ;t$# )ÚGlmgaVideoProcessorÚshortest_edgeÚlongest_edgeTi,  Úpixel_values_videosÚvideo_grid_thwi€  c                ó0   <€ V ^8„  d   QhRS[ S[,          /# )r   Úkwargs)r   r   )r    r!   s   "€r"   r#   Ú GlmgaVideoProcessor.__annotate__~   s   ø€ ÷ #ñ #¡Ñ(EÕ!Fñ #r%   c                ó(   <€ \         SV `  ! R/ VB  R # )Nr&   )ÚsuperÚ__init__)ÚselfrN   Ú	__class__s   &,€r"   rR   ÚGlmgaVideoProcessor.__init__~   s   ø€ Ü‰ÒÑ"˜6Ô"r%   Nc                óD   <€ V ^8„  d   QhRS[ RS[S[,          R,          /# )r   ÚmetadataÚfpsN)r   r   Úfloat)r    r!   s   "€r"   r#   rO   �   s,   ø€ ÷ A)ñ A)áðA)ñ ‘5�[˜4ÕñA)r%   c                óx  € Ve   \        VRR4      f   \        R4      hVP                  pV^,
          pVP                  ;'       g#    \	        WQP
                  ,          4      ^,           pVe   TMV P
                  p\        Wg,          4      p\        W€P                  4      p^VP
                  ,          p	\        V4       U
u. uF  qªV	,          NK  	  pp
WH8  d=   \        V4       Uu. uF&  p\        P                  ! WÄ,          V,          4      NK(  	  ppMW. p^ p^V,          p\        V4       F;  pVV,          V8¼  g   K  Wï,          pVP                  V4       WæV,
          8¼  g   K;   M	  \        V4      V8  df   \        V4      ^ 8X  d   ^ \        V^,
          ^ 4      ppMV^ ,          VR,          pp\        P                   ! VVV\        R7      P#                  4       pMC\        V4      V8”  d4   \        P                   ! ^ V^,
          V\        R7      P#                  4       p\%        4       . ppV F.  pVV9  g   K  VP'                  V4       VP                  V4       K0  	  \        V4      ^,          '       d   VP                  VR,          4       \        P(                  ! V\        R7      # u up
i u upi )a?  
Args:
    metadata (`VideoMetadata`):
        Metadata of the video containing information about total duration, fps and total number of frames.
    fps (`int` or `float`, *optional*):
        Target frames to sample per second. Defaults to `self.fps`.
Returns:
    np.ndarray:
        Indices to sample video frames.
NrX   z´Asked to sample frames per second but no video metadata was provided which is required when sampling in Glmga. Please pass in `VideoMetadata` object or set `do_sample_frames=False`)Údtypeéÿÿÿÿ)Úgetattrr9   Útotal_num_framesÚdurationr<   rX   r   r;   r   Úranger=   r?   ÚappendÚlenr:   ÚnpÚlinspaceÚtolistÚsetÚaddÚarray)rS   rW   rX   rN   Útotal_framesÚmax_frame_idxr_   Ú
target_fpsÚ	extract_tÚduration_per_frameÚiÚ
timestampsÚ_iÚframe_indicesÚcurrent_secondÚinv_fpsÚframe_indexÚstartÚendÚseenÚuniqÚidxs   &&&,                  r"   Úsample_framesÚ!GlmgaVideoProcessor.sample_frames�   sK  € ð  Òœw x°¸Ó=ÒEÜðXóð ð
  ×0Ñ0ˆØ$ qÕ(ˆØ×$Ñ$×OÐO¬¨m¿l¹lÕ.JÓ(KÈaÕ(OˆàšO‘S°·±ˆ
ä˜Õ-Ó.ˆ	Ü˜	§?¡?Ó3ˆ	à §¡Õ-ÐÜ6;¸LÔ6IÓJÑ6I°Ð,×,Ð,Ñ6Iˆ
ÐJàÔ#ÜQVÐW`ÔQaÓbÑQaÈ2œTŸZšZ¨Õ(9¸IÕ(EÖFÑQaˆMÐbˆMàˆMØˆNØ˜*•nˆGÜ$ \Ö2�Ø˜kÕ*¨nÖ<Ø"Õ-�NØ!×(Ñ(¨Ô5Ø%°GÕ);Ö;Ùñ  3ô ˆ}Ó 	Ô)Ü�=Ó! QÔ&Ø¤ L°1Õ$4°aÓ 8�s��sà*¨1Õ-¨}¸RÕ/@�s�ÜŸKšK¨¨s°IÄSÔI×PÑPÓR‰MÜ�Ó )Ô+ÜŸKšK¨¨<¸!Õ+;¸YÌcÔR×YÑYÓ[ˆMä“U˜BˆdˆÛ ˆCØ˜$ŽØ—‘˜”Ø—‘˜CÖ ñ !ô
 ˆt‹9�q�=Œ=Ø�K‰K˜˜R�Ô!ä�xŠx˜¤CÔ(Ð(ùòC Kùò cs   ÃJ2Ã(,J7c                ó8   <€ V ^8„  d   QhRRRS[ RRRS[RS[RR/# )	r   Úvideosútorch.TensorÚsizeÚresampleú7PILImageResampling | tvF.InterpolationMode | int | Noner5   r4   Úreturn)r	   r   )r    r!   s   "€r"   r#   rO   Ä   sH   ø€ ÷ 
ñ 
àð
ñ ð
ð Lð	
ñ
 ð
ñ ð
ð 
ñ
r%   c           
     ó6  <€ VP                   '       d   VP                  '       g   \        RV R24      hVP                  RR w  rx\	        VVVP                  ^,          VVVP                   VP                  R7      w  rš\
        SV `  V\        WšR7      VR7      # )z5Resize dynamically based on input video aspect ratio.zI`size` dict must contain 'shortest_edge' and 'longest_edge' keys but got Ú.N)r2   r3   r1   r5   r4   r6   r7   )r2   r3   )Úimager   r€   éþÿÿÿ)rI   rJ   r9   ÚshaperF   rQ   Úresizer	   )rS   r}   r   r€   r5   r4   rN   r2   r3   Úresized_heightÚresized_widthrT   s   &&&&&&,    €r"   rˆ   ÚGlmgaVideoProcessor.resizeÄ   s¢   ø€ ð ×!×!Ð!¨×):×):Ð):ÜÐhÐimÐhnÐnoÐpÓqÐqàŸ™ R SÐ)‰ˆÜ(4ØØØ—|‘| A•ØØ+Ø×)Ñ)Ø×(Ñ(ô)
Ñ%ˆô ‰w‰~ØÜ ÔEØð ó 
ð 	
r%   c                óN   <€ V ^8„  d   QhRRRS[ RS[ RS[ RS[RS[ S[ 3,          /# )r   r}   r~   r   r   r   r‚   )r   Útuple)r    r!   s   "€r"   r#   rO   á   sI   ø€ ÷ &7ñ &7àð&7ñ ð&7ñ ð	&7ñ
 !ð&7ñ 
ˆ~™s¡CÐ'Õ	(ñ&7r%   c                óè  € VP                   w  rVrxp	V) V,          ;p
'       dB   VRRR13,          P                  RV
RRR4      p\        P                  ! W3^R7      pWj,          pWd,          pW‚,          W’,          ríVP	                  VVVVWÓ,          VVWã,          VV4
      pVP                  ^ ^^^^^^^^^	4
      pVP                  VWÍ,          V,          Wt,          V,          V,          4      pVWÍV3# )ztPatchifies each video into flat layout of shape (`seq_len`, `patch_dim`) so we can concat dynamically shaped pixels.:NNNN©Údimr\   )r‡   ÚexpandÚtorchÚcatÚviewÚpermuteÚreshape)rS   r}   r   r   r   Ú
batch_sizer1   Úchannelr‰   rŠ   ÚpadÚrepeatsÚgrid_tÚgrid_hÚgrid_wÚpatchesÚflatten_patchess   &&&&&            r"   ÚpatchifyÚGlmgaVideoProcessor.patchifyá   s  € ð JPÏÉÑFˆ
 ¸ð �+Ð 3Õ3Ð3ˆ3Ö3Ø˜Q ¡˜V•n×+Ñ+¨B°°R¸¸RÓ@ˆGÜ—Y’Y Ð0°aÔ8ˆFØÕˆJàÕ2ˆØ'Õ5°}Õ7R�à—+‘+ØØØØØÕ ØØØÕ ØØó
ˆð —/‘/ ! Q¨¨1¨a°°A°q¸!¸QÓ?ˆØ!Ÿ/™/ØØ�O˜fÕ$ØÕ)¨JÕ6¸ÕCó
ˆð  °Ð6Ð6r%   c                óV  <€ V ^8„  d   QhRS[ S[P                  ,          RS[RS[RS[R,          RRRS[R	S[R
S[RS[S[ S[,          ,          R,          RS[S[ S[,          ,          R,          RS[R,          RS[R,          RS[R,          RS[R,          RS[S[,          R,          /# )r   r}   Údo_convert_rgbÚ	do_resizer   Nr€   r�   Ú
do_rescaleÚrescale_factorÚdo_normalizeÚ
image_meanÚ	image_stdr   r   r   r   Úreturn_tensors)	Úlistr’   ÚTensorÚboolr	   rY   r   r   r   )r    r!   s   "€r"   r#   rO   	  s  ø€ ÷ CCñ CCá‘U—\‘\Õ"ðCCñ ðCCñ ð	CCñ
 ˜�oðCCð LðCCñ ðCCñ ðCCñ ðCCñ ™D¡�KÕ'¨$Õ.ðCCñ ™4¡�;Õ&¨Õ-ðCCñ ! 4�ZðCCñ ˜$•JðCCñ ! 4�ZðCCñ ˜$•JðCCñ  ™jÕ(¨4Õ/ñ!CCr%   c           	     óì  € \        V4      w  pp/ pVP                  4        FO  w  ppV'       d   V P                  V4      pV'       d$   V P                  VVVWÎ,          V,          VR 7      pVVV&   KQ  	  \	        VV4      p\        V4      w  pp/ p/ pVP                  4        Fw  w  pp\        V^ ,          \        P                  R7      w  ppV P                  VWgW‰V
4      pV P                  VVVVR7      w  ppppVVV&   VVV..\        V4      ,          VV&   Ky  	  \	        VV4      p\	        VV4      p\        P                  ! V^ R7      p \        P                  ! V4      p!RV RV!/p"\        V"VR7      # ))r}   r   r€   r5   r4   )Úchannel_dim)r   r   r   r�   rK   rL   )ÚdataÚtensor_type)r   ÚitemsÚconvert_to_rgbrˆ   r   r
   r   ÚFIRSTÚrescale_and_normalizer    rb   r’   r“   Útensorr   )#rS   r}   r£   r¤   r   r€   r¥   r¦   r§   r¨   r©   r   r   r   r   rª   rN   Úgrouped_videosÚgrouped_videos_indexÚresized_videos_groupedr‡   Ústacked_videosÚresized_videosÚprocessed_videos_groupedÚprocessed_gridsr‰   rŠ   rž   r›   rœ   r�   Úprocessed_videosrK   rL   r°   s#   &&&&&&&&&&&&&&&&,                  r"   Ú_preprocessÚGlmgaVideoProcessor._preprocess	  s´  € ô& 0EÀVÓ/LÑ,ˆÐ,Ø!#Ðà%3×%9Ñ%9Ö%;Ñ!ˆE�>ßØ!%×!4Ñ!4°^Ó!D�ßØ!%§¡Ø)ØØ%Ø%Õ2Ð5HÕHØ$7ð "-ó "�ð -;Ð" 5Ó)ñ &<ô (Ð(>Ð@TÓUˆô 0EÀ^Ó/TÑ,ˆÐ,Ø#%Ð ØˆØ%3×%9Ñ%9Ö%;Ñ!ˆE�>Ü,:¸>È!Õ;LÔZj×ZpÑZpÔ,qÑ)ˆN˜Mð "×7Ñ7Ø 
¸LÐV_óˆNð /3¯m©mØØ%Ø%Ø$7ð	 /<ó /Ñ+ˆG�V˜V Vð /6Ð$ UÑ+Ø'-¨v°vÐ&>Ð%?Ä#ÀnÓBUÕ%UˆO˜EÓ"ñ &<ô" *Ð*BÐDXÓYÐÜ(¨Ð:NÓOˆÜ#ŸišiÐ(8¸aÔ@ÐÜŸš oÓ6ˆà!Ð#6Ø˜nð
ˆô
  °>ÔBÐBr%   r&   é 1  iÀÑ6)Ngp?)%r'   r(   r)   r*   r   ÚBICUBICr€   r   r   r   r¨   r   r©   r¤   r¥   r§   r£   Údo_sample_framesr   r   Úmax_durationr   r   Úvalid_kwargsr1   rX   Úmodel_input_namesr   r   rR   rz   rˆ   r    r¿   r-   r.   Ú__classcell__)rT   r!   s   @@r"   rH   rH   f   sü   ù‡ € à!×)Ñ)€HØ˜Y¨Ð8KÐL€DØ$Ð&9Ð:€NØ!€JØ€IØ€IØ€JØ€LØ€NØÐØ€JØÐØ€LØ€JØ0€LØ€JØ
€Cà.Ð0@ÐAÐØÐØ€J÷#ó #÷A)ò A)÷F
ó 
÷:&7ð &7ðV  $ØØ $ØN`×NhÑNhØØ )Ø!Ø15Ø04Ø*.Ø!%Ø*.Ø!%Ø26÷!CC÷ CCò CCr%   rH   )r   é   rÁ   i  “ ) r=   Únumpyrc   r’   Útorchvision.transforms.v2r   ÚtvFÚimage_processing_utilsr   Úimage_utilsr   r   r   r   r	   r
   Úprocessing_utilsr   r   Úutilsr   r   Úvideo_processing_utilsr   Úvideo_utilsr   r   r   r   rF   rH   Ú__all__r&   r%   r"   Ú<module>rÓ      sr   ðó* ã Û Ý 7å 2÷÷ ÷ 5ß /Ý 8ß OÑ Oô L¸õ ÷0!ðH ôeCÐ,ó eCó ðeCðP !Ð
!‚r%   