§
    ÜóÉj;n  ã                   ó¦  — d dl Z d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ d dlmZmZ d dlmZ d dlmZm Z  ej!        dej"        ej#                 dej"        e         dej$        fd„¦   «         Z%ej!        de&fd„¦   «         Z'ej(        ej)         G d„ de*¦  «        ¦   «         ¦   «         Z&dS )é    N)Úlibav)ÚBitStreamFilterContext)ÚCodec)ÚCodecContextÚwrap_codec_context)ÚHWAccel)ÚStreamContainer)Ú
Dictionary)Ú	err_check)ÚPacket)ÚStreamÚwrap_stream)Údict_to_avdictÚto_avrational)Úuint8_t)ÚmemcpyÚmemsetÚstreamÚdataÚsizec                 ó®  — t          j        t           j        t          j        |t          j        z   ¦  «        ¦  «        }|t           j        k    rt          d¦  «        ‚t          |||¦  «         t          ||z   dt          j        ¦  «         t          j
        t          j        | j        j        ¦  «        ¦  «         || j        _        || j        _        d S )NzCould not allocate extradatar   )ÚcythonÚcastÚp_ucharÚlibÚ	av_mallocÚAV_INPUT_BUFFER_PADDING_SIZEÚNULLÚMemoryErrorr   r   Úav_freepÚaddressÚcodecparÚ	extradataÚextradata_size)r   r   r   Úbufs       úx/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib64/python3.11/site-packages/av/container/output.pyÚ_set_codecpar_extradatar'      s°   € õ !œ+ÝŒ�œ d­SÔ-MÑ&MÑNÔNñô €Cð �fŒkÒÐÝÐ8Ñ9Ô9Ð9å
ˆ3��dÑÔÐÝ
ˆ3�‰:�q�#Ô:Ñ;Ô;Ð;å„L•” ¤Ô 9Ñ:Ô:Ñ;Ô;Ð;Ø #€F„OÔØ%)€F„OÔ"Ð"Ð"ó    Úselfc                 ó6  — | j         t          j        k    r/| j        r(| j        }g | _        |D ]}|                      |¦  «         Œt          ¦   «         | _        | j        dz  dk    �r2| j        �-t          | j        j        dd¦  «        r| xj        dz  c_        d S 	 |  
                    t          j        | j        ¦  «        ¦  «         | j        €N| j        j        j        t          j        z  s0t          j        t          j        | j        j        ¦  «        ¦  «         | xj        dz  c_        d S # | j        €N| j        j        j        t          j        z  s0t          j        t          j        | j        j        ¦  «        ¦  «         | xj        dz  c_        w xY wd S )Né   é   ÚclosedFé   )Ú
packet_ptrr   r   Ú_buffered_packetsÚ_mux_oner	   ÚstreamsÚ_myflagÚfileÚgetattrr   r   Úav_write_trailerÚptrÚoformatÚflagsÚAVFMT_NOFILEÚavio_closepr!   Úpb)r)   ÚbufferedÚpackets      r&   Úclose_outputr?   '   sq  € à„�&œ+Ò%Ð%¨$Ô*@Ð%ØÔ/ˆØ!#ˆÔàð 	"ð 	"ˆFØ�MŠM˜&Ñ!Ô!Ð!Ð!å"Ñ$Ô$€D„LØ„|�bÑ˜AÒÑð Œ9Ð ¥W¨T¬Y¬^¸XÀuÑ%MÔ%MÐ ØˆLŒL˜AÑˆLŒLØˆFð	Ø�NŠN�3Ô/°´Ñ9Ô9Ñ:Ô:Ð:àŒyÐ ¨$¬(Ô*:Ô*@Å3ÔCSÑ*SÐ Ý”¥¤¨t¬x¬{Ñ ;Ô ;Ñ<Ô<Ð<ØˆLŒL˜AÑˆLŒLˆLˆLøð ŒyÐ ¨$¬(Ô*:Ô*@Å3ÔCSÑ*SÐ Ý”¥¤¨t¬x¬{Ñ ;Ô ;Ñ<Ô<Ð<ØˆLŒL˜AÑˆLŒLˆLˆLˆLˆLð Ðs   Â,D/ Ä/A'Fc                   óª  — e Zd Zd„ Zd„ Zd„ Z	 	 	 d dedz  dedz  fd„Zd!de	d	e
fd
„Z	 d!de
dedz  fd„Zde
d	e
fd„Zde	de	defd„Zd"dedz  fd„Zej        d„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zdefd„Zej        defd„¦   «         Zej        defd„¦   «         Z ej        defd„¦   «         Z!dS )#ÚOutputContainerc                 óÂ   — t          ¦   «         | _        i | _        g | _        t          j        5  t          j        ¦   «         | _        d d d ¦  «         d S # 1 swxY w Y   d S ©N)	r	   r2   Ú_extradata_bsfsr0   r   Únogilr   Úav_packet_allocr/   )r)   ÚargsÚkwargss      r&   Ú	__cinit__zOutputContainer.__cinit__E   s›   € Ý&Ñ(Ô(ˆŒØ!ˆÔØ!#ˆÔÝŒ\ð 	4ð 	4Ý!Ô1Ñ3Ô3ˆDŒOð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s   ®AÁAÁAc                 ó$   — t          | ¦  «         d S rC   ©r?   ©r)   s    r&   Ú__del__zOutputContainer.__del__L   ó   € Ý�TÑÔÐÐÐr(   c                 ó¦   — t           j        5  t          j        t          j        | j        ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S rC   )r   rE   r   Úav_packet_freer!   r/   rL   s    r&   Ú__dealloc__zOutputContainer.__dealloc__O   sŸ   € ÝŒ\ð 	@ð 	@ÝÔ�vœ~¨d¬oÑ>Ô>Ñ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð 	@ð 	@s   �,AÁA
ÁA
NÚoptionsÚhwaccelc           	      ón  — t          |d¦  «        }|j        }t          j        | j        j        |j        t          j        ¦  «        s$t          | j        j	        ›d|j	        ›d�¦  «        ‚t          j
        | j        |¦  «        }t          j        |¦  «        }	|j        t          j        k    �rt          j        |	_        |                     dd¦  «        |	_        |                     dd¦  «        |	_        |                     dd	¦  «        |	_        |                     d
d¦  «        |	_        	 t+          |                     d¦  «        t-          j        |	j        ¦  «        ¦  «         n# t2          $ r Y nw xY wt+          |pdt-          j        |	j        ¦  «        ¦  «         |	j        |_        |	j        |_        �n˜|j        t          j        k    �r‚t,          j        }
t          j        t,          j        |t          j        d	t-          j        |
¦  «        t,          j        ¦  «         |
r:t-          j         t,          j!        t          j"                 |
¦  «        d	         |	_#        |                     dd	¦  «        |	_        |                     d
d¦  «        |	_        	 t+          |                     d¦  «        t-          j        |	j        ¦  «        ¦  «         n# t2          $ r Y nw xY w|€d|	_$        n-t          |¦  «        tJ          u r||	_$        ntM          d¦  «        ‚|	j        |_        t          j'        t-          j        |	j(        ¦  «        d¦  «         | j        j        j)        t          j*        z  r|	xj)        t          j+        z  c_)        tY          t          j-        |j.        |	¦  «        ¦  «         t_          |	||¦  «        }ta          | ||¦  «        }| j1         2                    |¦  «         |r|j3         4                    |¦  «         | 5                    ¦   «         D ]\  }}tm          |||¦  «         Œ|S )aÊ  add_stream(codec_name, rate=None, *, hwaccel=None)

        Creates a new stream from a codec name and returns it.
        Supports video, audio, and subtitle streams.

        :param codec_name: The name of a codec.
        :type codec_name: str
        :param dict options: Stream options.
        :param HWAccel hwaccel: Optional settings for hardware-accelerated encoding.
            Only applies to video streams (e.g. ``h264_vaapi``); software frames
            passed to :meth:`~av.codec.context.CodecContext.encode` are uploaded to
            the device automatically.
        :param \**kwargs: Set attributes for the stream.
        :rtype: The new :class:`~av.stream.Stream`.

        .. warning::

            Configure every output stream before muxing the first packet. Writing
            the file header opens all stream codec contexts, after which structural
            properties such as format, dimensions, layout, and rate cannot change.

        Úwú format does not support ú codecÚwidthi€  Úheightià  Úbit_rater   Úbit_rate_tolerancei ô Ú	time_baseé   i }  Ni€»  ú'audio stream `rate` must be: int | Noneé   )7r   r7   r   Úavformat_query_codecr8   ÚidÚFF_COMPLIANCE_NORMALÚ
ValueErrorÚformatÚnameÚavformat_new_streamÚavcodec_alloc_context3ÚtypeÚAVMEDIA_TYPE_VIDEOÚAV_PIX_FMT_YUV420PÚpix_fmtÚpoprX   rY   rZ   r[   r   r   r!   r\   ÚKeyErrorÚ	framerateÚavg_frame_rateÚAVMEDIA_TYPE_AUDIOr   Úavcodec_get_supported_configÚAV_CODEC_CONFIG_SAMPLE_FORMATr   ÚpointerÚAVSampleFormatÚ
sample_fmtÚsample_rateÚintÚ	TypeErrorÚav_channel_layout_defaultÚ	ch_layoutr9   ÚAVFMT_GLOBALHEADERÚAV_CODEC_FLAG_GLOBAL_HEADERr   Úavcodec_parameters_from_contextr"   r   r   r2   Ú
add_streamrR   ÚupdateÚitemsÚsetattr)r)   Ú
codec_nameÚraterR   rS   rH   Ú	codec_objÚcodecr   ÚctxÚoutÚpy_codec_contextÚ	py_streamÚkÚvs                  r&   r~   zOutputContainer.add_streamS   sÌ  € õ> ! ¨SÑ1Ô1ˆ	Ø;D¼=ˆõ Ô'ØŒHÔ˜eœh­Ô(@ñ
ô 
ð 	õ Ø”;Ô#ÐXÐXÀ	ÄÐXÐXÐXñô ð õ
 03Ô/FÀtÄxÐQVÑ/WÔ/WˆÝ25Ô2LÈUÑ2SÔ2Sˆð Œ:�Ô/Ò/Ñ/ÝÔ0ˆCŒKØŸ
š
 7¨CÑ0Ô0ˆCŒIØŸš H¨cÑ2Ô2ˆCŒJØ!Ÿ:š: j°!Ñ4Ô4ˆCŒLØ%+§Z¢ZÐ0DÀfÑ%MÔ%MˆCÔ"ðÝ˜fŸjšj¨Ñ5Ô5µv´~ÀcÄmÑ7TÔ7TÑUÔUÐUÐUøÝð ð ð Ø�ðøøøå˜$˜* "¥f¤n°S´]Ñ&CÔ&CÑDÔDÐDà$'¤MˆFÔ!Ø"œ}ˆFÔÑð ŒZ�3Ô1Ò1Ñ1Ý=C¼[ˆCÝÔ,Ý”ØÝÔ1ØÝ”˜sÑ#Ô#Ý”ñô ð ð ð YÝ!'¤­V¬^½CÔ<NÔ-OÐQTÑ!UÔ!UÐVWÔ!X�”Ø!Ÿ:š: j°!Ñ4Ô4ˆCŒLØ%+§Z¢ZÐ0DÀeÑ%LÔ%LˆCÔ"ðÝ˜fŸjšj¨Ñ5Ô5µv´~ÀcÄmÑ7TÔ7TÑUÔUÐUÐUøÝð ð ð Ø�ðøøøð ˆ|Ø"'�”�Ý�d‘”�sÐ"Ð"Ø"&�”�åÐ IÑJÔJÐJØ"œ}ˆFÔÝÔ)­&¬.¸¼Ñ*GÔ*GÈÑKÔKÐKð Œ8ÔÔ!¥CÔ$:Ñ:ð 	9ØˆIŒI�Ô8Ñ8ˆIŒIõ 	•#Ô5°f´oÀsÑKÔKÑLÔLÐLõ *<¸CÀÈÑ)PÔ)PÐÝ'¨¨fÐ6FÑGÔGˆ	ØŒ×Ò 	Ñ*Ô*Ð*àð 	.ØÔ×$Ò$ WÑ-Ô-Ð-à—L’L‘N”Nð 	%ð 	%‰DˆAˆqÝ�I˜q !Ñ$Ô$Ð$Ð$àÐs$   Ä-:E( Å(
E5Å4E5Ê:K Ë
K!Ë K!r‚   Úreturnc                 ó  — |                      ¦   «         }t          j        |¦  «        }t          j        }|t          j        k    rt          j        |¦  «        }|t          j        k    r6t          j        |¦  «        }|t          j        k    rt          d|›�¦  «        ‚|t          j        k    r|j        }|j	        }n|j        }|j	        }t          j
        | j        j        |t          j        ¦  «        st          | j        j        ›d|›d�¦  «        ‚t          j        | j        t          j        ¦  «        }	|	t          j        k    rt#          d¦  «        ‚||	j        _        ||	j        _        |t          j        k    rj|                     dd¦  «        |	j        _        |                     dd¦  «        |	j        _        |�'t3          |t          j        |	j        ¦  «        ¦  «         nD|t          j        k    r4|�2t          |¦  «        t:          u r||	j        _        nt?          d	¦  «        ‚tA          | |	d¦  «        }
| j!         "                    |
¦  «         | #                    ¦   «         D ]\  }}tI          |
||¦  «         Œ|
S )
a  add_mux_stream(codec_name, rate=None)

        Creates a new stream for muxing pre-encoded data without creating a
        :class:`.CodecContext`. Use this when you want to mux packets that were
        already encoded externally and no encoding/decoding is needed.

        :param codec_name: The name of a codec.
        :type codec_name: str
        :param \**kwargs: Set attributes for the stream (e.g. ``width``, ``height``,
            ``time_base``).
        :rtype: The new :class:`~av.stream.Stream`.

        zUnknown codec: rV   rW   úCould not allocate streamrX   r   rY   Nr^   )%Úencoder   Úavcodec_find_encoder_by_namer   r   Úavcodec_find_decoder_by_nameÚavcodec_descriptor_get_by_namerc   ra   rh   r`   r7   r8   rb   rd   re   rf   r   r"   Úcodec_idÚ
codec_typeri   rl   rX   rY   r   r!   ro   rp   rw   rv   rx   r   r2   r~   r€   r�   )r)   r‚   rƒ   rH   Úcodec_name_bytesr…   Úcodec_descriptorr“   r”   r   r‰   rŠ   r‹   s                r&   Úadd_mux_streamzOutputContainer.add_mux_streamÅ   sl  € ð #-×"3Ò"3Ñ"5Ô"5ÐåÔ,Ð-=Ñ>Ô>ð 	õ ŒKð 	ð •F”KÒÐÝÔ4Ð5EÑFÔFˆEØ•F”KÒÐÝ"ÔAÐBRÑSÔSÐØ¥6¤;Ò.Ð.Ý Ð!A°:Ð!AÐ!AÑBÔBÐBð •F”KÒÐØ”xˆHØœˆJˆJà'Ô*ˆHØ)Ô.ˆJõ Ô'ØŒHÔ˜h­Ô(@ñ
ô 
ð 	õ Ø”;Ô#ÐTÐTÀ
ÐTÐTÐTñô ð õ
 03Ô/FØŒH•f”kñ0
ô 0
ˆð •V”[Ò Ð ÝÐ9Ñ:Ô:Ð:à#+ˆŒÔ Ø%/ˆŒÔ"à�Ô/Ò/Ð/Ø$*§J¢J¨w¸Ñ$:Ô$:ˆFŒOÔ!Ø%+§Z¢Z°¸!Ñ%<Ô%<ˆFŒOÔ"ØÐÝ˜d¥F¤N°6Ô3HÑ$IÔ$IÑJÔJÐJøØ�3Ô1Ò1Ð1ØÐÝ˜‘:”:¥Ð$Ð$Ø26�F”OÔ/Ð/å#Ð$MÑNÔNÐNõ (¨¨f°dÑ;Ô;ˆ	ØŒ×Ò 	Ñ*Ô*Ð*à—L’L‘N”Nð 	%ð 	%‰DˆAˆqÝ�I˜q !Ñ$Ô$Ð$Ð$àÐr(   ÚtemplateÚopaquec                 ó2  — |€|j         dk    }|j        € | j        |fi |¤ŽS |r|j        j        }nt	          |j        j        j        d¦  «        }|j        }t          j        | j        j	        |j
        t          j        ¦  «        s$t          | j        j        ›d|j        ›d�¦  «        ‚t          j        | j        |¦  «        }t          j        |¦  «        }t!          t          j        ||j        j        ¦  «        ¦  «         d|_        |j        j        |_        |j        j        |_        | j        j	        j        t          j        z  r|xj        t          j        z  c_        |s|j        j        |_        t!          t          j        |j        |¦  «        ¦  «         t3          ||d¦  «        }|xj        dz  c_        t7          | ||¦  «        }	| j                             |	¦  «         |                     ¦   «         D ]\  }
}t?          |	|
|¦  «         Œ|	S )a�  
        Creates a new stream from a template. Supports video, audio, subtitle, data and attachment streams.

        :param template: Copy codec from another :class:`~av.stream.Stream` instance.
        :param opaque: If True, copy opaque data from the template's codec context.
        :param \**kwargs: Set attributes for the stream.
        :rtype: The new :class:`~av.stream.Stream`.
        NÚvideorU   rV   rW   r   é   ) rh   Úcodec_contextÚ'_add_stream_without_codec_from_templater…   r   re   r7   r   r`   r8   ra   rb   rc   rd   rf   rg   r   Úavcodec_parameters_to_contextr"   Ú	codec_tagr\   r9   r{   r|   r}   r   Ú	_ctxflagsr   r2   r~   r€   r�   )r)   r˜   r™   rH   r„   r…   r   r†   rˆ   r‰   rŠ   r‹   s               r&   Úadd_stream_from_templatez(OutputContainer.add_stream_from_template  s  € ð ˆ>Ø”] gÒ-ˆFàÔ!Ð)Ø?�4Ô?ÀÐSÐSÈFÐSÐSÐSð ð 	FØ Ô.Ô4ˆIˆIå˜hÔ4Ô:Ô?ÀÑEÔEˆIà;D¼=ˆõ Ô'ØŒHÔ˜eœh­Ô(@ñ
ô 
ð 	õ Ø”;Ô#ÐXÐXÀ	ÄÐXÐXÐXñô ð õ
 03Ô/FÀtÄxÐQVÑ/WÔ/WˆÝ25Ô2LÈUÑ2SÔ2Sˆå•#Ô3°C¸¼Ô9NÑOÔOÑPÔPÐPàˆŒð $œ<Ô1ˆÔØ œÔ.ˆŒð Œ8ÔÔ!¥CÔ$:Ñ:ð 	9ØˆIŒI�Ô8Ñ8ˆIŒIð ð 	5Ø Ô.Ô4ˆCŒIõ 	•#Ô5°f´oÀsÑKÔKÑLÔLÐLõ *<¸CÀÈÑ)MÔ)MÐØÐ"Ô" aÑ'Ð"Ô"Ý'¨¨fÐ6FÑGÔGˆ	ØŒ×Ò 	Ñ*Ô*Ð*à—L’L‘N”Nð 	%ð 	%‰DˆAˆqÝ�I˜q !Ñ$Ô$Ð$Ð$àÐr(   c                 óÚ  — |j         j        j        }|t          j        t          j        hvrt          d|j        › d�¦  «        ‚t          j        | j         t          j
        ¦  «        }|t          j
        k    rt          d¦  «        ‚t          t          j        |j        |j         j        ¦  «        ¦  «         |j         j        |_        |j         j        |_        |j         j        |_        |j         j        |_        t%          | |d ¦  «        }| j                             |¦  «         t+          |j        ¦  «        |_        |                     ¦   «         D ]\  }}t1          |||¦  «         Œ|S )Nztemplate stream of type z has no codec contextrŽ   )r7   r"   r”   r   ÚAVMEDIA_TYPE_ATTACHMENTÚAVMEDIA_TYPE_DATArc   rh   rf   r   r   r   r   Úavcodec_parameters_copyr\   Ú
start_timeÚdurationÚdispositionr   r2   r~   ÚdictÚmetadatar€   r�   )r)   r˜   rH   r”   r   r‰   rŠ   r‹   s           r&   rž   z7OutputContainer._add_stream_without_codec_from_templateW  sK  € ð "*¤Ô!6Ô!Aˆ
Ø�cÔ9½3Ô;PÐQÐQÐQÝØO¨8¬=ÐOÐOÐOñô ð õ 03Ô/FØŒH•f”kñ0
ô 0
ˆð •V”[Ò Ð ÝÐ9Ñ:Ô:Ð:å•#Ô-¨f¬o¸x¼|Ô?TÑUÔUÑVÔVÐVð $œ<Ô1ˆÔØ$œLÔ3ˆÔØ"œ,Ô/ˆŒØ%œ\Ô5ˆÔå'¨¨f°dÑ;Ô;ˆ	ØŒ×Ò 	Ñ*Ô*Ð*å! (Ô"3Ñ4Ô4ˆ	Ôà—L’L‘N”Nð 	%ð 	%‰DˆAˆqÝ�I˜q !Ñ$Ô$Ð$Ð$àÐr(   re   Úmimetyper   c                 óø  — t          j        | j        t          j        ¦  «        }|t          j        k    rt          d¦  «        ‚t           j        |j        _        t           j	        |j        _
        t          |¦  «        }|rÇt          j        t          j        t          j        |dz   ¦  «        ¦  «        }|t          j        k    rt          d¦  «        ‚t          |¦  «        D ]}||         ||<   Œd||<   t          j        t          j        |¦  «        |j        _        t          j        t          j        |¦  «        |j        _        t          j        |j        ¦  «        }t+          t          j        |d|                     ¦   «         d¦  «        ¦  «         |                     ¦   «         }	t+          t          j        |d|	d¦  «        ¦  «         t1          | |d¦  «        }
| j                             |
¦  «         |
S )a  
        Create an attachment stream and embed its payload into the container header.

        - Only supported by formats that support attachments (e.g. Matroska).
        - No per-packet muxing is required; attachments are written at header time.
        rŽ   rœ   z"Could not allocate attachment datar   s   filenames   mimetypeN)r   rf   r7   r   r   r   r¤   r"   r”   ÚAV_CODEC_ID_NONEr“   Úlenr   r   r   Úranger#   rw   r$   r!   r«   r   Úav_dict_setr�   r   r2   r~   )r)   re   r¬   r   r   Úpayload_sizer%   ÚiÚmeta_ptrÚ
mime_bytesr‰   s              r&   Úadd_attachmentzOutputContainer.add_attachmentx  sž  € õ 03Ô/FØŒH•f”kñ0
ô 0
ˆð •V”[Ò Ð ÝÐ9Ñ:Ô:Ð:å%(Ô%@ˆŒÔ"Ý#&Ô#7ˆŒÔ õ '*¨$¡i¤iˆØð 		SÝ”+�fœn­c¬m¸LÈ1Ñ<LÑ.MÔ.MÑNÔNˆCØ•f”kÒ!Ð!Ý!Ð"FÑGÔGÐGå˜<Ñ(Ô(ð !ð !�Ø˜aœ��A‘�Ø !ˆC�ÑÝ(.¬µF´NÀCÑ(HÔ(HˆFŒOÔ%Ý-3¬[½¼À\Ñ-RÔ-RˆFŒOÔ*õ ”> &¤/Ñ2Ô2ˆÝ•#”/ (¨K¸¿º¹¼ÈÑJÔJÑKÔKÐKØ—_’_Ñ&Ô&ˆ
Ý•#”/ (¨K¸ÀQÑGÔGÑHÔHÐHå'¨¨f°dÑ;Ô;ˆ	ØŒ×Ò 	Ñ*Ô*Ð*ØÐr(   c                 ó>  — t           j        }t           j        }|�ù|                     ¦   «         }t          j        |¦  «        }|t           j        k    rt          j        |¦  «        }|t           j        k    r6t          j        |¦  «        }|t           j        k    rt          d|› �¦  «        ‚|t           j        k    r|j        n|j        }t          j	        | j
        j        |t          j        ¦  «        st          | j        j        ›d|›d�¦  «        ‚t          j        | j
        |¦  «        }|t           j        k    rt!          d¦  «        ‚t           j        }|t           j        k    r“t          j        |¦  «        }|t           j        k    rt!          d¦  «        ‚| j
        j        j        t          j        z  r|xj        t          j        z  c_        t+          t          j        |j        |¦  «        ¦  «         n7t          j        |j        _        |t           j        k    r|j        |j        _        d}	|t           j        k    rt7          ||d¦  «        }	t9          | ||	¦  «        }
| j                             |
¦  «         |r|
j                              |¦  «         |
S )a4  add_data_stream(codec_name=None)

        Creates a new data stream and returns it.

        :param codec_name: Optional name of the data codec (e.g. 'klv')
        :type codec_name: str | None
        :param dict options: Stream options.
        :rtype: The new :class:`~av.data.stream.DataStream`.
        NzUnknown data codec: rV   rW   rŽ   z Could not allocate codec context)!r   r   r�   r   r�   r‘   r’   rc   ra   r`   r7   r8   rb   rd   re   rf   r   rg   r9   r{   r|   r   r}   r"   r¥   r”   r“   r   r   r2   r~   rR   r   )r)   r‚   rR   r…   r–   r•   r“   r   r†   rˆ   r‰   s              r&   Úadd_data_streamzOutputContainer.add_data_stream   sq  € õ <B¼;ˆåŒKð 	ð Ð!Ø&0×&7Ò&7Ñ&9Ô&9ÐÝÔ4Ð5EÑFÔFˆEØ�œÒ#Ð#ÝÔ8Ð9IÑJÔJ�Ø�œÒ#Ð#Ý#&Ô#EÐFVÑ#WÔ#WÐ Ø#¥v¤{Ò2Ð2Ý$Ð%H¸JÐ%HÐ%HÑIÔIÐIð $)­F¬KÒ#7Ð#7�u”x�xÐ=MÔ=PˆHÝÔ+Ø”Ô  (­CÔ,Dñô ð õ !Ø”{Ô'ÐXÐXÀJÐXÐXÐXñô ð õ
 03Ô/FÀtÄxÐQVÑ/WÔ/WˆØ•V”[Ò Ð ÝÐ9Ñ:Ô:Ð:õ 39´+ˆØ•F”KÒÐÝÔ,¨UÑ3Ô3ˆCØ•f”kÒ!Ð!Ý!Ð"DÑEÔEÐEð ŒxÔÔ%­Ô(>Ñ>ð =Ø�	”	�SÔ<Ñ<�	”	õ •cÔ9¸&¼/È3ÑOÔOÑPÔPÐPÐPõ *-Ô)>ˆFŒOÔ&Ø¥6¤;Ò.Ð.Ø+;Ô+>�”Ô(ð 15ÐØ•&”+ÒÐÝ1°#°u¸dÑCÔCÐå'¨¨fÐ6FÑGÔGˆ	ØŒ×Ò 	Ñ*Ô*Ð*àð 	.ØÔ×$Ò$ WÑ-Ô-Ð-àÐr(   c                 óX  ‡— | j         dz  rdS t          ¦   «         Š| j        D ]¦}|j        }|�‡|j        s€| j                             ¦   «         D ] \  }}|j                             ||¦  «         Œ!|j        dz  s<| 	                    ¦   «          | j        D ] }||j        vr‰ 
                    |¦  «         Œ!|                     ¦   «          Œ§t          j        | j        €| j        nd¦  «        }|}| j        j        t$          j        k    rg| j        j        j        t,          j        z  sIt1          t-          j        t%          j        | j        j        ¦  «        |t,          j        ¦  «        ¦  «         t9          t%          j        | j        j        ¦  «        | j        | j        | j        ¬¦  «         tA          | j        | j!        ¦  «        }| "                    ¦   «         }|                      t-          j#        | j        t%          j        |j        ¦  «        ¦  «        ¦  «         |D ]}||vr‰ 
                    |¦  «         Œˆfd„| j                             ¦   «         D ¦   «         }	|	r6ddl$}
|
 %                    tL          ¦  «        }| '                    d|	› �¦  «         | xj         dz  c_         dS )	z,Write the file header! Called automatically.r,   Nrœ   Ú )ÚencodingÚerrorsc                 ó$   •— i | ]\  }}|‰v¯	||“ŒS © r¾   )Ú.0rŠ   r‹   Úused_optionss      €r&   ú
<dictcomp>z2OutputContainer.start_encoding.<locals>.<dictcomp>  s0   ø€ ð 
ð 
ð 
Ù�Q˜°Q¸lÐ5JÐ5JˆAˆqÐ5JÐ5JÐ5Jr(   r   zSome options were not used: )(r3   Úsetr2   r�   Úis_openrR   r€   Ú
setdefaultr¡   ÚopenÚaddÚ_finalize_for_outputÚosÚfsencoder4   re   r7   r<   r   r   r8   r9   r   r:   r   Ú	avio_openr!   ÚAVIO_FLAG_WRITEr   r«   Úmetadata_encodingÚmetadata_errorsr
   Úcontainer_optionsÚcopyÚavformat_write_headerÚloggingÚ	getLoggerÚ__name__Úwarning)r)   r   r†   rŠ   r‹   Úname_objre   Úall_optionsrR   Úunused_optionsrÑ   ÚlogrÀ   s               @r&   Ústart_encodingzOutputContainer.start_encodingç  s¶  ø€ ð Œ<˜!Ñð 	ØˆFõ  ™EœEˆð ”lð 	*ð 	*ˆFØÔ&ˆCØˆ s¤{ˆØ œL×.Ò.Ñ0Ô0ð 1ð 1‘D�A�qØ”K×*Ò*¨1¨aÑ0Ô0Ð0Ð0àœ¨Ñ)ð 0Ø—H’H‘J”J�Jð "œ\ð 0ð 0˜Ø C¤KÐ/Ð/Ø(×,Ò,¨QÑ/Ô/Ð/øà×'Ò'Ñ)Ô)Ð)Ð)õ œ+°4´9Ð3D d¤i iÈ"ÑMÔMˆØ&ˆØŒ8Œ;�&œ+Ò%Ð%¨d¬hÔ.>Ô.DÅsÔGWÑ.WÐ%ÝÝ”�fœn¨T¬X¬[Ñ9Ô9¸4ÅÔATÑUÔUñô ð õ
 	ÝŒN˜4œ8Ô,Ñ-Ô-ØŒMØÔ+ØÔ'ð		
ñ 	
ô 	
ð 	
õ #-¨T¬\¸4Ô;QÑ"RÔ"RˆØ)×.Ò.Ñ0Ô0ˆØ�Š•sÔ0°´½6¼>È'Ì+Ñ;VÔ;VÑWÔWÑXÔXÐXð ð 	$ð 	$ˆAØ˜ÐÐØ× Ò  Ñ#Ô#Ð#øð
ð 
ð 
ð 
Ø!œ\×/Ò/Ñ1Ô1ð
ñ 
ô 
ˆð ð 	IØˆNˆNˆNà×#Ò#¥HÑ-Ô-ˆCØ�KŠKÐG°~ÐGÐGÑHÔHÐHàˆŒ˜ÑˆŒˆˆr(   c                 ó^  — t          ¦   «         }t          j        }t          j        }	 t          j        t          j        |¦  «        ¦  «        }|t          j        k    rnNt          j        | j        j        |j	        t          j
        ¦  «        dk    r|                     |j        ¦  «         Œ…|S )zC
        Returns a set of all codecs this format supports.
        Trœ   )rÂ   r   r   r   Úav_codec_iterater!   r`   r7   r8   ra   rb   rÆ   re   )r)   Úresultr…   r™   s       r&   Úsupported_codecsz OutputContainer.supported_codecs(  sž   € õ
 ‘e”eˆÝ;A¼;ˆÝ &¤ˆð	'ÝÔ(­¬¸Ñ)?Ô)?Ñ@Ô@ˆEØ�œÒ#Ð#Øõ Ô(Ø”HÔ$ e¤hµÔ0Hñô ð òð ð
 —
’
˜5œ:Ñ&Ô&Ð&ð	'ð ˆr(   c                 óH   — t          j        | j        j        j        ¦  «        S )zL
        Returns the default video codec this container recommends.
        )r   Úavcodec_get_namerd   ÚoptrÚvideo_codecrL   s    r&   Údefault_video_codecz#OutputContainer.default_video_codec@  ó   € õ
 Ô# D¤KÔ$4Ô$@ÑAÔAÐAr(   c                 óH   — t          j        | j        j        j        ¦  «        S )zL
        Returns the default audio codec this container recommends.
        )r   rß   rd   rà   Úaudio_codecrL   s    r&   Údefault_audio_codecz#OutputContainer.default_audio_codecG  rã   r(   c                 óH   — t          j        | j        j        j        ¦  «        S )zO
        Returns the default subtitle codec this container recommends.
        )r   rß   rd   rà   Úsubtitle_codecrL   s    r&   Údefault_subtitle_codecz&OutputContainer.default_subtitle_codecN  s   € õ
 Ô# D¤KÔ$4Ô$CÑDÔDÐDr(   c                 ó$   — t          | ¦  «         d S rC   rK   rL   s    r&   ÚclosezOutputContainer.closeU  rN   r(   c                 ó’   — t          |t          ¦  «        r|                      |¦  «         d S |D ]}|                      |¦  «         Œd S rC   )Ú
isinstancer   Úmux_one)r)   Úpacketsr>   s      r&   ÚmuxzOutputContainer.muxX  s\   € õ �g�vÑ&Ô&ð 	%Ø�LŠL˜Ñ!Ô!Ð!Ð!Ð!à!ð %ð %�Ø—’˜VÑ$Ô$Ð$Ð$ð%ð %r(   r>   c                 ór   — | j         dz  s|                      |¦  «        rd S |                      |¦  «         d S )Nr,   )r3   Ú_buffer_for_extradatar1   )r)   r>   s     r&   rî   zOutputContainer.mux_onea  sC   € Ø”˜qÑ ð 	 d×&@Ò&@ÀÑ&HÔ&Hð 	ØˆFà�Š�fÑÔÐÐÐr(   c                 óZ  — |                       ¦   «          |j        j        dk     s7t          j        t          j        |j        j        ¦  «        | j        j        k    rt          d¦  «        ‚| j        j        |j        j                 }| 	                    |j
        ¦  «         |                      t          j        | j        |j        ¦  «        ¦  «         t          j        5  t          j        | j        | j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   |                      |¦  «         d S )Nr   zBad Packet stream_index.)rÙ   r7   Ústream_indexr   r   ÚuintÚ
nb_streamsrc   r2   Ú_rebase_timer\   r   r   Úav_packet_refr/   rE   Úav_interleaved_write_frame)r)   r>   r   Úrets       r&   r1   zOutputContainer._mux_oneg  sD  € à×ÒÑÔÐð ŒJÔ# aÒ'Ð'ÝŒ{�6œ;¨¬
Ô(?Ñ@Ô@ÀDÄHÔDWÒWÐWåÐ7Ñ8Ô8Ð8à/3¬xÔ/?ÀÄ
Ô@WÔ/XˆØ×Ò˜FÔ,Ñ-Ô-Ð-ð 	�Š•sÔ(¨¬¸&¼*ÑEÔEÑFÔFÐFåŒ\ð 	Xð 	XÝ!Ô<¸T¼XÀtÄÑWÔWˆCð	Xð 	Xð 	Xñ 	Xô 	Xð 	Xð 	Xð 	Xð 	Xð 	Xð 	Xøøøð 	Xð 	Xð 	Xð 	Xà�Š�sÑÔÐÐÐs   Ã DÄDÄDc                 ó  — | j         dz  s–| xj         dz  c_         | j        j        j        t          j        z  rh| j        D ]`}|j        €|j        j        j	        t          j        k    rŒ)	 t          d|¬¦  «        }n# t          $ r Y ŒHw xY w|| j        |j        j        <   Œa| j        sdS |                      |¦  «         | j                             |¦  «         | j        rdS | j        }g | _        |D ]}|                      |¦  «         ŒdS )z’Buffer ``packet`` until extradata is known for all mux streams that
        need it. Returns True if the packet was buffered (caller should stop).é   NÚextract_extradata)Ú	in_streamFT)r3   r7   r8   r9   r   r{   r2   r�   r"   r#   r   r   r   Ú	ExceptionrD   ÚindexÚ_try_extract_extradatar0   Úappendr1   )r)   r>   r   Úbsfr=   Úbuffered_packets         r&   rò   z%OutputContainer._buffer_for_extradata}  sN  € ð ”˜rÑ!ð 	AØˆLŒL˜BÑˆLŒLØŒxÔÔ%­Ô(>Ñ>ð Aà"œlð Að A�FàÔ,Ð8Ø!œ:Ô.Ô8½F¼KÒGÐGà ð!Ý4Ø/¸6ðñ ô ˜˜øõ %ð !ð !ð !Ø ˜ð!øøøà=@�DÔ(¨¬Ô)9Ñ:Ð:àÔ#ð 	Ø�5à×#Ò# FÑ+Ô+Ð+ØÔ×%Ò% fÑ-Ô-Ð-ØÔð 	Ø�4ð Ô/ˆØ!#ˆÔà'ð 	+ð 	+ˆOØ�MŠM˜/Ñ*Ô*Ð*Ð*Øˆts   Á*A<Á<
B	ÂB	c                 ó¤  — |j         j        }|| j        vrd S | j        |         }|j         }t          j        ¦   «         }|t
          j        k    rt          d¦  «        ‚d}	 t          j        ||j         ¦  «        dk     r1	 t          j	        t          j
        |¦  «        ¦  «         | j        |= d S t          j        ||¦  «        dk     rEt          j        |¦  «         	 t          j	        t          j
        |¦  «        ¦  «         | j        |= d S t          j        ||¦  «        dk    rÈt          j        |t          j        t          j
        |¦  «        ¦  «        }|t
          j        k    rY|dk    rSt!          | j         j        |         |t          j        t
          j        |¦  «        ¦  «         t          j        |¦  «         n-t          j        |¦  «         t          j        ||¦  «        dk    °Èt          j	        t          j
        |¦  «        ¦  «         | j        |= d S # t          j	        t          j
        |¦  «        ¦  «         | j        |= w xY w)NzCould not allocate packetr   )r7   rô   rD   r   rF   r   r   r   rø   rP   r!   Úav_bsf_send_packetÚav_packet_unrefÚav_bsf_receive_packetÚav_packet_get_side_dataÚAV_PKT_DATA_NEW_EXTRADATAr'   r2   r   rw   )r)   r>   ÚidxÚbsf_wrapperr  Útmpr   Úsds           r&   r  z&OutputContainer._try_extract_extradata£  sB  € à œ*Ô1ˆØ�dÔ*Ð*Ð*ØˆFà.2Ô.BÀ3Ô.GˆØ0;´ˆå,/Ô,?Ñ,AÔ,AˆØ•&”+ÒÐÝÐ9Ñ:Ô:Ð:àˆð	*åÔ   f¤jÑ1Ô1°AÒ5Ð5Øõ* Ô�vœ~¨cÑ2Ô2Ñ3Ô3Ð3ð Ô$ SÐ)Ð)Ð)õ/ Ô% c¨3Ñ/Ô/°!Ò3Ð3ÝÔ# CÑ(Ô(Ð(Øõ" Ô�vœ~¨cÑ2Ô2Ñ3Ô3Ð3ð Ô$ SÐ)Ð)Ð)õ! Ô+¨C°Ñ5Ô5¸Ò:Ð:ÝÔ0Ø�Ô6½¼ÀtÑ8LÔ8Lñô �ð �œÒ$Ð$¨°ª¨Ý+ØœÔ(¨Ô-¨rµ6´;½v¼zÈ4Ñ3PÔ3Pñô ð õ Ô'¨Ñ,Ô,Ð,ØÝÔ# CÑ(Ô(Ð(õ Ô+¨C°Ñ5Ô5¸Ò:Ð:õ Ô�vœ~¨cÑ2Ô2Ñ3Ô3Ð3ð Ô$ SÐ)Ð)Ð)øõ	 Ô�vœ~¨cÑ2Ô2Ñ3Ô3Ð3ð Ô$ SÐ)Ð)Ð)Ð)Ð)s   Á!H Â0-H ÄC!H È0I)NNNrC   )NN)"rÓ   Ú
__module__Ú__qualname__rI   rM   rQ   rª   r   r~   Ústrr   r—   Úboolr¢   rž   Úbytesr¶   r¸   r   ÚccallrÙ   ÚpropertyrÝ   râ   ræ   ré   rë   rð   r   rî   Úcfuncr1   rò   r  r¾   r(   r&   rA   rA   B   s·  € € € € € ð4ð 4ð 4ðð ð ð@ð @ð @ð Ø#Ø"&ðpð pð ˜‘ð	pð
 ˜4‘ðpð pð pð pðdKð K¨ð KÀfð Kð Kð Kð Kð\ 7;ðCð CØðCØ(,¨t©ðCð Cð Cð CðJØðà	ðð ð ð ðB& 3ð &°#ð &¸Uð &ð &ð &ð &ðPEð E¸¸t¹ð Eð Eð Eð EðN „\ð>ð >ñ „\ð>ð@ ðð ñ „Xðð. ðBð Bñ „XðBð ðBð Bñ „XðBð ðEð Eñ „XðEðð ð ð%ð %ð %ð˜fð ð ð ð ð „\ð˜vð ð ð ñ „\ðð* „\ð#¨Fð #ð #ð #ñ „\ð#ðJ „\ð**¨Vð **ð **ð **ñ „\ð**ð **ð **r(   rA   )+rÈ   r   Úcython.cimportsr   r   Úcython.cimports.av.bitstreamr   Úcython.cimports.av.codec.codecr   Ú cython.cimports.av.codec.contextr   r   Ú cython.cimports.av.codec.hwaccelr   Ú$cython.cimports.av.container.streamsr	   Úcython.cimports.av.dictionaryr
   Úcython.cimports.av.errorr   Úcython.cimports.av.packetr   Úcython.cimports.av.streamr   r   Úcython.cimports.av.utilsr   r   Úcython.cimports.libc.stdintr   Úcython.cimports.libc.stringr   r   r  rs   ÚAVStreamrw   r'   rA   r?   ÚfinalÚcclassÚ	Containerr¾   r(   r&   ú<module>r(     sè  ðØ 	€	€	€	à €€€Ø (Ð (Ð (Ð (Ð (Ð (Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø @Ð @Ð @Ð @Ð @Ð @Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø .Ð .Ð .Ð .Ð .Ð .Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ /Ð /Ð /Ð /Ð /Ð /Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6ð „ð*ØŒN˜3œ<Ô(ð*à
Œ.˜Ô
!ð*ð Œ*ð*ð *ð *ñ „ð*ð& „ð�ð ð ð ñ „ðð4 „Ø„ðJ
*ð J
*ð J
*ð J
*ð J
*�iñ J
*ô J
*ñ „ñ „ðJ
*ð J
*ð J
*r(   