+
    œ°³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 ^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ÚPILImageResamplingÚSizeDict)Ú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# )ÚGlm46VVideoProcessorInitKwargsa  
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_duration (`int`, *optional*, defaults to 300):
    The maximum duration of a video that will be sampled.
max_image_size (`dict`, *optional*, defaults to `28 * 28 * 2 * 55790`):
    The maximum pixels a video can be resized to.
c                ól   <€ V ^8„  d   Qh/ S[ S[S[3,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )é   Úmax_image_sizeÚ
patch_sizeÚtemporal_patch_sizeÚ
merge_sizeÚmax_duration)ÚdictÚstrÚint)ÚformatÚ__classdict__s   "€Ús/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/glm46v/video_processing_glm46v.pyÚ__annotate__Ú+Glm46VVideoProcessorInitKwargs.__annotate__#   sL   ø‡ ‚ ñ ™™c˜•NÑ"ñ ñ �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    8   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)r.   r/   r0   r1   r2   r3   r4   ÚscaleÚh_barÚw_barÚt_barÚbetas   &&&&&&&     r   Úsmart_resizerC   8   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                   ó.  a a€ ] tR t^\t 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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	3V3R lR lltRt Vt!V ;t"# )ÚGlm46VVideoProcessorÚshortest_edgeÚlongest_edgeTé,  Úpixel_values_videosÚvideo_grid_thwc                ó0   <€ V ^8„  d   QhRS[ S[,          /# )r   Úkwargs)r	   r   )r   r   s   "€r   r    Ú!Glm46VVideoProcessor.__annotate__r   s   ø€ ÷ #ñ #¡Ñ(FÕ!Gñ #r"   c                ó(   <€ \         SV `  ! R/ VB  R # )Nr#   )ÚsuperÚ__init__)ÚselfrL   Ú	__class__s   &,€r   rP   ÚGlm46VVideoProcessor.__init__r   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    rM   u   s,   ø€ ÷ J)ñ J)áðJ)ñ ‘5�[˜4ÕñJ)r"   c                óú  € Ve   \        VRR4      f   \        R4      hVP                  pV^,
          pVP                  ;'       g#    \	        WQP
                  ,          4      ^,           p^^R^RR/pRpRp	\        Wi4      p
V
^8:  d   V^,          pMV
R8:  d   VR,          pM	VR,          p\        W«,          V P                  ,          4      p\        WÈ4      p^VP
                  ,          p\        V4       Uu. uF  qîV,          NK  	  pp\        V4      pWL8  d5   \        P                  ! ^ V^,
          V\        R7      P                  4       pMc. p^ p^V P                  V,          ,          p\        V4       F6  pVV,          V8¼  g   K  VV,          pVP                  V4       VV8¼  g   K6   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 )
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.
NrV   zµAsked to sample frames per second but no video metadata was provided which is required when sampling in Glm46V. Please pass in `VideoMetadata` object or set `do_sample_frames=False`rH   i`	  g      à?i€  )Údtypeéÿÿÿÿ)Úgetattrr6   Útotal_num_framesÚdurationr9   rV   r8   r   r   ÚrangeÚnpÚlinspaceÚtolistÚappendÚlenr7   ÚsetÚaddÚarray)rQ   rU   rV   rL   Útotal_framesÚmax_frame_idxr]   ÚDYNAMIC_FPS_THRESÚMAX_FRAME_COUNT_DYNAMICÚMAX_DURATIONÚeffective_durationÚ
target_fpsÚ	extract_tÚduration_per_frameÚiÚ
timestampsÚ
max_secondÚframe_indicesÚcurrent_secondÚinv_fpsÚframe_indexÚstartÚendÚseenÚuniqÚidxs   &&&,                      r   Úsample_framesÚ"Glm46VVideoProcessor.sample_framesu   sœ  € ð  Òœw x°¸Ó=ÒEÜðXóð ð
  ×0Ñ0ˆØ$ qÕ(ˆØ×$Ñ$×OÐO¬¨m¿l¹lÕ.JÓ(KÈaÕ(Oˆà  C¨¨D°#Ð6ÐØ"%ÐØˆÜ  Ó8ÐØ Ô#Ø*¨2Õ.‰JØ 3Ô&Ø*¨3Õ/‰Jà*¨4Õ0ˆJÜÐ*Õ7¸$×:RÑ:RÕRÓSˆ	Ü˜	Ó;ˆ	à §¡Õ-ÐÜ6;¸LÔ6IÓJÑ6I°Ð,×,Ð,Ñ6Iˆ
ÐJÜ˜“]ˆ
àÔ#ÜŸKšK¨¨<¸!Õ+;¸YÌcÔR×YÑYÓ[‰MàˆMØˆNØ˜4×3Ñ3°jÕ@ÕAˆGÜ$ \Ö2�Ø˜kÕ*¨nÖ<Ø" gÕ-�NØ!×(Ñ(¨Ô5Ø%¨Ö3Ùñ  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Ô(Ð(ùòE Ks   Ã9K8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 | Noner2   r1   Úreturn)r   r   )r   r   s   "€r   r    rM   Á   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)r/   r0   r.   r2   r1   r3   r4   )r/   r0   )Úimager�   r‚   éþÿÿÿ)rF   rG   r6   ÚshaperC   rO   Úresizer   )rQ   r   r�   r‚   r2   r1   rL   r/   r0   Úresized_heightÚresized_widthrR   s   &&&&&&,    €r   rŠ   ÚGlm46VVideoProcessor.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    rM   Þ   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©ÚdimrZ   )r‰   ÚexpandÚtorchÚcatÚviewÚpermuteÚreshape)rQ   r   r   r   r   Ú
batch_sizer.   Úchannelr‹   rŒ   ÚpadÚrepeatsÚgrid_tÚgrid_hÚgrid_wÚpatchesÚflatten_patchess   &&&&&            r   ÚpatchifyÚGlm46VVideoProcessor.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                óB  <€ 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[S[,          R,          /# )r   r   Údo_convert_rgbÚ	do_resizer�   Nr‚   rƒ   Ú
do_rescaleÚrescale_factorÚdo_normalizeÚ
image_meanÚ	image_stdr   r   r   Úreturn_tensors)	Úlistr”   ÚTensorÚboolr   rW   r   r   r   )r   r   s   "€r   r    rM     s÷   ø€ ÷ @Cñ @Cá‘U—\‘\Õ"ð@Cñ ð@Cñ ð	@Cñ
 ˜�oð@Cð Lð@Cñ ð@Cñ ð@Cñ ð@Cñ ™D¡�KÕ'¨$Õ.ð@Cñ ™4¡�;Õ&¨Õ-ð@Cñ ˜$•Jð@Cñ ! 4�Zð@Cñ ˜$•Jð@Cñ ™jÕ(¨4Õ/ñ@Cr"   c           	     ó”  € \        V4      w  pp/ pVP                  4        FH  w  ppV'       d   V P                  V4      pV'       d   V P                  VVVW½,          VR 7      pVVV&   KJ  	  \	        VV4      p\        V4      w  pp/ p/ pVP                  4        FR  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&   KT  	  \	        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‚   r2   r1   )r   r   r   r‘   rI   rJ   )ÚdataÚtensor_type)r   ÚitemsÚconvert_to_rgbrŠ   r   Úrescale_and_normalizer¢   rc   r”   r•   Útensorr   ) rQ   r   r¥   r¦   r�   r‚   r§   r¨   r©   rª   r«   r   r   r   r¬   rL   Úgrouped_videosÚgrouped_videos_indexÚresized_videos_groupedr‰   Ústacked_videosÚresized_videosÚprocessed_videos_groupedÚprocessed_gridsr    r�   rž   rŸ   Úprocessed_videosrI   rJ   r±   s    &&&&&&&&&&&&&&&,                r   Ú_preprocessÚ Glm46VVideoProcessor._preprocess  s�  € ô$ 0EÀVÓ/LÑ,ˆÐ,Ø!#Ðà%3×%9Ñ%9Ö%;Ñ!ˆE�>ßØ!%×!4Ñ!4°^Ó!D�ßØ!%§¡Ø)ØØ%Ø%Õ2Ø$7ð "-ó "�ð -;Ð" 5Ó)ñ &<ô (Ð(>Ð@TÓUˆô 0EÀ^Ó/TÑ,ˆÐ,Ø#%Ð ØˆØ%3×%9Ñ%9Ö%;Ñ!ˆE�>à!×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 ÆÍ)Ngp?)#r$   r%   r&   r'   r   ÚBICUBICr‚   r�   r   r   rª   r   r«   r¦   r§   r©   r¥   Údo_sample_framesr   r   r   r   r   Úvalid_kwargsr.   rV   Úmodel_input_namesrP   r|   rŠ   r¢   r¿   r*   r+   Ú__classcell__)rR   r   s   @@r   rE   rE   \   sî   ù‡ € à!×)Ñ)€HØ˜Y¨Ð8KÐL€DØ$Ð&9Ð:€NØ!€JØ€IØ€IØ€JØ€LØ€NØÐØ€JØÐØ€LØ€JØ1€LØ€JØ
€Cà.Ð0@ÐAÐ÷#ó #÷J)ò J)÷X
ó 
÷:&7ð &7ðV  $ØØ $ØN`×NhÑNhØØ )Ø!Ø15Ø04Ø!%Ø*.Ø!%Ø26÷@C÷ @Cò @Cr"   rE   )r   é   rÁ   i  “ )r:   Únumpyr_   r”   Útorchvision.transforms.v2r   ÚtvFÚimage_processing_utilsr   Úimage_utilsr   r   r   r   Úprocessing_utilsr	   r
   Úutilsr   r   Úvideo_processing_utilsr   Úvideo_utilsr   r   r   r   rC   rE   Ú__all__r#   r"   r   Ú<module>rÒ      sl   ðó* ã Û Ý 7å 2ß ZÓ Zß 4ß /Ý 8ß OÑ Oô \¸õ ÷*!ðH ôiCÐ-ó iCó ðiCðX "Ð
"‚r"   