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   úG/var/www/html/myenv/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   
	