U
    Ú²g4  ã                   @  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
œ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                   @  sZ   e Zd Zdddœdd„Zddœdd	„Zddd
œdd„Zddd
œdd„Zddd
œdd„ZdS )Ú	BitStreamzSupportsRead[bytes]ÚNone)ÚfpÚreturnc                 C  s   || _ d| _d| _d S )Nr   )r
   ÚbitsÚ	bitbuffer)Úselfr
   © r   ú7/tmp/pip-unpacked-wheel-xela2va7/PIL/MpegImagePlugin.pyÚ__init__   s    zBitStream.__init__Úint©r   c                 C  s   t | j d¡ƒS )Nr   )r   r
   Úread)r   r   r   r   Únext   s    zBitStream.next)r   r   c                 C  s^   | j |k rB|  ¡ }|dk r"d| _ q | jd> | | _|  j d7  _ q | j| j | ? d|> d @ S )Nr   é   r   )r   r   r   )r   r   Úcr   r   r   Úpeek"   s    
zBitStream.peekc                 C  sF   | j |k r6| jd> t| j d¡ƒ | _|  j d7  _ q | j | | _ d S )Nr   r   )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   2   s    
zBitStream.readN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r      s
   
r   ÚbytesÚbool)Úprefixr   c                 C  s   | d d… dkS )Né   s     ³r   )r    r   r   r   Ú_accept8   s    r"   c                   @  s"   e Zd ZdZdZddœdd„ZdS )ÚMpegImageFileZMPEGr	   r   c                 C  sR   | j d k	st‚t| j ƒ}| d¡dkr2d}t|ƒ‚d| _| d¡| d¡f| _d S )Né    i³  znot an MPEG fileZRGBé   )r
   ÚAssertionErrorr   r   ÚSyntaxErrorÚ_modeÚ_size)r   ÚsÚmsgr   r   r   Ú_openE   s    
zMpegImageFile._openN)r   r   r   ÚformatÚformat_descriptionr,   r   r   r   r   r#   A   s   r#   z.mpgz.mpegz
video/mpegN)Ú
__future__r   Ú r   r   Ú_binaryr   Ú_typingr   r   r"   r#   Zregister_openr-   Zregister_extensionsZregister_mimer   r   r   r   Ú<module>   s   	