o
    h                     @  s   d dl mZ ddlmZmZ ddlmZ ddlmZ G dd dZ	dddZ
G dd dejZeejee
 eejddg eejd dS )    )annotations   )Image	ImageFile)i8)SupportsReadc                   @  s>   e Zd ZdddZddd	ZdddZdddZdddZdS )	BitStreamfpSupportsRead[bytes]returnNonec                 C  s   || _ d| _d| _d S )Nr   )r	   bits	bitbuffer)selfr	    r   U/var/www/html/optinet_system/venv/lib/python3.10/site-packages/PIL/MpegImagePlugin.py__init__   s   
zBitStream.__init__intc                 C  s   t | jdS )Nr   )r   r	   read)r   r   r   r   next   s   zBitStream.nextr   c                 C  sR   | j |k r| jd> |   | _|  j d7  _ | j |k s| j| j | ? d|> d @ S N   r   )r   r   r   r   r   r   r   r   peek"   s
   

zBitStream.peekc                 C  sN   | j |k r| jd> t| jd | _|  j d7  _ | j |k s| j | | _ d S r   )r   r   r   r	   r   r   r   r   r   skip(   s
   

zBitStream.skipc                 C  s   |  |}| j| | _|S )N)r   r   )r   r   vr   r   r   r   .   s   
zBitStream.readN)r	   r
   r   r   )r   r   )r   r   r   r   )r   r   r   r   )__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r      s    



r   prefixbytesr   boolc                 C  s
   |  dS )Ns     )
startswith)r   r   r   r   _accept4   s   
r#   c                   @  s   e Zd ZdZdZdddZdS )MpegImageFileMPEGr   r   c                 C  sR   | j d usJ t| j }|ddkrd}t|d| _|d|df| _d S )N    i  znot an MPEG fileRGB   )r	   r   r   SyntaxError_mode_size)r   smsgr   r   r   _openA   s   
zMpegImageFile._openN)r   r   )r   r   r   formatformat_descriptionr.   r   r   r   r   r$   =   s    r$   z.mpgz.mpegz
video/mpegN)r   r    r   r!   )
__future__r    r   r   _binaryr   _typingr   r   r#   r$   register_openr/   register_extensionsregister_mimer   r   r   r   <module>   s   
	