
    ?Ki                        S SK r S SKrS SKrS SKJr  S SKJr  S SKJrJ	r	J
r
Jr  S SKrSSKJr  SSKJrJr  SSKJr  SS	KJrJrJr  SS
KJrJr  SSKJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)  SSK*J+r+  SSK,J-r-  SSK.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7  \&" 5       (       a  S SK8r8\(" 5       (       a  S SK9J:r;  \)Rx                  " \=5      r>Sr?\!" S\?5      \-" SS9 " S S\5      5       5       r@\"" \@R                  5      \@lA        \@R                  R                  b5  \@R                  R                  R                  SSSS9\@R                  lB        gg)    N)deepcopy)partial)AnyCallableOptionalUnion   )custom_object_save)BatchFeatureget_size_dict)BaseImageProcessorFast)ChannelDimensionSizeDictvalidate_kwargs)UnpackVideosKwargs)IMAGE_PROCESSOR_NAMEPROCESSOR_NAMEVIDEO_PROCESSOR_NAME
TensorTypeadd_start_docstrings	copy_funcdownload_urlis_offline_modeis_remote_urlis_torch_availableis_torchcodec_availableis_torchvision_v2_availablelogging)cached_file)requires)	
VideoInputVideoMetadatagroup_videos_by_shapeis_valid_video
load_videomake_batched_metadatamake_batched_videosreorder_videosto_channel_dimension_format)
functionala  
    Args:
        do_resize (`bool`, *optional*, defaults to `self.do_resize`):
            Whether to resize the video's (height, width) dimensions to the specified `size`. Can be overridden by the
            `do_resize` parameter in the `preprocess` method.
        size (`dict`, *optional*, defaults to `self.size`):
            Size of the output video after resizing. Can be overridden by the `size` parameter in the `preprocess`
            method.
        size_divisor (`int`, *optional*, defaults to `self.size_divisor`):
            The size by which to make sure both the height and width can be divided.
        default_to_square (`bool`, *optional*, defaults to `self.default_to_square`):
            Whether to default to a square video when resizing, if size is an int.
        resample (`PILImageResampling`, *optional*, defaults to `self.resample`):
            Resampling filter to use if resizing the video. Only has an effect if `do_resize` is set to `True`. Can be
            overridden by the `resample` parameter in the `preprocess` method.
        do_center_crop (`bool`, *optional*, defaults to `self.do_center_crop`):
            Whether to center crop the video to the specified `crop_size`. Can be overridden by `do_center_crop` in the
            `preprocess` method.
        crop_size (`dict[str, int]` *optional*, defaults to `self.crop_size`):
            Size of the output video after applying `center_crop`. Can be overridden by `crop_size` in the `preprocess`
            method.
        do_rescale (`bool`, *optional*, defaults to `self.do_rescale`):
            Whether to rescale the video by the specified scale `rescale_factor`. Can be overridden by the
            `do_rescale` parameter in the `preprocess` method.
        rescale_factor (`int` or `float`, *optional*, defaults to `self.rescale_factor`):
            Scale factor to use if rescaling the video. Only has an effect if `do_rescale` is set to `True`. Can be
            overridden by the `rescale_factor` parameter in the `preprocess` method.
        do_normalize (`bool`, *optional*, defaults to `self.do_normalize`):
            Whether to normalize the video. Can be overridden by the `do_normalize` parameter in the `preprocess`
            method. Can be overridden by the `do_normalize` parameter in the `preprocess` method.
        image_mean (`float` or `list[float]`, *optional*, defaults to `self.image_mean`):
            Mean to use if normalizing the video. This is a float or list of floats the length of the number of
            channels in the video. Can be overridden by the `image_mean` parameter in the `preprocess` method. Can be
            overridden by the `image_mean` parameter in the `preprocess` method.
        image_std (`float` or `list[float]`, *optional*, defaults to `self.image_std`):
            Standard deviation to use if normalizing the video. This is a float or list of floats the length of the
            number of channels in the video. Can be overridden by the `image_std` parameter in the `preprocess` method.
            Can be overridden by the `image_std` parameter in the `preprocess` method.
        do_convert_rgb (`bool`, *optional*, defaults to `self.image_std`):
            Whether to convert the video to RGB.
        video_metadata (`VideoMetadata`, *optional*):
            Metadata of the video containing information about total duration, fps and total number of frames.
        do_sample_frames (`int`, *optional*, defaults to `self.do_sample_frames`):
            Whether to sample frames from the video before processing or to process the whole video.
        num_frames (`int`, *optional*, defaults to `self.num_frames`):
            Maximum number of frames to sample when `do_sample_frames=True`.
        fps (`int` or `float`, *optional*, defaults to `self.fps`):
            Target frames to sample per second when `do_sample_frames=True`.
        return_tensors (`str` or `TensorType`, *optional*):
            Returns stacked tensors if set to `pt, otherwise returns a list of tensors.
        data_format (`ChannelDimension` or `str`, *optional*, defaults to `ChannelDimension.FIRST`):
            The channel dimension format for the output video. Can be one of:
            - `"channels_first"` or `ChannelDimension.FIRST`: video in (num_channels, height, width) format.
            - `"channels_last"` or `ChannelDimension.LAST`: video in (height, width, num_channels) format.
            - Unset: Use the channel dimension format of the input video.
        input_data_format (`ChannelDimension` or `str`, *optional*):
            The channel dimension format for the input video. If unset, the channel dimension format is inferred
            from the input video. Can be one of:
            - `"channels_first"` or `ChannelDimension.FIRST`: video in (num_channels, height, width) format.
            - `"channels_last"` or `ChannelDimension.LAST`: video in (height, width, num_channels) format.
            - `"none"` or `ChannelDimension.NONE`: video in (height, width) format.
        device (`torch.device`, *optional*):
            The device to process the videos on. If unset, the device is inferred from the input videos.
        return_metadata (`bool`, *optional*):
            Whether to return video metadata or not.
        z!Constructs a base VideoProcessor.)visiontorchvision)backendsc                   2  ^  \ rS rSrSrSrSrSrSrSr	Sr
SrSrSrSrSrSrSrSrSrSrSrSr\rS/rS\\   SS4U 4S	 jjrS\4S
 jrSSS\4S jr  SAS\ S\!\"   S\!\#\"\$4      4S jjr%  SAS\S\#\ \&4   S\!\'   S\!\(   S\)S   4
S jjr*  SAS\S\!\#\+\,4      S\!\+   S\)S   4S jjr-\." \/5      S\S\\   S\4S j5       r0 SBS\)S   S\'S\'S\1S\!S   S \'S!\1S"\'S#\$S$\'S%\!\#\$\)\$   4      S&\!\#\$\)\$   4      S'\!\#\+\24      S\4S( jjr3\4     SCS)\#\+\5Rl                  4   S*\!\#\+\5Rl                  4      S+\'S,\'S-\!\#\+\'4      S.\+4S/ jj5       r7SDS0\#\+\5Rl                  4   S1\'4S2 jjr8\4S)\#\+\5Rl                  4   S\9\&\+\:4   \&\+\:4   4   4S3 j5       r;\4S4\&\+\:4   4S5 j5       r<S\&\+\:4   4S6 jr=S\+4S7 jr>S8\#\+\5Rl                  4   4S9 jr?S: r@\4S;\#\+\5Rl                  4   4S< j5       rA\4SES= j5       rBSBS>\#\+\)\+   \)\)\+      4   4S? jjrCS@rDU =rE$ )FBaseVideoProcessor   NTgp?Fpixel_values_videoskwargsreturnc                   > [         TU ]  5         UR                  SS 5      U l        UR	                  5        H  u  p# [        XU5        M     UR                  SU R                  5      nUb#  [        XQR                  SU R                  5      S9OS U l	        UR                  SU R                  5      nUb
  [        USS	9OS U l        [        U R                  R                  R!                  5       5      U l        U R"                   HD  nUR%                  U5      b  [        XX   5        M%  [        X['        [)        XS 5      5      5        MF     g ! [         a%  n[        R                  SU SU SU  35        UeS nAff = f)
Nprocessor_classz
Can't set z with value z for sizedefault_to_square)r7   r8   	crop_size)
param_name)super__init__pop_processor_classitemssetattrAttributeErrorloggererrorr7   r   r8   r9   listvalid_kwargs__annotations__keysmodel_valid_processing_keysgetr   getattr)selfr3   keyvalueerrr7   r9   	__class__s          e/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/transformers/video_processing_utils.pyr<   BaseVideoProcessor.__init__   sP    &

+<d C !,,.JC5) ) zz&$)),  tzzBUW[WmWm7no 		
 JJ{DNN;	MVMby[Ihl ,00A0A0Q0Q0V0V0X+Y(33Czz#*6;/8GDt,D#EF	 4! " z#l5'tfMN	s   E
E< E77E<c                 (    U R                   " U40 UD6$ N)
preprocess)rK   videosr3   s      rP   __call__BaseVideoProcessor.__call__   s    v000    videoztorch.Tensorc                 $   [         R                  " U5      nUR                  S   S:X  d#  USSSS2SS24   S:  R                  5       (       d  U$ USSSS2SS24   S-  nSUSSSS2SS24   -
  S-  USSSS2SS24   USSS2SS2SS24   -  -   nU$ )z
Converts a video to RGB format.

Args:
    video (`"torch.Tensor"`):
        The video to convert.

Returns:
    `torch.Tensor`: The converted video.
   .N   g     o@r	   )Fgrayscale_to_rgbshapeany)rK   rY   alphas      rP   convert_to_rgb!BaseVideoProcessor.convert_to_rgb   s     ""5);;r?ac1al(;c(A'F'F'H'HL c1al#e+U3a?++s2U3a?5KeTWY[Z[Y[]^`aTaNb5bbrX   metadata
num_framesfpsc                    Ub  Ub  [        S5      eUb  UOU R                  nUb  UOU R                  nUR                  nUc8  Ub5  Ub  UR                  c  [        S5      e[	        XQR                  -  U-  5      nX%:  a  [        SU SU S35      eUb*  [
        R                  " SXUU-  5      R	                  5       nU$ [
        R                  " SU5      R	                  5       nU$ )a  
Default sampling function which uniformly samples the desired number of frames between 0 and total number of frames.
If `fps` is passed along with metadata, `fps` frames per second are sampled uniformty. Arguments `num_frames`
and `fps` are mutually exclusive.

Args:
    metadata (`VideoMetadata`):
        Metadata of the video containing information about total duration, fps and total number of frames.
    num_frames (`int`, *optional*):
        Maximum number of frames to sample. Defaults to `self.num_frames`.
    fps (`int` or `float`, *optional*):
        Target frames to sample per second. Defaults to `self.fps`.

Returns:
    np.ndarray:
        Indices to sample video frames.
zc`num_frames`, `fps`, and `sample_indices_fn` are mutually exclusive arguments, please use only one!zAsked to sample `fps` frames per second but no video metadata was provided which is required when sampling with `fps`. Please pass in `VideoMetadata` object or use a fixed `num_frames` per input videoz(Video can't be sampled. The `num_frames=z` exceeds `total_num_frames=z`. r   )
ValueErrorrf   rg   total_num_framesinttorcharange)rK   re   rf   rg   r3   rj   indicess          rP   sample_frames BaseVideoProcessor.sample_frames   s
   0 ?z5u  $.#9Zt
_c$((#44 #/8<<#7 h  -<sBCJ(::,Fbcsbttwx  !ll1&6:8UVZZ\G  ll1&67;;=GrX   rU   video_metadatado_sample_framessample_indices_fnc                 r   [        U5      n[        XS9n[        US   5      (       aV  U(       aO  / n/ n[        X5       H5  u  pxU" US9n	Xl        UR                  Xy   5        UR                  U5        M7     UnUnX4$ [        US   5      (       d  [        US   [        5      (       aq  U R                  U5       V
Vs/ s H=  n
[        R                  " U
 Vs/ s H  n[        R                  " U5      PM     snSS9PM?     nn
nU(       a  [        S5      e X4$ U R                  XS9u  pX4$ s  snf s  snn
f )z2
Decode input videos and sample frames if needed.
)rq   r   )re   dimzUSampling frames from a list of images is not supported! Set `do_sample_frames=False`.rs   )r(   r'   r%   zipframes_indicesappend
isinstancerD   fetch_imagesrl   stackr^   pil_to_tensorri   fetch_videos)rK   rU   rq   rr   rs   sampled_videossampled_metadatarY   re   rn   imagesimages               rP   _decode_and_sample_videos,BaseVideoProcessor._decode_and_sample_videos  sQ    %V,.vU &)$$)9N!#&v#>+X>*1'%%en5 ''1	 $?
 $F-N %%  q	**&)T** #'"3"3F";"; KKV LVE!7V LRST";   $$o  $ %% *.):):6):)g&%% !Ms   =D3 D.7
D3.D3input_data_formatdevicec                 "   / nU H  n[        U[        R                  5      (       a?  [        U[        R
                  U5      n[        R                  " U5      R                  5       nUb  UR                  U5      nUR                  U5        M     U$ )z*
Prepare the input videos for processing.
)r{   npndarrayr*   r   FIRSTrl   
from_numpy
contiguoustorz   )rK   rU   r   r   processed_videosrY   s         rP   _prepare_input_videos(BaseVideoProcessor._prepare_input_videosF  s~     E%,,3E;K;Q;QSde((/::<!(##E*   rX   c           	         [        UR                  5       [        U R                  R                  R                  5       5      S/-   S9  U R                  R                   H  nUR                  U[        XS 5      5        M!     UR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nU(       a  [        U R                  40 UD6OS nU R                  UUUUS9u  pU R                  XUS9nU R                  " S0 UD6nU R                  " S0 UD6  UR                  S	5        UR                  S
5      n	U R                  " SSU0UD6n
U	(       a  XzS'   U
$ )Nreturn_tensors)captured_kwargsvalid_processor_keysr   rr   r   rq   )rq   rr   rs   )rU   r   r   data_formatreturn_metadatarU    )r   rG   rD   rE   rF   
setdefaultrJ   r=   r   ro   r   r   _further_process_kwargs_validate_preprocess_kwargs_preprocess)rK   rU   r3   
kwarg_namer   rr   r   rq   rs   r   preprocessed_videoss              rP   rT   BaseVideoProcessor.preprocess]  sm    	"KKM!%d&7&7&G&G&L&L&N!OScRd!d	
 ++;;Jj'$D*IJ < #JJ':;!::&89H%$45EUGD$6$6A&A[_!%!?!?)-/	 "@ "
 ++6gm+n--77((262 	

=! **%67"..GfGG4B 01""rX   do_convert_rgb	do_resizer7   interpolationzF.InterpolationModedo_center_cropr9   
do_rescalerescale_factordo_normalize
image_mean	image_stdr   c           	         [        U5      u  nn0 nUR                  5        H:  u  nnU(       a  U R                  U5      nU(       a  U R                  UXES9nUUU'   M<     [	        UU5      n[        U5      u  nn0 nUR                  5        H8  u  nnU(       a  U R                  UU5      nU R                  UXXU5      nUUU'   M:     [	        UU5      nU(       a  [        R                  " USS9OUn[        SU0US9$ )N)r7   r   r   ru   r2   )datatensor_type)
r$   r?   rc   resizer)   center_croprescale_and_normalizerl   r}   r   )rK   rU   r   r   r7   r   r   r9   r   r   r   r   r   r   r3   grouped_videosgrouped_videos_indexresized_videos_groupedr`   stacked_videosresized_videosprocessed_videos_groupedr   s                          rP   r   BaseVideoProcessor._preprocess  s    $ 0EV/L,,!#%3%9%9%;!E>!%!4!4^!D!%^$!d,:"5) &< ((>@TU 0E^/T,,#% %3%9%9%;!E>!%!1!1.)!L!77
LV_N /=$U+ &< **BDXYCQ5;;'7Q?Wg"79I!JXfggrX   pretrained_model_name_or_path	cache_dirforce_downloadlocal_files_onlytokenrevisionc                     X'S'   X7S'   XGS'   XgS'   UR                  SS5      nUb+  [        R                  " S[        5        Ub  [	        S5      eUnUb  XWS	'   U R
                  " U40 UD6u  pU R                  " U	40 UD6$ )
a  
Instantiate a type of [`~video_processing_utils.VideoProcessorBase`] from an video processor.

Args:
    pretrained_model_name_or_path (`str` or `os.PathLike`):
        This can be either:

        - a string, the *model id* of a pretrained video hosted inside a model repo on
          huggingface.co.
        - a path to a *directory* containing a video processor file saved using the
          [`~video_processing_utils.VideoProcessorBase.save_pretrained`] method, e.g.,
          `./my_model_directory/`.
        - a path or url to a saved video processor JSON *file*, e.g.,
          `./my_model_directory/video_preprocessor_config.json`.
    cache_dir (`str` or `os.PathLike`, *optional*):
        Path to a directory in which a downloaded pretrained model video processor should be cached if the
        standard cache should not be used.
    force_download (`bool`, *optional*, defaults to `False`):
        Whether or not to force to (re-)download the video processor files and override the cached versions if
        they exist.
    resume_download:
        Deprecated and ignored. All downloads are now resumed by default when possible.
        Will be removed in v5 of Transformers.
    proxies (`dict[str, str]`, *optional*):
        A dictionary of proxy servers to use by protocol or endpoint, e.g., `{'http': 'foo.bar:3128',
        'http://hostname': 'foo.bar:4012'}.` The proxies are used on each request.
    token (`str` or `bool`, *optional*):
        The token to use as HTTP bearer authorization for remote files. If `True`, or not specified, will use
        the token generated when running `hf auth login` (stored in `~/.huggingface`).
    revision (`str`, *optional*, defaults to `"main"`):
        The specific model version to use. It can be a branch name, a tag name, or a commit id, since we use a
        git-based system for storing models and other artifacts on huggingface.co, so `revision` can be any
        identifier allowed by git.


        <Tip>

        To test a pull request you made on the Hub, you can pass `revision="refs/pr/<pr_number>"`.

        </Tip>

    return_unused_kwargs (`bool`, *optional*, defaults to `False`):
        If `False`, then this function returns just the final video processor object. If `True`, then this
        functions returns a `Tuple(video_processor, unused_kwargs)` where *unused_kwargs* is a dictionary
        consisting of the key/value pairs whose keys are not video processor attributes: i.e., the part of
        `kwargs` which has not been used to update `video_processor` and is otherwise ignored.
    subfolder (`str`, *optional*, defaults to `""`):
        In case the relevant files are located inside a subfolder of the model repo on huggingface.co, you can
        specify the folder name here.
    kwargs (`dict[str, Any]`, *optional*):
        The values in kwargs of any keys which are video processor attributes will be used to override the
        loaded values. Behavior concerning key/value pairs whose keys are *not* video processor attributes is
        controlled by the `return_unused_kwargs` keyword parameter.

Returns:
    A video processor of type [`~video_processing_utils.ImagVideoProcessorBase`].

Examples:

```python
# We can't instantiate directly the base class *VideoProcessorBase* so let's show the examples on a
# derived class: *LlavaOnevisionVideoProcessor*
video_processor = LlavaOnevisionVideoProcessor.from_pretrained(
    "llava-hf/llava-onevision-qwen2-0.5b-ov-hf"
)  # Download video_processing_config from huggingface.co and cache.
video_processor = LlavaOnevisionVideoProcessor.from_pretrained(
    "./test/saved_model/"
)  # E.g. video processor (or model) was saved using *save_pretrained('./test/saved_model/')*
video_processor = LlavaOnevisionVideoProcessor.from_pretrained("./test/saved_model/video_preprocessor_config.json")
video_processor = LlavaOnevisionVideoProcessor.from_pretrained(
    "llava-hf/llava-onevision-qwen2-0.5b-ov-hf", do_normalize=False, foo=False
)
assert video_processor.do_normalize is False
video_processor, unused_kwargs = LlavaOnevisionVideoProcessor.from_pretrained(
    "llava-hf/llava-onevision-qwen2-0.5b-ov-hf", do_normalize=False, foo=False, return_unused_kwargs=True
)
assert video_processor.do_normalize is False
assert unused_kwargs == {"foo": False}
```r   r   r   r   use_auth_tokenNrThe `use_auth_token` argument is deprecated and will be removed in v5 of Transformers. Please use `token` instead.V`token` and `use_auth_token` are both specified. Please set only the argument `token`.r   )r=   warningswarnFutureWarningri   get_video_processor_dict	from_dict)
clsr   r   r   r   r   r   r3   r   video_processor_dicts
             rP   from_pretrained"BaseVideoProcessor.from_pretrained  s    t ({#1 %5!"%z$4d;%MM E   l  #E#7O'*'C'CDa'lek'l$}}1<V<<rX   save_directorypush_to_hubc           	      F   UR                  SS5      nUb<  [        R                  " S[        5        UR	                  S5      b  [        S5      eXCS'   [        R                  R                  U5      (       a  [        SU S35      e[        R                  " USS	9  U(       ar  UR                  S
S5      nUR                  SUR                  [        R                  R                  5      S   5      nU R                  " U40 UD6nU R                  U5      nU R                  b
  [!        XU S9  [        R                  R#                  U[$        5      nU R'                  U5        [(        R+                  SU 35        U(       a"  U R-                  UWWWUR	                  S5      S9  U/$ )a  
Save an video processor object to the directory `save_directory`, so that it can be re-loaded using the
[`~video_processing_utils.VideoProcessorBase.from_pretrained`] class method.

Args:
    save_directory (`str` or `os.PathLike`):
        Directory where the video processor JSON file will be saved (will be created if it does not exist).
    push_to_hub (`bool`, *optional*, defaults to `False`):
        Whether or not to push your model to the Hugging Face model hub after saving it. You can specify the
        repository you want to push to with `repo_id` (will default to the name of `save_directory` in your
        namespace).
    kwargs (`dict[str, Any]`, *optional*):
        Additional key word arguments passed along to the [`~utils.PushToHubMixin.push_to_hub`] method.
r   Nr   r   r   zProvided path (z#) should be a directory, not a fileT)exist_okcommit_messagerepo_id)configzVideo processor saved in )r   r   )r=   r   r   r   rI   ri   ospathisfileAssertionErrormakedirssplitsep_create_repo_get_files_timestamps_auto_classr
   joinr   to_json_filerB   info_upload_modified_files)	rK   r   r   r3   r   r   r   files_timestampsoutput_video_processor_files	            rP   save_pretrained"BaseVideoProcessor.save_pretrained(  s     $4d;%MM E zz'". l  -7O77>>.)) ?>2BBe!fgg
NT2#ZZ(8$?NjjN,@,@,Mb,QRG'':6:G#99.I 'tDA ')ggll>CW&X#56/0K/LMN'' -jj) (  ,,,rX   c                    UR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  S	S5      n	UR                  S
S5      n
UR                  SS5      nUR                  SS5      nUR                  SS5      nUb+  [        R                  " S[        5        Ub  [	        S5      eUnSUS.nUb  XS'   [        5       (       a  U	(       d  [        R                  S5        Sn	[        U5      n[        R                  R                  U5      n[        R                  R                  U5      (       a  UnSnOf[        U5      (       a  Un[        U5      nOH[        n [        [         ["        4 Vs/ s H   n[%        UUUUUUU	UUU
USS9=n  c  M  UPM"     nnUS   n [+        USSS9 nUR-                  5       nSSS5        [.        R0                  " W5      nUR3                  SU5      nU(       a  [        R                  S"U 35        UU4$ [        R                  S"W S#U 35        UU4$ s  snf ! [&         a    e [(         a    ['        SU SU S[         S35      ef = f! , (       d  f       N= f! [.        R4                   a    ['        S U S!35      ef = f)$a  
From a `pretrained_model_name_or_path`, resolve to a dictionary of parameters, to be used for instantiating a
video processor of type [`~video_processing_utils.VideoProcessorBase`] using `from_dict`.

Parameters:
    pretrained_model_name_or_path (`str` or `os.PathLike`):
        The identifier of the pre-trained checkpoint from which we want the dictionary of parameters.
    subfolder (`str`, *optional*, defaults to `""`):
        In case the relevant files are located inside a subfolder of the model repo on huggingface.co, you can
        specify the folder name here.

Returns:
    `tuple[Dict, Dict]`: The dictionary(ies) that will be used to instantiate the video processor object.
r   Nr   Fresume_downloadproxiesr   r   r   r   	subfolder _from_pipeline
_from_autor   r   video processor)	file_typefrom_auto_classusing_pipelinez+Offline mode: forcing local_files_only=TrueT)filenamer   r   r   r   r   r   
user_agentr   r   %_raise_exceptions_for_missing_entriesr   z Can't load video processor for 'z'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'z2' is the correct path to a directory containing a z filerutf-8encodingvideo_processorz"It looks like the config file at 'z' is not a valid JSON file.zloading configuration file z from cache at )r=   r   r   r   ri   r   rB   r   strr   r   isdirr   r   r   r   r   r   r    OSError	ExceptionopenreadjsonloadsrI   JSONDecodeError)r   r   r3   r   r   r   r   r   r   r   r   r   from_pipeliner   r   is_localresolved_video_processor_filevideo_processor_filer   resolved_fileresolved_video_processor_filesreadertextr   s                           rP   r   +BaseVideoProcessor.get_video_processor_dicte  s?   $ JJ{D1	$4e< **%6=**Y-

7D)$4d;!::&8%@::j$/JJ{B/	

#3T: **\59%MM E   l  #E#4Y
$+8'(%5KKEF#(+,I(J%77==!>?77>>788,I)H899#@ ,89V,W)#7 $
 &:;OQ_$`2$`)49%-&/+9$+,;-="''1%-&/BG*   !  "$` / 2* 1Oq0Q-
	3S7Kv{{} L#'::d#3 #7#;#;<MOc#d  KK56S5TUV
 $V++ KK-.B-C?SpRqr $V++k2,    67T6U V99V8W X//C.DEK  LK
 ## 	45R4SSno 	sH   &I; 9I6I6 I; (J= 3J,0J= 6I; ;.J),
J:6J= =$K!r   c                    UR                  5       nUR                  SS5      nSU;   a  SU;   a  UR                  S5      US'   SU;   a  SU;   a  UR                  S5      US'   U " S0 UD6n/ nUR                  5        H4  u  pg[        XF5      (       d  M  [	        XFU5        UR                  U5        M6     U H  nUR                  US5        M     [        R                  SU 35        U(       a  XB4$ U$ )a  
Instantiates a type of [`~video_processing_utils.VideoProcessorBase`] from a Python dictionary of parameters.

Args:
    video_processor_dict (`dict[str, Any]`):
        Dictionary that will be used to instantiate the video processor object. Such a dictionary can be
        retrieved from a pretrained checkpoint by leveraging the
        [`~video_processing_utils.VideoProcessorBase.to_dict`] method.
    kwargs (`dict[str, Any]`):
        Additional parameters from which to initialize the video processor object.

Returns:
    [`~video_processing_utils.VideoProcessorBase`]: The video processor object instantiated from those
    parameters.
return_unused_kwargsFr7   r9   NzVideo processor r   )copyr=   r?   hasattrr@   rz   rB   r   )r   r   r3   r	  r   	to_removerL   rM   s           rP   r   BaseVideoProcessor.from_dict  s    "  488:%zz*@%H
 V*> >+1::f+= (& [4H%H06

;0G -5 45 	 ,,.JC,,e4  % ) CJJsD!  	&&789"**""rX   c                     [        U R                  5      nUR                  SS5        UR                  SS5        U R                  R                  US'   U$ )z
Serializes this instance to a Python dictionary.

Returns:
    `dict[str, Any]`: Dictionary of all the attributes that make up this video processor instance.
rH   N_valid_kwargs_namesvideo_processor_type)r   __dict__r=   rO   __name__)rK   outputs     rP   to_dictBaseVideoProcessor.to_dict  sJ     $--(

0$7

($/)-)@)@%&rX   c                    U R                  5       nUR                  5        H8  u  p#[        U[        R                  5      (       d  M&  UR                  5       X'   M:     UR                  SS5      nUb  XAS'   [        R                  " USSS9S-   $ )z
Serializes this instance to a JSON string.

Returns:
    `str`: String containing all the attributes that make up this feature_extractor instance in JSON format.
r>   Nr6      T)indent	sort_keys
)	r  r?   r{   r   r   tolistr=   r   dumps)rK   
dictionaryrL   rM   r>   s        rP   to_json_string!BaseVideoProcessor.to_json_string  s}     \\^
$**,JC%,,"',,.
 - &>>*<dC',<()zz*Q$?$FFrX   json_file_pathc                     [        USSS9 nUR                  U R                  5       5        SSS5        g! , (       d  f       g= f)z
Save this instance to a JSON file.

Args:
    json_file_path (`str` or `os.PathLike`):
        Path to the JSON file in which this image_processor instance's parameters will be saved.
wr   r   N)r   writer  )rK   r   writers      rP   r   BaseVideoProcessor.to_json_file+  s3     .#8FLL,,./ 988s	    5
Ac                 T    U R                   R                   SU R                  5        3$ )N )rO   r  r  )rK   s    rP   __repr__BaseVideoProcessor.__repr__6  s(    ..))*!D,?,?,A+BCCrX   	json_filec                     [        USSS9 nUR                  5       nSSS5        [        R                  " W5      nU " S0 UD6$ ! , (       d  f       N,= f)a  
Instantiates a video processor of type [`~video_processing_utils.VideoProcessorBase`] from the path to a JSON
file of parameters.

Args:
    json_file (`str` or `os.PathLike`):
        Path to the JSON file containing the parameters.

Returns:
    A video processor of type [`~video_processing_utils.VideoProcessorBase`]: The video_processor object
    instantiated from that JSON file.
r   r   r   Nr   )r   r   r   r   )r   r*  r  r  r   s        rP   from_json_file!BaseVideoProcessor.from_json_file9  sI     )S73v;;=D 4#zz$/*)** 43s   A
Ac                     [        U[        5      (       d  UR                  nSSKJs  Jn  [        X!5      (       d  [        U S35      eXl        g)a  
Register this class with a given auto class. This should only be used for custom video processors as the ones
in the library are already mapped with `AutoVideoProcessor `.

<Tip warning={true}>

This API is experimental and may have some slight breaking changes in the next releases.

</Tip>

Args:
    auto_class (`str` or `type`, *optional*, defaults to `"AutoVideoProcessor "`):
        The auto class to register this new video processor with.
r   Nz is not a valid auto class.)	r{   r   r  transformers.models.automodelsautor  ri   r   )r   
auto_classauto_modules      rP   register_for_auto_class*BaseVideoProcessor.register_for_auto_classL  sE      *c**#,,J66{//
|+FGHH$rX   video_url_or_urlsc                     Sn[        5       (       d  [        R                  " S5        Sn[        U[        5      (       a.  [	        [        U Vs/ s H  o@R                  XBS9PM     sn6 5      $ [        XUS9$ s  snf )z
Convert a single or a list of urls into the corresponding `np.array` objects.

If a single url is passed, the return value will be a single object. If a list is passed a list of objects is
returned.

torchcodecz`torchcodec` is not installed and cannot be used to decode the video by default. Falling back to `torchvision`. Note that `torchvision` decoding is deprecated and will be removed in future versions. r-   rw   )backendrs   )r   r   r   r{   rD   rx   r   r&   )rK   r6  rs   r9  xs        rP   r   BaseVideoProcessor.fetch_videosf  s}     &((MMI $G'..arsar\]///Warstuu/Teff ts   A7)r>   r9   rH   r7   )NNrS   )NFFNmain)F)AutoVideoProcessor)Fr  
__module____qualname____firstlineno__r   resampler   r   r7   size_divisorr8   r9   r   r   r   r   r   r   rr   rg   rf   rq   r   r   rE   model_input_namesr   r<   r   rV   r"   rc   r#   r   rk   r   floatro   dictboolr   rD   r   r   r   r   r   BASE_VIDEO_PROCESSOR_DOCSTRINGrT   r   r   r   classmethodr   PathLiker   r   tupler   r   r   r  r  r   r(  r,  r4  r   __static_attributes____classcell__)rO   s   @rP   r0   r0      s    KHJIDLIINJNLN
CJNOL./G!5 G$ G>1L 1 
8 %)+/	33 SM3 eCJ'(	3r ,004&&&& mT12&& #4.	&&
 $H-&& 
n	&&V EI $	   $E#/?*?$@A  	 
 
n	 . &&#&# &&# 
	&#&#l <@,h^$,h ,h 	,h
 ,h   56,h ,h ,h ,h ,h ,h U5$u+#567,h E%e"456,h !sJ!78,h  
!,h\  8<$!&,0o=',S"++-='>o= E#r{{"234o= 	o=
 o= c4i()o= o= o=b;-eC4D.E ;-TX ;-z s,,1#r{{2B,Cs,	tCH~tCH~-	.s, s,j *#T#s(^ *# *#Xc3h G G*	05bkk1A+B 	0D +uS"++-='> + +$ % %2geCcDcO4S.T g grX   r0   r   r=  zvideo processor file)objectobject_classobject_files)Dr   r   r   r
  r   	functoolsr   typingr   r   r   r   numpyr   dynamic_module_utilsr
   image_processing_utilsr   r   image_processing_utils_fastr   image_utilsr   r   r   processing_utilsr   r   utilsr   r   r   r   r   r   r   r   r   r   r   r   r   	utils.hubr    utils.import_utilsr!   video_utilsr"   r#   r$   r%   r&   r'   r(   r)   r*   rl   torchvision.transforms.v2r+   r^   
get_loggerr  rB   rG  r0   r   __doc__formatr   rX   rP   <module>r`     s>     	    1 1  4 @ 
 3    # (
 
 
   9 
		H	%A" H '" 
,-bg/ bg .	
bgJ "++=+I+I!J  !!))5-?-K-K-S-S-Z-Z /CRh .[ .""* 6rX   