€•#Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ2/translations/zh_CN/driver-api/media/drivers/vidtv”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/zh_TW/driver-api/media/drivers/vidtv”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/it_IT/driver-api/media/drivers/vidtv”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/ja_JP/driver-api/media/drivers/vidtv”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/ko_KR/driver-api/media/drivers/vidtv”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/pt_BR/driver-api/media/drivers/vidtv”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/sp_SP/driver-api/media/drivers/vidtv”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒL/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ vidtv: Virtual Digital TV driver”h]”hŒ vidtv: Virtual Digital TV driver”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒ@Author: Daniel W. S. Almeida , June 2020.”h]”(hŒAuthor: Daniel W. S. Almeida <”…”�”}”(hhßh²hh³Nh´NubhŒ reference”“”)�”}”(hŒdwlsalmeida@gmail.com”h]”hŒdwlsalmeida@gmail.com”…”�”}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:dwlsalmeida@gmail.com”uh1hçhhßubhŒ >, June 2020.”…”�”}”(hhßh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Background”h]”hŒ Background”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´K ubhÞ)�”}”(hŒÇVidtv is a virtual DVB driver that aims to serve as a reference for driver writers by serving as a template. It also validates the existing media DVB APIs, thus helping userspace application writers.”h]”hŒÇVidtv is a virtual DVB driver that aims to serve as a reference for driver writers by serving as a template. It also validates the existing media DVB APIs, thus helping userspace application writers.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hjh²hubhÞ)�”}”(hŒCurrently, it consists of:”h]”hŒCurrently, it consists of:”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjh²hubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ¨A fake tuner driver, which will report a bad signal quality if the chosen frequency is too far away from a table of valid frequencies for a particular delivery system. ”h]”hÞ)�”}”(hŒ§A fake tuner driver, which will report a bad signal quality if the chosen frequency is too far away from a table of valid frequencies for a particular delivery system.”h]”hŒ§A fake tuner driver, which will report a bad signal quality if the chosen frequency is too far away from a table of valid frequencies for a particular delivery system.”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hj2h²hh³hÇh´Nubj6)�”}”(hŒ½A fake demod driver, which will constantly poll the fake signal quality returned by the tuner, simulating a device that can lose/reacquire a lock on the signal depending on the CNR levels. ”h]”hÞ)�”}”(hŒ¼A fake demod driver, which will constantly poll the fake signal quality returned by the tuner, simulating a device that can lose/reacquire a lock on the signal depending on the CNR levels.”h]”hŒ¼A fake demod driver, which will constantly poll the fake signal quality returned by the tuner, simulating a device that can lose/reacquire a lock on the signal depending on the CNR levels.”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hj2h²hh³hÇh´Nubj6)�”}”(hŒåA fake bridge driver, which is the module responsible for modprobing the fake tuner and demod modules and implementing the demux logic. This module takes parameters at initialization that will dictate how the simulation behaves. ”h]”hÞ)�”}”(hŒäA fake bridge driver, which is the module responsible for modprobing the fake tuner and demod modules and implementing the demux logic. This module takes parameters at initialization that will dictate how the simulation behaves.”h]”hŒäA fake bridge driver, which is the module responsible for modprobing the fake tuner and demod modules and implementing the demux logic. This module takes parameters at initialization that will dictate how the simulation behaves.”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hj2h²hh³hÇh´Nubj6)�”}”(hX«Code responsible for encoding a valid MPEG Transport Stream, which is then passed to the bridge driver. This fake stream contains some hardcoded content. For now, we have a single, audio-only channel containing a single MPEG Elementary Stream, which in turn contains a SMPTE 302m encoded sine-wave. Note that this particular encoder was chosen because it is the easiest way to encode PCM audio data in a MPEG Transport Stream. ”h]”hÞ)�”}”(hXªCode responsible for encoding a valid MPEG Transport Stream, which is then passed to the bridge driver. This fake stream contains some hardcoded content. For now, we have a single, audio-only channel containing a single MPEG Elementary Stream, which in turn contains a SMPTE 302m encoded sine-wave. Note that this particular encoder was chosen because it is the easiest way to encode PCM audio data in a MPEG Transport Stream.”h]”hXªCode responsible for encoding a valid MPEG Transport Stream, which is then passed to the bridge driver. This fake stream contains some hardcoded content. For now, we have a single, audio-only channel containing a single MPEG Elementary Stream, which in turn contains a SMPTE 302m encoded sine-wave. Note that this particular encoder was chosen because it is the easiest way to encode PCM audio data in a MPEG Transport Stream.”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hj2h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1j0h³hÇh´Khjh²hubeh}”(h]”Œ background”ah ]”h"]”Œ background”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒBuilding vidtv”h]”hŒBuilding vidtv”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj§h²hh³hÇh´K'ubhÞ)�”}”(hŒXvidtv is a test driver and thus is **not** enabled by default when compiling the kernel.”h]”(hŒ#vidtv is a test driver and thus is ”…”�”}”(hj¸h²hh³Nh´NubhŒstrong”“”)�”}”(hŒ**not**”h]”hŒnot”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj¸ubhŒ. enabled by default when compiling the kernel.”…”�”}”(hj¸h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K(hj§h²hubhÞ)�”}”(hŒ(In order to enable compilation of vidtv:”h]”hŒ(In order to enable compilation of vidtv:”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K+hj§h²hubj1)�”}”(hhh]”(j6)�”}”(hŒ!Enable **DVB_TEST_DRIVERS**, then”h]”hÞ)�”}”(hjíh]”(hŒEnable ”…”�”}”(hjïh²hh³Nh´NubjÁ)�”}”(hŒ**DVB_TEST_DRIVERS**”h]”hŒDVB_TEST_DRIVERS”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjïubhŒ, then”…”�”}”(hjïh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K-hjëubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hjèh²hh³hÇh´Nubj6)�”}”(hŒEnable **DVB_VIDTV** ”h]”hÞ)�”}”(hŒEnable **DVB_VIDTV**”h]”(hŒEnable ”…”�”}”(hjh²hh³Nh´NubjÁ)�”}”(hŒ **DVB_VIDTV**”h]”hŒ DVB_VIDTV”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K.hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hjèh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j�jžuh1j0h³hÇh´K-hj§h²hubhÞ)�”}”(hŒ:When compiled as a module, expect the following .ko files:”h]”hŒ:When compiled as a module, expect the following .ko files:”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K0hj§h²hubj1)�”}”(hhh]”(j6)�”}”(hŒdvb_vidtv_tuner.ko ”h]”hÞ)�”}”(hŒdvb_vidtv_tuner.ko”h]”hŒdvb_vidtv_tuner.ko”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K2hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hjNh²hh³hÇh´Nubj6)�”}”(hŒdvb_vidtv_demod.ko ”h]”hÞ)�”}”(hŒdvb_vidtv_demod.ko”h]”hŒdvb_vidtv_demod.ko”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K4hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hjNh²hh³hÇh´Nubj6)�”}”(hŒdvb_vidtv_bridge.ko ”h]”hÞ)�”}”(hŒdvb_vidtv_bridge.ko”h]”hŒdvb_vidtv_bridge.ko”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K6hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hjNh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j�jžuh1j0h³hÇh´K2hj§h²hubeh}”(h]”Œbuilding-vidtv”ah ]”h"]”Œbuilding vidtv”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K'ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Running vidtv”h]”hŒ Running vidtv”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj§h²hh³hÇh´K9ubhÞ)�”}”(hŒ When compiled as a module, run::”h]”hŒWhen compiled as a module, run:”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K:hj§h²hubhŒ literal_block”“”)�”}”(hŒmodprobe vidtv”h]”hŒmodprobe vidtv”…”�”}”hjÈsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´Khj§h²hubhÞ)�”}”(hŒ5By default, it will accept the following frequencies:”h]”hŒ5By default, it will accept the following frequencies:”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KAhj§h²hubhŒ block_quote”“”)�”}”(hŒ5- 474 MHz for DVB-T/T2/C; - 11,362 GHz for DVB-S/S2. ”h]”j1)�”}”(hhh]”(j6)�”}”(hŒ474 MHz for DVB-T/T2/C;”h]”hÞ)�”}”(hjýh]”hŒ474 MHz for DVB-T/T2/C;”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KChjûubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hjøubj6)�”}”(hŒ11,362 GHz for DVB-S/S2. ”h]”hÞ)�”}”(hŒ11,362 GHz for DVB-S/S2.”h]”hŒ11,362 GHz for DVB-S/S2.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KDhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hjøubeh}”(h]”h ]”h"]”h$]”h&]”j�jžuh1j0h³hÇh´KChjôubah}”(h]”h ]”h"]”h$]”h&]”uh1jòh³hÇh´KChj§h²hubhÞ)�”}”(hŒˆFor satellite systems, the driver simulates an universal extended LNBf, with frequencies at Ku-Band, ranging from 10.7 GHz to 12.75 GHz.”h]”hŒˆFor satellite systems, the driver simulates an universal extended LNBf, with frequencies at Ku-Band, ranging from 10.7 GHz to 12.75 GHz.”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KFhj§h²hubhÞ)�”}”(hŒ?You can optionally define some command-line arguments to vidtv.”h]”hŒ?You can optionally define some command-line arguments to vidtv.”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KIhj§h²hubeh}”(h]”Œ running-vidtv”ah ]”h"]”Œ running vidtv”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K9ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒCommand-line arguments to vidtv”h]”hŒCommand-line arguments to vidtv”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjZh²hh³hÇh´KLubhÞ)�”}”(hŒ?Below is a list of all arguments that can be supplied to vidtv:”h]”hŒ?Below is a list of all arguments that can be supplied to vidtv:”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KMhjZh²hubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒÜdrop_tslock_prob_on_low_snr Probability of losing the TS lock if the signal quality is bad. This probability be used by the fake demodulator driver to eventually return a status of 0 when the signal quality is not good. ”h]”(hŒterm”“”)�”}”(hŒdrop_tslock_prob_on_low_snr”h]”hŒdrop_tslock_prob_on_low_snr”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´KShj€ubhŒ definition”“”)�”}”(hhh]”hÞ)�”}”(hŒ¿Probability of losing the TS lock if the signal quality is bad. This probability be used by the fake demodulator driver to eventually return a status of 0 when the signal quality is not good.”h]”hŒ¿Probability of losing the TS lock if the signal quality is bad. This probability be used by the fake demodulator driver to eventually return a status of 0 when the signal quality is not good.”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KPhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´KShj{ubj)�”}”(hŒárecover_tslock_prob_on_good_snr: Probability recovering the TS lock when the signal improves. This probability be used by the fake demodulator driver to eventually return a status of 0x1f when/if the signal quality improves. ”h]”(j…)�”}”(hŒ recover_tslock_prob_on_good_snr:”h]”hŒ recover_tslock_prob_on_good_snr:”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´KXhj³ubj•)�”}”(hhh]”hÞ)�”}”(hŒ¿Probability recovering the TS lock when the signal improves. This probability be used by the fake demodulator driver to eventually return a status of 0x1f when/if the signal quality improves.”h]”hŒ¿Probability recovering the TS lock when the signal improves. This probability be used by the fake demodulator driver to eventually return a status of 0x1f when/if the signal quality improves.”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KVhjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´KXhj{h²hubj)�”}”(hŒAmock_power_up_delay_msec Simulate a power up delay. Default: 0. ”h]”(j…)�”}”(hŒmock_power_up_delay_msec”h]”hŒmock_power_up_delay_msec”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´K[hjâubj•)�”}”(hhh]”hÞ)�”}”(hŒ'Simulate a power up delay. Default: 0.”h]”hŒ'Simulate a power up delay. Default: 0.”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K[hjôubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´K[hj{h²hubj)�”}”(hŒ8mock_tune_delay_msec Simulate a tune delay. Default 0. ”h]”(j…)�”}”(hŒmock_tune_delay_msec”h]”hŒmock_tune_delay_msec”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´K^hjubj•)�”}”(hhh]”hÞ)�”}”(hŒ"Simulate a tune delay. Default 0.”h]”hŒ"Simulate a tune delay. Default 0.”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K^hj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´K^hj{h²hubj)�”}”(hŒDvidtv_valid_dvb_t_freqs Valid DVB-T frequencies to simulate, in Hz. ”h]”(j…)�”}”(hŒvidtv_valid_dvb_t_freqs”h]”hŒvidtv_valid_dvb_t_freqs”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´Kahj@ubj•)�”}”(hhh]”hÞ)�”}”(hŒ+Valid DVB-T frequencies to simulate, in Hz.”h]”hŒ+Valid DVB-T frequencies to simulate, in Hz.”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KahjRubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´Kahj{h²hubj)�”}”(hŒDvidtv_valid_dvb_c_freqs Valid DVB-C frequencies to simulate, in Hz. ”h]”(j…)�”}”(hŒvidtv_valid_dvb_c_freqs”h]”hŒvidtv_valid_dvb_c_freqs”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´Kdhjoubj•)�”}”(hhh]”hÞ)�”}”(hŒ+Valid DVB-C frequencies to simulate, in Hz.”h]”hŒ+Valid DVB-C frequencies to simulate, in Hz.”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kdhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´Kdhj{h²hubj)�”}”(hŒSvidtv_valid_dvb_s_freqs Valid DVB-S/S2 frequencies to simulate at Ku-Band, in kHz. ”h]”(j…)�”}”(hŒvidtv_valid_dvb_s_freqs”h]”hŒvidtv_valid_dvb_s_freqs”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´Kghjžubj•)�”}”(hhh]”hÞ)�”}”(hŒ:Valid DVB-S/S2 frequencies to simulate at Ku-Band, in kHz.”h]”hŒ:Valid DVB-S/S2 frequencies to simulate at Ku-Band, in kHz.”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kghj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjžubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´Kghj{h²hubj)�”}”(hŒNmax_frequency_shift_hz, Maximum shift in HZ allowed when tuning in a channel. ”h]”(j…)�”}”(hŒmax_frequency_shift_hz,”h]”hŒmax_frequency_shift_hz,”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´KjhjÍubj•)�”}”(hhh]”hÞ)�”}”(hŒ5Maximum shift in HZ allowed when tuning in a channel.”h]”hŒ5Maximum shift in HZ allowed when tuning in a channel.”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kjhjßubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´Kjhj{h²hubj)�”}”(hŒ=si_period_msec How often to send SI packets. Default: 40ms. ”h]”(j…)�”}”(hŒsi_period_msec”h]”hŒsi_period_msec”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´Kmhjüubj•)�”}”(hhh]”hÞ)�”}”(hŒ-How often to send SI packets. Default: 40ms.”h]”hŒ-How often to send SI packets. Default: 40ms.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kmhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´Kmhj{h²hubj)�”}”(hŒ?pcr_period_msec How often to send PCR packets. Default: 40ms. ”h]”(j…)�”}”(hŒpcr_period_msec”h]”hŒpcr_period_msec”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´Kphj+ubj•)�”}”(hhh]”hÞ)�”}”(hŒ.How often to send PCR packets. Default: 40ms.”h]”hŒ.How often to send PCR packets. Default: 40ms.”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kphj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´Kphj{h²hubj)�”}”(hŒrmux_rate_kbytes_sec Attempt to maintain this bit rate by inserting TS null packets, if necessary. Default: 4096. ”h]”(j…)�”}”(hŒmux_rate_kbytes_sec”h]”hŒmux_rate_kbytes_sec”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´KthjZubj•)�”}”(hhh]”hÞ)�”}”(hŒ]Attempt to maintain this bit rate by inserting TS null packets, if necessary. Default: 4096.”h]”hŒ]Attempt to maintain this bit rate by inserting TS null packets, if necessary. Default: 4096.”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kshjlubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjZubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´Kthj{h²hubj)�”}”(hŒ4pcr_pid, PCR PID for all channels. Default: 0x200. ”h]”(j…)�”}”(hŒpcr_pid,”h]”hŒpcr_pid,”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´Kwhj‰ubj•)�”}”(hhh]”hÞ)�”}”(hŒ*PCR PID for all channels. Default: 0x200.”h]”hŒ*PCR PID for all channels. Default: 0x200.”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kwhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´Kwhj{h²hubj)�”}”(hŒDmux_buf_sz_pkts, Size for the mux buffer in multiples of 188 bytes. ”h]”(j…)�”}”(hŒmux_buf_sz_pkts,”h]”hŒmux_buf_sz_pkts,”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´Kzhj¸ubj•)�”}”(hhh]”hÞ)�”}”(hŒ2Size for the mux buffer in multiples of 188 bytes.”h]”hŒ2Size for the mux buffer in multiples of 188 bytes.”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KzhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´Kzhj{h²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjZh²hh³hÇh´Nubeh}”(h]”Œcommand-line-arguments-to-vidtv”ah ]”h"]”Œcommand-line arguments to vidtv”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KLubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒvidtv internal structure”h]”hŒvidtv internal structure”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjõh²hh³hÇh´K}ubhÞ)�”}”(hŒ2The kernel modules are split in the following way:”h]”hŒ2The kernel modules are split in the following way:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K~hjõh²hubjz)�”}”(hhh]”(j)�”}”(hŒ5vidtv_tuner.[ch] Implements a fake tuner DVB driver. ”h]”(j…)�”}”(hŒvidtv_tuner.[ch]”h]”hŒvidtv_tuner.[ch]”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´K�hjubj•)�”}”(hhh]”hÞ)�”}”(hŒ#Implements a fake tuner DVB driver.”h]”hŒ#Implements a fake tuner DVB driver.”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´K�hjubj)�”}”(hŒ;vidtv_demod.[ch] Implements a fake demodulator DVB driver. ”h]”(j…)�”}”(hŒvidtv_demod.[ch]”h]”hŒvidtv_demod.[ch]”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´K„hjFubj•)�”}”(hhh]”hÞ)�”}”(hŒ)Implements a fake demodulator DVB driver.”h]”hŒ)Implements a fake demodulator DVB driver.”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K„hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjFubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´K„hjh²hubj)�”}”(hŒ.vidtv_bridge.[ch] Implements a bridge driver. ”h]”(j…)�”}”(hŒvidtv_bridge.[ch]”h]”hŒvidtv_bridge.[ch]”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´K‡hjuubj•)�”}”(hhh]”hÞ)�”}”(hŒImplements a bridge driver.”h]”hŒImplements a bridge driver.”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‡hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjuubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´K‡hjh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjõh²hh³hÇh´NubhÞ)�”}”(hŒ4The MPEG related code is split in the following way:”h]”hŒ4The MPEG related code is split in the following way:”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‰hjõh²hubjz)�”}”(hhh]”(j)�”}”(hŒvvidtv_ts.[ch] Code to work with MPEG TS packets, such as TS headers, adaptation fields, PCR packets and NULL packets. ”h]”(j…)�”}”(hŒ vidtv_ts.[ch]”h]”hŒ vidtv_ts.[ch]”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´K�hj»ubj•)�”}”(hhh]”hÞ)�”}”(hŒgCode to work with MPEG TS packets, such as TS headers, adaptation fields, PCR packets and NULL packets.”h]”hŒgCode to work with MPEG TS packets, such as TS headers, adaptation fields, PCR packets and NULL packets.”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŒhjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj»ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´K�hj¸ubj)�”}”(hXüvidtv_psi.[ch] This is the PSI generator. PSI packets contain general information about a MPEG Transport Stream. A PSI generator is needed so userspace apps can retrieve information about the Transport Stream and eventually tune into a (dummy) channel. Because the generator is implemented in a separate file, it can be reused elsewhere in the media subsystem. Currently vidtv supports working with 5 PSI tables: PAT, PMT, SDT, NIT and EIT. The specification for PAT and PMT can be found in *ISO 13818-1: Systems*, while the specification for the SDT, NIT, EIT can be found in *ETSI EN 300 468: Specification for Service Information (SI) in DVB systems*. It isn't strictly necessary, but using a real TS file helps when debugging PSI tables. Vidtv currently tries to replicate the PSI structure found in this file: `TS1Globo.ts `_. A good way to visualize the structure of streams is by using `DVBInspector `_. ”h]”(j…)�”}”(hŒvidtv_psi.[ch]”h]”hŒvidtv_psi.[ch]”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´K¦hjêubj•)�”}”(hhh]”(hÞ)�”}”(hŒïThis is the PSI generator. PSI packets contain general information about a MPEG Transport Stream. A PSI generator is needed so userspace apps can retrieve information about the Transport Stream and eventually tune into a (dummy) channel.”h]”hŒïThis is the PSI generator. PSI packets contain general information about a MPEG Transport Stream. A PSI generator is needed so userspace apps can retrieve information about the Transport Stream and eventually tune into a (dummy) channel.”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjüubhÞ)�”}”(hŒkBecause the generator is implemented in a separate file, it can be reused elsewhere in the media subsystem.”h]”hŒkBecause the generator is implemented in a separate file, it can be reused elsewhere in the media subsystem.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K•hjüubhÞ)�”}”(hŒOCurrently vidtv supports working with 5 PSI tables: PAT, PMT, SDT, NIT and EIT.”h]”hŒOCurrently vidtv supports working with 5 PSI tables: PAT, PMT, SDT, NIT and EIT.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K˜hjüubhÞ)�”}”(hŒÕThe specification for PAT and PMT can be found in *ISO 13818-1: Systems*, while the specification for the SDT, NIT, EIT can be found in *ETSI EN 300 468: Specification for Service Information (SI) in DVB systems*.”h]”(hŒ2The specification for PAT and PMT can be found in ”…”�”}”(hj)h²hh³Nh´NubhŒemphasis”“”)�”}”(hŒ*ISO 13818-1: Systems*”h]”hŒISO 13818-1: Systems”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hj)ubhŒ@, while the specification for the SDT, NIT, EIT can be found in ”…”�”}”(hj)h²hh³Nh´Nubj2)�”}”(hŒL*ETSI EN 300 468: Specification for Service Information (SI) in DVB systems*”h]”hŒJETSI EN 300 468: Specification for Service Information (SI) in DVB systems”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hj)ubhŒ.”…”�”}”(hj)h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K›hjüubhÞ)�”}”(hŒæIt isn't strictly necessary, but using a real TS file helps when debugging PSI tables. Vidtv currently tries to replicate the PSI structure found in this file: `TS1Globo.ts `_.”h]”(hŒ¢It isn’t strictly necessary, but using a real TS file helps when debugging PSI tables. Vidtv currently tries to replicate the PSI structure found in this file: ”…”�”}”(hj]h²hh³Nh´Nubhè)�”}”(hŒE`TS1Globo.ts `_”h]”hŒ TS1Globo.ts”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ TS1Globo.ts”Œrefuri”Œ4https://tsduck.io/streams/brazil-isdb-tb/TS1globo.ts”uh1hçhj]ubhŒtarget”“”)�”}”(hŒ7 ”h]”h}”(h]”Œ ts1globo-ts”ah ]”h"]”Œ ts1globo.ts”ah$]”h&]”Œrefuri”jvuh1jwŒ referenced”Khj]ubhŒ.”…”�”}”(hj]h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hjüubhÞ)�”}”(hŒ~A good way to visualize the structure of streams is by using `DVBInspector `_.”h]”(hŒ=A good way to visualize the structure of streams is by using ”…”�”}”(hj‘h²hh³Nh´Nubhè)�”}”(hŒ@`DVBInspector `_”h]”hŒ DVBInspector”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ DVBInspector”juŒ.https://sourceforge.net/projects/dvbinspector/”uh1hçhj‘ubjx)�”}”(hŒ1 ”h]”h}”(h]”Œ dvbinspector”ah ]”h"]”Œ dvbinspector”ah$]”h&]”Œrefuri”j©uh1jwj†Khj‘ubhŒ.”…”�”}”(hj‘h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¥hjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”hjêubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´K¦hj¸h²hubj)�”}”(hŒ¡vidtv_pes.[ch] Implements the PES logic to convert encoder data into MPEG TS packets. These can then be fed into a TS multiplexer and eventually into userspace. ”h]”(j…)�”}”(hŒvidtv_pes.[ch]”h]”hŒvidtv_pes.[ch]”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´K«hjÍubj•)�”}”(hhh]”hÞ)�”}”(hŒ‘Implements the PES logic to convert encoder data into MPEG TS packets. These can then be fed into a TS multiplexer and eventually into userspace.”h]”hŒ‘Implements the PES logic to convert encoder data into MPEG TS packets. These can then be fed into a TS multiplexer and eventually into userspace.”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K©hjßubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´K«hj¸h²hubj)�”}”(hŒ‚vidtv_encoder.h An interface for vidtv encoders. New encoders can be added to this driver by implementing the calls in this file. ”h]”(j…)�”}”(hŒvidtv_encoder.h”h]”hŒvidtv_encoder.h”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´K¯hjüubj•)�”}”(hhh]”hÞ)�”}”(hŒqAn interface for vidtv encoders. New encoders can be added to this driver by implementing the calls in this file.”h]”hŒqAn interface for vidtv encoders. New encoders can be added to this driver by implementing the calls in this file.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K®hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´K¯hj¸h²hubj)�”}”(hXEvidtv_s302m.[ch] Implements a S302M encoder to make it possible to insert PCM audio data in the generated MPEG Transport Stream. The relevant specification is available online as *SMPTE 302M-2007: Television - Mapping of AES3 Data into MPEG-2 Transport Stream*. The resulting MPEG Elementary Stream is conveyed in a private stream with a S302M registration descriptor attached. This shall enable passing an audio signal into userspace so it can be decoded and played by media software. The corresponding decoder in ffmpeg is located in 'libavcodec/s302m.c' and is experimental. ”h]”(j…)�”}”(hŒvidtv_s302m.[ch]”h]”hŒvidtv_s302m.[ch]”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´K½hj+ubj•)�”}”(hhh]”(hÞ)�”}”(hŒôImplements a S302M encoder to make it possible to insert PCM audio data in the generated MPEG Transport Stream. The relevant specification is available online as *SMPTE 302M-2007: Television - Mapping of AES3 Data into MPEG-2 Transport Stream*.”h]”(hŒ¢Implements a S302M encoder to make it possible to insert PCM audio data in the generated MPEG Transport Stream. The relevant specification is available online as ”…”�”}”(hj@h²hh³Nh´Nubj2)�”}”(hŒQ*SMPTE 302M-2007: Television - Mapping of AES3 Data into MPEG-2 Transport Stream*”h]”hŒOSMPTE 302M-2007: Television - Mapping of AES3 Data into MPEG-2 Transport Stream”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hj@ubhŒ.”…”�”}”(hj@h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K²hj=ubhÞ)�”}”(hŒsThe resulting MPEG Elementary Stream is conveyed in a private stream with a S302M registration descriptor attached.”h]”hŒsThe resulting MPEG Elementary Stream is conveyed in a private stream with a S302M registration descriptor attached.”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¸hj=ubhÞ)�”}”(hŒÇThis shall enable passing an audio signal into userspace so it can be decoded and played by media software. The corresponding decoder in ffmpeg is located in 'libavcodec/s302m.c' and is experimental.”h]”hŒËThis shall enable passing an audio signal into userspace so it can be decoded and played by media software. The corresponding decoder in ffmpeg is located in ‘libavcodec/s302m.c’ and is experimental.”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K»hj=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”hj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³hÇh´K½hj¸h²hubj)�”}”(hXZvidtv_channel.[ch] Implements a 'channel' abstraction. When vidtv boots, it will create some hardcoded channels: #. Their services will be concatenated to populate the SDT. #. Their programs will be concatenated to populate the PAT #. Their events will be concatenated to populate the EIT #. For each program in the PAT, a PMT section will be created #. The PMT section for a channel will be assigned its streams. #. Every stream will have its corresponding encoder polled in a loop to produce TS packets. These packets may be interleaved by the muxer and then delivered to the bridge. ”h]”(j…)�”}”(hŒvidtv_channel.[ch]”h]”hŒvidtv_channel.[ch]”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³hÇh´KÑhjˆubj•)�”}”(hhh]”(hÞ)�”}”(hŒ#Implements a 'channel' abstraction.”h]”hŒ'Implements a ‘channel’ abstraction.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÀhjšubhÞ)�”}”(hŒ9When vidtv boots, it will create some hardcoded channels:”h]”hŒ9When vidtv boots, it will create some hardcoded channels:”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÂhjšubhŒenumerated_list”“”)�”}”(hhh]”(j6)�”}”(hŒ9Their services will be concatenated to populate the SDT. ”h]”hÞ)�”}”(hŒ8Their services will be concatenated to populate the SDT.”h]”hŒ8Their services will be concatenated to populate the SDT.”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÄhj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hj»ubj6)�”}”(hŒ8Their programs will be concatenated to populate the PAT ”h]”hÞ)�”}”(hŒ7Their programs will be concatenated to populate the PAT”h]”hŒ7Their programs will be concatenated to populate the PAT”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÆhjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hj»ubj6)�”}”(hŒ6Their events will be concatenated to populate the EIT ”h]”hÞ)�”}”(hŒ5Their events will be concatenated to populate the EIT”h]”hŒ5Their events will be concatenated to populate the EIT”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÈhjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hj»ubj6)�”}”(hŒ;For each program in the PAT, a PMT section will be created ”h]”hÞ)�”}”(hŒ:For each program in the PAT, a PMT section will be created”h]”hŒ:For each program in the PAT, a PMT section will be created”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÊhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hj»ubj6)�”}”(hŒ`_.”h]”(hŒhUsing the tools in v4l-utils is a great way to test and inspect the output of vidtv. It is hosted here: ”…”�”}”(hjB h²hh³Nh´Nubhè)�”}”(hŒI`v4l-utils Documentation `_”h]”hŒv4l-utils Documentation”…”�”}”(hjJ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œv4l-utils Documentation”juŒ,https://linuxtv.org/wiki/index.php/V4l-utils”uh1hçhjB ubjx)�”}”(hŒ/ ”h]”h}”(h]”Œv4l-utils-documentation”ah ]”h"]”Œv4l-utils documentation”ah$]”h&]”Œrefuri”jZ uh1jwj†KhjB ubhŒ.”…”�”}”(hjB h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kéhj1 h²hubhÞ)�”}”(hŒFrom its webpage::”h]”hŒFrom its webpage:”…”�”}”(hjr h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kíhj1 h²hubjÇ)�”}”(hXThe v4l-utils are a series of packages for handling media devices. It is hosted at http://git.linuxtv.org/v4l-utils.git, and packaged on most distributions. It provides a series of libraries and utilities to be used to control several aspect of the media boards.”h]”hXThe v4l-utils are a series of packages for handling media devices. It is hosted at http://git.linuxtv.org/v4l-utils.git, and packaged on most distributions. It provides a series of libraries and utilities to be used to control several aspect of the media boards.”…”�”}”hj€ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´Kïhj1 h²hubhÞ)�”}”(hŒ9Start by installing v4l-utils and then modprobing vidtv::”h]”hŒ8Start by installing v4l-utils and then modprobing vidtv:”…”�”}”(hjŽ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Køhj1 h²hubjÇ)�”}”(hŒmodprobe dvb_vidtv_bridge”h]”hŒmodprobe dvb_vidtv_bridge”…”�”}”hjœ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´Kúhj1 h²hubhÞ)�”}”(hŒqIf the driver is OK, it should load and its probing code will run. This will pull in the tuner and demod drivers.”h]”hŒqIf the driver is OK, it should load and its probing code will run. This will pull in the tuner and demod drivers.”…”�”}”(hjª h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kühj1 h²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒUsing dvb-fe-tool”h]”hŒUsing dvb-fe-tool”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¸ h²hh³hÇh´MubhÞ)�”}”(hŒIThe first step to check whether the demod loaded successfully is to run::”h]”hŒHThe first step to check whether the demod loaded successfully is to run:”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj¸ h²hubjÇ)�”}”(hXR$ dvb-fe-tool Device Dummy demod for DVB-T/T2/C/S/S2 (/dev/dvb/adapter0/frontend0) capabilities: CAN_FEC_1_2 CAN_FEC_2_3 CAN_FEC_3_4 CAN_FEC_4_5 CAN_FEC_5_6 CAN_FEC_6_7 CAN_FEC_7_8 CAN_FEC_8_9 CAN_FEC_AUTO CAN_GUARD_INTERVAL_AUTO CAN_HIERARCHY_AUTO CAN_INVERSION_AUTO CAN_QAM_16 CAN_QAM_32 CAN_QAM_64 CAN_QAM_128 CAN_QAM_256 CAN_QAM_AUTO CAN_QPSK CAN_TRANSMISSION_MODE_AUTO DVB API Version 5.11, Current v5 delivery system: DVBC/ANNEX_A Supported delivery systems: DVBT DVBT2 [DVBC/ANNEX_A] DVBS DVBS2 Frequency range for the current standard: From: 51.0 MHz To: 2.15 GHz Step: 62.5 kHz Tolerance: 29.5 MHz Symbol rate ranges for the current standard: From: 1.00 MBauds To: 45.0 MBauds”h]”hXR$ dvb-fe-tool Device Dummy demod for DVB-T/T2/C/S/S2 (/dev/dvb/adapter0/frontend0) capabilities: CAN_FEC_1_2 CAN_FEC_2_3 CAN_FEC_3_4 CAN_FEC_4_5 CAN_FEC_5_6 CAN_FEC_6_7 CAN_FEC_7_8 CAN_FEC_8_9 CAN_FEC_AUTO CAN_GUARD_INTERVAL_AUTO CAN_HIERARCHY_AUTO CAN_INVERSION_AUTO CAN_QAM_16 CAN_QAM_32 CAN_QAM_64 CAN_QAM_128 CAN_QAM_256 CAN_QAM_AUTO CAN_QPSK CAN_TRANSMISSION_MODE_AUTO DVB API Version 5.11, Current v5 delivery system: DVBC/ANNEX_A Supported delivery systems: DVBT DVBT2 [DVBC/ANNEX_A] DVBS DVBS2 Frequency range for the current standard: From: 51.0 MHz To: 2.15 GHz Step: 62.5 kHz Tolerance: 29.5 MHz Symbol rate ranges for the current standard: From: 1.00 MBauds To: 45.0 MBauds”…”�”}”hj× sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´Mhj¸ h²hubhÞ)�”}”(hŒGThis should return what is currently set up at the demod struct, i.e.::”h]”hŒFThis should return what is currently set up at the demod struct, i.e.:”…”�”}”(hjå h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M*hj¸ h²hubjÇ)�”}”(hXístatic const struct dvb_frontend_ops vidtv_demod_ops = { .delsys = { SYS_DVBT, SYS_DVBT2, SYS_DVBC_ANNEX_A, SYS_DVBS, SYS_DVBS2, }, .info = { .name = "Dummy demod for DVB-T/T2/C/S/S2", .frequency_min_hz = 51 * MHz, .frequency_max_hz = 2150 * MHz, .frequency_stepsize_hz = 62500, .frequency_tolerance_hz = 29500 * kHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_32 | FE_CAN_QAM_128 | FE_CAN_QAM_256 | FE_CAN_QAM_AUTO | FE_CAN_QPSK | FE_CAN_FEC_AUTO | FE_CAN_INVERSION_AUTO | FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_GUARD_INTERVAL_AUTO | FE_CAN_HIERARCHY_AUTO, } ....”h]”hXístatic const struct dvb_frontend_ops vidtv_demod_ops = { .delsys = { SYS_DVBT, SYS_DVBT2, SYS_DVBC_ANNEX_A, SYS_DVBS, SYS_DVBS2, }, .info = { .name = "Dummy demod for DVB-T/T2/C/S/S2", .frequency_min_hz = 51 * MHz, .frequency_max_hz = 2150 * MHz, .frequency_stepsize_hz = 62500, .frequency_tolerance_hz = 29500 * kHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_32 | FE_CAN_QAM_128 | FE_CAN_QAM_256 | FE_CAN_QAM_AUTO | FE_CAN_QPSK | FE_CAN_FEC_AUTO | FE_CAN_INVERSION_AUTO | FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_GUARD_INTERVAL_AUTO | FE_CAN_HIERARCHY_AUTO, } ....”…”�”}”hjó sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´M,hj¸ h²hubhÞ)�”}”(hŒœFor more information on dvb-fe-tools check its online documentation here: `dvb-fe-tool Documentation `_.”h]”(hŒJFor more information on dvb-fe-tools check its online documentation here: ”…”�”}”(hj h²hh³Nh´Nubhè)�”}”(hŒQ`dvb-fe-tool Documentation `_”h]”hŒdvb-fe-tool Documentation”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œdvb-fe-tool Documentation”juŒ2https://www.linuxtv.org/wiki/index.php/Dvb-fe-tool”uh1hçhj ubjx)�”}”(hŒ5 ”h]”h}”(h]”Œdvb-fe-tool-documentation”ah ]”h"]”Œdvb-fe-tool documentation”ah$]”h&]”Œrefuri”j uh1jwj†Khj ubhŒ.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MVhj¸ h²hubeh}”(h]”Œusing-dvb-fe-tool”ah ]”h"]”Œusing dvb-fe-tool”ah$]”h&]”uh1hÈhj1 h²hh³hÇh´MubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒUsing dvb-scan”h]”hŒUsing dvb-scan”…”�”}”(hj< h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj9 h²hh³hÇh´M[ubhÞ)�”}”(hŒMIn order to tune into a channel and read the PSI tables, we can use dvb-scan.”h]”hŒMIn order to tune into a channel and read the PSI tables, we can use dvb-scan.”…”�”}”(hjJ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M]hj9 h²hubhÞ)�”}”(hŒ]For this, one should provide a configuration file known as a 'scan file', here's an example::”h]”hŒbFor this, one should provide a configuration file known as a ‘scan file’, here’s an example:”…”�”}”(hjX h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M_hj9 h²hubjÇ)�”}”(hŒ{[Channel] FREQUENCY = 474000000 MODULATION = QAM/AUTO SYMBOL_RATE = 6940000 INNER_FEC = AUTO DELIVERY_SYSTEM = DVBC/ANNEX_A”h]”hŒ{[Channel] FREQUENCY = 474000000 MODULATION = QAM/AUTO SYMBOL_RATE = 6940000 INNER_FEC = AUTO DELIVERY_SYSTEM = DVBC/ANNEX_A”…”�”}”hjf sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´Mbhj9 h²hubhŒnote”“”)�”}”(hŒ;The parameters depend on the video standard you're testing.”h]”hÞ)�”}”(hjx h]”hŒ=The parameters depend on the video standard you’re testing.”…”�”}”(hjz h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mjhjv ubah}”(h]”h ]”h"]”h$]”h&]”uh1jt hj9 h²hh³hÇh´Nubju )�”}”(hŒëVidtv is a fake driver and does not validate much of the information in the scan file. Just specifying 'FREQUENCY' and 'DELIVERY_SYSTEM' should be enough for DVB-T/DVB-T2. For DVB-S/DVB-C however, you should also provide 'SYMBOL_RATE'.”h]”hÞ)�”}”(hŒëVidtv is a fake driver and does not validate much of the information in the scan file. Just specifying 'FREQUENCY' and 'DELIVERY_SYSTEM' should be enough for DVB-T/DVB-T2. For DVB-S/DVB-C however, you should also provide 'SYMBOL_RATE'.”h]”hŒ÷Vidtv is a fake driver and does not validate much of the information in the scan file. Just specifying ‘FREQUENCY’ and ‘DELIVERY_SYSTEM’ should be enough for DVB-T/DVB-T2. For DVB-S/DVB-C however, you should also provide ‘SYMBOL_RATE’.”…”�”}”(hj‘ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mmhj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1jt hj9 h²hh³hÇh´NubhÞ)�”}”(hŒiYou can browse scan tables online here: `dvb-scan-tables `_.”h]”(hŒ(You can browse scan tables online here: ”…”�”}”(hj¥ h²hh³Nh´Nubhè)�”}”(hŒ@`dvb-scan-tables `_”h]”hŒdvb-scan-tables”…”�”}”(hj­ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œdvb-scan-tables”juŒ+https://git.linuxtv.org/dtv-scan-tables.git”uh1hçhj¥ ubjx)�”}”(hŒ. ”h]”h}”(h]”Œdvb-scan-tables”ah ]”h"]”Œdvb-scan-tables”ah$]”h&]”Œrefuri”j½ uh1jwj†Khj¥ ubhŒ.”…”�”}”(hj¥ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mrhj9 h²hubhÞ)�”}”(hŒAAssuming this channel is named 'channel.conf', you can then run::”h]”hŒDAssuming this channel is named ‘channel.conf’, you can then run:”…”�”}”(hjÕ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Muhj9 h²hubjÇ)�”}”(hXŠ$ dvbv5-scan channel.conf dvbv5-scan ~/vidtv.conf ERROR command BANDWIDTH_HZ (5) not found during retrieve Cannot calc frequency shift. Either bandwidth/symbol-rate is unavailable (yet). Scanning frequency #1 330000000 (0x00) Signal= -68.00dBm Scanning frequency #2 474000000 Lock (0x1f) Signal= -34.45dBm C/N= 33.74dB UCB= 0 Service Beethoven, provider LinuxTV.org: digital television”h]”hXŠ$ dvbv5-scan channel.conf dvbv5-scan ~/vidtv.conf ERROR command BANDWIDTH_HZ (5) not found during retrieve Cannot calc frequency shift. Either bandwidth/symbol-rate is unavailable (yet). Scanning frequency #1 330000000 (0x00) Signal= -68.00dBm Scanning frequency #2 474000000 Lock (0x1f) Signal= -34.45dBm C/N= 33.74dB UCB= 0 Service Beethoven, provider LinuxTV.org: digital television”…”�”}”hjã sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´Mwhj9 h²hubhÞ)�”}”(hŒ’For more information on dvb-scan, check its documentation online here: `dvb-scan Documentation `_.”h]”(hŒGFor more information on dvb-scan, check its documentation online here: ”…”�”}”(hjñ h²hh³Nh´Nubhè)�”}”(hŒJ`dvb-scan Documentation `_”h]”hŒdvb-scan Documentation”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œdvb-scan Documentation”juŒ.https://www.linuxtv.org/wiki/index.php/Dvbscan”uh1hçhjñ ubjx)�”}”(hŒ1 ”h]”h}”(h]”Œdvb-scan-documentation”ah ]”h"]”Œdvb-scan documentation”ah$]”h&]”Œrefuri”j uh1jwj†Khjñ ubhŒ.”…”�”}”(hjñ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M�hj9 h²hubeh}”(h]”Œusing-dvb-scan”ah ]”h"]”Œusing dvb-scan”ah$]”h&]”uh1hÈhj1 h²hh³hÇh´M[ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Using dvb-zap”h]”hŒ Using dvb-zap”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj) h²hh³hÇh´M…ubhÞ)�”}”(hŒèdvbv5-zap is a command line tool that can be used to record MPEG-TS to disk. The typical use is to tune into a channel and put it into record mode. The example below - which is taken from the documentation - illustrates that\ [1]_::”h]”(hŒâdvbv5-zap is a command line tool that can be used to record MPEG-TS to disk. The typical use is to tune into a channel and put it into record mode. The example below - which is taken from the documentation - illustrates that ”…”�”}”(hj: h²hh³Nh´NubhŒfootnote_reference”“”)�”}”(hŒ[1]_”h]”hŒ1”…”�”}”(hjD h²hh³Nh´Nubah}”(h]”Œid1”ah ]”h"]”h$]”h&]”Œrefid”Œid2”Œdocname”Œdriver-api/media/drivers/vidtv”uh1jB hj: Œresolved”KubhŒ:”…”�”}”(hj: h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M‡hj) h²hubjÇ)�”}”(hXw$ dvbv5-zap -c dvb_channel.conf "beethoven" -o music.ts -P -t 10 using demux 'dvb0.demux0' reading channels from file 'dvb_channel.conf' tuning to 474000000 Hz pass all PID's to TS dvb_set_pesfilter 8192 dvb_dev_set_bufsize: buffer set to 6160384 Lock (0x1f) Quality= Good Signal= -34.66dBm C/N= 33.41dB UCB= 0 postBER= 0 preBER= 1.05x10^-3 PER= 0 Lock (0x1f) Quality= Good Signal= -34.57dBm C/N= 33.46dB UCB= 0 postBER= 0 preBER= 1.05x10^-3 PER= 0 Record to file 'music.ts' started received 24587768 bytes (2401 Kbytes/sec) Lock (0x1f) Quality= Good Signal= -34.42dBm C/N= 33.89dB UCB= 0 postBER= 0 preBER= 2.44x10^-3 PER= 0”h]”hXw$ dvbv5-zap -c dvb_channel.conf "beethoven" -o music.ts -P -t 10 using demux 'dvb0.demux0' reading channels from file 'dvb_channel.conf' tuning to 474000000 Hz pass all PID's to TS dvb_set_pesfilter 8192 dvb_dev_set_bufsize: buffer set to 6160384 Lock (0x1f) Quality= Good Signal= -34.66dBm C/N= 33.41dB UCB= 0 postBER= 0 preBER= 1.05x10^-3 PER= 0 Lock (0x1f) Quality= Good Signal= -34.57dBm C/N= 33.46dB UCB= 0 postBER= 0 preBER= 1.05x10^-3 PER= 0 Record to file 'music.ts' started received 24587768 bytes (2401 Kbytes/sec) Lock (0x1f) Quality= Good Signal= -34.42dBm C/N= 33.89dB UCB= 0 postBER= 0 preBER= 2.44x10^-3 PER= 0”…”�”}”hjb sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´M‹hj) h²hubhŒfootnote”“”)�”}”(hŒ[In this example, it records 10 seconds with all program ID's stored at the music.ts file. ”h]”(hŒlabel”“”)�”}”(hŒ1”h]”hŒ1”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jv hjr ubhÞ)�”}”(hŒYIn this example, it records 10 seconds with all program ID's stored at the music.ts file.”h]”hŒ[In this example, it records 10 seconds with all program ID’s stored at the music.ts file.”…”�”}”(hj† h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M˜hjr ubeh}”(h]”jT ah ]”h"]”Œ1”ah$]”h&]”jN ajU jV uh1jp h³hÇh´M˜hj) h²hjW KubhÞ)�”}”(hŒ–The channel can be watched by playing the contents of the stream with some player that recognizes the MPEG-TS format, such as ``mplayer`` or ``vlc``.”h]”(hŒThe channel can be watched by playing the contents of the stream with some player that recognizes the MPEG-TS format, such as ”…”�”}”(hj› h²hh³Nh´NubhŒliteral”“”)�”}”(hŒ ``mplayer``”h]”hŒmplayer”…”�”}”(hj¥ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj› ubhŒ or ”…”�”}”(hj› h²hh³Nh´Nubj¤ )�”}”(hŒ``vlc``”h]”hŒvlc”…”�”}”(hj· h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj› ubhŒ.”…”�”}”(hj› h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mœhj) h²hubhÞ)�”}”(hŒ}By playing the contents of the stream one can visually inspect the workings of vidtv, e.g., to play a recorded TS file with::”h]”hŒ|By playing the contents of the stream one can visually inspect the workings of vidtv, e.g., to play a recorded TS file with:”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MŸhj) h²hubjÇ)�”}”(hŒ$ mplayer music.ts”h]”hŒ$ mplayer music.ts”…”�”}”hjÝ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´M¢hj) h²hubhÞ)�”}”(hŒ9or, alternatively, running this command on one terminal::”h]”hŒ8or, alternatively, running this command on one terminal:”…”�”}”(hjë h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M¤hj) h²hubjÇ)�”}”(hŒ3$ dvbv5-zap -c dvb_channel.conf "beethoven" -P -r &”h]”hŒ3$ dvbv5-zap -c dvb_channel.conf "beethoven" -P -r &”…”�”}”hjù sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´M¦hj) h²hubhÞ)�”}”(hŒIAnd, on a second terminal, playing the contents from DVR interface with::”h]”hŒHAnd, on a second terminal, playing the contents from DVR interface with:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M¨hj) h²hubjÇ)�”}”(hŒ $ mplayer /dev/dvb/adapter0/dvr0”h]”hŒ $ mplayer /dev/dvb/adapter0/dvr0”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´Mªhj) h²hubhÞ)�”}”(hŒÐFor more information on dvb-zap check its online documentation here: `dvb-zap Documentation `_. See also: `zap `_.”h]”(hŒEFor more information on dvb-zap check its online documentation here: ”…”�”}”(hj# h²hh³Nh´Nubhè)�”}”(hŒK`dvb-zap Documentation `_”h]”hŒdvb-zap Documentation”…”�”}”(hj+ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œdvb-zap Documentation”juŒ0https://www.linuxtv.org/wiki/index.php/Dvbv5-zap”uh1hçhj# ubjx)�”}”(hŒ3 ”h]”h}”(h]”Œdvb-zap-documentation”ah ]”h"]”Œdvb-zap documentation”ah$]”h&]”Œrefuri”j; uh1jwj†Khj# ubhŒ . See also: ”…”�”}”(hj# h²hh³Nh´Nubhè)�”}”(hŒ3`zap `_”h]”hŒzap”…”�”}”(hjM h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œzap”juŒ*https://www.linuxtv.org/wiki/index.php/Zap”uh1hçhj# ubjx)�”}”(hŒ- ”h]”h}”(h]”Œzap”ah ]”h"]”Œzap”ah$]”h&]”Œrefuri”j] uh1jwj†Khj# ubhŒ.”…”�”}”(hj# h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M¬hj) h²hubeh}”(h]”Œ using-dvb-zap”ah ]”h"]”Œ using dvb-zap”ah$]”h&]”uh1hÈhj1 h²hh³hÇh´M…ubeh}”(h]”Œtesting-vidtv-with-v4l-utils”ah ]”h"]”Œtesting vidtv with v4l-utils”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KçubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ#What can still be improved in vidtv”h]”hŒ#What can still be improved in vidtv”…”�”}”(hjˆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj… h²hh³hÇh´M³ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒAdd *debugfs* integration”h]”(hŒAdd ”…”�”}”(hj™ h²hh³Nh´Nubj2)�”}”(hŒ *debugfs*”h]”hŒdebugfs”…”�”}”(hj¡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hj™ ubhŒ integration”…”�”}”(hj™ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj– h²hh³hÇh´M¶ubhÞ)�”}”(hXAlthough frontend drivers provide DVBv5 statistics via the .read_status call, a nice addition would be to make additional statistics available to userspace via debugfs, which is a simple-to-use, RAM-based filesystem specifically designed for debug purposes.”h]”hXAlthough frontend drivers provide DVBv5 statistics via the .read_status call, a nice addition would be to make additional statistics available to userspace via debugfs, which is a simple-to-use, RAM-based filesystem specifically designed for debug purposes.”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M¸hj– h²hubhÞ)�”}”(hŒªThe logic for this would be implemented on a separate file so as not to pollute the frontend driver. These statistics are driver-specific and can be useful during tests.”h]”hŒªThe logic for this would be implemented on a separate file so as not to pollute the frontend driver. These statistics are driver-specific and can be useful during tests.”…”�”}”(hjÇ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M½hj– h²hubhÞ)�”}”(hŒŽThe Siano driver is one example of a driver using debugfs to convey driver-specific statistics to userspace and it can be used as a reference.”h]”hŒŽThe Siano driver is one example of a driver using debugfs to convey driver-specific statistics to userspace and it can be used as a reference.”…”�”}”(hjÕ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÁhj– h²hubhÞ)�”}”(hŒQThis should be further enabled and disabled via a Kconfig option for convenience.”h]”hŒQThis should be further enabled and disabled via a Kconfig option for convenience.”…”�”}”(hjã h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÅhj– h²hubeh}”(h]”Œadd-debugfs-integration”ah ]”h"]”Œadd debugfs integration”ah$]”h&]”uh1hÈhj… h²hh³hÇh´M¶ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒAdd a way to test video”h]”hŒAdd a way to test video”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjù h²hh³hÇh´MÉubhÞ)�”}”(hX{Currently, vidtv can only encode PCM audio. It would be great to implement a barebones version of MPEG-2 video encoding so we can also test video. The first place to look into is *ISO 13818-2: Information technology — Generic coding of moving pictures and associated audio information — Part 2: Video*, which covers the encoding of compressed video in MPEG Transport Streams.”h]”(hŒ³Currently, vidtv can only encode PCM audio. It would be great to implement a barebones version of MPEG-2 video encoding so we can also test video. The first place to look into is ”…”�”}”(hj h²hh³Nh´Nubj2)�”}”(hŒ~*ISO 13818-2: Information technology — Generic coding of moving pictures and associated audio information — Part 2: Video*”h]”hŒ|ISO 13818-2: Information technology — Generic coding of moving pictures and associated audio information — Part 2: Video”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hj ubhŒJ, which covers the encoding of compressed video in MPEG Transport Streams.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MËhjù h²hubhÞ)�”}”(hŒ_This might optionally use the Video4Linux2 Test Pattern Generator, v4l2-tpg, which resides at::”h]”hŒ^This might optionally use the Video4Linux2 Test Pattern Generator, v4l2-tpg, which resides at:”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÑhjù h²hubjÇ)�”}”(hŒdrivers/media/common/v4l2-tpg/”h]”hŒdrivers/media/common/v4l2-tpg/”…”�”}”hj8sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´MÔhjù h²hubeh}”(h]”Œadd-a-way-to-test-video”ah ]”h"]”Œadd a way to test video”ah$]”h&]”uh1hÈhj… h²hh³hÇh´MÉubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒAdd white noise simulation”h]”hŒAdd white noise simulation”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjNh²hh³hÇh´MØubhÞ)�”}”(hXThe vidtv tuner already has code to identify whether the chosen frequency is too far away from a table of valid frequencies. For now, this means that the demodulator can eventually lose the lock on the signal, since the tuner will report a bad signal quality.”h]”hXThe vidtv tuner already has code to identify whether the chosen frequency is too far away from a table of valid frequencies. For now, this means that the demodulator can eventually lose the lock on the signal, since the tuner will report a bad signal quality.”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÚhjNh²hubhÞ)�”}”(hŒLA nice addition is to simulate some noise when the signal quality is bad by:”h]”hŒLA nice addition is to simulate some noise when the signal quality is bad by:”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MßhjNh²hubj1)�”}”(hhh]”(j6)�”}”(hŒ›Randomly dropping some TS packets. This will trigger a continuity error if the continuity counter is updated but the packet is not passed on to the demux. ”•h]”hÞ)�”}”(hŒšRandomly dropping some TS packets. This will trigger a continuity error if the continuity counter is updated but the packet is not passed on to the demux.”h]”hŒšRandomly dropping some TS packets. This will trigger a continuity error if the continuity counter is updated but the packet is not passed on to the demux.”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Máhj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hj{h²hh³hÇh´Nubj6)�”}”(hŒ;Updating the error statistics accordingly (e.g. BER, etc). ”h]”hÞ)�”}”(hŒ:Updating the error statistics accordingly (e.g. BER, etc).”h]”hŒ:Updating the error statistics accordingly (e.g. BER, etc).”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mähj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hj{h²hh³hÇh´Nubj6)�”}”(hŒ+Simulating some noise in the encoded data. ”h]”hÞ)�”}”(hŒ*Simulating some noise in the encoded data.”h]”hŒ*Simulating some noise in the encoded data.”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mæhj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j5hj{h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j�jžuh1j0h³hÇh´MáhjNh²hubeh}”(h]”Œadd-white-noise-simulation”ah ]”h"]”Œadd white noise simulation”ah$]”h&]”uh1hÈhj… h²hh³hÇh´MØubeh}”(h]”Œ#what-can-still-be-improved-in-vidtv”ah ]”h"]”Œ#what can still be improved in vidtv”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´M³ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ'Functions and structs used within vidtv”h]”hŒ'Functions and structs used within vidtv”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÜh²hh³hÇh´MéubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œvidtv_dvb (C struct)”Œ c.vidtv_dvb”hNt”auh1jíhjÜh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ vidtv_dvb”h]”hŒdesc_signature_line”“”)�”}”(hŒstruct vidtv_dvb”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jhj h²hh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j!hj h²hh³j h´KubhŒ desc_name”“”)�”}”(hŒ vidtv_dvb”h]”hŒ desc_sig_name”“”)�”}”(hjh]”hŒ vidtv_dvb”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1j8hj4ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1j2hj h²hh³j h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1j Œsphinx_line_type”Œ declarator”hjh²hh³j h´Kubah}”(h]”jüah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jh³j h´Khjh²hubhŒ desc_content”“”)�”}”(hhh]”hÞ)�”}”(hŒVidtv bridge state”h]”hŒVidtv bridge state”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K!hjfh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjh²hh³j h´Kubeh}”(h]”h ]”(Œc”Œstruct”eh"]”h$]”h&]”Œdomain”j�Œobjtype”j‚Œdesctype”j‚Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jþh²hhjÜh³Nh´NubhŒ container”“”)�”}”(hXÙ**Definition**:: struct vidtv_dvb { struct platform_device *pdev; struct dvb_frontend *fe[NUM_FE]; struct dvb_adapter adapter; struct dvb_demux demux; struct dmxdev dmx_dev; struct dmx_frontend dmx_fe[NUM_FE]; struct i2c_adapter i2c_adapter; struct i2c_client *i2c_client_demod[NUM_FE]; struct i2c_client *i2c_client_tuner[NUM_FE]; u32 nfeeds; struct mutex feed_lock; bool streaming; struct vidtv_mux *mux; #ifdef CONFIG_MEDIA_CONTROLLER_DVB; struct media_device mdev; #endif ; }; **Members** ``pdev`` The platform device. Obtained when the bridge is probed. ``fe`` The frontends. Obtained when probing the demodulator modules. ``adapter`` Represents a DTV adapter. See 'dvb_register_adapter'. ``demux`` The demux used by the dvb_dmx_swfilter_packets() call. ``dmx_dev`` Represents a demux device. ``dmx_fe`` The frontends associated with the demux. ``i2c_adapter`` The i2c_adapter associated with the bridge driver. ``i2c_client_demod`` The i2c_clients associated with the demodulator modules. ``i2c_client_tuner`` The i2c_clients associated with the tuner modules. ``nfeeds`` The number of feeds active. ``feed_lock`` Protects access to the start/stop stream logic/data. ``streaming`` Whether we are streaming now. ``mux`` The abstraction responsible for delivering MPEG TS packets to the bridge. ``mdev`` The media_device struct for media controller support.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj’ubhŒ:”…”�”}”(hj’h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K%hjŽubjÇ)�”}”(hXstruct vidtv_dvb { struct platform_device *pdev; struct dvb_frontend *fe[NUM_FE]; struct dvb_adapter adapter; struct dvb_demux demux; struct dmxdev dmx_dev; struct dmx_frontend dmx_fe[NUM_FE]; struct i2c_adapter i2c_adapter; struct i2c_client *i2c_client_demod[NUM_FE]; struct i2c_client *i2c_client_tuner[NUM_FE]; u32 nfeeds; struct mutex feed_lock; bool streaming; struct vidtv_mux *mux; #ifdef CONFIG_MEDIA_CONTROLLER_DVB; struct media_device mdev; #endif ; };”h]”hXstruct vidtv_dvb { struct platform_device *pdev; struct dvb_frontend *fe[NUM_FE]; struct dvb_adapter adapter; struct dvb_demux demux; struct dmxdev dmx_dev; struct dmx_frontend dmx_fe[NUM_FE]; struct i2c_adapter i2c_adapter; struct i2c_client *i2c_client_demod[NUM_FE]; struct i2c_client *i2c_client_tuner[NUM_FE]; u32 nfeeds; struct mutex feed_lock; bool streaming; struct vidtv_mux *mux; #ifdef CONFIG_MEDIA_CONTROLLER_DVB; struct media_device mdev; #endif ; };”…”�”}”hj¯sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K'hjŽubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjÀh]”hŒMembers”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K:hjŽubjz)�”}”(hhh]”(j)�”}”(hŒB``pdev`` The platform device. Obtained when the bridge is probed. ”h]”(j…)�”}”(hŒ``pdev``”h]”j¤ )�”}”(hjßh]”hŒpdev”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K#hjÙubj•)�”}”(hhh]”hÞ)�”}”(hŒ8The platform device. Obtained when the bridge is probed.”h]”hŒ8The platform device. Obtained when the bridge is probed.”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jôh´K#hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jôh´K#hjÖubj)�”}”(hŒE``fe`` The frontends. Obtained when probing the demodulator modules. ”h]”(j…)�”}”(hŒ``fe``”h]”j¤ )�”}”(hjh]”hŒfe”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K$hjubj•)�”}”(hhh]”hÞ)�”}”(hŒ=The frontends. Obtained when probing the demodulator modules.”h]”hŒ=The frontends. Obtained when probing the demodulator modules.”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j-h´K$hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j-h´K$hjÖubj)�”}”(hŒB``adapter`` Represents a DTV adapter. See 'dvb_register_adapter'. ”h]”(j…)�”}”(hŒ ``adapter``”h]”j¤ )�”}”(hjQh]”hŒadapter”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjOubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K%hjKubj•)�”}”(hhh]”hÞ)�”}”(hŒ5Represents a DTV adapter. See 'dvb_register_adapter'.”h]”hŒ9Represents a DTV adapter. See ‘dvb_register_adapter’.”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jfh´K%hjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjKubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jfh´K%hjÖubj)�”}”(hŒA``demux`` The demux used by the dvb_dmx_swfilter_packets() call. ”h]”(j…)�”}”(hŒ ``demux``”h]”j¤ )�”}”(hjŠh]”hŒdemux”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K&hj„ubj•)�”}”(hhh]”hÞ)�”}”(hŒ6The demux used by the dvb_dmx_swfilter_packets() call.”h]”hŒ6The demux used by the dvb_dmx_swfilter_packets() call.”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jŸh´K&hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jŸh´K&hjÖubj)�”}”(hŒ'``dmx_dev`` Represents a demux device. ”h]”(j…)�”}”(hŒ ``dmx_dev``”h]”j¤ )�”}”(hjÃh]”hŒdmx_dev”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K'hj½ubj•)�”}”(hhh]”hÞ)�”}”(hŒRepresents a demux device.”h]”hŒRepresents a demux device.”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jØh´K'hjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jØh´K'hjÖubj)�”}”(hŒ4``dmx_fe`` The frontends associated with the demux. ”h]”(j…)�”}”(hŒ ``dmx_fe``”h]”j¤ )�”}”(hjüh]”hŒdmx_fe”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K(hjöubj•)�”}”(hhh]”hÞ)�”}”(hŒ(The frontends associated with the demux.”h]”hŒ(The frontends associated with the demux.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´K(hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjöubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jh´K(hjÖubj)�”}”(hŒC``i2c_adapter`` The i2c_adapter associated with the bridge driver. ”h]”(j…)�”}”(hŒ``i2c_adapter``”h]”j¤ )�”}”(hj5h]”hŒ i2c_adapter”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K)hj/ubj•)�”}”(hhh]”hÞ)�”}”(hŒ2The i2c_adapter associated with the bridge driver.”h]”hŒ2The i2c_adapter associated with the bridge driver.”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jJh´K)hjKubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jJh´K)hjÖubj)�”}”(hŒN``i2c_client_demod`` The i2c_clients associated with the demodulator modules. ”h]”(j…)�”}”(hŒ``i2c_client_demod``”h]”j¤ )�”}”(hjnh]”hŒi2c_client_demod”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K*hjhubj•)�”}”(hhh]”hÞ)�”}”(hŒ8The i2c_clients associated with the demodulator modules.”h]”hŒ8The i2c_clients associated with the demodulator modules.”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jƒh´K*hj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjhubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jƒh´K*hjÖubj)�”}”(hŒH``i2c_client_tuner`` The i2c_clients associated with the tuner modules. ”h]”(j…)�”}”(hŒ``i2c_client_tuner``”h]”j¤ )�”}”(hj§h]”hŒi2c_client_tuner”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K+hj¡ubj•)�”}”(hhh]”hÞ)�”}”(hŒ2The i2c_clients associated with the tuner modules.”h]”hŒ2The i2c_clients associated with the tuner modules.”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¼h´K+hj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¼h´K+hjÖubj)�”}”(hŒ'``nfeeds`` The number of feeds active. ”h]”(j…)�”}”(hŒ ``nfeeds``”h]”j¤ )�”}”(hjàh]”hŒnfeeds”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K,hjÚubj•)�”}”(hhh]”hÞ)�”}”(hŒThe number of feeds active.”h]”hŒThe number of feeds active.”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jõh´K,hjöubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÚubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jõh´K,hjÖubj)�”}”(hŒC``feed_lock`` Protects access to the start/stop stream logic/data. ”h]”(j…)�”}”(hŒ ``feed_lock``”h]”j¤ )�”}”(hjh]”hŒ feed_lock”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K-hjubj•)�”}”(hhh]”hÞ)�”}”(hŒ4Protects access to the start/stop stream logic/data.”h]”hŒ4Protects access to the start/stop stream logic/data.”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j.h´K-hj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j.h´K-hjÖubj)�”}”(hŒ,``streaming`` Whether we are streaming now. ”h]”(j…)�”}”(hŒ ``streaming``”h]”j¤ )�”}”(hjRh]”hŒ streaming”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K.hjLubj•)�”}”(hhh]”hÞ)�”}”(hŒWhether we are streaming now.”h]”hŒWhether we are streaming now.”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jgh´K.hjhubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jgh´K.hjÖubj)�”}”(hŒR``mux`` The abstraction responsible for delivering MPEG TS packets to the bridge. ”h]”(j…)�”}”(hŒ``mux``”h]”j¤ )�”}”(hj‹h]”hŒmux”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K/hj…ubj•)�”}”(hhh]”hÞ)�”}”(hŒIThe abstraction responsible for delivering MPEG TS packets to the bridge.”h]”hŒIThe abstraction responsible for delivering MPEG TS packets to the bridge.”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j h´K/hj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j h´K/hjÖubj)�”}”(hŒ>``mdev`` The media_device struct for media controller support.”h]”(j…)�”}”(hŒ``mdev``”h]”j¤ )�”}”(hjÄh]”hŒmdev”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K/hj¾ubj•)�”}”(hhh]”hÞ)�”}”(hŒ5The media_device struct for media controller support.”h]”hŒ5The media_device struct for media controller support.”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:491: ./drivers/media/test-drivers/vidtv/vidtv_bridge.h”h´K0hjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¾ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÙh´K/hjÖubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjŽubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒvidtv_channel (C struct)”Œc.vidtv_channel”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒ vidtv_channel”h]”j )�”}”(hŒstruct vidtv_channel”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjh²hh³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:493: ./drivers/media/test-drivers/vidtv/vidtv_channel.h”h´Kubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjh²hh³j+h´Kubj3)�”}”(hŒ vidtv_channel”h]”j9)�”}”(hjh]”hŒ vidtv_channel”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj:ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjh²hh³j+h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjh²hh³j+h´Kubah}”(h]”jah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j+h´Khjh²hubje)�”}”(hhh]”hÞ)�”}”(hŒA 'channel' abstraction”h]”hŒA ‘channel’ abstraction”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:493: ./drivers/media/test-drivers/vidtv/vidtv_channel.h”h´K hj]h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjh²hh³j+h´Kubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡jxjˆjxj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXõ**Definition**:: struct vidtv_channel { char *name; u16 transport_stream_id; struct vidtv_psi_table_sdt_service *service; u16 program_num; struct vidtv_psi_table_pat_program *program; struct vidtv_psi_table_pmt_stream *streams; struct vidtv_encoder *encoders; struct vidtv_psi_table_eit_event *events; struct vidtv_channel *next; }; **Members** ``name`` name of the channel ``transport_stream_id`` a number to identify the TS, chosen at will. ``service`` A _single_ service. Will be concatenated into the SDT. ``program_num`` The link between PAT, PMT and SDT. ``program`` A _single_ program with one or more streams associated with it. Will be concatenated into the PAT. ``streams`` A stream loop used to populate the PMT section for 'program' ``encoders`` A encoder loop. There must be one encoder for each stream. ``events`` Optional event information. This will feed into the EIT. ``next`` Optionally chain this channel.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj€ubhŒ:”…”�”}”(hj€h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:493: ./drivers/media/test-drivers/vidtv/vidtv_channel.h”h´K$hj|ubjÇ)�”}”(hX_struct vidtv_channel { char *name; u16 transport_stream_id; struct vidtv_psi_table_sdt_service *service; u16 program_num; struct vidtv_psi_table_pat_program *program; struct vidtv_psi_table_pmt_stream *streams; struct vidtv_encoder *encoders; struct vidtv_psi_table_eit_event *events; struct vidtv_channel *next; };”h]”hX_struct vidtv_channel { char *name; u16 transport_stream_id; struct vidtv_psi_table_sdt_service *service; u16 program_num; struct vidtv_psi_table_pat_program *program; struct vidtv_psi_table_pmt_stream *streams; struct vidtv_encoder *encoders; struct vidtv_psi_table_eit_event *events; struct vidtv_channel *next; };”…”�”}”hj�sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:493: ./drivers/media/test-drivers/vidtv/vidtv_channel.h”h´K&hj|ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hj®h]”hŒMembers”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:493: ./drivers/media/test-drivers/vidtv/vidtv_channel.h”h´K2hj|ubjz)�”}”(hhh]”(j)�”}”(hŒ``name`` name of the channel ”h]”(j…)�”}”(hŒ``name``”h]”j¤ )�”}”(hjÍh]”hŒname”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjËubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:493: ./drivers/media/test-drivers/vidtv/vidtv_channel.h”h´K+hjÇubj•)�”}”(hhh]”hÞ)�”}”(hŒname of the channel”h]”hŒname of the channel”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jâh´K+hjãubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÇubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jâh´K+hjÄubj)�”}”(hŒE``transport_stream_id`` a number to identify the TS, chosen at will. ”h]”(j…)�”}”(hŒ``transport_stream_id``”h]”j¤ )�”}”(hjh]”hŒtransport_stream_id”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:493: ./drivers/media/test-drivers/vidtv/vidtv_channel.h”h´K,hjubj•)�”}”(hhh]”hÞ)�”}”(hŒ,a number to identify the TS, chosen at will.”h]”hŒ,a number to identify the TS, chosen at will.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´K,hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jh´K,hjÄubj)�”}”(hŒC``service`` A _single_ service. Will be concatenated into the SDT. ”h]”(j…)�”}”(hŒ ``service``”h]”j¤ )�”}”(hj?h]”hŒservice”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:493: ./drivers/media/test-drivers/vidtv/vidtv_channel.h”h´K-hj9ubj•)�”}”(hhh]”hÞ)�”}”(hŒ6A _single_ service. Will be concatenated into the SDT.”h]”hŒ6A _single_ service. Will be concatenated into the SDT.”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jTh´K-hjUubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jTh´K-hjÄubj)�”}”(hŒ3``program_num`` The link between PAT, PMT and SDT. ”h]”(j…)�”}”(hŒ``program_num``”h]”j¤ )�”}”(hjxh]”hŒ program_num”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:493: ./drivers/media/test-drivers/vidtv/vidtv_channel.h”h´K.hjrubj•)�”}”(hhh]”hÞ)�”}”(hŒ"The link between PAT, PMT and SDT.”h]”hŒ"The link between PAT, PMT and SDT.”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j�h´K.hjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjrubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j�h´K.hjÄubj)�”}”(hŒo``program`` A _single_ program with one or more streams associated with it. Will be concatenated into the PAT. ”h]”(j…)�”}”(hŒ ``program``”h]”j¤ )�”}”(hj±h]”hŒprogram”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:493: ./drivers/media/test-drivers/vidtv/vidtv_channel.h”h´K0hj«ubj•)�”}”(hhh]”hÞ)�”}”(hŒbA _single_ program with one or more streams associated with it. Will be concatenated into the PAT.”h]”hŒbA _single_ program with one or more streams associated with it. Will be concatenated into the PAT.”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:493: ./drivers/media/test-drivers/vidtv/vidtv_channel.h”h´K/hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÆh´K0hjÄubj)�”}”(hŒI``streams`` A stream loop used to populate the PMT section for 'program' ”h]”(j…)�”}”(hŒ ``streams``”h]”j¤ )�”}”(hjëh]”hŒstreams”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:493: ./drivers/media/test-drivers/vidtv/vidtv_channel.h”h´K1hjåubj•)�”}”(hhh]”hÞ)�”}”(hŒ**Definition**:: struct vidtv_demod_config { u8 drop_tslock_prob_on_low_snr; u8 recover_tslock_prob_on_good_snr; }; **Members** ``drop_tslock_prob_on_low_snr`` probability of losing the lock due to low snr ``recover_tslock_prob_on_good_snr`` probability of recovering when the signal improves”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj,ubhŒ:”…”�”}”(hj,h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´K-hj(ubjÇ)�”}”(hŒjstruct vidtv_demod_config { u8 drop_tslock_prob_on_low_snr; u8 recover_tslock_prob_on_good_snr; };”h]”hŒjstruct vidtv_demod_config { u8 drop_tslock_prob_on_low_snr; u8 recover_tslock_prob_on_good_snr; };”…”�”}”hjIsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´K/hj(ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjZh]”hŒMembers”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjXubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´K4hj(ubjz)�”}”(hhh]”(j)�”}”(hŒN``drop_tslock_prob_on_low_snr`` probability of losing the lock due to low snr ”h]”(j…)�”}”(hŒ``drop_tslock_prob_on_low_snr``”h]”j¤ )�”}”(hjyh]”hŒdrop_tslock_prob_on_low_snr”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´K+hjsubj•)�”}”(hhh]”hÞ)�”}”(hŒ-probability of losing the lock due to low snr”h]”hŒ-probability of losing the lock due to low snr”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jŽh´K+hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jŽh´K+hjpubj)�”}”(hŒV``recover_tslock_prob_on_good_snr`` probability of recovering when the signal improves”h]”(j…)�”}”(hŒ#``recover_tslock_prob_on_good_snr``”h]”j¤ )�”}”(hj²h]”hŒrecover_tslock_prob_on_good_snr”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´K,hj¬ubj•)�”}”(hhh]”hÞ)�”}”(hŒ2probability of recovering when the signal improves”h]”hŒ2probability of recovering when the signal improves”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÇh´K,hjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÇh´K,hjpubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj(ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´NubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjôh]”hŒ Description”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjòubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´K0hjÜh²hubhÞ)�”}”(hŒ¬The configuration used to init the demodulator module, usually filled by a bridge driver. For vidtv, this is filled by vidtv_bridge before the demodulator module is probed.”h]”hŒ¬The configuration used to init the demodulator module, usually filled by a bridge driver. For vidtv, this is filled by vidtv_bridge before the demodulator module is probed.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´K-hjÜh²hubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒvidtv_demod_state (C struct)”Œc.vidtv_demod_state”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒvidtv_demod_state”h]”j )�”}”(hŒstruct vidtv_demod_state”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj.h²hh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´K4ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj.h²hh³j?h´K4ubj3)�”}”(hŒvidtv_demod_state”h]”j9)�”}”(hj,h]”hŒvidtv_demod_state”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjNubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj.h²hh³j?h´K4ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj*h²hh³j?h´K4ubah}”(h]”j%ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j?h´K4hj'h²hubje)�”}”(hhh]”hÞ)�”}”(hŒThe demodulator state”h]”hŒThe demodulator state”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´K8hjqh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj'h²hh³j?h´K4ubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡jŒjˆjŒj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXˆ**Definition**:: struct vidtv_demod_state { struct dvb_frontend frontend; struct vidtv_demod_config config; enum fe_status status; u16 tuner_cnr; }; **Members** ``frontend`` The frontend structure allocated by the demod. ``config`` The config used to init the demod. ``status`` the demod status. ``tuner_cnr`` current S/N ratio for the signal carrier”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj”ubhŒ:”…”�”}”(hj”h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´Khj�ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjÂh]”hŒMembers”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´KEhj�ubjz)�”}”(hhh]”(j)�”}”(hŒ<``frontend`` The frontend structure allocated by the demod. ”h]”(j…)�”}”(hŒ ``frontend``”h]”j¤ )�”}”(hjáh]”hŒfrontend”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjßubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´K:hjÛubj•)�”}”(hhh]”hÞ)�”}”(hŒ.The frontend structure allocated by the demod.”h]”hŒ.The frontend structure allocated by the demod.”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jöh´K:hj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÛubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jöh´K:hjØubj)�”}”(hŒ.``config`` The config used to init the demod. ”h]”(j…)�”}”(hŒ ``config``”h]”j¤ )�”}”(hjh]”hŒconfig”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´K;hjubj•)�”}”(hhh]”hÞ)�”}”(hŒ"The config used to init the demod.”h]”hŒ"The config used to init the demod.”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j/h´K;hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j/h´K;hjØubj)�”}”(hŒ``status`` the demod status. ”h]”(j…)�”}”(hŒ ``status``”h]”j¤ )�”}”(hjSh]”hŒstatus”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:495: ./drivers/media/test-drivers/vidtv/vidtv_demod.h”h´Kubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´Khhj:ubj•)�”}”(hhh]”hÞ)�”}”(hŒ!The encoder buffer size, in bytes”h]”hŒ!The encoder buffer size, in bytes”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jUh´KhhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jUh´KhhjŒubj)�”}”(hŒ@``encoder_buf_offset`` Our byte position in the encoder buffer. ”h]”(j…)�”}”(hŒ``encoder_buf_offset``”h]”j¤ )�”}”(hjyh]”hŒencoder_buf_offset”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´Kihjsubj•)�”}”(hhh]”hÞ)�”}”(hŒ(Our byte position in the encoder buffer.”h]”hŒ(Our byte position in the encoder buffer.”…”�”•O}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jŽh´Kihj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jŽh´KihjŒubj)�”}”(hŒ<``sample_count`` How many samples we have encoded in total. ”h]”(j…)�”}”(hŒ``sample_count``”h]”j¤ )�”}”(hj²h]”hŒ sample_count”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´Kjhj¬ubj•)�”}”(hhh]”hÞ)�”}”(hŒ*How many samples we have encoded in total.”h]”hŒ*How many samples we have encoded in total.”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÇh´KjhjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÇh´KjhjŒubj)�”}”(hŒB``access_units`` encoder payload units, used for clock references ”h]”(j…)�”}”(hŒ``access_units``”h]”j¤ )�”}”(hjëh]”hŒ access_units”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´Kkhjåubj•)�”}”(hhh]”hÞ)�”}”(hŒ0encoder payload units, used for clock references”h]”hŒ0encoder payload units, used for clock references”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j h´Kkhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjåubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j h´KkhjŒubj)�”}”(hŒW``src_buf`` The source of raw data to be encoded, encoder might set a default if null. ”h]”(j…)�”}”(hŒ ``src_buf``”h]”j¤ )�”}”(hj$ h]”hŒsrc_buf”…”�”}”(hj& h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj" ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´Kmhj ubj•)�”}”(hhh]”hÞ)�”}”(hŒJThe source of raw data to be encoded, encoder might set a default if null.”h]”hŒJThe source of raw data to be encoded, encoder might set a default if null.”…”�”}”(hj= h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´Klhj: ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j9 h´KmhjŒubj)�”}”(hŒ$``src_buf_sz`` size of **src_buf**. ”h]”(j…)�”}”(hŒ``src_buf_sz``”h]”j¤ )�”}”(hj^ h]”hŒ src_buf_sz”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj\ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´KnhjX ubj•)�”}”(hhh]”hÞ)�”}”(hŒsize of **src_buf**.”h]”(hŒsize of ”…”�”}”(hjw h²hh³Nh´NubjÁ)�”}”(hŒ **src_buf**”h]”hŒsrc_buf”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjw ubhŒ.”…”�”}”(hjw h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³js h´Knhjt ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjX ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³js h´KnhjŒubj)�”}”(hŒ6``src_buf_offset`` Our position in the source buffer. ”h]”(j…)�”}”(hŒ``src_buf_offset``”h]”j¤ )�”}”(hj© h]”hŒsrc_buf_offset”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj§ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´Kohj£ ubj•)�”}”(hhh]”hÞ)�”}”(hŒ"Our position in the source buffer.”h]”hŒ"Our position in the source buffer.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¾ h´Kohj¿ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj£ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¾ h´KohjŒubj)�”}”(hŒH``is_video_encoder`` Whether this a video encoder (as opposed to audio) ”h]”(j…)�”}”(hŒ``is_video_encoder``”h]”j¤ )�”}”(hjâ h]”hŒis_video_encoder”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´KphjÜ ubj•)�”}”(hhh]”hÞ)�”}”(hŒ2Whether this a video encoder (as opposed to audio)”h]”hŒ2Whether this a video encoder (as opposed to audio)”…”�”}”(hjû h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j÷ h´Kphjø ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÜ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j÷ h´KphjŒubj)�”}”(hŒ ``ctx`` Encoder-specific state. ”h]”(j…)�”}”(hŒ``ctx``”h]”j¤ )�”}”(hj!h]”hŒctx”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´Kqhj!ubj•)�”}”(hhh]”hÞ)�”}”(hŒEncoder-specific state.”h]”hŒEncoder-specific state.”…”�”}”(hj4!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j0!h´Kqhj1!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j0!h´KqhjŒubj)�”}”(hŒN``stream_id`` Examples: Audio streams (0xc0-0xdf), Video streams (0xe0-0xef). ”h]”(j…)�”}”(hŒ ``stream_id``”h]”j¤ )�”}”(hjT!h]”hŒ stream_id”…”�”}”(hjV!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjR!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´KshjN!ubj•)�”}”(hhh]”hÞ)�”}”(hŒ?Examples: Audio streams (0xc0-0xdf), Video streams (0xe0-0xef).”h]”hŒ?Examples: Audio streams (0xc0-0xdf), Video streams (0xe0-0xef).”…”�”}”(hjm!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´Krhjj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjN!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³ji!h´KshjŒubj)�”}”(hŒH``es_pid`` The TS PID to use for the elementary stream in this encoder. ”h]”(j…)�”}”(hŒ ``es_pid``”h]”j¤ )�”}”(hjŽ!h]”hŒes_pid”…”�”}”(hj�!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjŒ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ€/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:497: ./drivers/media/test-drivers/vidtv/vidtv_encoder.h”h´Kthjˆ!ubj•)�”}”(hhh]”hÞ)�”}”(hŒhjá&ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe SDT in use by the muxer.”h]”hŒThe SDT in use by the muxer.”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jü&h´K>hjý&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjá&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jü&h´K>hjl&ubj)�”}”(hŒ%``nit`` The NIT in use by the muxer. ”h]”(j…)�”}”(hŒ``nit``”h]”j¤ )�”}”(hj 'h]”hŒnit”…”�”}”(hj"'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K?hj'ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe NIT in use by the muxer.”h]”hŒThe NIT in use by the muxer.”…”�”}”(hj9'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j5'h´K?hj6'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j5'h´K?hjl&ubj)�”}”(hŒ$``eit`` the EIT in use by the muxer.”h]”(j…)�”}”(hŒ``eit``”h]”j¤ )�”}”(hjY'h]”hŒeit”…”�”}”(hj['h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjW'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K?hjS'ubj•)�”}”(hhh]”hÞ)�”}”(hŒthe EIT in use by the muxer.”h]”hŒthe EIT in use by the muxer.”…”�”}”(hjr'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K@hjo'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjS'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jn'h´K?hjl&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj$&ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´NubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjœ'h]”hŒ Description”…”�”}”(hjž'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjš'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KChjÜh²hubhÞ)�”}”(hŒHThis is used to store the PAT, PMT sections and SDT in use by the muxer.”h]”hŒHThis is used to store the PAT, PMT sections and SDT in use by the muxer.”…”�”}”(hj²'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K5hjÜh²hubhÞ)�”}”(hŒ„The muxer acquire these by looking into the hardcoded channels in vidtv_channel and then periodically sends the TS packets for them>”h]”hŒ„The muxer acquire these by looking into the hardcoded channels in vidtv_channel and then periodically sends the TS packets for them>”…”�”}”(hjÁ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K7hjÜh²hubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒvidtv_mux_pid_ctx (C struct)”Œc.vidtv_mux_pid_ctx”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒvidtv_mux_pid_ctx”h]”j )�”}”(hŒstruct vidtv_mux_pid_ctx”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjé'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjå'h²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K=ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷'h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjå'h²hh³jö'h´K=ubj3)�”}”(hŒvidtv_mux_pid_ctx”h]”j9)�”}”(hjã'h]”hŒvidtv_mux_pid_ctx”…”�”}”(hj (h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj(ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjå'h²hh³jö'h´K=ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjá'h²hh³jö'h´K=ubah}”(h]”jÜ'ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jö'h´K=hjÞ'h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ%Store the context for a given TS PID.”h]”hŒ%Store the context for a given TS PID.”…”�”}”(hj+(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KKhj((h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÞ'h²hh³jö'h´K=ubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡jC(jˆjC(j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX¯**Definition**:: struct vidtv_mux_pid_ctx { u16 pid; u8 cc; struct hlist_node h; }; **Members** ``pid`` The TS PID. ``cc`` The continuity counter for this PID. It is incremented on every TS pack and it will wrap around at 0xf0. If the decoder notices a sudden jump in this counter this will trigger a discontinuity state. ``h`` This is embedded in a hash table, mapping pid -> vidtv_mux_pid_ctx”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjO(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjK(ubhŒ:”…”�”}”(hjK(h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KOhjG(ubjÇ)�”}”(hŒNstruct vidtv_mux_pid_ctx { u16 pid; u8 cc; struct hlist_node h; };”h]”hŒNstruct vidtv_mux_pid_ctx { u16 pid; u8 cc; struct hlist_node h; };”…”�”}”hjh(sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KQhjG(ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjy(h]”hŒMembers”…”�”}”(hj{(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjw(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KWhjG(ubjz)�”}”(hhh]”(j)�”}”(hŒ``pid`` The TS PID. ”h]”(j…)�”}”(hŒ``pid``”h]”j¤ )�”}”(hj˜(h]”hŒpid”…”�”}”(hjš(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj–(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KMhj’(ubj•)�”}”(hhh]”hÞ)�”}”(hŒ The TS PID.”h]”hŒ The TS PID.”…”�”}”(hj±(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j­(h´KMhj®(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj’(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j­(h´KMhj�(ubj)�”}”(hŒÎ``cc`` The continuity counter for this PID. It is incremented on every TS pack and it will wrap around at 0xf0. If the decoder notices a sudden jump in this counter this will trigger a discontinuity state. ”h]”(j…)�”}”(hŒ``cc``”h]”j¤ )�”}”(hjÑ(h]”hŒcc”…”�”}”(hjÓ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÏ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KPhjË(ubj•)�”}”(hhh]”hÞ)�”}”(hŒÆThe continuity counter for this PID. It is incremented on every TS pack and it will wrap around at 0xf0. If the decoder notices a sudden jump in this counter this will trigger a discontinuity state.”h]”hŒÆThe continuity counter for this PID. It is incremented on every TS pack and it will wrap around at 0xf0. If the decoder notices a sudden jump in this counter this will trigger a discontinuity state.”…”�”}”(hjê(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KNhjç(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjË(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jæ(h´KPhj�(ubj)�”}”(hŒH``h`` This is embedded in a hash table, mapping pid -> vidtv_mux_pid_ctx”h]”(j…)�”}”(hŒ``h``”h]”j¤ )�”}”(hj )h]”hŒh”…”�”}”(hj )h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj )ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KPhj)ubj•)�”}”(hhh]”hÞ)�”}”(hŒBThis is embedded in a hash table, mapping pid -> vidtv_mux_pid_ctx”h]”hŒBThis is embedded in a hash table, mapping pid -> vidtv_mux_pid_ctx”…”�”}”(hj$)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KQhj!)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j )h´KPhj�(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjG(ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒvidtv_mux (C struct)”Œ c.vidtv_mux”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒ vidtv_mux”h]”j )�”}”(hŒstruct vidtv_mux”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hje)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhja)h²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KWubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjs)h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hja)h²hh³jr)h´KWubj3)�”}”(hŒ vidtv_mux”h]”j9)�”}”(hj_)h]”hŒ vidtv_mux”…”�”}”(hj…)h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj�)ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hja)h²hh³jr)h´KWubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj])h²hh³jr)h´KWubah}”(h]”jX)ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jr)h´KWhjZ)h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ;A muxer abstraction loosely based in libavcodec/mpegtsenc.c”h]”hŒ;A muxer abstraction loosely based in libavcodec/mpegtsenc.c”…”�”}”(hj§)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KYhj¤)h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjZ)h²hh³jr)h´KWubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡j¿)jˆj¿)j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX**Definition**:: struct vidtv_mux { struct dvb_frontend *fe; struct device *dev; struct vidtv_mux_timing timing; u32 mux_rate_kbytes_sec; unsigned long pid_ctx[1 << (( 3) - 1)]; void (*on_new_packets_available_cb)(void *priv, u8 *buf, u32 npackets); u8 *mux_buf; u32 mux_buf_sz; u32 mux_buf_offset; struct vidtv_channel *channels; struct vidtv_mux_si si; u64 num_streamed_pcr; u64 num_streamed_si; struct work_struct mpeg_thread; bool streaming; u16 pcr_pid; u16 transport_stream_id; u16 network_id; char *network_name; void *priv; }; **Members** ``fe`` The frontend structure allocated by the muxer. ``dev`` pointer to struct device. ``timing`` Keeps track of timing related information. ``mux_rate_kbytes_sec`` The bit rate for the TS, in kbytes. ``pid_ctx`` A hash table to keep track of per-PID metadata. ``on_new_packets_available_cb`` A callback to inform of new TS packets ready. ``mux_buf`` A pointer to a buffer for this muxer. TS packets are stored there and then passed on to the bridge driver. ``mux_buf_sz`` The size for 'mux_buf'. ``mux_buf_offset`` The current offset into 'mux_buf'. ``channels`` The channels associated with this muxer. ``si`` Keeps track of the PSI context. ``num_streamed_pcr`` Number of PCR packets streamed. ``num_streamed_si`` The number of PSI packets streamed. ``mpeg_thread`` Thread responsible for the muxer loop. ``streaming`` whether 'mpeg_thread' is running. ``pcr_pid`` The TS PID used for the PSI packets. All channels will share the same PCR. ``transport_stream_id`` The transport stream ID ``network_id`` The network ID ``network_name`` The network name ``priv`` Private data.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjË)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÇ)ubhŒ:”…”�”}”(hjÇ)h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K]hjÃ)ubjÇ)�”}”(hXVstruct vidtv_mux { struct dvb_frontend *fe; struct device *dev; struct vidtv_mux_timing timing; u32 mux_rate_kbytes_sec; unsigned long pid_ctx[1 << (( 3) - 1)]; void (*on_new_packets_available_cb)(void *priv, u8 *buf, u32 npackets); u8 *mux_buf; u32 mux_buf_sz; u32 mux_buf_offset; struct vidtv_channel *channels; struct vidtv_mux_si si; u64 num_streamed_pcr; u64 num_streamed_si; struct work_struct mpeg_thread; bool streaming; u16 pcr_pid; u16 transport_stream_id; u16 network_id; char *network_name; void *priv; };”h]”hXVstruct vidtv_mux { struct dvb_frontend *fe; struct device *dev; struct vidtv_mux_timing timing; u32 mux_rate_kbytes_sec; unsigned long pid_ctx[1 << (( 3) - 1)]; void (*on_new_packets_available_cb)(void *priv, u8 *buf, u32 npackets); u8 *mux_buf; u32 mux_buf_sz; u32 mux_buf_offset; struct vidtv_channel *channels; struct vidtv_mux_si si; u64 num_streamed_pcr; u64 num_streamed_si; struct work_struct mpeg_thread; bool streaming; u16 pcr_pid; u16 transport_stream_id; u16 network_id; char *network_name; void *priv; };”…”�”}”hjä)sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K_hjÃ)ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjõ)h]”hŒMembers”…”�”}”(hj÷)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjó)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KvhjÃ)ubjz)�”}”(hhh]”(j)�”}”(hŒ6``fe`` The frontend structure allocated by the muxer. ”h]”(j…)�”}”(hŒ``fe``”h]”j¤ )�”}”(hj*h]”hŒfe”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K[hj*ubj•)�”}”(hhh]”hÞ)�”}”(hŒ.The frontend structure allocated by the muxer.”h]”hŒ.The frontend structure allocated by the muxer.”…”�”}”(hj-*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j)*h´K[hj**ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j)*h´K[hj *ubj)�”}”(hŒ"``dev`` pointer to struct device. ”h]”(j…)�”}”(hŒ``dev``”h]”j¤ )�”}”(hjM*h]”hŒdev”…”�”}”(hjO*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjK*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K\hjG*ubj•)�”}”(hhh]”hÞ)�”}”(hŒpointer to struct device.”h]”hŒpointer to struct device.”…”�”}”(hjf*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jb*h´K\hjc*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjG*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jb*h´K\hj *ubj)�”}”(hŒ6``timing`` Keeps track of timing related information. ”h]”(j…)�”}”(hŒ ``timing``”h]”j¤ )�”}”(hj†*h]”hŒtiming”…”�”}”(hjˆ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj„*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K]hj€*ubj•)�”}”(hhh]”hÞ)�”}”(hŒ*Keeps track of timing related information.”h]”hŒ*Keeps track of timing related information.”…”�”}”(hjŸ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j›*h´K]hjœ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj€*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j›*h´K]hj *ubj)�”}”(hŒ<``mux_rate_kbytes_sec`` The bit rate for the TS, in kbytes. ”h]”(j…)�”}”(hŒ``mux_rate_kbytes_sec``”h]”j¤ )�”}”(hj¿*h]”hŒmux_rate_kbytes_sec”…”�”}”(hjÁ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj½*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K^hj¹*ubj•)�”}”(hhh]”hÞ)�”}”(hŒ#The bit rate for the TS, in kbytes.”h]”hŒ#The bit rate for the TS, in kbytes.”…”�”}”(hjØ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÔ*h´K^hjÕ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¹*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÔ*h´K^hj *ubj)�”}”(hŒ<``pid_ctx`` A hash table to keep track of per-PID metadata. ”h]”(j…)�”}”(hŒ ``pid_ctx``”h]”j¤ )�”}”(hjø*h]”hŒpid_ctx”…”�”}”(hjú*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjö*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K_hjò*ubj•)�”}”(hhh]”hÞ)�”}”(hŒ/A hash table to keep track of per-PID metadata.”h]”hŒ/A hash table to keep track of per-PID metadata.”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j +h´K_hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjò*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j +h´K_hj *ubj)�”}”(hŒN``on_new_packets_available_cb`` A callback to inform of new TS packets ready. ”h]”(j…)�”}”(hŒ``on_new_packets_available_cb``”h]”j¤ )�”}”(hj1+h]”hŒon_new_packets_available_cb”…”�”}”(hj3+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj/+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K`hj++ubj•)�”}”(hhh]”hÞ)�”}”(hŒ-A callback to inform of new TS packets ready.”h]”hŒ-A callback to inform of new TS packets ready.”…”�”}”(hjJ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jF+h´K`hjG+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj++ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jF+h´K`hj *ubj)�”}”(hŒw``mux_buf`` A pointer to a buffer for this muxer. TS packets are stored there and then passed on to the bridge driver. ”h]”(j…)�”}”(hŒ ``mux_buf``”h]”j¤ )�”}”(hjj+h]”hŒmux_buf”…”�”}”(hjl+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjh+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kbhjd+ubj•)�”}”(hhh]”hÞ)�”}”(hŒjA pointer to a buffer for this muxer. TS packets are stored there and then passed on to the bridge driver.”h]”hŒjA pointer to a buffer for this muxer. TS packets are stored there and then passed on to the bridge driver.”…”�”}”(hjƒ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kahj€+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjd+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j+h´Kbhj *ubj)�”}”(hŒ'``mux_buf_sz`` The size for 'mux_buf'. ”h]”(j…)�”}”(hŒ``mux_buf_sz``”h]”j¤ )�”}”(hj¤+h]”hŒ mux_buf_sz”…”�”}”(hj¦+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¢+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kchjž+ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe size for 'mux_buf'.”h]”hŒThe size for ‘mux_buf’.”…”�”}”(hj½+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¹+h´Kchjº+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjž+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¹+h´Kchj *ubj)�”}”(hŒ6``mux_buf_offset`` The current offset into 'mux_buf'. ”h]”(j…)�”}”(hŒ``mux_buf_offset``”h]”j¤ )�”}”(hjÝ+h]”hŒmux_buf_offset”…”�”}”(hjß+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÛ+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kdhj×+ubj•)�”}”(hhh]”hÞ)�”}”(hŒ"The current offset into 'mux_buf'.”h]”hŒ&The current offset into ‘mux_buf’.”…”�”}”(hjö+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jò+h´Kdhjó+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj×+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jò+h´Kdhj *ubj)�”}”(hŒ6``channels`` The channels associated with this muxer. ”h]”(j…)�”}”(hŒ ``channels``”h]”j¤ )�”}”(hj,h]”hŒchannels”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kehj,ubj•)�”}”(hhh]”hÞ)�”}”(hŒ(The channels associated with this muxer.”h]”hŒ(The channels associated with this muxer.”…”�”}”(hj/,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j+,h´Kehj,,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j+,h´Kehj *ubj)�”}”(hŒ'``si`` Keeps track of the PSI context. ”h]”(j…)�”}”(hŒ``si``”h]”j¤ )�”}”(hjO,h]”hŒsi”…”�”}”(hjQ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjM,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KfhjI,ubj•)�”}”(hhh]”hÞ)�”}”(hŒKeeps track of the PSI context.”h]”hŒKeeps track of the PSI context.”…”�”}”(hjh,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jd,h´Kfhje,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjI,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jd,h´Kfhj *ubj)�”}”(hŒ5``num_streamed_pcr`` Number of PCR packets streamed. ”h]”(j…)�”}”(hŒ``num_streamed_pcr``”h]”j¤ )�”}”(hjˆ,h]”hŒnum_streamed_pcr”…”�”}”(hjŠ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj†,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kghj‚,ubj•)�”}”(hhh]”hÞ)�”}”(hŒNumber of PCR packets streamed.”h]”hŒNumber of PCR packets streamed.”…”�”}”(hj¡,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j�,h´Kghjž,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj‚,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j�,h´Kghj *ubj)�”}”(hŒ8``num_streamed_si`` The number of PSI packets streamed. ”h]”(j…)�”}”(hŒ``num_streamed_si``”h]”j¤ )�”}”(hjÁ,h]”hŒnum_streamed_si”…”�”}”(hjÃ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¿,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Khhj»,ubj•)�”}”(hhh]”hÞ)�”}”(hŒ#The number of PSI packets streamed.”h]”hŒ#The number of PSI packets streamed.”…”�”}”(hjÚ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÖ,h´Khhj×,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj»,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÖ,h´Khhj *ubj)�”}”(hŒ7``mpeg_thread`` Thread responsible for the muxer loop. ”h]”(j…)�”}”(hŒ``mpeg_thread``”h]”j¤ )�”}”(hjú,h]”hŒ mpeg_thread”…”�”}”(hjü,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjø,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kihjô,ubj•)�”}”(hhh]”hÞ)�”}”(hŒ&Thread responsible for the muxer loop.”h]”hŒ&Thread responsible for the muxer loop.”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j-h´Kihj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjô,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j-h´Kihj *ubj)�”}”(hŒ0``streaming`` whether 'mpeg_thread' is running. ”h]”(j…)�”}”(hŒ ``streaming``”h]”j¤ )�”}”(hj3-h]”hŒ streaming”…”�”}”(hj5-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj1-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kjhj--ubj•)�”}”(hhh]”hÞ)�”}”(hŒ!whether 'mpeg_thread' is running.”h]”hŒ%whether ‘mpeg_thread’ is running.”…”�”}”(hjL-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jH-h´KjhjI-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj--ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jH-h´Kjhj *ubj)�”}”(hŒW``pcr_pid`` The TS PID used for the PSI packets. All channels will share the same PCR. ”h]”(j…)�”}”(hŒ ``pcr_pid``”h]”j¤ )�”}”(hjl-h]”hŒpcr_pid”…”�”}”(hjn-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Klhjf-ubj•)�”}”(hhh]”hÞ)�”}”(hŒJThe TS PID used for the PSI packets. All channels will share the same PCR.”h]”hŒJThe TS PID used for the PSI packets. All channels will share the same PCR.”…”�”}”(hj…-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kkhj‚-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjf-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j�-h´Klhj *ubj)�”}”(hŒ0``transport_stream_id`` The transport stream ID ”h]”(j…)�”}”(hŒ``transport_stream_id``”h]”j¤ )�”}”(hj¦-h]”hŒtransport_stream_id”…”�”}”(hj¨-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¤-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kmhj -ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe transport stream ID”h]”hŒThe transport stream ID”…”�”}”(hj¿-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j»-h´Kmhj¼-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj -ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j»-h´Kmhj *ubj)�”}”(hŒ``network_id`` The network ID ”h]”(j…)�”}”(hŒ``network_id``”h]”j¤ )�”}”(hjß-h]”hŒ network_id”…”�”}”(hjá-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÝ-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KnhjÙ-ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe network ID”h]”hŒThe network ID”…”�”}”(hjø-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jô-h´Knhjõ-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÙ-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jô-h´Knhj *ubj)�”}”(hŒ"``network_name`` The network name ”h]”(j…)�”}”(hŒ``network_name``”h]”j¤ )�”}”(hj.h]”hŒ network_name”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kohj.ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe network name”h]”hŒThe network name”…”�”}”(hj1.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j-.h´Kohj..ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j-.h´Kohj *ubj)�”}”(hŒ``priv`` Private data.”h]”(j…)�”}”(hŒ``priv``”h]”j¤ )�”}”(hjQ.h]”hŒpriv”…”�”}”(hjS.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjO.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KohjK.ubj•)�”}”(hhh]”hÞ)�”}”(hŒ Private data.”h]”hŒ Private data.”…”�”}”(hjj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kphjg.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjK.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jf.h´Kohj *ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÃ)ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒvidtv_mux_init_args (C struct)”Œc.vidtv_mux_init_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒvidtv_mux_init_args”h]”j )�”}”(hŒstruct vidtv_mux_init_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj«.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj§.h²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kvubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹.h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj§.h²hh³j¸.h´Kvubj3)�”}”(hŒvidtv_mux_init_args”h]”j9)�”}”(hj¥.h]”hŒvidtv_mux_init_args”…”�”}”(hjË.h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjÇ.ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj§.h²hh³j¸.h´Kvubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj£.h²hh³j¸.h´Kvubah}”(h]”jž.ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j¸.h´Kvhj .h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ!Arguments used to inix the muxer.”h]”hŒ!Arguments used to inix the muxer.”…”�”}”(hjí.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K’hjê.h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj .h²hh³j¸.h´Kvubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡j/jˆj/j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXî**Definition**:: struct vidtv_mux_init_args { u32 mux_rate_kbytes_sec; void (*on_new_packets_available_cb)(void *priv, u8 *buf, u32 npackets); u32 mux_buf_sz; u64 pcr_period_usecs; u64 si_period_usecs; u16 pcr_pid; u16 transport_stream_id; struct vidtv_channel *channels; u16 network_id; char *network_name; void *priv; }; **Members** ``mux_rate_kbytes_sec`` The bit rate for the TS, in kbytes. ``on_new_packets_available_cb`` A callback to inform of new TS packets ready. ``mux_buf_sz`` The size for 'mux_buf'. ``pcr_period_usecs`` How often we should send PCR packets. ``si_period_usecs`` How often we should send PSI packets. ``pcr_pid`` The TS PID used for the PSI packets. All channels will share the same PCR. ``transport_stream_id`` The transport stream ID ``channels`` an optional list of channels to use ``network_id`` The network ID ``network_name`` The network name ``priv`` Private data.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj /ubhŒ:”…”�”}”(hj /h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K–hj /ubjÇ)�”}”(hX]struct vidtv_mux_init_args { u32 mux_rate_kbytes_sec; void (*on_new_packets_available_cb)(void *priv, u8 *buf, u32 npackets); u32 mux_buf_sz; u64 pcr_period_usecs; u64 si_period_usecs; u16 pcr_pid; u16 transport_stream_id; struct vidtv_channel *channels; u16 network_id; char *network_name; void *priv; };”h]”hX]struct vidtv_mux_init_args { u32 mux_rate_kbytes_sec; void (*on_new_packets_available_cb)(void *priv, u8 *buf, u32 npackets); u32 mux_buf_sz; u64 pcr_period_usecs; u64 si_period_usecs; u16 pcr_pid; u16 transport_stream_id; struct vidtv_channel *channels; u16 network_id; char *network_name; void *priv; };”…”�”}”hj*/sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K˜hj /ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hj;/h]”hŒMembers”…”�”}”(hj=/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj9/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K¦hj /ubjz)�”}”(hhh]”(j)�”}”(hŒ<``mux_rate_kbytes_sec`` The bit rate for the TS, in kbytes. ”h]”(j…)�”}”(hŒ``mux_rate_kbytes_sec``”h]”j¤ )�”}”(hjZ/h]”hŒmux_rate_kbytes_sec”…”�”}”(hj\/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjX/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K”hjT/ubj•)�”}”(hhh]”hÞ)�”}”(hŒ#The bit rate for the TS, in kbytes.”h]”hŒ#The bit rate for the TS, in kbytes.”…”�”}”(hjs/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jo/h´K”hjp/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjT/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jo/h´K”hjQ/ubj)�”}”(hŒN``on_new_packets_available_cb`` A callback to inform of new TS packets ready. ”h]”(j…)�”}”(hŒ``on_new_packets_available_cb``”h]”j¤ )�”}”(hj“/h]”hŒon_new_packets_available_cb”…”�”}”(hj•/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj‘/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K•hj�/ubj•)�”}”(hhh]”hÞ)�”}”(hŒ-A callback to inform of new TS packets ready.”h]”hŒ-A callback to inform of new TS packets ready.”…”�”}”(hj¬/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¨/h´K•hj©/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj�/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¨/h´K•hjQ/ubj)�”}”(hŒ'``mux_buf_sz`` The size for 'mux_buf'. ”h]”(j…)�”}”(hŒ``mux_buf_sz``”h]”j¤ )�”}”(hjÌ/h]”hŒ mux_buf_sz”…”�”}”(hjÎ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÊ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K–hjÆ/ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe size for 'mux_buf'.”h]”hŒThe size for ‘mux_buf’.”…”�”}”(hjå/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³já/h´K–hjâ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÆ/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³já/h´K–hjQ/ubj)�”}”(hŒ;``pcr_period_usecs`` How often we should send PCR packets. ”h]”(j…)�”}”(hŒ``pcr_period_usecs``”h]”j¤ )�”}”(hj0h]”hŒpcr_period_usecs”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K—hjÿ/ubj•)�”}”(hhh]”hÞ)�”}”(hŒ%How often we should send PCR packets.”h]”hŒ%How often we should send PCR packets.”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j0h´K—hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÿ/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j0h´K—hjQ/ubj)�”}”(hŒ:``si_period_usecs`` How often we should send PSI packets. ”h]”(j…)�”}”(hŒ``si_period_usecs``”h]”j¤ )�”}”(hj>0h]”hŒsi_period_usecs”…”�”}”(hj@0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj<0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K˜hj80ubj•)�”}”(hhh]”hÞ)�”}”(hŒ%How often we should send PSI packets.”h]”hŒ%How often we should send PSI packets.”…”�”}”(hjW0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jS0h´K˜hjT0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj80ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jS0h´K˜hjQ/ubj)�”}”(hŒW``pcr_pid`` The TS PID used for the PSI packets. All channels will share the same PCR. ”h]”(j…)�”}”(hŒ ``pcr_pid``”h]”j¤ )�”}”(hjw0h]”hŒpcr_pid”…”�”}”(hjy0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hju0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kšhjq0ubj•)�”}”(hhh]”hÞ)�”}”(hŒJThe TS PID used for the PSI packets. All channels will share the same PCR.”h]”hŒJThe TS PID used for the PSI packets. All channels will share the same PCR.”…”�”}”(hj�0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K™hj�0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjq0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jŒ0h´KšhjQ/ubj)�”}”(hŒ0``transport_stream_id`` The transport stream ID ”h]”(j…)�”}”(hŒ``transport_stream_id``”h]”j¤ )�”}”(hj±0h]”hŒtransport_stream_id”…”�”}”(hj³0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¯0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K›hj«0ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe transport stream ID”h]”hŒThe transport stream ID”…”�”}”(hjÊ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÆ0h´K›hjÇ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj«0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÆ0h´K›hjQ/ubj)�”}”(hŒ1``channels`` an optional list of channels to use ”h]”(j…)�”}”(hŒ ``channels``”h]”j¤ )�”}”(hjê0h]”hŒchannels”…”�”}”(hjì0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjè0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kœhjä0ubj•)�”}”(hhh]”hÞ)�”}”(hŒ#an optional list of channels to use”h]”hŒ#an optional list of channels to use”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÿ0h´Kœhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjä0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÿ0h´KœhjQ/ubj)�”}”(hŒ``network_id`` The network ID ”h]”(j…)�”}”(hŒ``network_id``”h]”j¤ )�”}”(hj#1h]”hŒ network_id”…”�”}”(hj%1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj!1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´K�hj1ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe network ID”h]”hŒThe network ID”…”�”}”(hj<1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j81h´K�hj91ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j81h´K�hjQ/ubj)�”}”(hŒ"``network_name`` The network name ”h]”(j…)�”}”(hŒ``network_name``”h]”j¤ )�”}”(hj\1h]”hŒ network_name”…”�”}”(hj^1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjZ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”•h´KžhjV1ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe network name”h]”hŒThe network name”…”�”}”(hju1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jq1h´Kžhjr1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjV1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jq1h´KžhjQ/ubj)�”}”(hŒ``priv`` Private data.”h]”(j…)�”}”(hŒ``priv``”h]”j¤ )�”}”(hj•1h]”hŒpriv”…”�”}”(hj—1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj“1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´Kžhj�1ubj•)�”}”(hhh]”hÞ)�”}”(hŒ Private data.”h]”hŒ Private data.”…”�”}”(hj®1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:499: ./drivers/media/test-drivers/vidtv/vidtv_mux.h”h´KŸhj«1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj�1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jª1h´KžhjQ/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj /ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ pes_header_write_args (C struct)”Œc.pes_header_write_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒpes_header_write_args”h]”j )�”}”(hŒstruct pes_header_write_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjï1h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjë1h²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Kubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý1h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjë1h²hh³jü1h´Kubj3)�”}”(hŒpes_header_write_args”h]”j9)�”}”(hjé1h]”hŒpes_header_write_args”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj 2ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjë1h²hh³jü1h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjç1h²hh³jü1h´Kubah}”(h]”jâ1ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jü1h´Khjä1h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ Arguments to write a PES header.”h]”hŒ Arguments to write a PES header.”…”�”}”(hj12h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KLhj.2h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjä1h²hh³jü1h´Kubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡jI2jˆjI2j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX¦**Definition**:: struct pes_header_write_args { void *dest_buf; u32 dest_offset; u32 dest_buf_sz; u32 encoder_id; bool send_pts; u64 pts; bool send_dts; u64 dts; u16 stream_id; u32 n_pes_h_s_bytes; u32 access_unit_len; }; **Members** ``dest_buf`` The buffer to write into. ``dest_offset`` where to start writing in the dest_buffer. ``dest_buf_sz`` The size of the dest_buffer ``encoder_id`` Encoder id (see vidtv_encoder.h) ``send_pts`` Should we send PTS? ``pts`` PTS value to send. ``send_dts`` Should we send DTS? ``dts`` DTS value to send. ``stream_id`` The stream id to use. Ex: Audio streams (0xc0-0xdf), Video streams (0xe0-0xef). ``n_pes_h_s_bytes`` Padding bytes. Might be used by an encoder if needed, gets discarded by the decoder. ``access_unit_len`` The size of _one_ access unit (with any headers it might need)”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjU2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjQ2ubhŒ:”…”�”}”(hjQ2h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KPhjM2ubjÇ)�”}”(hŒøstruct pes_header_write_args { void *dest_buf; u32 dest_offset; u32 dest_buf_sz; u32 encoder_id; bool send_pts; u64 pts; bool send_dts; u64 dts; u16 stream_id; u32 n_pes_h_s_bytes; u32 access_unit_len; };”h]”hŒøstruct pes_header_write_args { void *dest_buf; u32 dest_offset; u32 dest_buf_sz; u32 encoder_id; bool send_pts; u64 pts; bool send_dts; u64 dts; u16 stream_id; u32 n_pes_h_s_bytes; u32 access_unit_len; };”…”�”}”hjn2sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KRhjM2ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hj2h]”hŒMembers”…”�”}”(hj�2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj}2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K`hjM2ubjz)�”}”(hhh]”(j)�”}”(hŒ'``dest_buf`` The buffer to write into. ”h]”(j…)�”}”(hŒ ``dest_buf``”h]”j¤ )�”}”(hjž2h]”hŒdest_buf”…”�”}”(hj 2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjœ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KNhj˜2ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe buffer to write into.”h]”hŒThe buffer to write into.”…”�”}”(hj·2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j³2h´KNhj´2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj˜2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j³2h´KNhj•2ubj)�”}”(hŒ;``dest_offset`` where to start writing in the dest_buffer. ”h]”(j…)�”}”(hŒ``dest_offset``”h]”j¤ )�”}”(hj×2h]”hŒ dest_offset”…”�”}”(hjÙ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÕ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KOhjÑ2ubj•)�”}”(hhh]”hÞ)�”}”(hŒ*where to start writing in the dest_buffer.”h]”hŒ*where to start writing in the dest_buffer.”…”�”}”(hjð2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jì2h´KOhjí2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÑ2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jì2h´KOhj•2ubj)�”}”(hŒ,``dest_buf_sz`` The size of the dest_buffer ”h]”(j…)�”}”(hŒ``dest_buf_sz``”h]”j¤ )�”}”(hj3h]”hŒ dest_buf_sz”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KPhj 3ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe size of the dest_buffer”h]”hŒThe size of the dest_buffer”…”�”}”(hj)3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j%3h´KPhj&3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj 3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j%3h´KPhj•2ubj)�”}”(hŒ0``encoder_id`` Encoder id (see vidtv_encoder.h) ”h]”(j…)�”}”(hŒ``encoder_id``”h]”j¤ )�”}”(hjI3h]”hŒ encoder_id”…”�”}”(hjK3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjG3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KQhjC3ubj•)�”}”(hhh]”hÞ)�”}”(hŒ Encoder id (see vidtv_encoder.h)”h]”hŒ Encoder id (see vidtv_encoder.h)”…”�”}”(hjb3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j^3h´KQhj_3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjC3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j^3h´KQhj•2ubj)�”}”(hŒ!``send_pts`` Should we send PTS? ”h]”(j…)�”}”(hŒ ``send_pts``”h]”j¤ )�”}”(hj‚3h]”hŒsend_pts”…”�”}”(hj„3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj€3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KRhj|3ubj•)�”}”(hhh]”hÞ)�”}”(hŒShould we send PTS?”h]”hŒShould we send PTS?”…”�”}”(hj›3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j—3h´KRhj˜3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj|3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j—3h´KRhj•2ubj)�”}”(hŒ``pts`` PTS value to send. ”h]”(j…)�”}”(hŒ``pts``”h]”j¤ )�”}”(hj»3h]”hŒpts”…”�”}”(hj½3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¹3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KShjµ3ubj•)�”}”(hhh]”hÞ)�”}”(hŒPTS value to send.”h]”hŒPTS value to send.”…”�”}”(hjÔ3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÐ3h´KShjÑ3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjµ3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÐ3h´KShj•2ubj)�”}”(hŒ!``send_dts`` Should we send DTS? ”h]”(j…)�”}”(hŒ ``send_dts``”h]”j¤ )�”}”(hjô3h]”hŒsend_dts”…”�”}”(hjö3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjò3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KThjî3ubj•)�”}”(hhh]”hÞ)�”}”(hŒShould we send DTS?”h]”hŒShould we send DTS?”…”�”}”(hj 4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j 4h´KThj 4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjî3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j 4h´KThj•2ubj)�”}”(hŒ``dts`` DTS value to send. ”h]”(j…)�”}”(hŒ``dts``”h]”j¤ )�”}”(hj-4h]”hŒdts”…”�”}”(hj/4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj+4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KUhj'4ubj•)�”}”(hhh]”hÞ)�”}”(hŒDTS value to send.”h]”hŒDTS value to send.”…”�”}”(hjF4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jB4h´KUhjC4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj'4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jB4h´KUhj•2ubj)�”}”(hŒ^``stream_id`` The stream id to use. Ex: Audio streams (0xc0-0xdf), Video streams (0xe0-0xef). ”h]”(j…)�”}”(hŒ ``stream_id``”h]”j¤ )�”}”(hjf4h]”hŒ stream_id”…”�”}”(hjh4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjd4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KWhj`4ubj•)�”}”(hhh]”hÞ)�”}”(hŒOThe stream id to use. Ex: Audio streams (0xc0-0xdf), Video streams (0xe0-0xef).”h]”hŒOThe stream id to use. Ex: Audio streams (0xc0-0xdf), Video streams (0xe0-0xef).”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KVhj|4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj`4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j{4h´KWhj•2ubj)�”}”(hŒi``n_pes_h_s_bytes`` Padding bytes. Might be used by an encoder if needed, gets discarded by the decoder. ”h]”(j…)�”}”(hŒ``n_pes_h_s_bytes``”h]”j¤ )�”}”(hj 4h]”hŒn_pes_h_s_bytes”…”�”}”(hj¢4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjž4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KYhjš4ubj•)�”}”(hhh]”hÞ)�”}”(hŒTPadding bytes. Might be used by an encoder if needed, gets discarded by the decoder.”h]”hŒTPadding bytes. Might be used by an encoder if needed, gets discarded by the decoder.”…”�”}”(hj¹4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KXhj¶4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjš4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jµ4h´KYhj•2ubj)�”}”(hŒR``access_unit_len`` The size of _one_ access unit (with any headers it might need)”h]”(j…)�”}”(hŒ``access_unit_len``”h]”j¤ )�”}”(hjÚ4h]”hŒaccess_unit_len”…”�”}”(hjÜ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjØ4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KYhjÔ4ubj•)�”}”(hhh]”hÞ)�”}”(hŒ>The size of _one_ access unit (with any headers it might need)”h]”hŒ>The size of _one_ access unit (with any headers it might need)”…”�”}”(hjó4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KZhjð4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÔ4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jï4h´KYhj•2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjM2ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ#pes_ts_header_write_args (C struct)”Œc.pes_ts_header_write_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒpes_ts_header_write_args”h]”j )�”}”(hŒstruct pes_ts_header_write_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj45h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj05h²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K`ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjB5h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj05h²hh³jA5h´K`ubj3)�”}”(hŒpes_ts_header_write_args”h]”j9)�”}”(hj.5h]”hŒpes_ts_header_write_args”…”�”}”(hjT5h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjP5ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj05h²hh³jA5h´K`ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj,5h²hh³jA5h´K`ubah}”(h]”j'5ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jA5h´K`hj)5h²hubje)�”}”(hhh]”hÞ)�”}”(hŒArguments to write a TS header.”h]”hŒArguments to write a TS header.”…”�”}”(hjv5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Knhjs5h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj)5h²hh³jA5h´K`ubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡jŽ5jˆjŽ5j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXç**Definition**:: struct pes_ts_header_write_args { void *dest_buf; u32 dest_offset; u32 dest_buf_sz; u16 pid; u8 *continuity_counter; bool wrote_pes_header; u32 n_stuffing_bytes; u64 pcr; }; **Members** ``dest_buf`` The buffer to write into. ``dest_offset`` where to start writing in the dest_buffer. ``dest_buf_sz`` The size of the dest_buffer ``pid`` The PID to use for the TS packets. ``continuity_counter`` Incremented on every new TS packet. ``wrote_pes_header`` Flag to indicate that the PES header was written ``n_stuffing_bytes`` Padding bytes. Might be used by an encoder if needed, gets discarded by the decoder. ``pcr`` counter driven by a 27Mhz clock.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjš5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj–5ubhŒ:”…”�”}”(hj–5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Krhj’5ubjÇ)�”}”(hŒÍstruct pes_ts_header_write_args { void *dest_buf; u32 dest_offset; u32 dest_buf_sz; u16 pid; u8 *continuity_counter; bool wrote_pes_header; u32 n_stuffing_bytes; u64 pcr; };”h]”hŒÍstruct pes_ts_header_write_args { void *dest_buf; u32 dest_offset; u32 dest_buf_sz; u16 pid; u8 *continuity_counter; bool wrote_pes_header; u32 n_stuffing_bytes; u64 pcr; };”…”�”}”hj³5sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Kthj’5ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjÄ5h]”hŒMembers”…”�”}”(hjÆ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÂ5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Khj’5ubjz)�”}”(hhh]”(j)�”}”(hŒ'``dest_buf`` The buffer to write into. ”h]”(j…)�”}”(hŒ ``dest_buf``”h]”j¤ )�”}”(hjã5h]”hŒdest_buf”…”�”}”(hjå5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjá5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KphjÝ5ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe buffer to write into.”h]”hŒThe buffer to write into.”…”�”}”(hjü5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jø5h´Kphjù5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÝ5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jø5h´KphjÚ5ubj)�”}”(hŒ;``dest_offset`` where to start writing in the dest_buffer. ”h]”(j…)�”}”(hŒ``dest_offset``”h]”j¤ )�”}”(hj6h]”hŒ dest_offset”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Kqhj6ubj•)�”}”(hhh]”hÞ)�”}”(hŒ*where to start writing in the dest_buffer.”h]”hŒ*where to start writing in the dest_buffer.”…”�”}”(hj56h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j16h´Kqhj26ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j16h´KqhjÚ5ubj)�”}”(hŒ,``dest_buf_sz`` The size of the dest_buffer ”h]”(j…)�”}”(hŒ``dest_buf_sz``”h]”j¤ )�”}”(hjU6h]”hŒ dest_buf_sz”…”�”}”(hjW6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjS6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KrhjO6ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe size of the dest_buffer”h]”hŒThe size of the dest_buffer”…”�”}”(hjn6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jj6h´Krhjk6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjO6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jj6h´KrhjÚ5ubj)�”}”(hŒ+``pid`` The PID to use for the TS packets. ”h]”(j…)�”}”(hŒ``pid``”h]”j¤ )�”}”(hjŽ6h]”hŒpid”…”�”}”(hj�6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjŒ6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Kshjˆ6ubj•)�”}”(hhh]”hÞ)�”}”(hŒ"The PID to use for the TS packets.”h]”hŒ"The PID to use for the TS packets.”…”�”}”(hj§6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j£6h´Kshj¤6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjˆ6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j£6h´KshjÚ5ubj)�”}”(hŒ;``continuity_counter`` Incremented on every new TS packet. ”h]”(j…)�”}”(hŒ``continuity_counter``”h]”j¤ )�”}”(hjÇ6h]”hŒcontinuity_counter”…”�”}”(hjÉ6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÅ6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KthjÁ6ubj•)�”}”(hhh]”hÞ)�”}”(hŒ#Incremented on every new TS packet.”h]”hŒ#Incremented on every new TS packet.”…”�”}”(hjà6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÜ6h´KthjÝ6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÁ6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÜ6h´KthjÚ5ubj)�”}”(hŒF``wrote_pes_header`` Flag to indicate that the PES header was written ”h]”(j…)�”}”(hŒ``wrote_pes_header``”h]”j¤ )�”}”(hj7h]”hŒwrote_pes_header”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjþ6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Kuhjú6ubj•)�”}”(hhh]”hÞ)�”}”(hŒ0Flag to indicate that the PES header was written”h]”hŒ0Flag to indicate that the PES header was written”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j7h´Kuhj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjú6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j7h´KuhjÚ5ubj)�”}”(hŒj``n_stuffing_bytes`` Padding bytes. Might be used by an encoder if needed, gets discarded by the decoder. ”h]”(j…)�”}”(hŒ``n_stuffing_bytes``”h]”j¤ )�”}”(hj97h]”hŒn_stuffing_bytes”…”�”}”(hj;7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj77ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Kwhj37ubj•)�”}”(hhh]”hÞ)�”}”(hŒTPadding bytes. Might be used by an encoder if needed, gets discarded by the decoder.”h]”hŒTPadding bytes. Might be used by an encoder if needed, gets discarded by the decoder.”…”�”}”(hjR7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KvhjO7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj37ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jN7h´KwhjÚ5ubj)�”}”(hŒ(``pcr`` counter driven by a 27Mhz clock.”h]”(j…)�”}”(hŒ``pcr``”h]”j¤ )�”}”(hjs7h]”hŒpcr”…”�”}”(hju7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjq7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Kwhjm7ubj•)�”}”(hhh]”hÞ)�”}”(hŒ counter driven by a 27Mhz clock.”h]”hŒ counter driven by a 27Mhz clock.”…”�”}”(hjŒ7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Kxhj‰7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjm7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jˆ7h´KwhjÚ5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj’5ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒpes_write_args (C struct)”Œc.pes_write_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒpes_write_args”h]”j )�”}”(hŒstruct pes_write_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÍ7h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÉ7h²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K~ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛ7h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÉ7h²hh³jÚ7h´K~ubj3)�”}”(hŒpes_write_args”h]”j9)�”}”(hjÇ7h]”hŒpes_write_args”…”�”}”(hjí7h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjé7ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjÉ7h²hh³jÚ7h´K~ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjÅ7h²hh³jÚ7h´K~ubah}”(h]”jÀ7ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jÚ7h´K~hjÂ7h²hubje)�”}”(hhh]”hÞ)�”}”(hŒArguments for the packetizer.”h]”hŒArguments for the packetizer.”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K…hj 8h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÂ7h²hh³jÚ7h´K~ubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡j'8jˆj'8j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXÍ**Definition**:: struct pes_write_args { void *dest_buf; void *from; u32 access_unit_len; u32 dest_offset; u32 dest_buf_sz; u16 pid; u32 encoder_id; u8 *continuity_counter; u16 stream_id; bool send_pts; u64 pts; bool send_dts; u64 dts; u32 n_pes_h_s_bytes; u64 pcr; }; **Members** ``dest_buf`` The buffer to write into. ``from`` A pointer to the encoder buffer containing one access unit. ``access_unit_len`` The size of _one_ access unit (with any headers it might need) ``dest_offset`` where to start writing in the dest_buffer. ``dest_buf_sz`` The size of the dest_buffer ``pid`` The PID to use for the TS packets. ``encoder_id`` Encoder id (see vidtv_encoder.h) ``continuity_counter`` Incremented on every new TS packet. ``stream_id`` The stream id to use. Ex: Audio streams (0xc0-0xdf), Video streams (0xe0-0xef). ``send_pts`` Should we send PTS? ``pts`` PTS value to send. ``send_dts`` Should we send DTS? ``dts`` DTS value to send. ``n_pes_h_s_bytes`` Padding bytes. Might be used by an encoder if needed, gets discarded by the decoder. ``pcr`` counter driven by a 27Mhz clock.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj38h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj/8ubhŒ:”…”�”}”(hj/8h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K‰hj+8ubjÇ)�”}”(hX7struct pes_write_args { void *dest_buf; void *from; u32 access_unit_len; u32 dest_offset; u32 dest_buf_sz; u16 pid; u32 encoder_id; u8 *continuity_counter; u16 stream_id; bool send_pts; u64 pts; bool send_dts; u64 dts; u32 n_pes_h_s_bytes; u64 pcr; };”h]”hX7struct pes_write_args { void *dest_buf; void *from; u32 access_unit_len; u32 dest_offset; u32 dest_buf_sz; u16 pid; u32 encoder_id; u8 *continuity_counter; u16 stream_id; bool send_pts; u64 pts; bool send_dts; u64 dts; u32 n_pes_h_s_bytes; u64 pcr; };”…”�”}”hjL8sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K‹hj+8ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hj]8h]”hŒMembers”…”�”}”(hj_8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj[8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K�hj+8ubjz)�”}”(hhh]”(j)�”}”(hŒ'``dest_buf`` The buffer to write into. ”h]”(j…)�”}”(hŒ ``dest_buf``”h]”j¤ )�”}”(hj|8h]”hŒdest_buf”…”�”}”(hj~8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjz8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K‡hjv8ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe buffer to write into.”h]”hŒThe buffer to write into.”…”�”}”(hj•8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j‘8h´K‡hj’8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjv8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j‘8h´K‡hjs8ubj)�”}”(hŒE``from`` A pointer to the encoder buffer containing one access unit. ”h]”(j…)�”}”(hŒ``from``”h]”j¤ )�”}”(hjµ8h]”hŒfrom”…”�”}”(hj·8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj³8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Kˆhj¯8ubj•)�”}”(hhh]”hÞ)�”}”(hŒ;A pointer to the encoder buffer containing one access unit.”h]”hŒ;A pointer to the encoder buffer containing one access unit.”…”�”}”(hjÎ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÊ8h´KˆhjË8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¯8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÊ8h´Kˆhjs8ubj)�”}”(hŒS``access_unit_len`` The size of _one_ access unit (with any headers it might need) ”h]”(j…)�”}”(hŒ``access_unit_len``”h]”j¤ )�”}”(hjî8h]”hŒaccess_unit_len”…”�”}”(hjð8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjì8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K‰hjè8ubj•)�”}”(hhh]”hÞ)�”}”(hŒ>The size of _one_ access unit (with any headers it might need)”h]”hŒ>The size of _one_ access unit (with any headers it might need)”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j9h´K‰hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjè8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j9h´K‰hjs8ubj)�”}”(hŒ;``dest_offset`` where to start writing in the dest_buffer. ”h]”(j…)�”}”(hŒ``dest_offset``”h]”j¤ )�”}”(hj'9h]”hŒ dest_offset”…”�”}”(hj)9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj%9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KŠhj!9ubj•)�”}”(hhh]”hÞ)�”}”(hŒ*where to start writing in the dest_buffer.”h]”hŒ*where to start writing in the dest_buffer.”…”�”}”(hj@9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j<9h´KŠhj=9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj!9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j<9h´KŠhjs8ubj)�”}”(hŒ,``dest_buf_sz`` The size of the dest_buffer ”h]”(j…)�”}”(hŒ``dest_buf_sz``”h]”j¤ )�”}”(hj`9h]”hŒ dest_buf_sz”…”�”}”(hjb9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj^9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K‹hjZ9ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe size of the dest_buffer”h]”hŒThe size of the dest_buffer”…”�”}”(hjy9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ju9h´K‹hjv9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjZ9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³ju9h´K‹hjs8ubj)�”}”(hŒ+``pid`` The PID to use for the TS packets. ”h]”(j…)�”}”(hŒ``pid``”h]”j¤ )�”}”(hj™9h]”hŒpid”…”�”}”(hj›9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj—9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KŒhj“9ubj•)�”}”(hhh]”hÞ)�”}”(hŒ"The PID to use for the TS packets.”h]”hŒ"The PID to use for the TS packets.”…”�”}”(hj²9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j®9h´KŒhj¯9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj“9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j®9h´KŒhjs8ubj)�”}”(hŒ0``encoder_id`` Encoder id (see vidtv_encoder.h) ”h]”(j…)�”}”(hŒ``encoder_id``”h]”j¤ )�”}”(hjÒ9h]”hŒ encoder_id”…”�”}”(hjÔ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÐ9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K�hjÌ9ubj•)�”}”(hhh]”hÞ)�”}”(hŒ Encoder id (see vidtv_encoder.h)”h]”hŒ Encoder id (see vidtv_encoder.h)”…”�”}”(hjë9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jç9h´K�hjè9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÌ9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jç9h´K�hjs8ubj)�”}”(hŒ;``continuity_counter`` Incremented on every new TS packet. ”h]”(j…)�”}”(hŒ``continuity_counter``”h]”j¤ )�”}”(hj :h]”hŒcontinuity_counter”…”�”}”(hj :h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj :ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´KŽhj:ubj•)�”}”(hhh]”hÞ)�”}”(hŒ#Incremented on every new TS packet.”h]”hŒ#Incremented on every new TS packet.”…”�”}”(hj$:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j :h´KŽhj!:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j :h´KŽhjs8ubj)�”}”(hŒ^``stream_id`` The stream id to use. Ex: Audio streams (0xc0-0xdf), Video streams (0xe0-0xef). ”h]”(j…)�”}”(hŒ ``stream_id``”h]”j¤ )�”}”(hjD:h]”hŒ stream_id”…”�”}”(hjF:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjB:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K�hj>:ubj•)�”}”(hhh]”hÞ)�”}”(hŒOThe stream id to use. Ex: Audio streams (0xc0-0xdf), Video streams (0xe0-0xef).”h]”hŒOThe stream id to use. Ex: Audio streams (0xc0-0xdf), Video streams (0xe0-0xef).”…”�”}”(hj]:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K�hjZ:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj>:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jY:h´K�hjs8ubj)�”}”(hŒ!``send_pts`` Should we send PTS? ”h]”(j…)�”}”(hŒ ``send_pts``”h]”j¤ )�”}”(hj~:h]”hŒsend_pts”…”�”}”(hj€:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj|:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K‘hjx:ubj•)�”}”(hhh]”hÞ)�”}”(hŒShould we send PTS?”h]”hŒShould we send PTS?”…”�”}”(hj—:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j“:h´K‘hj”:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjx:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j“:h´K‘hjs8ubj)�”}”(hŒ``pts`` PTS value to send. ”h]”(j…)�”}”(hŒ``pts``”h]”j¤ )�”}”(hj·:h]”hŒpts”…”�”}”(hj¹:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjµ:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K’hj±:ubj•)�”}”(hhh]”hÞ)�”}”(hŒPTS value to send.”h]”hŒPTS value to send.”…”�”}”(hjÐ:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÌ:h´K’hjÍ:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj±:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÌ:h´K’hjs8ubj)�”}”(hŒ!``send_dts`` Should we send DTS? ”h]”(j…)�”}”(hŒ ``send_dts``”h]”j¤ )�”}”(hjð:h]”hŒsend_dts”…”�”}”(hjò:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjî:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K“hjê:ubj•)�”}”(hhh]”hÞ)�”}”(hŒShould we send DTS?”h]”hŒShould we send DTS?”…”�”}”(hj ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j;h´K“hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjê:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j;h´K“hjs8ubj)�”}”(hŒ``dts`` DTS value to send. ”h]”(j…)�”}”(hŒ``dts``”h]”j¤ )�”}”(hj);h]”hŒdts”…”�”}”(hj+;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj';ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K”hj#;ubj•)�”}”(hhh]”hÞ)�”}”(hŒDTS value to send.”h]”hŒDTS value to send.”…”�”}”(hjB;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j>;h´K”hj?;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj#;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j>;h´K”hjs8ubj)�”}”(hŒi``n_pes_h_s_bytes`` Padding bytes. Might be used by an encoder if needed, gets discarded by the decoder. ”h]”(j…)�”}”(hŒ``n_pes_h_s_bytes``”h]”j¤ )�”}”(hjb;h]”hŒn_pes_h_s_bytes”…”�”}”(hjd;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj`;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K–hj\;ubj•)�”}”(hhh]”hÞ)�”}”(hŒTPadding bytes. Might be used by an encoder if needed, gets discarded by the decoder.”h]”hŒTPadding bytes. Might be used by an encoder if needed, gets discarded by the decoder.”…”�”}”(hj{;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K•hjx;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj\;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jw;h´K–hjs8ubj)�”}”(hŒ(``pcr`` counter driven by a 27Mhz clock.”h]”(j…)�”}”(hŒ``pcr``”h]”j¤ )�”}”(hjœ;h]”hŒpcr”…”�”}”(hjž;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjš;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K–hj–;ubj•)�”}”(hhh]”hÞ)�”}”(hŒ counter driven by a 27Mhz clock.”h]”hŒ counter driven by a 27Mhz clock.”…”�”}”(hjµ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K—hj²;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj–;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j±;h´K–hjs8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj+8ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ!vidtv_pes_write_into (C function)”Œc.vidtv_pes_write_into”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒ6u32 vidtv_pes_write_into (struct pes_write_args *args)”h]”j )�”}”(hŒ5u32 vidtv_pes_write_into(struct pes_write_args *args)”h]”(h)�”}”(hhh]”j9)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjù;h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjö;ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jû;Œmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�Œvidtv_pes_write_into”sbŒc.vidtv_pes_write_into”†”asbuh1hhjò;h²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K²ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjò;h²hh³j<h´K²ubj3)�”}”(hŒvidtv_pes_write_into”h]”j9)�”}”(hj<h]”hŒvidtv_pes_write_into”…”�”}”(hj-<h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj)<ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjò;h²hh³j<h´K²ubjP)�”}”(hŒ(struct pes_write_args *args)”h]”jV)�”}”(hŒstruct pes_write_args *args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjH<h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjD<ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjU<h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjD<ubh)�”}”(hhh]”j9)�”}”(hŒpes_write_args”h]”hŒpes_write_args”…”�”}”(hjf<h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjc<ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jh<Œmodname”NŒ classname”Nj“j–)�”}”j™]”j<Œc.vidtv_pes_write_into”†”asbuh1hhjD<ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„<h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjD<ubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj’<h²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjD<ubj9)�”}”(hŒargs”h]”hŒargs”…”�”}”(hjŸ<h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjD<ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj@<ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjò;h²hh³j<h´K²ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjî;h²hh³j<h´K²ubah}”(h]”jé;ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j<h´K²hjë;h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ4Write a PES packet as MPEG-TS packets into a buffer.”h]”hŒ4Write a PES packet as MPEG-TS packets into a buffer.”…”�”}”(hjÉ<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K²hjÆ<h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjë;h²hh³j<h´K²ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡já<jˆjá<j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX**Parameters** ``struct pes_write_args *args`` The args to use when writing **Description** This function translate the ES data for one access unit from an encoder into MPEG TS packets. It does so by first encapsulating it with a PES header and then splitting it into TS packets. The data is then written into the buffer pointed to by 'args.buf' **Return** The number of bytes written into the buffer. This is usually NOT equal to the size of the access unit, since we need space for PES headers, TS headers and padding bytes, if any.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjë<h]”hŒ Parameters”…”�”}”(hjí<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjé<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K¶hjå<ubjz)�”}”(hhh]”j)�”}”(hŒ=``struct pes_write_args *args`` The args to use when writing ”h]”(j…)�”}”(hŒ``struct pes_write_args *args``”h]”j¤ )�”}”(hj =h]”hŒstruct pes_write_args *args”…”�”}”(hj =h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K³hj=ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe args to use when writing”h]”hŒThe args to use when writing”…”�”}”(hj#=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j=h´K³hj =ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j=h´K³hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjå<ubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjE=h]”hŒ Description”…”�”}”(hjG=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjC=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Kµhjå<ubhÞ)�”}”(hŒ»This function translate the ES data for one access unit from an encoder into MPEG TS packets. It does so by first encapsulating it with a PES header and then splitting it into TS packets.”h]”hŒ»This function translate the ES data for one access unit from an encoder into MPEG TS packets. It does so by first encapsulating it with a PES header and then splitting it into TS packets.”…”�”}”(hj[=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K´hjå<ubhÞ)�”}”(hŒAThe data is then written into the buffer pointed to by 'args.buf'”h]”hŒEThe data is then written into the buffer pointed to by ‘args.buf’”…”�”}”(hjj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K¸hjå<ubhÞ)�”}”(hŒ **Return**”h]”jÁ)�”}”(hj{=h]”hŒReturn”…”�”}”(hj}=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjy=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´Kºhjå<ubhÞ)�”}”(hŒ±The number of bytes written into the buffer. This is usually NOT equal to the size of the access unit, since we need space for PES headers, TS headers and padding bytes, if any.”h]”hŒ±The number of bytes written into the buffer. This is usually NOT equal to the size of the access unit, since we need space for PES headers, TS headers and padding bytes, if any.”…”�”}”(hj‘=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:501: ./drivers/media/test-drivers/vidtv/vidtv_pes.h”h´K»hjå<ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒpsi_write_args (C struct)”Œc.psi_write_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒpsi_write_args”h]”j )�”}”(hŒstruct psi_write_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÀ=h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¼=h²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Kubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎ=h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj¼=h²hh³jÍ=h´Kubj3)�”}”(hŒpsi_write_args”h]”j9)�”}”(hjº=h]”hŒpsi_write_args”…”�”}”(hjà=h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjÜ=ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj¼=h²hh³jÍ=h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj¸=h²hh³jÍ=h´Kubah}”(h]”j³=ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jÍ=h´Khjµ=h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ!Arguments for the PSI packetizer.”h]”hŒ!Arguments for the PSI packetizer.”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Kûhjÿ=h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjµ=h²hh³jÍ=h´Kubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡j>jˆj>j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXß**Definition**:: struct psi_write_args { void *dest_buf; void *from; size_t len; u32 dest_offset; u16 pid; bool new_psi_section; u8 *continuity_counter; bool is_crc; u32 dest_buf_sz; u32 *crc; }; **Members** ``dest_buf`` The buffer to write into. ``from`` PSI data to be copied. ``len`` How much to write. ``dest_offset`` where to start writing in the dest_buffer. ``pid`` TS packet ID. ``new_psi_section`` Set when starting a table section. ``continuity_counter`` Incremented on every new packet. ``is_crc`` Set when writing the CRC at the end. ``dest_buf_sz`` The size of the dest_buffer ``crc`` a pointer to store the crc for this chunk”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj&>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj">ubhŒ:”…”�”}”(hj">h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Kÿhj>ubjÇ)�”}”(hŒÚstruct psi_write_args { void *dest_buf; void *from; size_t len; u32 dest_offset; u16 pid; bool new_psi_section; u8 *continuity_counter; bool is_crc; u32 dest_buf_sz; u32 *crc; };”h]”hŒÚstruct psi_write_args { void *dest_buf; void *from; size_t len; u32 dest_offset; u16 pid; bool new_psi_section; u8 *continuity_counter; bool is_crc; u32 dest_buf_sz; u32 *crc; };”…”�”}”hj?>sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj>ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjP>h]”hŒMembers”…”�”}”(hjR>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjN>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj>ubjz)�”}”(hhh]”(j)�”}”(hŒ'``dest_buf`` The buffer to write into. ”h]”(j…)�”}”(hŒ ``dest_buf``”h]”j¤ )�”}”(hjo>h]”hŒdest_buf”…”�”}”(hjq>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjm>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Kýhji>ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe buffer to write into.”h]”hŒThe buffer to write into.”…”�”}”(hjˆ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j„>h´Kýhj…>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hji>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j„>h´Kýhjf>ubj)�”}”(hŒ ``from`` PSI data to be copied. ”h]”(j…)�”}”(hŒ``from``”h]”j¤ )�”}”(hj¨>h]”hŒfrom”…”�”}”(hjª>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¦>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Kþhj¢>ubj•)�”}”(hhh]”hÞ)�”}”(hŒPSI data to be copied.”h]”hŒPSI data to be copied.”…”�”}”(hjÁ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j½>h´Kþhj¾>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¢>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j½>h´Kþhjf>ubj)�”}”(hŒ``len`` How much to write. ”h]”(j…)�”}”(hŒ``len``”h]”j¤ )�”}”(hjá>h]”hŒlen”…”�”}”(hjã>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjß>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´KÿhjÛ>ubj•)�”}”(hhh]”hÞ)�”}”(hŒHow much to write.”h]”hŒHow much to write.”…”�”}”(hjú>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jö>h´Kÿhj÷>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÛ>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jö>h´Kÿhjf>ubj)�”}”(hŒ;``dest_offset`` where to start writing in the dest_buffer. ”h]”(j…)�”}”(hŒ``dest_offset``”h]”j¤ )�”}”(hj?h]”hŒ dest_offset”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj?ubj•)�”}”(hhh]”hÞ)�”}”(hŒ*where to start writing in the dest_buffer.”h]”hŒ*where to start writing in the dest_buffer.”…”�”}”(hj3?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j/?h´Mhj0?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j/?h´Mhjf>ubj)�”}”(hŒ``pid`` TS packet ID. ”h]”(j…)�”}”(hŒ``pid``”h]”j¤ )�”}”(hjS?h]”hŒpid”…”�”}”(hjU?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjQ?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjM?ubj•)�”}”(hhh]”hÞ)�”}”(hŒ TS packet ID.”h]”hŒ TS packet ID.”…”�”}”(hjl?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh?h´Mhji?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjM?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jh?h´Mhjf>ubj)�”}”(hŒ7``new_psi_section`` Set when starting a table section. ”h]”(j…)�”}”(hŒ``new_psi_section``”h]”j¤ )�”}”(hjŒ?h]”hŒnew_psi_section”…”�”}”(hjŽ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjŠ?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj†?ubj•)�”}”(hhh]”hÞ)�”}”(hŒ"Set when starting a table section.”h]”hŒ"Set when starting a table section.”…”�”}”(hj¥?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¡?h´Mhj¢?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj†?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¡?h´Mhjf>ubj)�”}”(hŒ8``continuity_counter`` Incremented on every new packet. ”h]”(j…)�”}”(hŒ``continuity_counter``”h]”j¤ )�”}”(hjÅ?h]”hŒcontinuity_counter”…”�”}”(hjÇ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÃ?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj¿?ubj•)�”}”(hhh]”hÞ)�”}”(hŒ Incremented on every new packet.”h]”hŒ Incremented on every new packet.”…”�”}”(hjÞ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÚ?h´MhjÛ?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¿?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÚ?h´Mhjf>ubj)�”}”(hŒ0``is_crc`` Set when writing the CRC at the end. ”h]”(j…)�”}”(hŒ ``is_crc``”h]”j¤ )�”}”(hjþ?h]”hŒis_crc”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjü?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhjø?ubj•)�”}”(hhh]”hÞ)�”}”(hŒ$Set when writing the CRC at the end.”h]”hŒ$Set when writing the CRC at the end.”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j@h´Mhj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjø?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j@h´Mhjf>ubj)�”}”(hŒ,``dest_buf_sz`` The size of the dest_buffer ”h]”(j…)�”}”(hŒ``dest_buf_sz``”h]”j¤ )�”}”(hj7@h]”hŒ dest_buf_sz”…”�”}”(hj9@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj5@ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj1@ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe size of the dest_buffer”h]”hŒThe size of the dest_buffer”…”�”}”(hjP@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jL@h´MhjM@ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj1@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jL@h´Mhjf>ubj)�”}”(hŒ1``crc`` a pointer to store the crc for this chunk”h]”(j…)�”}”(hŒ``crc``”h]”j¤ )�”}”(hjp@h]”hŒcrc”…”�”}”(hjr@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjn@ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhjj@ubj•)�”}”(hhh]”hÞ)�”}”(hŒ)a pointer to store the crc for this chunk”h]”hŒ)a pointer to store the crc for this chunk”…”�”}”(hj‰@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj†@ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j…@h´Mhjf>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj>ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒdesc_write_args (C struct)”Œc.desc_write_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒdesc_write_args”h]”j )�”}”(hŒstruct desc_write_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÊ@h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÆ@h²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØ@h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÆ@h²hh³j×@h´M ubj3)�”}”(hŒdesc_write_args”h]”j9)�”}”(hjÄ@h]”hŒdesc_write_args”…”�”}”(hjê@h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjæ@ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjÆ@h²hh³j×@h´M ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjÂ@h²hh³j×@h´M ubah}”(h]”j½@ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j×@h´M hj¿@h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ)Arguments in order to write a descriptor.”h]”hŒ)Arguments in order to write a descriptor.”…”�”}”(hj Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj Ah²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj¿@h²hh³j×@h´M ubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡j$Ajˆj$Aj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX***Definition**:: struct desc_write_args { void *dest_buf; u32 dest_offset; struct vidtv_psi_desc *desc; u16 pid; u8 *continuity_counter; u32 dest_buf_sz; u32 *crc; }; **Members** ``dest_buf`` The buffer to write into. ``dest_offset`` where to start writing in the dest_buffer. ``desc`` A pointer to the descriptor ``pid`` TS packet ID. ``continuity_counter`` Incremented on every new packet. ``dest_buf_sz`` The size of the dest_buffer ``crc`` a pointer to store the crc for this chunk”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj0Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj,AubhŒ:”…”�”}”(hj,Ah²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj(AubjÇ)�”}”(hŒ±struct desc_write_args { void *dest_buf; u32 dest_offset; struct vidtv_psi_desc *desc; u16 pid; u8 *continuity_counter; u32 dest_buf_sz; u32 *crc; };”h]”hŒ±struct desc_write_args { void *dest_buf; u32 dest_offset; struct vidtv_psi_desc *desc; u16 pid; u8 *continuity_counter; u32 dest_buf_sz; u32 *crc; };”…”�”}”hjIAsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj(AubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjZAh]”hŒMembers”…”�”}”(hj\Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjXAubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M%hj(Aubjz)�”}”(hhh]”(j)�”}”(hŒ'``dest_buf`` The buffer to write into. ”h]”(j…)�”}”(hŒ ``dest_buf``”h]”j¤ )�”}”(hjyAh]”hŒdest_buf”…”�”}”(hj{Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjwAubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjsAubj•)�”}”(hhh]”hÞ)�”}”(hŒThe buffer to write into.”h]”hŒThe buffer to write into.”…”�”}”(hj’Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jŽAh´Mhj�Aubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjsAubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jŽAh´MhjpAubj)�”}”(hŒ;``dest_offset`` where to start writing in the dest_buffer. ”h]”(j…)�”}”(hŒ``dest_offset``”h]”j¤ )�”}”(hj²Ah]”hŒ dest_offset”…”�”}”(hj´Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj°Aubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj¬Aubj•)�”}”(hhh]”hÞ)�”}”(hŒ*where to start writing in the dest_buffer.”h]”hŒ*where to start writing in the dest_buffer.”…”�”}”(hjËAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÇAh´MhjÈAubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¬Aubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÇAh´MhjpAubj)�”}”(hŒ%``desc`` A pointer to the descriptor ”h]”(j…)�”}”(hŒ``desc``”h]”j¤ )�”}”(hjëAh]”hŒdesc”…”�”}”(hjíAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjéAubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjåAubj•)�”}”(hhh]”hÞ)�”}”(hŒA pointer to the descriptor”h]”hŒA pointer to the descriptor”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jBh´MhjBubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjåAubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jBh´MhjpAubj)�”}”(hŒ``pid`` TS packet ID. ”h]”(j…)�”}”(hŒ``pid``”h]”j¤ )�”}”(hj$Bh]”hŒpid”…”�”}”(hj&Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj"Bubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjBubj•)�”}”(hhh]”hÞ)�”}”(hŒ TS packet ID.”h]”hŒ TS packet ID.”…”�”}”(hj=Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j9Bh´Mhj:Bubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j9Bh´MhjpAubj)�”}”(hŒ8``continuity_counter`` Incremented on every new packet. ”h]”(j…)�”}”(hŒ``continuity_counter``”h]”j¤ )�”}”(hj]Bh]”hŒcontinuity_counter”…”�”}”(hj_Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj[Bubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjWBubj•)�”}”(hhh]”hÞ)�”}”(hŒ Incremented on every new packet.”h]”hŒ Incremented on every new packet.”…”�”}”(hjvBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jrBh´MhjsBubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjWBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jrBh´MhjpAubj)�”}”(hŒ,``dest_buf_sz`` The size of the dest_buffer ”h]”(j…)�”}”(hŒ``dest_buf_sz``”h]”j¤ )�”}”(hj–Bh]”hŒ dest_buf_sz”…”�”}”(hj˜Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj”Bubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj�Bubj•)�”}”(hhh]”hÞ)�”}”(hŒThe size of the dest_buffer”h]”hŒThe size of the dest_buffer”…”�”}”(hj¯Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j«Bh´Mhj¬Bubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj�Bubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j«Bh´MhjpAubj)�”}”(hŒ1``crc`` a pointer to store the crc for this chunk”h]”(j…)�”}”(hŒ``crc``”h]”j¤ )�”}”(hjÏBh]”hŒcrc”…”�”}”(hjÑBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÍBubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjÉBubj•)�”}”(hhh]”hÞ)�”}”(hŒ)a pointer to store the crc for this chunk”h]”hŒ)a pointer to store the crc for this chunk”…”�”}”(hjèBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjåBubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÉBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jäBh´MhjpAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj(Aubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒcrc32_write_args (C struct)”Œc.crc32_write_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒcrc32_write_args”h]”j )�”}”(hŒstruct crc32_write_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj)Ch²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj%Ch²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M#ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7Ch²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj%Ch²hh³j6Ch´M#ubj3)�”}”(hŒcrc32_write_args”h]”j9)�”}”(hj#Ch]”hŒcrc32_write_args”…”�”}”(hjICh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjECubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj%Ch²hh³j6Ch´M#ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj!Ch²hh³j6Ch´M#ubah}”(h]”jCah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j6Ch´M#hjCh²hubje)�”}”(hhh]”hÞ)�”}”(hŒAArguments in order to write the CRC at the end of the PSI tables.”h]”hŒAArguments in order to write the CRC at the end of the PSI tables.”…”�”}”(hjkCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M)hjhCh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjCh²hh³j6Ch´M#ubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡jƒCjˆjƒCj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXÏ**Definition**:: struct crc32_write_args { void *dest_buf; u32 dest_offset; __be32 crc; u16 pid; u8 *continuity_counter; u32 dest_buf_sz; }; **Members** ``dest_buf`` The buffer to write into. ``dest_offset`` where to start writing in the dest_buffer. ``crc`` the CRC value to write ``pid`` TS packet ID. ``continuity_counter`` Incremented on every new packet. ``dest_buf_sz`` The size of the dest_buffer”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj�Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj‹CubhŒ:”…”�”}”(hj‹Ch²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M-hj‡CubjÇ)�”}”(hŒ“struct crc32_write_args { void *dest_buf; u32 dest_offset; __be32 crc; u16 pid; u8 *continuity_counter; u32 dest_buf_sz; };”h]”hŒ“struct crc32_write_args { void *dest_buf; u32 dest_offset; __be32 crc; u16 pid; u8 *continuity_counter; u32 dest_buf_sz; };”…”�”}”hj¨Csbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´•M/hj‡CubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hj¹Ch]”hŒMembers”…”�”}”(hj»Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj·Cubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M8hj‡Cubjz)�”}”(hhh]”(j)�”}”(hŒ'``dest_buf`` The buffer to write into. ”h]”(j…)�”}”(hŒ ``dest_buf``”h]”j¤ )�”}”(hjØCh]”hŒdest_buf”…”�”}”(hjÚCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÖCubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M,hjÒCubj•)�”}”(hhh]”hÞ)�”}”(hŒThe buffer to write into.”h]”hŒThe buffer to write into.”…”�”}”(hjñCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jíCh´M,hjîCubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÒCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jíCh´M,hjÏCubj)�”}”(hŒ;``dest_offset`` where to start writing in the dest_buffer. ”h]”(j…)�”}”(hŒ``dest_offset``”h]”j¤ )�”}”(hjDh]”hŒ dest_offset”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjDubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M-hj Dubj•)�”}”(hhh]”hÞ)�”}”(hŒ*where to start writing in the dest_buffer.”h]”hŒ*where to start writing in the dest_buffer.”…”�”}”(hj*Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j&Dh´M-hj'Dubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j&Dh´M-hjÏCubj)�”}”(hŒ``crc`` the CRC value to write ”h]”(j…)�”}”(hŒ``crc``”h]”j¤ )�”}”(hjJDh]”hŒcrc”…”�”}”(hjLDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjHDubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M.hjDDubj•)�”}”(hhh]”hÞ)�”}”(hŒthe CRC value to write”h]”hŒthe CRC value to write”…”�”}”(hjcDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j_Dh´M.hj`Dubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjDDubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j_Dh´M.hjÏCubj)�”}”(hŒ``pid`` TS packet ID. ”h]”(j…)�”}”(hŒ``pid``”h]”j¤ )�”}”(hjƒDh]”hŒpid”…”�”}”(hj…Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj�Dubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M/hj}Dubj•)�”}”(hhh]”hÞ)�”}”(hŒ TS packet ID.”h]”hŒ TS packet ID.”…”�”}”(hjœDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j˜Dh´M/hj™Dubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj}Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j˜Dh´M/hjÏCubj)�”}”(hŒ8``continuity_counter`` Incremented on every new packet. ”h]”(j…)�”}”(hŒ``continuity_counter``”h]”j¤ )�”}”(hj¼Dh]”hŒcontinuity_counter”…”�”}”(hj¾Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjºDubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M0hj¶Dubj•)�”}”(hhh]”hÞ)�”}”(hŒ Incremented on every new packet.”h]”hŒ Incremented on every new packet.”…”�”}”(hjÕDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÑDh´M0hjÒDubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¶Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÑDh´M0hjÏCubj)�”}”(hŒ+``dest_buf_sz`` The size of the dest_buffer”h]”(j…)�”}”(hŒ``dest_buf_sz``”h]”j¤ )�”}”(hjõDh]”hŒ dest_buf_sz”…”�”}”(hj÷Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjóDubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M0hjïDubj•)�”}”(hhh]”hÞ)�”}”(hŒThe size of the dest_buffer”h]”hŒThe size of the dest_buffer”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M1hj Eubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjïDubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j Eh´M0hjÏCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj‡Cubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒheader_write_args (C struct)”Œc.header_write_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒheader_write_args”h]”j )�”}”(hŒstruct header_write_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjOEh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjKEh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M7ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]Eh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjKEh²hh³j\Eh´M7ubj3)�”}”(hŒheader_write_args”h]”j9)�”}”(hjIEh]”hŒheader_write_args”…”�”}”(hjoEh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjkEubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjKEh²hh³j\Eh´M7ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjGEh²hh³j\Eh´M7ubah}”(h]”jBEah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j\Eh´M7hjDEh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ3Arguments in order to write the common table header”h]”hŒ3Arguments in order to write the common table header”…”�”}”(hj‘Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M<hjŽEh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjDEh²hh³j\Eh´M7ubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡j©Ejˆj©Ej‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX+**Definition**:: struct header_write_args { void *dest_buf; u32 dest_offset; struct vidtv_psi_table_header *h; u16 pid; u8 *continuity_counter; u32 dest_buf_sz; u32 *crc; }; **Members** ``dest_buf`` The buffer to write into. ``dest_offset`` where to start writing in the dest_buffer. ``h`` a pointer to the header. ``pid`` TS packet ID. ``continuity_counter`` Incremented on every new packet. ``dest_buf_sz`` The size of the dest_buffer ``crc`` a pointer to store the crc for this chunk”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjµEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj±EubhŒ:”…”�”}”(hj±Eh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M@hj­EubjÇ)�”}”(hŒ¸struct header_write_args { void *dest_buf; u32 dest_offset; struct vidtv_psi_table_header *h; u16 pid; u8 *continuity_counter; u32 dest_buf_sz; u32 *crc; };”h]”hŒ¸struct header_write_args { void *dest_buf; u32 dest_offset; struct vidtv_psi_table_header *h; u16 pid; u8 *continuity_counter; u32 dest_buf_sz; u32 *crc; };”…”�”}”hjÎEsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MBhj­EubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjßEh]”hŒMembers”…”�”}”(hjáEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÝEubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MLhj­Eubjz)�”}”(hhh]”(j)�”}”(hŒ'``dest_buf`` The buffer to write into. ”h]”(j…)�”}”(hŒ ``dest_buf``”h]”j¤ )�”}”(hjþEh]”hŒdest_buf”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjüEubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M?hjøEubj•)�”}”(hhh]”hÞ)�”}”(hŒThe buffer to write into.”h]”hŒThe buffer to write into.”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jFh´M?hjFubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjøEubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jFh´M?hjõEubj)�”}”(hŒ;``dest_offset`` where to start writing in the dest_buffer. ”h]”(j…)�”}”(hŒ``dest_offset``”h]”j¤ )�”}”(hj7Fh]”hŒ dest_offset”…”�”}”(hj9Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj5Fubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M@hj1Fubj•)�”}”(hhh]”hÞ)�”}”(hŒ*where to start writing in the dest_buffer.”h]”hŒ*where to start writing in the dest_buffer.”…”�”}”(hjPFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jLFh´M@hjMFubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj1Fubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jLFh´M@hjõEubj)�”}”(hŒ``h`` a pointer to the header. ”h]”(j…)�”}”(hŒ``h``”h]”j¤ )�”}”(hjpFh]”hŒh”…”�”}”(hjrFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjnFubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MAhjjFubj•)�”}”(hhh]”hÞ)�”}”(hŒa pointer to the header.”h]”hŒa pointer to the header.”…”�”}”(hj‰Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j…Fh´MAhj†Fubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjjFubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j…Fh´MAhjõEubj)�”}”(hŒ``pid`` TS packet ID. ”h]”(j…)�”}”(hŒ``pid``”h]”j¤ )�”}”(hj©Fh]”hŒpid”…”�”}”(hj«Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj§Fubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MBhj£Fubj•)�”}”(hhh]”hÞ)�”}”(hŒ TS packet ID.”h]”hŒ TS packet ID.”…”�”}”(hjÂFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¾Fh´MBhj¿Fubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj£Fubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¾Fh´MBhjõEubj)�”}”(hŒ8``continuity_counter`` Incremented on every new packet. ”h]”(j…)�”}”(hŒ``continuity_counter``”h]”j¤ )�”}”(hjâFh]”hŒcontinuity_counter”…”�”}”(hjäFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjàFubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MChjÜFubj•)�”}”(hhh]”hÞ)�”}”(hŒ Incremented on every new packet.”h]”hŒ Incremented on every new packet.”…”�”}”(hjûFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j÷Fh´MChjøFubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÜFubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j÷Fh´MChjõEubj)�”}”(hŒ,``dest_buf_sz`` The size of the dest_buffer ”h]”(j…)�”}”(hŒ``dest_buf_sz``”h]”j¤ )�”}”(hjGh]”hŒ dest_buf_sz”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjGubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MDhjGubj•)�”}”(hhh]”hÞ)�”}”(hŒThe size of the dest_buffer”h]”hŒThe size of the dest_buffer”…”�”}”(hj4Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j0Gh´MDhj1Gubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j0Gh´MDhjõEubj)�”}”(hŒ1``crc`` a pointer to store the crc for this chunk”h]”(j…)�”}”(hŒ``crc``”h]”j¤ )�”}”(hjTGh]”hŒcrc”…”�”}”(hjVGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjRGubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MDhjNGubj•)�”}”(hhh]”hÞ)�”}”(hŒ)a pointer to store the crc for this chunk”h]”hŒ)a pointer to store the crc for this chunk”…”�”}”(hjmGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MEhjjGubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjNGubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jiGh´MDhjõEubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj­Eubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ)vidtv_psi_sdt_service_assign (C function)”Œc.vidtv_psi_sdt_service_assign”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒpvoid vidtv_psi_sdt_service_assign (struct vidtv_psi_table_sdt *sdt, struct vidtv_psi_table_sdt_service *service)”h]”j )�”}”(hŒovoid vidtv_psi_sdt_service_assign(struct vidtv_psi_table_sdt *sdt, struct vidtv_psi_table_sdt_service *service)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj®Gh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjªGh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M�ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½Gh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjªGh²hh³j¼Gh´M�ubj3)�”}”(hŒvidtv_psi_sdt_service_assign”h]”j9)�”}”(hŒvidtv_psi_sdt_service_assign”h]”hŒvidtv_psi_sdt_service_assign”…”�”}”(hjÏGh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjËGubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjªGh²hh³j¼Gh´M�ubjP)�”}”(hŒN(struct vidtv_psi_table_sdt *sdt, struct vidtv_psi_table_sdt_service *service)”h]”(jV)�”}”(hŒstruct vidtv_psi_table_sdt *sdt”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjëGh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjçGubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjøGh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjçGubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_sdt”h]”hŒvidtv_psi_table_sdt”…”�”}”(hj Hh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjHubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j HŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�jÑGsbŒc.vidtv_psi_sdt_service_assign”†”asbuh1hhjçGubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)Hh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjçGubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj7Hh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjçGubj9)�”}”(hŒsdt”h]”hŒsdt”…”�”}”(hjDHh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjçGubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjãGubjV)�”}”(hŒ+struct vidtv_psi_table_sdt_service *service”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj]Hh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjYHubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjHh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjYHubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_sdt_service”h]”hŒvidtv_psi_table_sdt_service”…”�”}”(hj{Hh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjxHubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j}HŒmodname”NŒ classname”Nj“j–)�”}”j™]”j%HŒc.vidtv_psi_sdt_service_assign”†”asbuh1hhjYHubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™Hh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjYHubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj§Hh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjYHubj9)�”}”(hŒservice”h]”hŒservice”…”�”}”(hj´Hh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjYHubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjãGubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjªGh²hh³j¼Gh´M�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj¦Gh²hh³j¼Gh´M�ubah}”(h]”j¡Gah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j¼Gh´M�hj£Gh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ$Assigns the service loop to the SDT.”h]”hŒ$Assigns the service loop to the SDT.”…”�”}”(hjÞHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M�hjÛHh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj£Gh²hh³j¼Gh´M�ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jöHjˆjöHj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX„**Parameters** ``struct vidtv_psi_table_sdt *sdt`` The SDT to assign to. ``struct vidtv_psi_table_sdt_service *service`` The service loop (one or more services) **Description** This will free the previous service loop in the table. This will assign ownership of the service loop to the table, i.e. the table will free this service loop when a call to its destroy function is made.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjIh]”hŒ Parameters”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjþHubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M”hjúHubjz)�”}”(hhh]”(j)�”}”(hŒ:``struct vidtv_psi_table_sdt *sdt`` The SDT to assign to. ”h]”(j…)�”}”(hŒ#``struct vidtv_psi_table_sdt *sdt``”h]”j¤ )�”}”(hjIh]”hŒstruct vidtv_psi_table_sdt *sdt”…”�”}”(hj!Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M‘hjIubj•)�”}”(hhh]”hÞ)�”}”(hŒThe SDT to assign to.”h]”hŒThe SDT to assign to.”…”�”}”(hj8Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j4Ih´M‘hj5Iubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j4Ih´M‘hjIubj)�”}”(hŒX``struct vidtv_psi_table_sdt_service *service`` The service loop (one or more services) ”h]”(j…)�”}”(hŒ/``struct vidtv_psi_table_sdt_service *service``”h]”j¤ )�”}”(hjXIh]”hŒ+struct vidtv_psi_table_sdt_service *service”…”�”}”(hjZIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjVIubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M’hjRIubj•)�”}”(hhh]”hÞ)�”}”(hŒ'The service loop (one or more services)”h]”hŒ'The service loop (one or more services)”…”�”}”(hjqIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jmIh´M’hjnIubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjRIubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jmIh´M’hjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjúHubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hj“Ih]”hŒ Description”…”�”}”(hj•Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj‘Iubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M”hjúHubhÞ)�”}”(hŒËThis will free the previous service loop in the table. This will assign ownership of the service loop to the table, i.e. the table will free this service loop when a call to its destroy function is made.”h]”hŒËThis will free the previous service loop in the table. This will assign ownership of the service loop to the table, i.e. the table will free this service loop when a call to its destroy function is made.”…”�”}”(hj©Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M“hjúHubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ"vidtv_psi_desc_assign (C function)”Œc.vidtv_psi_desc_assign”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒTvoid vidtv_psi_desc_assign (struct vidtv_psi_desc **to, struct vidtv_psi_desc *desc)”h]”j )�”}”(hŒSvoid vidtv_psi_desc_assign(struct vidtv_psi_desc **to, struct vidtv_psi_desc *desc)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjØIh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjÔIh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M�ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçIh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÔIh²hh³jæIh´M�ubj3)�”}”(hŒvidtv_psi_desc_assign”h]”j9)�”}”(hŒvidtv_psi_desc_assign”h]”hŒvidtv_psi_desc_assign”…”�”}”(hjùIh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjõIubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjÔIh²hh³jæIh´M�ubjP)�”}”(hŒ9(struct vidtv_psi_desc **to, struct vidtv_psi_desc *desc)”h]”(jV)�”}”(hŒstruct vidtv_psi_desc **to”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjJubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"Jh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjJubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_desc”h]”hŒvidtv_psi_desc”…”�”}”(hj3Jh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj0Jubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j5JŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�jûIsbŒc.vidtv_psi_desc_assign”†”asbuh1hhjJubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjSJh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjJubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjaJh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjJubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjnJh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjJubj9)�”}”(hŒto”h]”hŒto”…”�”}”(hj{Jh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjJubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj JubjV)�”}”(hŒstruct vidtv_psi_desc *desc”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj”Jh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj�Jubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡Jh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj�Jubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_desc”h]”hŒvidtv_psi_desc”…”�”}”(hj²Jh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj¯Jubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j´JŒmodname”NŒ classname”Nj“j–)�”}”j™]”jOJŒc.vidtv_psi_desc_assign”†”asbuh1hhj�Jubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐJh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj�Jubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjÞJh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hj�Jubj9)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjëJh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj�Jubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj Jubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjÔIh²hh³jæIh´M�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjÐIh²hh³jæIh´M�ubah}”(h]”jËIah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jæIh´M�hjÍIh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ'Assigns a descriptor loop at some point”h]”hŒ'Assigns a descriptor loop at some point”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M�hjKh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÍIh²hh³jæIh´M�ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡j-Kjˆj-Kj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hŒá**Parameters** ``struct vidtv_psi_desc **to`` Where to assign this descriptor loop to ``struct vidtv_psi_desc *desc`` The descriptor loop that will be assigned. **Description** This will free the loop in 'to', if any.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hj7Kh]”hŒ Parameters”…”�”}”(hj9Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj5Kubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M¡hj1Kubjz)�”}”(hhh]”(j)�”}”(hŒG``struct vidtv_psi_desc **to`` Where to assign this descriptor loop to ”h]”(j…)�”}”(hŒ``struct vidtv_psi_desc **to``”h]”j¤ )�”}”(hjVKh]”hŒstruct vidtv_psi_desc **to”…”�”}”(hjXKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjTKubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MžhjPKubj•)�”}”(hhh]”hÞ)�”}”(hŒ'Where to assign this descriptor loop to”h]”hŒ'Where to assign this descriptor loop to”…”�”}”(hjoKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jkKh´MžhjlKubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjPKubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jkKh´MžhjMKubj)�”}”(hŒK``struct vidtv_psi_desc *desc`` The descriptor loop that will be assigned. ”h]”(j…)�”}”(hŒ``struct vidtv_psi_desc *desc``”h]”j¤ )�”}”(hj�Kh]”hŒstruct vidtv_psi_desc *desc”…”�”}”(hj‘Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj�Kubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MŸhj‰Kubj•)�”}”(hhh]”hÞ)�”}”(hŒ*The descriptor loop that will be assigned.”h]”hŒ*The descriptor loop that will be assigned.”…”�”}”(hj¨Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¤Kh´MŸhj¥Kubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj‰Kubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¤Kh´MŸhjMKubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj1KubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjÊKh]”hŒ Description”…”�”}”(hjÌKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÈKubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M¡hj1KubhÞ)�”}”(hŒ(This will free the loop in 'to', if any.”h]”hŒ,This will free the loop in ‘to’, if any.”…”�”}”(hjàKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M hj1Kubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ"vidtv_pmt_desc_assign (C function)”Œc.vidtv_pmt_desc_assign”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒuvoid vidtv_pmt_desc_assign (struct vidtv_psi_table_pmt *pmt, struct vidtv_psi_desc **to, struct vidtv_psi_desc *desc)”h]”j )�”}”(hŒtvoid vidtv_pmt_desc_assign(struct vidtv_psi_table_pmt *pmt, struct vidtv_psi_desc **to, struct vidtv_psi_desc *desc)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhj Lh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M§ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj Lh²hh³jLh´M§ubj3)�”}”(hŒvidtv_pmt_desc_assign”h]”j9)�”}”(hŒvidtv_pmt_desc_assign”h]”hŒvidtv_pmt_desc_assign”…”�”}”(hj0Lh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj,Lubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj Lh²hh³jLh´M§ubjP)�”}”(hŒZ(struct vidtv_psi_table_pmt *pmt, struct vidtv_psi_desc **to, struct vidtv_psi_desc *desc)”h]”(jV)�”}”(hŒstruct vidtv_psi_table_pmt *pmt”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjLLh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjHLubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjYLh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjHLubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_pmt”h]”hŒvidtv_psi_table_pmt”…”�”}”(hjjLh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjgLubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jlLŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�j2LsbŒc.vidtv_pmt_desc_assign”†”asbuh1hhjHLubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠLh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjHLubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj˜Lh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjHLubj9)�”}”(hŒpmt”h]”hŒpmt”…”�”}”(hj¥Lh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjHLubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjDLubjV)�”}”(hŒstruct vidtv_psi_desc **to”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj¾Lh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjºLubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËLh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjºLubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_desc”h]”hŒvidtv_psi_desc”…”�”}”(hjÜLh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjÙLubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jÞLŒmodname”NŒ classname”Nj“j–)�”}”j™]”j†LŒc.vidtv_pmt_desc_assign”†”asbuh1hhjºLubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjúLh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjºLubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjºLubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjºLubj9)�”}”(hŒto”h]”hŒto”…”�”}”(hj"Mh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjºLubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjDLubjV)�”}”(hŒstruct vidtv_psi_desc *desc”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj;Mh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj7Mubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHMh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj7Mubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_desc”h]”hŒvidtv_psi_desc”…”�”}”(hjYMh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjVMubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j[MŒmodname”NŒ classname”Nj“j–)�”}”j™]”j†LŒc.vidtv_pmt_desc_assign”†”asbuh1hhj7Mubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwMh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj7Mubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj…Mh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hj7Mubj9)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj’Mh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj7Mubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjDLubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhj Lh²hh³jLh´M§ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjLh²hh³jLh´M§ubah}”(h]”jLah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jLh´M§hjLh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ9Assigns a descriptor loop at some point in a PMT section.”h]”hŒ9Assigns a descriptor loop at some point in a PMT section.”…”�”}”(hj¼Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M§hj¹Mh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjLh²hh³jLh´M§ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jÔMjˆjÔMj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXÎ**Parameters** ``struct vidtv_psi_table_pmt *pmt`` The PMT section that will contain the descriptor loop ``struct vidtv_psi_desc **to`` Where in the PMT to assign this descriptor loop to ``struct vidtv_psi_desc *desc`` The descriptor loop that will be assigned. **Description** This will free the loop in 'to', if any. This will assign ownership of the loop to the table, i.e. the table will free this loop when a call to its destroy function is made.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjÞMh]”hŒ Parameters”…”�”}”(hjàMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÜMubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M«hjØMubjz)�”}”(hhh]”(j)�”}”(hŒZ``struct vidtv_psi_table_pmt *pmt`` The PMT section that will contain the descriptor loop ”h]”(j…)�”}”(hŒ#``struct vidtv_psi_table_pmt *pmt``”h]”j¤ )�”}”(hjýMh]”hŒstruct vidtv_psi_table_pmt *pmt”…”�”}”(hjÿMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjûMubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M¨hj÷Mubj•)�”}”(hhh]”hÞ)�”}”(hŒ5The PMT section that will contain the descriptor loop”h]”hŒ5The PMT section that will contain the descriptor loop”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jNh´M¨hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj÷Mubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jNh´M¨hjôMubj)�”}”(hŒR``struct vidtv_psi_desc **to`` Where in the PMT to assign this descriptor loop to ”h]”(j…)�”}”(hŒ``struct vidtv_psi_desc **to``”h]”j¤ )�”}”(hj6Nh]”hŒstruct vidtv_psi_desc **to”…”�”}”(hj8Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj4Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M©hj0Nubj•)�”}”(hhh]”hÞ)�”}”(hŒ2Where in the PMT to assign this descriptor loop to”h]”hŒ2Where in the PMT to assign this descriptor loop to”…”�”}”(hjONh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jKNh´M©hjLNubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj0Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jKNh´M©hjôMubj)�”}”(hŒK``struct vidtv_psi_desc *desc`` The descriptor loop that will be assigned. ”h]”(j…)�”}”(hŒ``struct vidtv_psi_desc *desc``”h]”j¤ )�”}”(hjoNh]”hŒstruct vidtv_psi_desc *desc”…”�”}”(hjqNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjmNubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MªhjiNubj•)�”}”(hhh]”hÞ)�”}”(hŒ*The descriptor loop that will be assigned.”h]”hŒ*The descriptor loop that will be assigned.”…”�”}”(hjˆNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j„Nh´Mªhj…Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjiNubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j„Nh´MªhjôMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjØMubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjªNh]”hŒ Description”…”�”}”(hj¬Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj¨Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M¬hjØMubhÞ)�”}”(hŒ­This will free the loop in 'to', if any. This will assign ownership of the loop to the table, i.e. the table will free this loop when a call to its destroy function is made.”h]”hŒ±This will free the loop in ‘to’, if any. This will assign ownership of the loop to the table, i.e. the table will free this loop when a call to its destroy function is made.”…”�”}”(hjÀNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M«hjØMubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ"vidtv_sdt_desc_assign (C function)”Œc.vidtv_sdt_desc_assign”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒuvoid vidtv_sdt_desc_assign (struct vidtv_psi_table_sdt *sdt, struct vidtv_psi_desc **to, struct vidtv_psi_desc *desc)”h]”j )�”}”(hŒtvoid vidtv_sdt_desc_assign(struct vidtv_psi_table_sdt *sdt, struct vidtv_psi_desc **to, struct vidtv_psi_desc *desc)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjïNh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjëNh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mµubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþNh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjëNh²hh³jýNh´Mµubj3)�”}”(hŒvidtv_sdt_desc_assign”h]”j9)�”}”(hŒvidtv_sdt_desc_assign”h]”hŒvidtv_sdt_desc_assign”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj Oubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjëNh²hh³jýNh´MµubjP)�”}”(hŒZ(struct vidtv_psi_table_sdt *sdt, struct vidtv_psi_desc **to, struct vidtv_psi_desc *desc)”h]”(jV)�”}”(hŒstruct vidtv_psi_table_sdt *sdt”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj,Oh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj(Oubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9Oh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj(Oubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_sdt”h]”hŒvidtv_psi_table_sdt”…”�”}”(hjJOh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjGOubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jLOŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�jOsbŒc.vidtv_sdt_desc_assign”†”asbuh1hhj(Oubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjOh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj(Oubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjxOh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hj(Oubj9)�”}”(hŒsdt”h]”hŒsdt”…”�”}”(hj…Oh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj(Oubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj$OubjV)�”}”(hŒstruct vidtv_psi_desc **to”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjžOh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjšOubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«Oh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjšOubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_desc”h]”hŒvidtv_psi_desc”…”�”}”(hj¼Oh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj¹Oubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j¾OŒmodname”NŒ classname”Nj“j–)�”}”j™]”jfOŒc.vidtv_sdt_desc_assign”†”asbuh1hhjšOubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚOh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjšOubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjèOh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjšOubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjõOh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjšOubj9)�”}”(hŒto”h]”hŒto”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjšOubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj$OubjV)�”}”(hŒstruct vidtv_psi_desc *desc”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjPubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(Ph²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjPubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_desc”h]”hŒvidtv_psi_desc”…”�”}”(hj9Ph²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj6Pubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j;PŒmodname”NŒ classname”Nj“j–)�”}”j™]”jfOŒc.vidtv_sdt_desc_assign”†”asbuh1hhjPubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWPh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjPubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjePh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjPubj9)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjrPh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjPubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj$Oubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjëNh²hh³jýNh´Mµubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjçNh²hh³jýNh´Mµubah}”(h]”jâNah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jýNh´MµhjäNh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ1Assigns a descriptor loop at some point in a SDT.”h]”hŒ1Assigns a descriptor loop at some point in a SDT.”…”�”}”(hjœPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mµhj™Ph²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjäNh²hh³jýNh´Mµubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡j´Pjˆj´Pj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXÆ**Parameters** ``struct vidtv_psi_table_sdt *sdt`` The SDT that will contain the descriptor loop ``struct vidtv_psi_desc **to`` Where in the PMT to assign this descriptor loop to ``struct vidtv_psi_desc *desc`` The descriptor loop that will be assigned. **Description** This will free the loop in 'to', if any. This will assign ownership of the loop to the table, i.e. the table will free this loop when a call to its destroy function is made.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hj¾Ph]”hŒ Parameters”…”�”}”(hjÀPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj¼Pubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M¹hj¸Pubjz)�”}”(hhh]”(j)�”}”(hŒR``struct vidtv_psi_table_sdt *sdt`` The SDT that will contain the descriptor loop ”h]”(j…)�”}”(hŒ#``struct vidtv_psi_table_sdt *sdt``”h]”j¤ )�”}”(hjÝPh]”hŒstruct vidtv_psi_table_sdt *sdt”…”�”}”(hjßPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÛPubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M¶hj×Pubj•)�”}”(hhh]”hÞ)�”}”(hŒ-The SDT that will contain the descriptor loop”h]”hŒ-The SDT that will contain the descriptor loop”…”�”}”(hjöPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jòPh´M¶hjóPubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj×Pubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jòPh´M¶hjÔPubj)�”}”(hŒR``struct vidtv_psi_desc **to`` Where in the PMT to assign this descriptor loop to ”h]”(j…)�”}”(hŒ``struct vidtv_psi_desc **to``”h]”j¤ )�”}”(hjQh]”hŒstruct vidtv_psi_desc **to”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M·hjQubj•)�”}”(hhh]”hÞ)�”}”(hŒ2Where in the PMT to assign this descriptor loop to”h]”hŒ2Where in the PMT to assign this descriptor loop to”…”�”}”(hj/Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j+Qh´M·hj,Qubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjQubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j+Qh´M·hjÔPubj)�”}”(hŒK``struct vidtv_psi_desc *desc`` The descriptor loop that will be assigned. ”h]”(j…)�”}”(hŒ``struct vidtv_psi_desc *desc``”h]”j¤ )�”}”(hjOQh]”hŒstruct vidtv_psi_desc *desc”…”�”}”(hjQQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjMQubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M¸hjIQubj•)�”}”(hhh]”hÞ)�”}”(hŒ*The descriptor loop that will be assigned.”h]”hŒ*The descriptor loop that will be assigned.”…”�”}”(hjhQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jdQh´M¸hjeQubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjIQubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jdQh´M¸hjÔPubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¸PubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjŠQh]”hŒ Description”…”�”}”(hjŒQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjˆQubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mºhj¸PubhÞ)�”}”(hŒ­This will free the loop in 'to', if any. This will assign ownership of the loop to the table, i.e. the table will free this loop when a call to its destroy function is made.”h]”hŒ±This will free the loop in ‘to’, if any. This will assign ownership of the loop to the table, i.e. the table will free this loop when a call to its destroy function is made.”…”�”}”(hj Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M¹hj¸Pubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ)vidtv_psi_pat_program_assign (C function)”Œc.vidtv_psi_pat_program_assign”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒjvoid vidtv_psi_pat_program_assign (struct vidtv_psi_table_pat *pat, struct vidtv_psi_table_pat_program *p)”h]”j )�”}”(hŒivoid vidtv_psi_pat_program_assign(struct vidtv_psi_table_pat *pat, struct vidtv_psi_table_pat_program *p)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÏQh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjËQh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÃubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞQh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjËQh²hh³jÝQh´MÃubj3)�”}”(hŒvidtv_psi_pat_program_assign”h]”j9)�”}”(hŒvidtv_psi_pat_program_assign”h]”hŒvidtv_psi_pat_program_assign”…”�”}”(hjðQh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjìQubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjËQh²hh³jÝQh´MÃubjP)�”}”(hŒH(struct vidtv_psi_table_pat *pat, struct vidtv_psi_table_pat_program *p)”h]”(jV)�”}”(hŒstruct vidtv_psi_table_pat *pat”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj Rh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjRubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjRubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_pat”h]”hŒvidtv_psi_table_pat”…”�”}”(hj*Rh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj'Rubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j,RŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�jòQsbŒc.vidtv_psi_pat_program_assign”†”asbuh1hhjRubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJRh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjRubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjXRh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjRubj9)�”}”(hŒpat”h]”hŒpat”…”�”}”(hjeRh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjRubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjRubjV)�”}”(hŒ%struct vidtv_psi_table_pat_program *p”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj~Rh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjzRubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹Rh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjzRubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_pat_program”h]”hŒvidtv_psi_table_pat_program”…”�”}”(hjœRh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj™Rubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jžRŒmodname”NŒ classname”Nj“j–)�”}”j™]”jFRŒc.vidtv_psi_pat_program_assign”†”asbuh1hhjzRubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºRh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjzRubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjÈRh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjzRubj9)�”}”(hj¼h]”hŒp”…”�”}”(hjÕRh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjzRubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjRubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjËQh²hh³jÝQh´MÃubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjÇQh²hh³jÝQh´MÃubah}”(h]”jÂQah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jÝQh´MÃhjÄQh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ$Assigns the program loop to the PAT.”h]”hŒ$Assigns the program loop to the PAT.”…”�”}”(hjþRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÃhjûRh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÄQh²hh³jÝQh´MÃubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jSjˆjSj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX~**Parameters** ``struct vidtv_psi_table_pat *pat`` The PAT to assign to. ``struct vidtv_psi_table_pat_program *p`` The program loop (one or more programs) **Description** This will free the previous program loop in the table. This will assign ownership of the program loop to the table, i.e. the table will free this program loop when a call to its destroy function is made.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hj Sh]”hŒ Parameters”…”�”}”(hj"Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÇhjSubjz)�”}”(hhh]”(j)�”}”(hŒ:``struct vidtv_psi_table_pat *pat`` The PAT to assign to. ”h]”(j…)�”}”(hŒ#``struct vidtv_psi_table_pat *pat``”h]”j¤ )�”}”(hj?Sh]”hŒstruct vidtv_psi_table_pat *pat”…”�”}”(hjASh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj=Subah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÄhj9Subj•)�”}”(hhh]”hÞ)�”}”(hŒThe PAT to assign to.”h]”hŒThe PAT to assign to.”…”�”}”(hjXSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jTSh´MÄhjUSubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj9Subeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jTSh´MÄhj6Subj)�”}”(hŒR``struct vidtv_psi_table_pat_program *p`` The program loop (one or more programs) ”h]”(j…)�”}”(hŒ)``struct vidtv_psi_table_pat_program *p``”h]”j¤ )�”}”(hjxSh]”hŒ%struct vidtv_psi_table_pat_program *p”…”�”}”(hjzSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjvSubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÅhjrSubj•)�”}”(hhh]”hÞ)�”}”(hŒ'The program loop (one or more programs)”h]”hŒ'The program loop (one or more programs)”…”�”}”(hj‘Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j�Sh´MÅhjŽSubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjrSubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j�Sh´MÅhj6Subeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjSubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hj³Sh]”hŒ Description”…”�”}”(hjµSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj±Subah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÇhjSubhÞ)�”}”(hŒËThis will free the previous program loop in the table. This will assign ownership of the program loop to the table, i.e. the table will free this program loop when a call to its destroy function is made.”h]”hŒËThis will free the previous program loop in the table. This will assign ownership of the program loop to the table, i.e. the table will free this program loop when a call to its destroy function is made.”…”�”}”(hjÉSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÆhjSubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ(vidtv_psi_pmt_stream_assign (C function)”Œc.vidtv_psi_pmt_stream_assign”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒhvoid vidtv_psi_pmt_stream_assign (struct vidtv_psi_table_pmt *pmt, struct vidtv_psi_table_pmt_stream *s)”h]”j )�”}”(hŒgvoid vidtv_psi_pmt_stream_assign(struct vidtv_psi_table_pmt *pmt, struct vidtv_psi_table_pmt_stream *s)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjøSh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjôSh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÏubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjôSh²hh³jTh´MÏubj3)�”}”(hŒvidtv_psi_pmt_stream_assign”h]”j9)�”}”(hŒvidtv_psi_pmt_stream_assign”h]”hŒvidtv_psi_pmt_stream_assign”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjTubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjôSh²hh³jTh´MÏubjP)�”}”(hŒG(struct vidtv_psi_table_pmt *pmt, struct vidtv_psi_table_pmt_stream *s)”h]”(jV)�”}”(hŒstruct vidtv_psi_table_pmt *pmt”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj5Th²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj1Tubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBTh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj1Tubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_pmt”h]”hŒvidtv_psi_table_pmt”…”�”}”(hjSTh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjPTubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jUTŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�jTsbŒc.vidtv_psi_pmt_stream_assign”†”asbuh1hhj1Tubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjsTh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj1Tubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj�Th²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hj1Tubj9)�”}”(hŒpmt”h]”hŒpmt”…”�”}”(hjŽTh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj1Tubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj-TubjV)�”}”(hŒ$struct vidtv_psi_table_pmt_stream *s”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj§Th²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj£Tubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´Th²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj£Tubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_pmt_stream”h]”hŒvidtv_psi_table_pmt_stream”…”�”}”(hjÅTh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjÂTubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jÇTŒmodname”NŒ classname”Nj“j–)�”}”j™]”joTŒc.vidtv_psi_pmt_stream_assign”†”asbuh1hhj£Tubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjãTh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj£Tubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjñTh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hj£Tubj9)�”}”(hŒs”h]”hŒs”…”�”}”(hjþTh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj£Tubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj-Tubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjôSh²hh³jTh´MÏubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjðSh²hh³jTh´MÏubah}”(h]”jëSah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jTh´MÏhjíSh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ#Assigns the stream loop to the PAT.”h]”hŒ#Assigns the stream loop to the PAT.”…”�”}”(hj(Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÏhj%Uh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjíSh²hh³jTh´MÏubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡j@Ujˆj@Uj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXx**Parameters** ``struct vidtv_psi_table_pmt *pmt`` The PMT to assign to. ``struct vidtv_psi_table_pmt_stream *s`` The stream loop (one or more streams) **Description** This will free the previous stream loop in the table. This will assign ownership of the stream loop to the table, i.e. the table will free this stream loop when a call to its destroy function is made.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjJUh]”hŒ Parameters”…”�”}”(hjLUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjHUubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÓhjDUubjz)�”}”(hhh]”(j)�”}”(hŒ:``struct vidtv_psi_table_pmt *pmt`` The PMT to assign to. ”h]”(j…)�”}”(hŒ#``struct vidtv_psi_table_pmt *pmt``”h]”j¤ )�”}”(hjiUh]”hŒstruct vidtv_psi_table_pmt *pmt”…”�”}”(hjkUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjgUubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÐhjcUubj•)�”}”(hhh]”hÞ)�”}”(hŒThe PMT to assign to.”h]”hŒThe PMT to assign to.”…”�”}”(hj‚Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j~Uh´MÐhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjcUubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j~Uh´MÐhj`Uubj)�”}”(hŒO``struct vidtv_psi_table_pmt_stream *s`` The stream loop (one or more streams) ”h]”(j…)�”}”(hŒ(``struct vidtv_psi_table_pmt_stream *s``”h]”j¤ )�”}”(hj¢Uh]”hŒ$struct vidtv_psi_table_pmt_stream *s”…”�”}”(hj¤Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj Uubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÑhjœUubj•)�”}”(hhh]”hÞ)�”}”(hŒ%The stream loop (one or more streams)”h]”hŒ%The stream loop (one or more streams)”…”�”}”(hj»Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j·Uh´MÑhj¸Uubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjœUubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j·Uh´MÑhj`Uubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjDUubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjÝUh]”hŒ Description”…”�”}”(hjßUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÛUubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÓhjDUubhÞ)�”}”(hŒÈThis will free the previous stream loop in the table. This will assign ownership of the stream loop to the table, i.e. the table will free this stream loop when a call to its destroy function is made.”h]”hŒÈThis will free the previous stream loop in the table. This will assign ownership of the stream loop to the table, i.e. the table will free this stream loop when a call to its destroy function is made.”…”�”}”(hjóUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÒhjDUubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ8vidtv_psi_pmt_create_sec_for_each_pat_entry (C function)”Œ-c.vidtv_psi_pmt_create_sec_for_each_pat_entry”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒwstruct vidtv_psi_table_pmt** vidtv_psi_pmt_create_sec_for_each_pat_entry (struct vidtv_psi_table_pat *pat, u16 pcr_pid)”h]”j )�”}”(hŒvstruct vidtv_psi_table_pmt **vidtv_psi_pmt_create_sec_for_each_pat_entry(struct vidtv_psi_table_pat *pat, u16 pcr_pid)”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj"Vh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjVh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÝubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0Vh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjVh²hh³j/Vh´MÝubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_pmt”h]”hŒvidtv_psi_table_pmt”…”�”}”(hjAVh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj>Vubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jCVŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�Œ+vidtv_psi_pmt_create_sec_for_each_pat_entry”sbŒ-c.vidtv_psi_pmt_create_sec_for_each_pat_entry”†”asbuh1hhjVh²hh³j/Vh´MÝubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbVh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjVh²hh³j/Vh´MÝubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjpVh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjVh²hh³j/Vh´MÝubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj}Vh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjVh²hh³j/Vh´MÝubj3)�”}”(hŒ+vidtv_psi_pmt_create_sec_for_each_pat_entry”h]”j9)�”}”(hj_Vh]”hŒ+vidtv_psi_pmt_create_sec_for_each_pat_entry”…”�”}”(hjŽVh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjŠVubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjVh²hh³j/Vh´MÝubjP)�”}”(hŒ.(struct vidtv_psi_table_pat *pat, u16 pcr_pid)”h]”(jV)�”}”(hŒstruct vidtv_psi_table_pat *pat”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj©Vh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¥Vubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶Vh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj¥Vubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_pat”h]”hŒvidtv_psi_table_pat”…”�”}”(hjÇVh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjÄVubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jÉVŒmodname”NŒ classname”Nj“j–)�”}”j™]”j]VŒ-c.vidtv_psi_pmt_create_sec_for_each_pat_entry”†”asbuh1hhj¥Vubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåVh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj¥Vubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjóVh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hj¥Vubj9)�”}”(hŒpat”h]”hŒpat”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj¥Vubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj¡VubjV)�”}”(hŒ u16 pcr_pid”h]”(h)�”}”(hhh]”j9)�”}”(hŒu16”h]”hŒu16”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjWubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jWŒmodname”NŒ classname”Nj“j–)�”}”j™]”j]VŒ-c.vidtv_psi_pmt_create_sec_for_each_pat_entry”†”asbuh1hhjWubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:Wh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjWubj9)�”}”(hŒpcr_pid”h]”hŒpcr_pid”…”�”}”(hjHWh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjWubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj¡Vubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjVh²hh³j/Vh´MÝubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjVh²hh³j/Vh´MÝubah}”(h]”jVah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j/Vh´MÝhjVh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ6Create a PMT section for each program found in the PAT”h]”hŒ6Create a PMT section for each program found in the PAT”…”�”}”(hjrWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÝhjoWh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjVh²hh³j/Vh´MÝubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jŠWjˆjŠWj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hŒ·**Parameters** ``struct vidtv_psi_table_pat *pat`` The PAT to look for programs. ``u16 pcr_pid`` packet ID for the PCR to be used for the program described in this PMT section”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hj”Wh]”hŒ Parameters”…”�”}”(hj–Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj’Wubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MáhjŽWubjz)�”}”(hhh]”(j)�”}”(hŒB``struct vidtv_psi_table_pat *pat`` The PAT to look for programs. ”h]”(j…)�”}”(hŒ#``struct vidtv_psi_table_pat *pat``”h]”j¤ )�”}”(hj³Wh]”hŒstruct vidtv_psi_table_pat *pat”…”�”}”(hjµWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj±Wubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mßhj­Wubj•)�”}”(hhh]”hÞ)�”}”(hŒThe PAT to look for programs.”h]”hŒThe PAT to look for programs.”…”�”}”(hjÌWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÈWh´MßhjÉWubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj­Wubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÈWh´MßhjªWubj)�”}”(hŒ^``u16 pcr_pid`` packet ID for the PCR to be used for the program described in this PMT section”h]”(j…)�”}”(hŒ``u16 pcr_pid``”h]”j¤ )�”}”(hjìWh]”hŒ u16 pcr_pid”…”�”}”(hjîWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjêWubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MàhjæWubj•)�”}”(hhh]”hÞ)�”}”(hŒNpacket ID for the PCR to be used for the program described in this PMT section”h]”hŒNpacket ID for the PCR to be used for the program described in this PMT section”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jXh´MàhjXubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjæWubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jXh´MàhjªWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjŽWubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ"vidtv_psi_pmt_get_pid (C function)”Œc.vidtv_psi_pmt_get_pid”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒ`u16 vidtv_psi_pmt_get_pid (struct vidtv_psi_table_pmt *section, struct vidtv_psi_table_pat *pat)”h]”j •)�”}”(hŒ_u16 vidtv_psi_pmt_get_pid(struct vidtv_psi_table_pmt *section, struct vidtv_psi_table_pat *pat)”h]”(h)�”}”(hhh]”j9)�”}”(hŒu16”h]”hŒu16”…”�”}”(hjHXh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjEXubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jJXŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�Œvidtv_psi_pmt_get_pid”sbŒc.vidtv_psi_pmt_get_pid”†”asbuh1hhjAXh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mçubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjXh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjAXh²hh³jiXh´Mçubj3)�”}”(hŒvidtv_psi_pmt_get_pid”h]”j9)�”}”(hjfXh]”hŒvidtv_psi_pmt_get_pid”…”�”}”(hj|Xh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjxXubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjAXh²hh³jiXh´MçubjP)�”}”(hŒF(struct vidtv_psi_table_pmt *section, struct vidtv_psi_table_pat *pat)”h]”(jV)�”}”(hŒ#struct vidtv_psi_table_pmt *section”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj—Xh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj“Xubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤Xh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj“Xubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_pmt”h]”hŒvidtv_psi_table_pmt”…”�”}”(hjµXh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj²Xubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j·XŒmodname”NŒ classname”Nj“j–)�”}”j™]”jdXŒc.vidtv_psi_pmt_get_pid”†”asbuh1hhj“Xubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓXh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj“Xubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjáXh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hj“Xubj9)�”}”(hŒsection”h]”hŒsection”…”�”}”(hjîXh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj“Xubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj�XubjV)�”}”(hŒstruct vidtv_psi_table_pat *pat”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjYubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjYubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_pat”h]”hŒvidtv_psi_table_pat”…”�”}”(hj%Yh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj"Yubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j'YŒmodname”NŒ classname”Nj“j–)�”}”j™]”jdXŒc.vidtv_psi_pmt_get_pid”†”asbuh1hhjYubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCYh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjYubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjQYh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjYubj9)�”}”(hŒpat”h]”hŒpat”…”�”}”(hj^Yh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjYubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj�Xubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjAXh²hh³jiXh´Mçubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj=Xh²hh³jiXh´Mçubah}”(h]”j8Xah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jiXh´Mçhj:Xh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ!Get the TS PID for a PMT section.”h]”hŒ!Get the TS PID for a PMT section.”…”�”}”(hjˆYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mçhj…Yh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj:Xh²hh³jiXh´Mçubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡j Yjˆj Yj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hŒÑ**Parameters** ``struct vidtv_psi_table_pmt *section`` The PMT section whose PID we want to retrieve. ``struct vidtv_psi_table_pat *pat`` The PAT table to look into. **Return** the TS PID for 'section'”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjªYh]”hŒ Parameters”…”�”}”(hj¬Yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj¨Yubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mëhj¤Yubjz)�”}”(hhh]”(j)�”}”(hŒW``struct vidtv_psi_table_pmt *section`` The PMT section whose PID we want to retrieve. ”h]”(j…)�”}”(hŒ'``struct vidtv_psi_table_pmt *section``”h]”j¤ )�”}”(hjÉYh]”hŒ#struct vidtv_psi_table_pmt *section”…”�”}”(hjËYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÇYubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MèhjÃYubj•)�”}”(hhh]”hÞ)�”}”(hŒ.The PMT section whose PID we want to retrieve.”h]”hŒ.The PMT section whose PID we want to retrieve.”…”�”}”(hjâYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÞYh´MèhjßYubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÃYubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÞYh´MèhjÀYubj)�”}”(hŒ@``struct vidtv_psi_table_pat *pat`` The PAT table to look into. ”h]”(j…)�”}”(hŒ#``struct vidtv_psi_table_pat *pat``”h]”j¤ )�”}”(hjZh]”hŒstruct vidtv_psi_table_pat *pat”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MéhjüYubj•)�”}”(hhh]”hÞ)�”}”(hŒThe PAT table to look into.”h]”hŒThe PAT table to look into.”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jZh´MéhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjüYubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jZh´MéhjÀYubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¤YubhÞ)�”}”(hŒ **Return**”h]”jÁ)�”}”(hj=Zh]”hŒReturn”…”�”}”(hj?Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj;Zubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mëhj¤YubhÞ)�”}”(hŒthe TS PID for 'section'”h]”hŒthe TS PID for ‘section’”…”�”}”(hjSZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mëhj¤Yubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ/vidtv_psi_pat_table_update_sec_len (C function)”Œ$c.vidtv_psi_pat_table_update_sec_len”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒIvoid vidtv_psi_pat_table_update_sec_len (struct vidtv_psi_table_pat *pat)”h]”j )�”}”(hŒHvoid vidtv_psi_pat_table_update_sec_len(struct vidtv_psi_table_pat *pat)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj‚Zh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhj~Zh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mñubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘Zh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj~Zh²hh³j�Zh´Mñubj3)�”}”(hŒ"vidtv_psi_pat_table_update_sec_len”h]”j9)�”}”(hŒ"vidtv_psi_pat_table_update_sec_len”h]”hŒ"vidtv_psi_pat_table_update_sec_len”…”�”}”(hj£Zh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjŸZubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj~Zh²hh³j�Zh´MñubjP)�”}”(hŒ!(struct vidtv_psi_table_pat *pat)”h]”jV)�”}”(hŒstruct vidtv_psi_table_pat *pat”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj¿Zh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj»Zubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌZh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj»Zubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_pat”h]”hŒvidtv_psi_table_pat”…”�”}”(hjÝZh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjÚZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jßZŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�j¥ZsbŒ$c.vidtv_psi_pat_table_update_sec_len”†”asbuh1hhj»Zubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjýZh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj»Zubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj [h²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hj»Zubj9)�”}”(hŒpat”h]”hŒpat”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj»Zubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj·Zubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhj~Zh²hh³j�Zh´Mñubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjzZh²hh³j�Zh´Mñubah}”(h]”juZah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j�Zh´MñhjwZh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ,Recompute and update the PAT section length.”h]”hŒ,Recompute and update the PAT section length.”…”�”}”(hjB[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mñhj?[h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjwZh²hh³j�Zh´Mñubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jZ[jˆjZ[j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX-**Parameters** ``struct vidtv_psi_table_pat *pat`` The PAT whose length is to be updated. **Description** This will traverse the table and accumulate the length of its components, which is then used to replace the 'section_length' field. If section_length > MAX_SECTION_LEN, the operation fails.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjd[h]”hŒ Parameters”…”�”}”(hjf[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjb[ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mõhj^[ubjz)�”}”(hhh]”j)�”}”(hŒK``struct vidtv_psi_table_pat *pat`` The PAT whose length is to be updated. ”h]”(j…)�”}”(hŒ#``struct vidtv_psi_table_pat *pat``”h]”j¤ )�”}”(hjƒ[h]”hŒstruct vidtv_psi_table_pat *pat”…”�”}”(hj…[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj�[ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mòhj}[ubj•)�”}”(hhh]”hÞ)�”}”(hŒ&The PAT whose length is to be updated.”h]”hŒ&The PAT whose length is to be updated.”…”�”}”(hjœ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j˜[h´Mòhj™[ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj}[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j˜[h´Mòhjz[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj^[ubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hj¾[h]”hŒ Description”…”�”}”(hjÀ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj¼[ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Môhj^[ubhÞ)�”}”(hŒƒThis will traverse the table and accumulate the length of its components, which is then used to replace the 'section_length' field.”h]”hŒ‡This will traverse the table and accumulate the length of its components, which is then used to replace the ‘section_length’ field.”…”�”}”(hjÔ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Móhj^[ubhÞ)�”}”(hŒ9If section_length > MAX_SECTION_LEN, the operation fails.”h]”hŒ9If section_length > MAX_SECTION_LEN, the operation fails.”…”�”}”(hjã[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Möhj^[ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ/vidtv_psi_pmt_table_update_sec_len (C function)”Œ$c.vidtv_psi_pmt_table_update_sec_len”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒIvoid vidtv_psi_pmt_table_update_sec_len (struct vidtv_psi_table_pmt *pmt)”h]”j )�”}”(hŒHvoid vidtv_psi_pmt_table_update_sec_len(struct vidtv_psi_table_pmt *pmt)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhj\h²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Müubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!\h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj\h²hh³j \h´Müubj3)�”}”(hŒ"vidtv_psi_pmt_table_update_sec_len”h]”j9)�”}”(hŒ"vidtv_psi_pmt_table_update_sec_len”h]”hŒ"vidtv_psi_pmt_table_update_sec_len”…”�”}”(hj3\h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj/\ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj\h²hh³j \h´MüubjP)�”}”(hŒ!(struct vidtv_psi_table_pmt *pmt)”h]”jV)�”}”(hŒstruct vidtv_psi_table_pmt *pmt”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjO\h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjK\ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\\h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjK\ubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_pmt”h]”hŒvidtv_psi_table_pmt”…”�”}”(hjm\h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjj\ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jo\Œmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�j5\sbŒ$c.vidtv_psi_pmt_table_update_sec_len”†”asbuh1hhjK\ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�\h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjK\ubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj›\h²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjK\ubj9)�”}”(hŒpmt”h]”hŒpmt”…”�”}”(hj¨\h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjK\ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjG\ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhj\h²hh³j \h´Müubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj \h²hh³j \h´Müubah}”(h]”j\ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j \h´Mühj\h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ,Recompute and update the PMT section length.”h]”hŒ,Recompute and update the PMT section length.”…”�”}”(hjÒ\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MühjÏ\h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj\h²hh³j \h´Müubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jê\jˆjê\j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX-**Parameters** ``struct vidtv_psi_table_pmt *pmt`` The PMT whose length is to be updated. **Description** This will traverse the table and accumulate the length of its components, which is then used to replace the 'section_length' field. If section_length > MAX_SECTION_LEN, the operation fails.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjô\h]”hŒ Parameters”…”�”}”(hjö\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjò\ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhjî\ubjz)�”}”(hhh]”j)�”}”(hŒK``struct vidtv_psi_table_pmt *pmt`` The PMT whose length is to be updated. ”h]”(j…)�”}”(hŒ#``struct vidtv_psi_table_pmt *pmt``”h]”j¤ )�”}”(hj]h]”hŒstruct vidtv_psi_table_pmt *pmt”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mýhj ]ubj•)�”}”(hhh]”hÞ)�”}”(hŒ&The PMT whose length is to be updated.”h]”hŒ&The PMT whose length is to be updated.”…”�”}”(hj,]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j(]h´Mýhj)]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj ]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j(]h´Mýhj ]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjî\ubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjN]h]”hŒ Description”…”�”}”(hjP]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjL]ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mÿhjî\ubhÞ)�”}”(hŒƒThis will traverse the table and accumulate the length of its components, which is then used to replace the 'section_length' field.”h]”hŒ‡This will traverse the table and accumulate the length of its components, which is then used to replace the ‘section_length’ field.”…”�”}”(hjd]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mþhjî\ubhÞ)�”}”(hŒ9If section_length > MAX_SECTION_LEN, the operation fails.”h]”hŒ9If section_length > MAX_SECTION_LEN, the operation fails.”…”�”}”(hjs]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhjî\ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ/vidtv_psi_sdt_table_update_sec_len (C function)”Œ$c.vidtv_psi_sdt_table_update_sec_len”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒIvoid vidtv_psi_sdt_table_update_sec_len (struct vidtv_psi_table_sdt *sdt)”h]”j )�”}”(hŒHvoid vidtv_psi_sdt_table_update_sec_len(struct vidtv_psi_table_sdt *sdt)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¢]h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjž]h²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj±]h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjž]h²hh³j°]h´Mubj3)�”}”(hŒ"vidtv_psi_sdt_table_update_sec_len”h]”j9)�”}”(hŒ"vidtv_psi_sdt_table_update_sec_len”h]”hŒ"vidtv_psi_sdt_table_update_sec_len”…”�”}”(hjÃ]h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj¿]ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjž]h²hh³j°]h´MubjP)�”}”(hŒ!(struct vidtv_psi_table_sdt *sdt)”h]”jV)�”}”(hŒstruct vidtv_psi_table_sdt *sdt”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjß]h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÛ]ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjì]h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÛ]ubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_sdt”h]”hŒvidtv_psi_table_sdt”…”�”}”(hjý]h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjú]ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jÿ]Œmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�jÅ]sbŒ$c.vidtv_psi_sdt_table_update_sec_len”†”asbuh1hhjÛ]ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÛ]ubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj+^h²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjÛ]ubj9)�”}”(hŒsdt”h]”hŒsdt”…”�”}”(hj8^h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjÛ]ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj×]ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjž]h²hh³j°]h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjš]h²hh³j°]h´Mubah}”(h]”j•]ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j°]h´Mhj—]h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ,Recompute and update the SDT section length.”h]”hŒ,Recompute and update the SDT section length.”…”�”}”(hjb^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj_^h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj—]h²hh³j°]h´Mubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jz^jˆjz^j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX-**Parameters** ``struct vidtv_psi_table_sdt *sdt`` The SDT whose length is to be updated. **Description** This will traverse the table and accumulate the length of its components, which is then used to replace the 'section_length' field. If section_length > MAX_SECTION_LEN, the operation fails.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hj„^h]”hŒ Parameters”…”�”}”(hj†^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj‚^ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M hj~^ubjz)�”}”(hhh]”j)�”}”(hŒK``struct vidtv_psi_table_sdt *sdt`` The SDT whose length is to be updated. ”h]”(j…)�”}”(hŒ#``struct vidtv_psi_table_sdt *sdt``”h]”j¤ )�”}”(hj£^h]”hŒstruct vidtv_psi_table_sdt *sdt”…”�”}”(hj¥^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¡^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj�^ubj•)�”}”(hhh]”hÞ)�”}”(hŒ&The SDT whose length is to be updated.”h]”hŒ&The SDT whose length is to be updated.”…”�”}”(hj¼^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¸^h´Mhj¹^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj�^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¸^h´Mhjš^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj~^ubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjÞ^h]”hŒ Description”…”�”}”(hjà^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÜ^ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M hj~^ubhÞ)�”}”(hŒƒThis will traverse the table and accumulate the length of its components, which is then used to replace the 'section_length' field.”h]”hŒ‡This will traverse the table and accumulate the length of its components, which is then used to replace the ‘section_length’ field.”…”�”}”(hjô^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M hj~^ubhÞ)�”}”(hŒ9If section_length > MAX_SECTION_LEN, the operation fails.”h]”hŒ9If section_length > MAX_SECTION_LEN, the operation fails.”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M hj~^ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ#vidtv_psi_pat_write_args (C struct)”Œc.vidtv_psi_pat_write_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒvidtv_psi_pat_write_args”h]”j )�”}”(hŒstruct vidtv_psi_pat_write_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj2_h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj._h²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@_h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj._h²hh³j?_h´Mubj3)�”}”(hŒvidtv_psi_pat_write_args”h]”j9)�”}”(hj,_h]”hŒvidtv_psi_pat_write_args”…”�”}”(hjR_h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjN_ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj._h²hh³j?_h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj*_h²hh³j?_h´Mubah}”(h]”j%_ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j?_h´Mhj'_h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ!Arguments for writing a PAT table”h]”hŒ!Arguments for writing a PAT table”…”�”}”(hjt_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhjq_h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj'_h²hh³j?_h´Mubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡jŒ_jˆjŒ_j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX½**Definition**:: struct vidtv_psi_pat_write_args { char *buf; u32 offset; struct vidtv_psi_table_pat *pat; u32 buf_sz; u8 *continuity_counter; }; **Members** ``buf`` The destination buffer. ``offset`` The offset into the destination buffer. ``pat`` A pointer to the PAT. ``buf_sz`` The size of the destination buffer. ``continuity_counter`` A pointer to the CC. Incremented on every new packet.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj˜_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj”_ubhŒ:”…”�”}”(hj”_h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj�_ubjÇ)�”}”(hŒ”struct vidtv_psi_pat_write_args { char *buf; u32 offset; struct vidtv_psi_table_pat *pat; u32 buf_sz; u8 *continuity_counter; };”h]”hŒ”struct vidtv_psi_pat_write_args { char *buf; u32 offset; struct vidtv_psi_table_pat *pat; u32 buf_sz; u8 *continuity_counter; };”…”�”}”hj±_sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj�_ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjÂ_h]”hŒMembers”…”�”}”(hjÄ_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÀ_ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M hj�_ubjz)�”}”(hhh]”(j)�”}”(hŒ ``buf`` The destination buffer. ”h]”(j…)�”}”(hŒ``buf``”h]”j¤ )�”}”(hjá_h]”hŒbuf”…”�”}”(hjã_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjß_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjÛ_ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe destination buffer.”h]”hŒThe destination buffer.”…”�”}”(hjú_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jö_h´Mhj÷_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÛ_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jö_h´MhjØ_ubj)�”}”(hŒ3``offset`` The offset into the destination buffer. ”h]”(j…)�”}”(hŒ ``offset``”h]”j¤ )�”}”(hj`h]”hŒoffset”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj`ubj•)�”}”(hhh]”hÞ)�”}”(hŒ'The offset into the destination buffer.”h]”hŒ'The offset into the destination buffer.”…”�”}”(hj3`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j/`h´Mhj0`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j/`h´MhjØ_ubj)�”}”(hŒ``pat`` A pointer to the PAT. ”h]”(j…)�”}”(hŒ``pat``”h]”j¤ )�”}”(hjS`h]”hŒpat”…”�”}”(hjU`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjQ`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjM`ubj•)�”}”(hhh]”hÞ)�”}”(hŒA pointer to the PAT.”h]”hŒA pointer to the PAT.”…”�”}”(hjl`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh`h´Mhji`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjM`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jh`h´MhjØ_ubj)�”}”(hŒ/``buf_sz`` The size of the destination buffer. ”h]”(j…)�”}”(hŒ ``buf_sz``”h]”j¤ )�”}”(hjŒ`h]”hŒbuf_sz”…”�”}”(hjŽ`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjŠ`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj†`ubj•)�”}”(hhh]”hÞ)�”}”(hŒ#The size of the destination buffer.”h]”hŒ#The size of the destination buffer.”…”�”}”(hj¥`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¡`h´Mhj¢`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj†`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¡`h´MhjØ_ubj)�”}”(hŒL``continuity_counter`` A pointer to the CC. Incremented on every new packet.”h]”(j…)�”}”(hŒ``continuity_counter``”h]”j¤ )�”}”(hjÅ`h]”hŒcontinuity_counter”…”�”}”(hjÇ`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÃ`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj¿`ubj•)�”}”(hhh]”hÞ)�”}”(hŒ5A pointer to the CC. Incremented on every new packet.”h]”hŒ5A pointer to the CC. Incremented on every new packet.”…”�”}”(hjÞ`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjÛ`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¿`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÚ`h´MhjØ_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj�_ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ%vidtv_psi_pat_write_into (C function)”Œc.vidtv_psi_pat_write_into”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒDu32 vidtv_psi_pat_write_into (struct vidtv_psi_pat_write_args *args)”h]”j )�”}”(hŒCu32 vidtv_psi_pat_write_into(struct vidtv_psi_pat_write_args *args)”h]”(h)�”}”(hhh]”j9)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj"ah²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjaubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j$aŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�Œvidtv_psi_pat_write_into”sbŒc.vidtv_psi_pat_write_into”†”asbuh1hhjah²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M#ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjDah²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjah²hh³jCah´M#ubj3)�”}”(hŒvidtv_psi_pat_write_into”h]”j9)�”}”(hj@ah]”hŒvidtv_psi_pat_write_into”…”�”}”(hjVah²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjRaubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjah²hh³jCah´M#ubjP)�”}”(hŒ'(struct vidtv_psi_pat_write_args *args)”h]”jV)�”}”(hŒ%struct vidtv_psi_pat_write_args *args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjqah²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjmaubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~ah²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjmaubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_pat_write_args”h]”hŒvidtv_psi_pat_write_args”…”�”}”(hj�ah²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjŒaubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j‘aŒmodname”NŒ classname”Nj“j–)�”}”j™]”j>aŒc.vidtv_psi_pat_write_into”†”asbuh1hhjmaubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­ah²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjmaubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj»ah²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjmaubj9)�”}”(hŒargs”h]”hŒargs”…”�”}”(hjÈah²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjmaubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjiaubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjah²hh³jCah´M#ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjah²hh³jCah´M#ubah}”(h]”jaah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jCah´M#hjah²hubje)�”}”(hhh]”hÞ)�”}”(hŒ+Write PAT as MPEG-TS packets into a buffer.”h]”hŒ+Write PAT as MPEG-TS packets into a buffer.”…”�”}”(hjòah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M#hjïah²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjah²hh³jCah´M#ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡j bjˆj bj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXÞ**Parameters** ``struct vidtv_psi_pat_write_args *args`` An instance of struct vidtv_psi_pat_write_args **Description** This function writes the MPEG TS packets for a PAT table into a buffer. Calling code will usually generate the PAT via a call to its init function and thus is responsible for freeing it. **Return** The number of bytes written into the buffer. This is NOT equal to the size of the PAT, since more space is needed for TS headers during TS encapsulation.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjbh]”hŒ Parameters”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M'hjbubjz)�”}”(hhh]”j)�”}”(hŒY``struct vidtv_psi_pat_write_args *args`` An instance of struct vidtv_psi_pat_write_args ”h]”(j…)�”}”(hŒ)``struct vidtv_psi_pat_write_args *args``”h]”j¤ )�”}”(hj3bh]”hŒ%struct vidtv_psi_pat_write_args *args”…”�”}”(hj5bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj1bubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M$hj-bubj•)�”}”(hhh]”hÞ)�”}”(hŒ.An instance of struct vidtv_psi_pat_write_args”h]”hŒ.An instance of struct vidtv_psi_pat_write_args”…”�”}”(hjLbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jHbh´M$hjIbubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj-bubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jHbh´M$hj*bubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjbubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjnbh]”hŒ Description”…”�”}”(hjpbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjlbubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M&hjbubhÞ)�”}”(hŒºThis function writes the MPEG TS packets for a PAT table into a buffer. Calling code will usually generate the PAT via a call to its init function and thus is responsible for freeing it.”h]”hŒºThis function writes the MPEG TS packets for a PAT table into a buffer. Calling code will usually generate the PAT via a call to its init function and thus is responsible for freeing it.”…”�”}”(hj„bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M%hjbubhÞ)�”}”(hŒ **Return**”h]”jÁ)�”}”(hj•bh]”hŒReturn”…”�”}”(hj—bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj“bubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M)hjbubhÞ)�”}”(hŒ™The number of bytes written into the buffer. This is NOT equal to the size of the PAT, since more space is needed for TS headers during TS encapsulation.”h]”hŒ™The number of bytes written into the buffer. This is NOT equal to the size of the PAT, since more space is needed for TS headers during TS encapsulation.”…”�”}”(hj«bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M*hjbubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ#vidtv_psi_sdt_write_args (C struct)”Œc.vidtv_psi_sdt_write_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒvidtv_psi_sdt_write_args”h]”j )�”}”(hŒstruct vidtv_psi_sdt_write_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÚbh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÖbh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M1ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjèbh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÖbh²hh³jçbh´M1ubj3)�”}”(hŒvidtv_psi_sdt_write_args”h]”j9)�”}”(hjÔbh]”hŒvidtv_psi_sdt_write_args”…”�”}”(hjúbh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjöbubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjÖbh²hh³jçbh´M1ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjÒbh²hh³jçbh´M1ubah}”(h]”jÍbah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jçbh´M1hjÏbh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ!Arguments for writing a SDT table”h]”hŒ!Arguments for writing a SDT table”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M1hjch²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÏbh²hh³jçbh´M1ubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡j4cjˆj4cj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX½**Definition**:: struct vidtv_psi_sdt_write_args { char *buf; u32 offset; struct vidtv_psi_table_sdt *sdt; u32 buf_sz; u8 *continuity_counter; }; **Members** ``buf`` The destination buffer. ``offset`` The offset into the destination buffer. ``sdt`` A pointer to the SDT. ``buf_sz`` The size of the destination buffer. ``continuity_counter`` A pointer to the CC. Incremented on every new packet.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj@ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjrubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj"rubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j=rh´M°hjæqubj)�”}”(hŒ``nit`` A pointer to the NIT ”h]”(j…)�”}”(hŒ``nit``”h]”j¤ )�”}”(hjarh]”hŒnit”…”�”}”(hjcrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj_rubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M±hj[rubj•)�”}”(hhh]”hÞ)�”}”(hŒA pointer to the NIT”h]”hŒA pointer to the NIT”…”�”}”(hjzrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jvrh´M±hjwrubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj[rubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jvrh´M±hjæqubj)�”}”(hŒ/``buf_sz`` The size of the destination buffer. ”h]”(j…)�”}”(hŒ ``buf_sz``”h]”j¤ )�”}”(hjšrh]”hŒbuf_sz”…”�”}”(hjœrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj˜rubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M²hj”rubj•)�”}”(hhh]”hÞ)�”}”(hŒ#The size of the destination buffer.”h]”hŒ#The size of the destination buffer.”…”�”}”(hj³rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¯rh´M²hj°rubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj”rubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¯rh´M²hjæqubj)�”}”(hŒL``continuity_counter`` A pointer to the CC. Incremented on every new packet.”h]”(j…)�”}”(hŒ``continuity_counter``”h]”j¤ )�”}”(hjÓrh]”hŒcontinuity_counter”…”�”}”(hjÕrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÑrubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M²hjÍrubj•)�”}”(hhh]”hÞ)�”}”(hŒ5A pointer to the CC. Incremented on every new packet.”h]”hŒ5A pointer to the CC. Incremented on every new packet.”…”�”}”(hjìrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M³hjérubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÍrubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jèrh´M²hjæqubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjžqubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ%vidtv_psi_nit_write_into (C function)”Œc.vidtv_psi_nit_write_into”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒDu32 vidtv_psi_nit_write_into (struct vidtv_psi_nit_write_args *args)”h]”j )�”}”(hŒCu32 vidtv_psi_nit_write_into(struct vidtv_psi_nit_write_args *args)”h]”(h)�”}”(hhh]”j9)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj0sh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj-subah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j2sŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�Œvidtv_psi_nit_write_into”sbŒc.vidtv_psi_nit_write_into”†”asbuh1hhj)sh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M¾ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjRsh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj)sh²hh³jQsh´M¾ubj3)�”}”(hŒvidtv_psi_nit_write_into”h]”j9)�”}”(hjNsh]”hŒvidtv_psi_nit_write_into”…”�”}”(hjdsh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj`subah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj)sh²hh³jQsh´M¾ubjP)�”}”(hŒ'(struct vidtv_psi_nit_write_args *args)”h]”jV)�”}”(hŒ%struct vidtv_psi_nit_write_args *args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj{subj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒsh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj{subh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_nit_write_args”h]”hŒvidtv_psi_nit_write_args”…”�”}”(hj�sh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjšsubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jŸsŒmodname”NŒ classname”Nj“j–)�”}”j™]”jLsŒc.vidtv_psi_nit_write_into”†”asbuh1hhj{subj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»sh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj{subj°)�”}”(hj³h]”hŒ*”…”�”}”(hjÉsh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hj{subj9)�”}”(hŒargs”h]”hŒargs”…”�”}”(hjÖsh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj{subeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjwsubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhj)sh²hh³jQsh´M¾ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj%sh²hh³jQsh´M¾ubah}”(h]”j sah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jQsh´M¾hj"sh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ+Write NIT as MPEG-TS packets into a buffer.”h]”hŒ+Write NIT as MPEG-TS packets into a buffer.”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M¾hjýsh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj"sh²hh³jQsh´M¾ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jtjˆjtj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXÞ**Parameters** ``struct vidtv_psi_nit_write_args *args`` an instance of struct vidtv_psi_nit_write_args **Description** This function writes the MPEG TS packets for a NIT table into a buffer. Calling code will usually generate the NIT via a call to its init function and thus is responsible for freeing it. **Return** The number of bytes written into the buffer. This is NOT equal to the size of the NIT, since more space is needed for TS headers during TS encapsulation.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hj"th]”hŒ Parameters”…”�”}”(hj$th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj tubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÂhjtubjz)�”}”(hhh]”j)�”}”(hŒY``struct vidtv_psi_nit_write_args *args`` an instance of struct vidtv_psi_nit_write_args ”h]”(j…)�”}”(hŒ)``struct vidtv_psi_nit_write_args *args``”h]”j¤ )�”}”(hjAth]”hŒ%struct vidtv_psi_nit_write_args *args”…”�”}”(hjCth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj?tubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´M¿hj;tubj•)�”}”(hhh]”hÞ)�”}”(hŒ.an instance of struct vidtv_psi_nit_write_args”h]”hŒ.an instance of struct vidtv_psi_nit_write_args”…”�”}”(hjZth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jVth´M¿hjWtubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj;tubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jVth´M¿hj8tubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjtubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hj|th]”hŒ Description”…”�”}”(hj~th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjztubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÁhjtubhÞ)�”}”(hŒºThis function writes the MPEG TS packets for a NIT table into a buffer. Calling code will usually generate the NIT via a call to its init function and thus is responsible for freeing it.”h]”hŒºThis function writes the MPEG TS packets for a NIT table into a buffer. Calling code will usually generate the NIT via a call to its init function and thus is responsible for freeing it.”…”�”}”(hj’th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÀhjtubhÞ)�”}”(hŒ **Return**”h]”jÁ)�”}”(hj£th]”hŒReturn”…”�”}”(hj¥th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj¡tubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÄhjtubhÞ)�”}”(hŒ™The number of bytes written into the buffer. This is NOT equal to the size of the NIT, since more space is needed for TS headers during TS encapsulation.”h]”hŒ™The number of bytes written into the buffer. This is NOT equal to the size of the NIT, since more space is needed for TS headers during TS encapsulation.”…”�”}”(hj¹th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÅhjtubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ#vidtv_psi_eit_write_args (C struct)”Œc.vidtv_psi_eit_write_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒvidtv_psi_eit_write_args”h]”j )�”}”(hŒstruct vidtv_psi_eit_write_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjèth²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjäth²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MÌubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöth²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjäth²hh³jõth´MÌubj3)�”}”(hŒvidtv_psi_eit_write_args”h]”j9)�”}”(hjâth]”hŒvidtv_psi_eit_write_args”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjuubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjäth²hh³jõth´MÌubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjàth²hh³jõth´MÌubah}”(h]”jÛtah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jõth´MÌhjÝth²hubje)�”}”(hhh]”hÞ)�”}”(hŒ$Arguments for writing an EIT section”h]”hŒ$Arguments for writing an EIT section”…”�”}”(hj*uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Míhj'uh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÝth²hh³jõth´MÌubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡jBujˆjBuj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX¼**Definition**:: struct vidtv_psi_eit_write_args { char *buf; u32 offset; struct vidtv_psi_table_eit *eit; u32 buf_sz; u8 *continuity_counter; }; **Members** ``buf`` The destination buffer. ``offset`` The offset into the destination buffer. ``eit`` A pointer to the EIT ``buf_sz`` The size of the destination buffer. ``continuity_counter`` A pointer to the CC. Incremented on every new packet.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjNuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjJuubhŒ:”…”�”}”(hjJuh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MñhjFuubjÇ)�”}”(hŒ”struct vidtv_psi_eit_write_args { char *buf; u32 offset; struct vidtv_psi_table_eit *eit; u32 buf_sz; u8 *continuity_counter; };”h]”hŒ”struct vidtv_psi_eit_write_args { char *buf; u32 offset; struct vidtv_psi_table_eit *eit; u32 buf_sz; u8 *continuity_counter; };”…”�”}”hjgusbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MóhjFuubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjxuh]”hŒMembers”…”�”}”(hjzuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjvuubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MûhjFuubjz)�”}”(hhh]”(j)�”}”(hŒ ``buf`` The destination buffer. ”h]”(j…)�”}”(hŒ``buf``”h]”j¤ )�”}”(hj—uh]”hŒbuf”…”�”}”(hj™uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj•uubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mïhj‘uubj•)�”}”(hhh]”hÞ)�”}”(hŒThe destination buffer.”h]”hŒThe destination buffer.”…”�”}”(hj°uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¬uh´Mïhj­uubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj‘uubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¬uh´MïhjŽuubj)�”}”(hŒ3``offset`` The offset into the destination buffer. ”h]”(j…)�”}”(hŒ ``offset``”h]”j¤ )�”}”(hjÐuh]”hŒoffset”…”�”}”(hjÒuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÎuubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MðhjÊuubj•)�”}”(hhh]”hÞ)�”}”(hŒ'The offset into the destination buffer.”h]”hŒ'The offset into the destination buffer.”…”�”}”(hjéuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jåuh´Mðhjæuubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÊuubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jåuh´MðhjŽuubj)�”}”(hŒ``eit`` A pointer to the EIT ”h]”(j…)�”}”(hŒ``eit``”h]”j¤ )�”}”(hj vh]”hŒeit”…”�”}”(hj vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mñhjvubj•)�”}”(hhh]”hÞ)�”}”(hŒA pointer to the EIT”h]”hŒA pointer to the EIT”…”�”}”(hj"vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jvh´Mñhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjvubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jvh´MñhjŽuubj)�”}”(hŒ/``buf_sz`` The size of the destination buffer. ”h]”(j…)�”}”(hŒ ``buf_sz``”h]”j¤ )�”}”(hjBvh]”hŒbuf_sz”…”�”}”(hjDvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj@vubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mòhj EIT_MAX_SECTION_LEN, the operation fails.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjryh]”hŒ Parameters”…”�”}”(hjtyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjpyubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhjlyubjz)�”}”(hhh]”j)�”}”(hŒK``struct vidtv_psi_table_eit *eit`` The EIT whose length is to be updated. ”h]”(j…)�”}”(hŒ#``struct vidtv_psi_table_eit *eit``”h]”j¤ )�”}”(hj‘yh]”hŒstruct vidtv_psi_table_eit *eit”…”�”}”(hj“yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj�yubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj‹yubj•)�”}”(hhh]”hÞ)�”}”(hŒ&The EIT whose length is to be updated.”h]”hŒ&The EIT whose length is to be updated.”…”�”}”(hjªyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¦yh´Mhj§yubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj‹yubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¦yh´Mhjˆyubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjlyubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjÌyh]”hŒ Description”…”�”}”(hjÎyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÊyubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjlyubhÞ)�”}”(hŒƒThis will traverse the table and accumulate the length of its components, which is then used to replace the 'section_length' field.”h]”hŒ‡This will traverse the table and accumulate the length of its components, which is then used to replace the ‘section_length’ field.”…”�”}”(hjâyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjlyubhÞ)�”}”(hŒ=If section_length > EIT_MAX_SECTION_LEN, the operation fails.”h]”hŒ=If section_length > EIT_MAX_SECTION_LEN, the operation fails.”…”�”}”(hjñyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhjlyubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ'vidtv_psi_eit_event_assign (C function)”Œc.vidtv_psi_eit_event_assign”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒfvoid vidtv_psi_eit_event_assign (struct vidtv_psi_table_eit *eit, struct vidtv_psi_table_eit_event *e)”h]”j )�”}”(hŒevoid vidtv_psi_eit_event_assign(struct vidtv_psi_table_eit *eit, struct vidtv_psi_table_eit_event *e)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj zh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjzh²hh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/zh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjzh²hh³j.zh´Mubj3)�”}”(hŒvidtv_psi_eit_event_assign”h]”j9)�”}”(hŒvidtv_psi_eit_event_assign”h]”hŒvidtv_psi_eit_event_assign”…”�”}”(hjAzh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj=zubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjzh²hh³j.zh´MubjP)�”}”(hŒF(struct vidtv_psi_table_eit *eit, struct vidtv_psi_table_eit_event *e)”h]”(jV)�”}”(hŒstruct vidtv_psi_table_eit *eit”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj]zh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjYzubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjzh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjYzubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_eit”h]”hŒvidtv_psi_table_eit”…”�”}”(hj{zh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjxzubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j}zŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�jCzsbŒc.vidtv_psi_eit_event_assign”†”asbuh1hhjYzubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›zh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjYzubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj©zh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjYzubj9)�”}”(hŒeit”h]”hŒeit”…”�”}”(hj¶zh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjYzubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjUzubjV)�”}”(hŒ#struct vidtv_psi_table_eit_event *e”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÏzh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjËzubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜzh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjËzubh)�”}”(hhh]”j9)�”}”(hŒvidtv_psi_table_eit_event”h]”hŒvidtv_psi_table_eit_event”…”�”}”(hjízh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjêzubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jïzŒmodname”NŒ classname”Nj“j–)�”}”j™]”j—zŒc.vidtv_psi_eit_event_assign”†”asbuh1hhjËzubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj {h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjËzubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjËzubj9)�”}”(hŒe”h]”hŒe”…”�”}”(hj&{h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjËzubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjUzubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjzh²hh³j.zh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjzh²hh³j.zh´Mubah}”(h]”jzah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j.zh´Mhjzh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ"Assigns the event loop to the EIT.”h]”hŒ"Assigns the event loop to the EIT.”…”�”}”(hjP{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjM{h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjzh²hh³j.zh´Mubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jh{jˆjh{j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX_**Parameters** ``struct vidtv_psi_table_eit *eit`` The EIT to assign to. ``struct vidtv_psi_table_eit_event *e`` The event loop **Description** This will free the previous event loop in the table. This will assign ownership of the stream loop to the table, i.e. the table will free this stream loop when a call to its destroy function is made.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjr{h]”hŒ Parameters”…”�”}”(hjt{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjp{ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhjl{ubjz)�”}”(hhh]”(j)�”}”(hŒ:``struct vidtv_psi_table_eit *eit`` The EIT to assign to. ”h]”(j…)�”}”(hŒ#``struct vidtv_psi_table_eit *eit``”h]”j¤ )�”}”(hj‘{h]”hŒstruct vidtv_psi_table_eit *eit”…”�”}”(hj“{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj�{ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhj‹{ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe EIT to assign to.”h]”hŒThe EIT to assign to.”…”�”}”(hjª{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¦{h´Mhj§{ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj‹{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¦{h´Mhjˆ{ubj)�”}”(hŒ7``struct vidtv_psi_table_eit_event *e`` The event loop ”h]”(j…)�”}”(hŒ'``struct vidtv_psi_table_eit_event *e``”h]”j¤ )�”}”(hjÊ{h]”hŒ#struct vidtv_psi_table_eit_event *e”…”�”}”(hjÌ{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÈ{ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´MhjÄ{ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe event loop”h]”hŒThe event loop”…”�”}”(hjã{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jß{h´Mhjà{ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÄ{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jß{h´Mhjˆ{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjl{ubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hj|h]”hŒ Description”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhjl{ubhÞ)�”}”(hŒÇThis will free the previous event loop in the table. This will assign ownership of the stream loop to the table, i.e. the table will free this stream loop when a call to its destroy function is made.”h]”hŒÇThis will free the previous event loop in the table. This will assign ownership of the stream loop to the table, i.e. the table will free this stream loop when a call to its destroy function is made.”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ|/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:503: ./drivers/media/test-drivers/vidtv/vidtv_psi.h”h´Mhjl{ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒvidtv_s302m_ctx (C struct)”Œc.vidtv_s302m_ctx”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒvidtv_s302m_ctx”h]”j )�”}”(hŒstruct vidtv_s302m_ctx”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjJ|h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjF|h²hh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´Kubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjX|h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjF|h²hh³jW|h´Kubj3)�”}”(hŒvidtv_s302m_ctx”h]”j9)�”}”(hjD|h]”hŒvidtv_s302m_ctx”…”�”}”(hjj|h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjf|ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjF|h²hh³jW|h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjB|h²hh³jW|h´Kubah}”(h]”j=|ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jW|h´Khj?|h²hubje)�”}”(hhh]”hÞ)�”}”(hŒs302m encoder context.”h]”hŒs302m encoder context.”…”�”}”(hjŒ|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´K hj‰|h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj?|h²hh³jW|h´Kubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡j¤|jˆj¤|j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX6**Definition**:: struct vidtv_s302m_ctx { struct vidtv_encoder *enc; u32 frame_index; u32 au_count; int last_duration; unsigned int note_offset; enum musical_notes last_tone; }; **Members** ``enc`` A pointer to the containing encoder structure. ``frame_index`` The current frame in a block ``au_count`` The total number of access units encoded up to now ``last_duration`` Duration of the tone currently being played ``note_offset`` Position at the music tone array ``last_tone`` Tone currently being played”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj°|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj¬|ubhŒ:”…”�”}”(hj¬|h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´K$hj¨|ubjÇ)�”}”(hŒ¸struct vidtv_s302m_ctx { struct vidtv_encoder *enc; u32 frame_index; u32 au_count; int last_duration; unsigned int note_offset; enum musical_notes last_tone; };”h]”hŒ¸struct vidtv_s302m_ctx { struct vidtv_encoder *enc; u32 frame_index; u32 au_count; int last_duration; unsigned int note_offset; enum musical_notes last_tone; };”…”�”}”hjÉ|sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´K&hj¨|ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjÚ|h]”hŒMembers”…”�”}”(hjÜ|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjØ|ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´K/hj¨|ubjz)�”}”(hhh]”(j)�”}”(hŒ7``enc`` A pointer to the containing encoder structure. ”h]”(j…)�”}”(hŒ``enc``”h]”j¤ )�”}”(hjù|h]”hŒenc”…”�”}”(hjû|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj÷|ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´K"hjó|ubj•)�”}”(hhh]”hÞ)�”}”(hŒ.A pointer to the containing encoder structure.”h]”hŒ.A pointer to the containing encoder structure.”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j}h´K"hj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjó|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j}h´K"hjð|ubj)�”}”(hŒ-``frame_index`` The current frame in a block ”h]”(j…)�”}”(hŒ``frame_index``”h]”j¤ )�”}”(hj2}h]”hŒ frame_index”…”�”}”(hj4}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj0}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´K#hj,}ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe current frame in a block”h]”hŒThe current frame in a block”…”�”}”(hjK}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jG}h´K#hjH}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj,}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jG}h´K#hjð|ubj)�”}”(hŒ@``au_count`` The total number of access units encoded up to now ”h]”(j…)�”}”(hŒ ``au_count``”h]”j¤ )�”}”(hjk}h]”hŒau_count”…”�”}”(hjm}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hji}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´K$hje}ubj•)�”}”(hhh]”hÞ)�”}”(hŒ2The total number of access units encoded up to now”h]”hŒ2The total number of access units encoded up to now”…”�”}”(hj„}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j€}h´K$hj�}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hje}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j€}h´K$hjð|ubj)�”}”(hŒ>``last_duration`` Duration of the tone currently being played ”h]”(j…)�”}”(hŒ``last_duration``”h]”j¤ )�”}”(hj¤}h]”hŒ last_duration”…”�”}”(hj¦}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¢}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´K%hjž}ubj•)�”}”(hhh]”hÞ)�”}”(hŒ+Duration of the tone currently being played”•h]”hŒ+Duration of the tone currently being played”…”�”}”(hj½}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¹}h´K%hjº}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjž}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¹}h´K%hjð|ubj)�”}”(hŒ1``note_offset`` Position at the music tone array ”h]”(j…)�”}”(hŒ``note_offset``”h]”j¤ )�”}”(hjÝ}h]”hŒ note_offset”…”�”}”(hjß}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÛ}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´K&hj×}ubj•)�”}”(hhh]”hÞ)�”}”(hŒ Position at the music tone array”h]”hŒ Position at the music tone array”…”�”}”(hjö}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jò}h´K&hjó}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj×}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jò}h´K&hjð|ubj)�”}”(hŒ)``last_tone`` Tone currently being played”h]”(j…)�”}”(hŒ ``last_tone``”h]”j¤ )�”}”(hj~h]”hŒ last_tone”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´K&hj~ubj•)�”}”(hhh]”hÞ)�”}”(hŒTone currently being played”h]”hŒTone currently being played”…”�”}”(hj/~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´K'hj,~ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj~ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j+~h´K&hjð|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¨|ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ(vidtv_s302m_encoder_init_args (C struct)”Œc.vidtv_s302m_encoder_init_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒvidtv_s302m_encoder_init_args”h]”j )�”}”(hŒ$struct vidtv_s302m_encoder_init_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjp~h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjl~h²hh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´K-ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~~h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjl~h²hh³j}~h´K-ubj3)�”}”(hŒvidtv_s302m_encoder_init_args”h]”j9)�”}”(hjj~h]”hŒvidtv_s302m_encoder_init_args”…”�”}”(hj�~h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjŒ~ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjl~h²hh³j}~h´K-ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjh~h²hh³j}~h´K-ubah}”(h]”jc~ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j}~h´K-hje~h²hubje)�”}”(hhh]”hÞ)�”}”(hŒArgs for the s302m encoder.”h]”hŒArgs for the s302m encoder.”…”�”}”(hj²~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´KGhj¯~h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhje~h²hh³j}~h´K-ubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡jÊ~jˆjÊ~j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX¹**Definition**:: struct vidtv_s302m_encoder_init_args { char *name; void *src_buf; u32 src_buf_sz; u16 es_pid; struct vidtv_encoder *sync; void (*last_sample_cb)(u32 sample_no); struct vidtv_encoder *head; }; **Members** ``name`` A name to identify this particular instance ``src_buf`` The source buffer, encoder will default to a sine wave if this is NULL. ``src_buf_sz`` The size of the source buffer. ``es_pid`` The MPEG Elementary Stream PID to use. ``sync`` Attempt to synchronize audio with this video encoder, if not NULL. ``last_sample_cb`` A callback called when the encoder runs out of data. ``head`` Add to this chain”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÖ~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÒ~ubhŒ:”…”�”}”(hjÒ~h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´KKhjÎ~ubjÇ)�”}”(hŒÛstruct vidtv_s302m_encoder_init_args { char *name; void *src_buf; u32 src_buf_sz; u16 es_pid; struct vidtv_encoder *sync; void (*last_sample_cb)(u32 sample_no); struct vidtv_encoder *head; };”h]”hŒÛstruct vidtv_s302m_encoder_init_args { char *name; void *src_buf; u32 src_buf_sz; u16 es_pid; struct vidtv_encoder *sync; void (*last_sample_cb)(u32 sample_no); struct vidtv_encoder *head; };”…”�”}”hjï~sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´KMhjÎ~ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjh]”hŒMembers”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjþ~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´KWhjÎ~ubjz)�”}”(hhh]”(j)�”}”(hŒ5``name`` A name to identify this particular instance ”h]”(j…)�”}”(hŒ``name``”h]”j¤ )�”}”(hjh]”hŒname”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´KJhjubj•)�”}”(hhh]”hÞ)�”}”(hŒ+A name to identify this particular instance”h]”hŒ+A name to identify this particular instance”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j4h´KJhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j4h´KJhjubj)�”}”(hŒT``src_buf`` The source buffer, encoder will default to a sine wave if this is NULL. ”h]”(j…)�”}”(hŒ ``src_buf``”h]”j¤ )�”}”(hjXh]”hŒsrc_buf”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjVubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´KKhjRubj•)�”}”(hhh]”hÞ)�”}”(hŒGThe source buffer, encoder will default to a sine wave if this is NULL.”h]”hŒGThe source buffer, encoder will default to a sine wave if this is NULL.”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jmh´KKhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjRubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jmh´KKhjubj)�”}”(hŒ.``src_buf_sz`` The size of the source buffer. ”h]”(j…)�”}”(hŒ``src_buf_sz``”h]”j¤ )�”}”(hj‘h]”hŒ src_buf_sz”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´KLhj‹ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe size of the source buffer.”h]”hŒThe size of the source buffer.”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¦h´KLhj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¦h´KLhjubj)�”}”(hŒ2``es_pid`` The MPEG Elementary Stream PID to use. ”h]”(j…)�”}”(hŒ ``es_pid``”h]”j¤ )�”}”(hjÊh]”hŒes_pid”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´KMhjÄubj•)�”}”(hhh]”hÞ)�”}”(hŒ&The MPEG Elementary Stream PID to use.”h]”hŒ&The MPEG Elementary Stream PID to use.”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jßh´KMhjàubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÄubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jßh´KMhjubj)�”}”(hŒL``sync`` Attempt to synchronize audio with this video encoder, if not NULL. ”h]”(j…)�”}”(hŒ``sync``”h]”j¤ )�”}”(hj€h]”hŒsync”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´KNhjýubj•)�”}”(hhh]”hÞ)�”}”(hŒBAttempt to synchronize audio with this video encoder, if not NULL.”h]”hŒBAttempt to synchronize audio with this video encoder, if not NULL.”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j€h´KNhj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjýubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j€h´KNhjubj)�”}”(hŒH``last_sample_cb`` A callback called when the encoder runs out of data. ”h]”(j…)�”}”(hŒ``last_sample_cb``”h]”j¤ )�”}”(hj<€h]”hŒlast_sample_cb”…”�”}”(hj>€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj:€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´KOhj6€ubj•)�”}”(hhh]”hÞ)�”}”(hŒ4A callback called when the encoder runs out of data.”h]”hŒ4A callback called when the encoder runs out of data.”…”�”}”(hjU€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jQ€h´KOhjR€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj6€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jQ€h´KOhjubj)�”}”(hŒ``head`` Add to this chain”h]”(j…)�”}”(hŒ``head``”h]”j¤ )�”}”(hju€h]”hŒhead”…”�”}”(hjw€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjs€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´KOhjo€ubj•)�”}”(hhh]”hÞ)�”}”(hŒAdd to this chain”h]”hŒAdd to this chain”…”�”}”(hjŽ€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:505: ./drivers/media/test-drivers/vidtv/vidtv_s302m.h”h´KPhj‹€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjo€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jŠ€h´KOhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÎ~ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒpcr_write_args (C struct)”Œc.pcr_write_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒpcr_write_args”h]”j )�”}”(hŒstruct pcr_write_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÏ€h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjË€h²hh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´Kubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÝ€h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjË€h²hh³jÜ€h´Kubj3)�”}”(hŒpcr_write_args”h]”j9)�”}”(hjÉ€h]”hŒpcr_write_args”…”�”}”(hjï€h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjë€ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjË€h²hh³jÜ€h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjÇ€h²hh³jÜ€h´Kubah}”(h]”j€ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jÜ€h´KhjÄ€h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ*Arguments for the pcr_write_into function.”h]”hŒ*Arguments for the pcr_write_into function.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K2hj�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÄ€h²hh³jÜ€h´Kubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡j)�jˆj)�j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXÐ**Definition**:: struct pcr_write_args { void *dest_buf; u32 dest_offset; u16 pid; u32 buf_sz; u8 *continuity_counter; u64 pcr; }; **Members** ``dest_buf`` The buffer to write into. ``dest_offset`` The byte offset into the buffer. ``pid`` The TS PID for the PCR packets. ``buf_sz`` The size of the buffer in bytes. ``continuity_counter`` The TS continuity_counter. ``pcr`` A sample from the system clock.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj5�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj1�ubhŒ:”…”�”}”(hj1�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K6hj-�ubjÇ)�”}”(hŒ‰struct pcr_write_args { void *dest_buf; u32 dest_offset; u16 pid; u32 buf_sz; u8 *continuity_counter; u64 pcr; };”h]”hŒ‰struct pcr_write_args { void *dest_buf; u32 dest_offset; u16 pid; u32 buf_sz; u8 *continuity_counter; u64 pcr; };”…”�”}”hjN�sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K8hj-�ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hj_�h]”hŒMembers”…”�”}”(hja�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj]�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KAhj-�ubjz)�”}”(hhh]”(j)�”}”(hŒ'``dest_buf`` The buffer to write into. ”h]”(j…)�”}”(hŒ ``dest_buf``”h]”j¤ )�”}”(hj~�h]”hŒdest_buf”…”�”}”(hj€�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj|�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K4hjx�ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe buffer to write into.”h]”hŒThe buffer to write into.”…”�”}”(hj—�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j“�h´K4hj”�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjx�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j“�h´K4hju�ubj)�”}”(hŒ1``dest_offset`` The byte offset into the buffer. ”h]”(j…)�”}”(hŒ``dest_offset``”h]”j¤ )�”}”(hj·�h]”hŒ dest_offset”…”�”}”(hj¹�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjµ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K5hj±�ubj•)�”}”(hhh]”hÞ)�”}”(hŒ The byte offset into the buffer.”h]”hŒ The byte offset into the buffer.”…”�”}”(hjÐ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÌ�h´K5hjÍ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj±�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÌ�h´K5hju�ubj)�”}”(hŒ(``pid`` The TS PID for the PCR packets. ”h]”(j…)�”}”(hŒ``pid``”h]”j¤ )�”}”(hjð�h]”hŒpid”…”�”}”(hjò�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjî�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K6hjê�ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe TS PID for the PCR packets.”h]”hŒThe TS PID for the PCR packets.”…”�”}”(hj ‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j‚h´K6hj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjê�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j‚h´K6hju�ubj)�”}”(hŒ,``buf_sz`` The size of the buffer in bytes. ”h]”(j…)�”}”(hŒ ``buf_sz``”h]”j¤ )�”}”(hj)‚h]”hŒbuf_sz”…”�”}”(hj+‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj'‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K7hj#‚ubj•)�”}”(hhh]”hÞ)�”}”(hŒ The size of the buffer in bytes.”h]”hŒ The size of the buffer in bytes.”…”�”}”(hjB‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j>‚h´K7hj?‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj#‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j>‚h´K7hju�ubj)�”}”(hŒ2``continuity_counter`` The TS continuity_counter. ”h]”(j…)�”}”(hŒ``continuity_counter``”h]”j¤ )�”}”(hjb‚h]”hŒcontinuity_counter”…”�”}”(hjd‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj`‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K8hj\‚ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe TS continuity_counter.”h]”hŒThe TS continuity_counter.”…”�”}”(hj{‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jw‚h´K8hjx‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj\‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jw‚h´K8hju�ubj)�”}”(hŒ'``pcr`` A sample from the system clock.”h]”(j…)�”}”(hŒ``pcr``”h]”j¤ )�”}”(hj›‚h]”hŒpcr”…”�”}”(hj�‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj™‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K8hj•‚ubj•)�”}”(hhh]”hÞ)�”}”(hŒA sample from the system clock.”h]”hŒA sample from the system clock.”…”�”}”(hj´‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K9hj±‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj•‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j°‚h´K8hju�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj-�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ!null_packet_write_args (C struct)”Œc.null_packet_write_args”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒnull_packet_write_args”h]”j )�”}”(hŒstruct null_packet_write_args”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjõ‚h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjñ‚h²hh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K?ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjñ‚h²hh³jƒh´K?ubj3)�”}”(hŒnull_packet_write_args”h]”j9)�”}”(hjï‚h]”hŒnull_packet_write_args”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjƒubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjñ‚h²hh³jƒh´K?ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjí‚h²hh³jƒh´K?ubah}”(h]”jè‚ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jƒh´K?hjê‚h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ*Arguments for the null_write_into function”h]”hŒ*Arguments for the null_write_into function”…”�”}”(hj7ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KDhj4ƒh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjê‚h²hh³jƒh´K?ubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡jOƒjˆjOƒj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXd**Definition**:: struct null_packet_write_args { void *dest_buf; u32 dest_offset; u32 buf_sz; u8 *continuity_counter; }; **Members** ``dest_buf`` The buffer to write into. ``dest_offset`` The byte offset into the buffer. ``buf_sz`` The size of the buffer in bytes. ``continuity_counter`` The TS continuity_counter.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj[ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjWƒubhŒ:”…”�”}”(hjWƒh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KHhjSƒubjÇ)�”}”(hŒwstruct null_packet_write_args { void *dest_buf; u32 dest_offset; u32 buf_sz; u8 *continuity_counter; };”h]”hŒwstruct null_packet_write_args { void *dest_buf; u32 dest_offset; u32 buf_sz; u8 *continuity_counter; };”…”�”}”hjtƒsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KJhjSƒubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hj…ƒh]”hŒMembers”…”�”}”(hj‡ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjƒƒubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KQhjSƒubjz)�”}”(hhh]”(j)�”}”(hŒ'``dest_buf`` The buffer to write into. ”h]”(j…)�”}”(hŒ ``dest_buf``”h]”j¤ )�”}”(hj¤ƒh]”hŒdest_buf”…”�”}”(hj¦ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¢ƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KFhjžƒubj•)�”}”(hhh]”hÞ)�”}”(hŒThe buffer to write into.”h]”hŒThe buffer to write into.”…”�”}”(hj½ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¹ƒh´KFhjºƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjžƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¹ƒh´KFhj›ƒubj)�”}”(hŒ1``dest_offset`` The byte offset into the buffer. ”h]”(j…)�”}”(hŒ``dest_offset``”h]”j¤ )�”}”(hj݃h]”hŒ dest_offset”…”�”}”(hj߃h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÛƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KGhj׃ubj•)�”}”(hhh]”hÞ)�”}”(hŒ The byte offset into the buffer.”h]”hŒ The byte offset into the buffer.”…”�”}”(hjöƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jòƒh´KGhjóƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj׃ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jòƒh´KGhj›ƒubj)�”}”(hŒ,``buf_sz`` The size of the buffer in bytes. ”h]”(j…)�”}”(hŒ ``buf_sz``”h]”j¤ )�”}”(hj„h]”hŒbuf_sz”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KHhj„ubj•)�”}”(hhh]”hÞ)�”}”(hŒ The size of the buffer in bytes.”h]”hŒ The size of the buffer in bytes.”…”�”}”(hj/„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j+„h´KHhj,„ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j+„h´KHhj›ƒubj)�”}”(hŒ1``continuity_counter`` The TS continuity_counter.”h]”(j…)�”}”(hŒ``continuity_counter``”h]”j¤ )�”}”(hjO„h]”hŒcontinuity_counter”…”�”}”(hjQ„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjM„ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KHhjI„ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe TS continuity_counter.”h]”hŒThe TS continuity_counter.”…”�”}”(hjh„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KIhje„ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjI„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jd„h´KHhj›ƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjSƒubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ%vidtv_ts_null_write_into (C function)”Œc.vidtv_ts_null_write_into”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒHu32 vidtv_ts_null_write_into (const struct null_packet_write_args *args)”h]”j )�”}”(hŒGu32 vidtv_ts_null_write_into(const struct null_packet_write_args *args)”h]”(h)�”}”(hhh]”j9)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj¬„h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj©„ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j®„Œmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�Œvidtv_ts_null_write_into”sbŒc.vidtv_ts_null_write_into”†”asbuh1hhj¥„h²hh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KUubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj΄h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj¥„h²hh³jÍ„h´KUubj3)�”}”(hŒvidtv_ts_null_write_into”h]”j9)�”}”(hjÊ„h]”hŒvidtv_ts_null_write_into”…”�”}”(hjà„h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjÜ„ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj¥„h²hh³jÍ„h´KUubjP)�”}”(hŒ+(const struct null_packet_write_args *args)”h]”jV)�”}”(hŒ)const struct null_packet_write_args *args”h]”(j)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjû„h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj÷„ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj …h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj÷„ubj)�”}”(hjh]”hŒstruct”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj÷„ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$…h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj÷„ubh)�”}”(hhh]”j9)�”}”(hŒnull_packet_write_args”h]”hŒnull_packet_write_args”…”�”}”(hj5…h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj2…ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j7…Œmodname”NŒ classname”Nj“j–)�”}”j™]”jÈ„Œc.vidtv_ts_null_write_into”†”asbuh1hhj÷„ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjS…h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj÷„ubj°)�”}”(hj³h]”hŒ*”…”�”}”(hja…h²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hj÷„ubj9)�”}”(hŒargs”h]”hŒargs”…”�”}”(hjn…h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj÷„ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjó„ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhj¥„h²hh³jÍ„h´KUubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj¡„h²hh³jÍ„h´KUubah}”(h]”jœ„ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jÍ„h´KUhjž„h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ%Write a TS null packet into a buffer.”h]”hŒ%Write a TS null packet into a buffer.”…”�”}”(hj˜…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KUhj•…h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjž„h²hh³jÍ„h´KUubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡j°…jˆj°…j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX **Parameters** ``const struct null_packet_write_args *args`` the arguments to use when writing. **Description** This function will write a null packet into a buffer. This is usually used to pad TS streams. **Return** The number of bytes written into the buffer.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjº…h]”hŒ Parameters”…”�”}”(hj¼…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj¸…ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KYhj´…ubjz)�”}”(hhh]”j)�”}”(hŒQ``const struct null_packet_write_args *args`` the arguments to use when writing. ”h]”(j…)�”}”(hŒ-``const struct null_packet_write_args *args``”h]”j¤ )�”}”(hjÙ…h]”hŒ)const struct null_packet_write_args *args”…”�”}”(hjÛ…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj×…ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KVhjÓ…ubj•)�”}”(hhh]”hÞ)�”}”(hŒ"the arguments to use when writing.”h]”hŒ"the arguments to use when writing.”…”�”}”(hjò…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jî…h´KVhjï…ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÓ…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jî…h´KVhjÐ…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj´…ubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hj†h]”hŒ Description”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KXhj´…ubhÞ)�”}”(hŒ]This function will write a null packet into a buffer. This is usually used to pad TS streams.”h]”hŒ]This function will write a null packet into a buffer. This is usually used to pad TS streams.”…”�”}”(hj*†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KWhj´…ubhÞ)�”}”(hŒ **Return**”h]”jÁ)�”}”(hj;†h]”hŒReturn”…”�”}”(hj=†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj9†ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KZhj´…ubhÞ)�”}”(hŒ,The number of bytes written into the buffer.”h]”hŒ,The number of bytes written into the buffer.”…”�”}”(hjQ†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K[hj´…ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ$vidtv_ts_pcr_write_into (C function)”Œc.vidtv_ts_pcr_write_into”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒ?u32 vidtv_ts_pcr_write_into (const struct pcr_write_args *args)”h]”j )�”}”(hŒ>u32 vidtv_ts_pcr_write_into(const struct pcr_write_args *args)”h]”(h)�”}”(hhh]”j9)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjƒ†h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj€†ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j…†Œmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�Œvidtv_ts_pcr_write_into”sbŒc.vidtv_ts_pcr_write_into”†”asbuh1hhj|†h²hh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K`ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥†h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj|†h²hh³j¤†h´K`ubj3)�”}”(hŒvidtv_ts_pcr_write_into”h]”j9)�”}”(hj¡†h]”hŒvidtv_ts_pcr_write_into”…”�”}”(hj·†h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj³†ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj|†h²hh³j¤†h´K`ubjP)�”}”(hŒ#(const struct pcr_write_args *args)”h]”jV)�”}”(hŒ!const struct pcr_write_args *args”h]”(j)�”}”(hjý„h]”hŒconst”…”�”}”(hjÒ†h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjΆubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj߆h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjΆubj)�”}”(hjh]”hŒstruct”…”�”}”(hjí†h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjΆubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjú†h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjΆubh)�”}”(hhh]”j9)�”}”(hŒpcr_write_args”h]”hŒpcr_write_args”…”�”}”(hj ‡h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj‡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j ‡Œmodname”NŒ classname”Nj“j–)�”}”j™]”jŸ†Œc.vidtv_ts_pcr_write_into”†”asbuh1hhjΆubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)‡h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjΆubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj7‡h²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjΆubj9)�”}”(hŒargs”h]”hŒargs”…”�”}”(hjD‡h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjΆubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhjʆubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhj|†h²hh³j¤†h´K`ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjx†h²hh³j¤†h´K`ubah}”(h]”js†ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j¤†h´K`hju†h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ!Write a PCR packet into a buffer.”h]”hŒ!Write a PCR packet into a buffer.”…”�”}”(hjn‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´K`hjk‡h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhju†h²hh³j¤†h´K`ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡j†‡jˆj†‡j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX!**Parameters** ``const struct pcr_write_args *args`` the arguments to use when writing. **Description** This function will write a PCR packet into a buffer. This is used to synchronize the clocks between encoders and decoders. **Return** The number of bytes written into the buffer.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hj�‡h]”hŒ Parameters”…”�”}”(hj’‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjއubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KdhjЇubjz)�”}”(hhh]”j)�”}”(hŒI``const struct pcr_write_args *args`` the arguments to use when writing. ”h]”(j…)�”}”(hŒ%``const struct pcr_write_args *args``”h]”j¤ )�”}”(hj¯‡h]”hŒ!const struct pcr_write_args *args”…”�”}”(hj±‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj­‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´Kahj©‡ubj•)�”}”(hhh]”hÞ)�”}”(hŒ"the arguments to use when writing.”h]”hŒ"the arguments to use when writing.”…”�”}”(hjȇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jćh´KahjŇubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj©‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jćh´Kahj¦‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjЇubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjê‡h]”hŒ Description”…”�”}”(hjì‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjè‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KchjЇubhÞ)�”}”(hŒzThis function will write a PCR packet into a buffer. This is used to synchronize the clocks between encoders and decoders.”h]”hŒzThis function will write a PCR packet into a buffer. This is used to synchronize the clocks between encoders and decoders.”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KbhjЇubhÞ)�”}”(hŒ **Return**”h]”jÁ)�”}”(hjˆh]”hŒReturn”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KehjЇubhÞ)�”}”(hŒ,The number of bytes written into the buffer.”h]”hŒ,The number of bytes written into the buffer.”…”�”}”(hj'ˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ{/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:507: ./drivers/media/test-drivers/vidtv/vidtv_ts.h”h´KfhjЇubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒvidtv_tuner_config (C struct)”Œc.vidtv_tuner_config”hNt”auh1jíhjÜh²hh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒvidtv_tuner_config”h]”j )�”}”(hŒstruct vidtv_tuner_config”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjWˆh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjSˆh²hh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´Kubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeˆh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjSˆh²hh³jdˆh´Kubj3)�”}”(hŒvidtv_tuner_config”h]”j9)�”}”(hjQˆh]”hŒvidtv_tuner_config”…”�”}”(hjwˆh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjsˆubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjSˆh²hh³jdˆh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjOˆh²hh³jdˆh´Kubah}”(h]”jIˆah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jdˆh´KhjLˆh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ%Configuration used to init the tuner.”h]”hŒ%Configuration used to init the tuner.”…”�”}”(hj™ˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´Khj–ˆh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjLˆh²hh³jdˆh´Kubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡j±ˆjˆj±ˆj‰‰jЉj‹‰uh1jþh²hhjÜh³jKˆh´Nubj�)�”}”(hXh**Definition**:: struct vidtv_tuner_config { struct dvb_frontend *fe; u32 mock_power_up_delay_msec; u32 mock_tune_delay_msec; u32 vidtv_valid_dvb_t_freqs[NUM_VALID_TUNER_FREQS]; u32 vidtv_valid_dvb_c_freqs[NUM_VALID_TUNER_FREQS]; u32 vidtv_valid_dvb_s_freqs[NUM_VALID_TUNER_FREQS]; u8 max_frequency_shift_hz; }; **Members** ``fe`` A pointer to the dvb_frontend structure allocated by vidtv_demod. ``mock_power_up_delay_msec`` Simulate a power-up delay. ``mock_tune_delay_msec`` Simulate a tune delay. ``vidtv_valid_dvb_t_freqs`` The valid DVB-T frequencies to simulate. ``vidtv_valid_dvb_c_freqs`` The valid DVB-C frequencies to simulate. ``vidtv_valid_dvb_s_freqs`` The valid DVB-S frequencies to simulate. ``max_frequency_shift_hz`` The maximum frequency shift in HZ allowed when tuning in a channel”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj½ˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj¹ˆubhŒ:”…”�”}”(hj¹ˆh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´KhjµˆubjÇ)�”}”(hXBstruct vidtv_tuner_config { struct dvb_frontend *fe; u32 mock_power_up_delay_msec; u32 mock_tune_delay_msec; u32 vidtv_valid_dvb_t_freqs[NUM_VALID_TUNER_FREQS]; u32 vidtv_valid_dvb_c_freqs[NUM_VALID_TUNER_FREQS]; u32 vidtv_valid_dvb_s_freqs[NUM_VALID_TUNER_FREQS]; u8 max_frequency_shift_hz; };”h]”hXBstruct vidtv_tuner_config { struct dvb_frontend *fe; u32 mock_power_up_delay_msec; u32 mock_tune_delay_msec; u32 vidtv_valid_dvb_t_freqs[NUM_VALID_TUNER_FREQS]; u32 vidtv_valid_dvb_c_freqs[NUM_VALID_TUNER_FREQS]; u32 vidtv_valid_dvb_s_freqs[NUM_VALID_TUNER_FREQS]; u8 max_frequency_shift_hz; };”…”�”}”hjÖˆsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´KhjµˆubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjçˆh]”hŒMembers”…”�”}”(hjéˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjåˆubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´K$hjµˆubjz)�”}”(hhh]”(j)�”}”(hŒI``fe`` A pointer to the dvb_frontend structure allocated by vidtv_demod. ”h]”(j…)�”}”(hŒ``fe``”h]”j¤ )�”}”(hj‰h]”hŒfe”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´Khj‰ubj•)�”}”(hhh]”hÞ)�”}”(hŒAA pointer to the dvb_frontend structure allocated by vidtv_demod.”h]”hŒAA pointer to the dvb_frontend structure allocated by vidtv_demod.”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j‰h´Khj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j‰h´Khjýˆubj)�”}”(hŒ8``mock_power_up_delay_msec`` Simulate a power-up delay. ”h]”(j…)�”}”(hŒ``mock_power_up_delay_msec``”h]”j¤ )�”}”(hj?‰h]”hŒmock_power_up_delay_msec”…”�”}”(hjA‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj=‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´Khj9‰ubj•)�”}”(hhh]”hÞ)�”}”(hŒSimulate a power-up delay.”h]”hŒSimulate a power-up delay.”…”�”}”(hjX‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jT‰h´KhjU‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj9‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jT‰h´Khjýˆubj)�”}”(hŒ0``mock_tune_delay_msec`` Simulate a tune delay. ”h]”(j…)�”}”(hŒ``mock_tune_delay_msec``”h]”j¤ )�”}”(hjx‰h]”hŒmock_tune_delay_msec”…”�”}”(hjz‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjv‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´Khjr‰ubj•)�”}”(hhh]”hÞ)�”}”(hŒSimulate a tune delay.”h]”hŒSimulate a tune delay.”…”�”}”(hj‘‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j�‰h´Khjމubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjr‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j�‰h´Khjýˆubj)�”}”(hŒE``vidtv_valid_dvb_t_freqs`` The valid DVB-T frequencies to simulate. ”h]”(j…)�”}”(hŒ``vidtv_valid_dvb_t_freqs``”h]”j¤ )�”}”(hj±‰h]”hŒvidtv_valid_dvb_t_freqs”…”�”}”(hj³‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¯‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´Khj«‰ubj•)�”}”(hhh]”hÞ)�”}”(hŒ(The valid DVB-T frequencies to simulate.”h]”hŒ(The valid DVB-T frequencies to simulate.”…”�”}”(hjʉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jƉh´Khjljubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj«‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jƉh´Khjýˆubj)�”}”(hŒE``vidtv_valid_dvb_c_freqs`` The valid DVB-C frequencies to simulate. ”h]”(j…)�”}”(hŒ``vidtv_valid_dvb_c_freqs``”h]”j¤ )�”}”(hjê‰h]”hŒvidtv_valid_dvb_c_freqs”…”�”}”(hjì‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjè‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´Khjä‰ubj•)�”}”(hhh]”hÞ)�”}”(hŒ(The valid DVB-C frequencies to simulate.”h]”hŒ(The valid DVB-C frequencies to simulate.”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÿ‰h´KhjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjä‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÿ‰h´Khjýˆubj)�”}”(hŒE``vidtv_valid_dvb_s_freqs`` The valid DVB-S frequencies to simulate. ”h]”(j…)�”}”(hŒ``vidtv_valid_dvb_s_freqs``”h]”j¤ )�”}”(hj#Šh]”hŒvidtv_valid_dvb_s_freqs”…”�”}”(hj%Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj!Šubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´KhjŠubj•)�”}”(hhh]”hÞ)�”}”(hŒ(The valid DVB-S frequencies to simulate.”h]”hŒ(The valid DVB-S frequencies to simulate.”…”�”}”(hj<Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j8Šh´Khj9Šubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j8Šh´Khjýˆubj)�”}”(hŒ]``max_frequency_shift_hz`` The maximum frequency shift in HZ allowed when tuning in a channel”h]”(j…)�”}”(hŒ``max_frequency_shift_hz``”h]”j¤ )�”}”(hj\Šh]”hŒmax_frequency_shift_hz”…”�”}”(hj^Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjZŠubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´KhjVŠubj•)�”}”(hhh]”hÞ)�”}”(hŒBThe maximum frequency shift in HZ allowed when tuning in a channel”h]”hŒBThe maximum frequency shift in HZ allowed when tuning in a channel”…”�”}”(hjuŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jqŠh´KhjrŠubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjVŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jqŠh´Khjýˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjµˆubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³jKˆh´NubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjžŠh]”hŒ Description”…”�”}”(hj Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjœŠubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´K hjÜh²hubhÞ)�”}”(hŒ The configuration used to init the tuner module, usually filled by a bridge driver. For vidtv, this is filled by vidtv_bridge before the tuner module is probed.”h]”hŒ The configuration used to init the tuner module, usually filled by a bridge driver. For vidtv, this is filled by vidtv_bridge before the tuner module is probed.”…”�”}”(hj´Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:509: ./drivers/media/test-drivers/vidtv/vidtv_tuner.h”h´KhjÜh²hubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒvidtv_memcpy (C function)”Œc.vidtv_memcpy”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒ[u32 vidtv_memcpy (void *to, size_t to_offset, size_t to_size, const void *from, size_t len)”h]”j )�”}”(hŒZu32 vidtv_memcpy(void *to, size_t to_offset, size_t to_size, const void *from, size_t len)”h]”(h)�”}”(hhh]”j9)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjߊh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjÜŠubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jኌmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�Œ vidtv_memcpy”sbŒc.vidtv_memcpy”†”asbuh1hhjØŠh²hh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´Kubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjØŠh²hh³j‹h´Kubj3)�”}”(hŒ vidtv_memcpy”h]”j9)�”}”(hjýŠh]”hŒ vidtv_memcpy”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj‹ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjØŠh²hh³j‹h´KubjP)�”}”(hŒJ(void *to, size_t to_offset, size_t to_size, const void *from, size_t len)”h]”(jV)�”}”(hŒvoid *to”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj.‹h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhj*‹ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<‹h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj*‹ubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjJ‹h²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hj*‹ubj9)�”}”(hŒto”h]”hŒto”…”�”}”(hjW‹h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj*‹ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj&‹ubjV)�”}”(hŒsize_t to_offset”h]”(h)�”}”(hhh]”j9)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjs‹h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjp‹ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”ju‹Œmodname”NŒ classname”Nj“j–)�”}”j™]”jûŠŒc.vidtv_memcpy”†”asbuh1hhjl‹ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘‹h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjl‹ubj9)�”}”(hŒ to_offset”h]”hŒ to_offset”…”�”}”(hjŸ‹h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjl‹ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj&‹ubjV)�”}”(hŒsize_t to_size”h]”(h)�”}”(hhh]”j9)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj»‹h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj¸‹ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j½‹Œmodname”NŒ classname”Nj“j–)�”}”j™]”jûŠŒc.vidtv_memcpy”†”asbuh1hhj´‹ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ‹h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj´‹ubj9)�”}”(hŒto_size”h]”hŒto_size”…”�”}”(hjç‹h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj´‹ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj&‹ubjV)�”}”(hŒconst void *from”h]”(j)�”}”(hjý„h]”hŒconst”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjü‹ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Œh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjü‹ubj)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjü‹ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)Œh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjü‹ubj°)�”}”(hj³h]”hŒ*”…”�”}”(hj7Œh²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hjü‹ubj9)�”}”(hŒfrom”h]”hŒfrom”…”�”}”(hjDŒh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjü‹ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj&‹ubjV)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”j9)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj`Œh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj]Œubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jbŒŒmodname”NŒ classname”Nj“j–)�”}”j™]”jûŠŒc.vidtv_memcpy”†”asbuh1hhjYŒubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~Œh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjYŒubj9)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjŒŒh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjYŒubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj&‹ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjØŠh²hh³j‹h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjÔŠh²hh³j‹h´Kubah}”(h]”jÏŠah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j‹h´KhjÑŠh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ`wrapper routine to be used by MPEG-TS generator, in order to avoid going past the output buffer.”h]”hŒ`wrapper routine to be used by MPEG-TS generator, in order to avoid going past the output buffer.”…”�”}”(hj¶Œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´Khj³Œh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÑŠh²hh³j‹h´Kubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jÎŒjˆjÎŒj‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hXo**Parameters** ``void *to`` Starting element to where a MPEG-TS packet will be copied. ``size_t to_offset`` Starting position of the **to** buffer to be filled. ``size_t to_size`` Size of the **to** buffer. ``const void *from`` Starting element of the buffer to be copied. ``size_t len`` Number of elements to be copy from **from** buffer into **to**+ **to_offset** buffer. **Note** Real digital TV demod drivers should not have memcpy wrappers. We use it here because emulating MPEG-TS generation at kernelspace requires some extra care. **Return** Returns the number of bytes written”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjØŒh]”hŒ Parameters”…”�”}”(hjÚŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÖŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´KhjÒŒubjz)�”}”(hhh]”(j)�”}”(hŒH``void *to`` Starting element to where a MPEG-TS packet will be copied. ”h]”(j…)�”}”(hŒ ``void *to``”h]”j¤ )�”}”(hj÷Œh]”hŒvoid *to”…”�”}”(hjùŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjõŒubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´KhjñŒubj•)�”}”(hhh]”hÞ)�”}”(hŒ:Starting element to where a MPEG-TS packet will be copied.”h]”hŒ:Starting element to where a MPEG-TS packet will be copied.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´Khj �ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjñŒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j �h´KhjîŒubj)�”}”(hŒJ``size_t to_offset`` Starting position of the **to** buffer to be filled. ”h]”(j…)�”}”(hŒ``size_t to_offset``”h]”j¤ )�”}”(hj1�h]”hŒsize_t to_offset”…”�”}”(hj3�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj/�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´Khj+�ubj•)�”}”(hhh]”hÞ)�”}”(hŒ4Starting position of the **to** buffer to be filled.”h]”(hŒStarting position of the ”…”�”}”(hjJ�h²hh³Nh´NubjÁ)�”}”(hŒ**to**”h]”hŒto”…”�”}”(hjR�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjJ�ubhŒ buffer to be filled.”…”�”}”(hjJ�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jF�h´KhjG�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj+�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jF�h´KhjîŒubj)�”}”(hŒ.``size_t to_size`` Size of the **to** buffer. ”h]”(j…)�”}”(hŒ``size_t to_size``”h]”j¤ )�”}”(hj|�h]”hŒsize_t to_size”…”�”}”(hj~�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjz�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´Khjv�ubj•)�”}”(hhh]”hÞ)�”}”(hŒSize of the **to** buffer.”h]”(hŒ Size of the ”…”�”}”(hj•�h²hh³Nh´NubjÁ)�”}”(hŒ**to**”h]”hŒto”…”�”}”(hj��h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj•�ubhŒ buffer.”…”�”}”(hj•�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j‘�h´Khj’�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjv�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j‘�h´KhjîŒubj)�”}”(hŒB``const void *from`` Starting element of the buffer to be copied. ”h]”(j…)�”}”(hŒ``const void *from``”h]”j¤ )�”}”(hjÇ�h]”hŒconst void *from”…”�”}”(hjÉ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjÅ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´KhjÁ�ubj•)�”}”(hhh]”hÞ)�”}”(hŒ,Starting element of the buffer to be copied.”h]”hŒ,Starting element of the buffer to be copied.”…”�”}”(hjà�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÜ�h´KhjÝ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÁ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÜ�h´KhjîŒubj)�”}”(hŒe``size_t len`` Number of elements to be copy from **from** buffer into **to**+ **to_offset** buffer. ”h]”(j…)�”}”(hŒ``size_t len``”h]”j¤ )�”}”(hjŽh]”hŒ size_t len”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjþ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´Khjú�ubj•)�”}”(hhh]”hÞ)�”}”(hŒUNumber of elements to be copy from **from** buffer into **to**+ **to_offset** buffer.”h]”(hŒ#Number of elements to be copy from ”…”�”}”(hjŽh²hh³Nh´NubjÁ)�”}”(hŒ**from**”h]”hŒfrom”…”�”}”(hj!Žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjŽubhŒ buffer into ”…”�”}”(hjŽh²hh³Nh´NubjÁ)�”}”(hŒ**to**+ **to_offset**”h]”hŒto**+ **to_offset”…”�”}”(hj3Žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjŽubhŒ buffer.”…”�”}”(hjŽh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´KhjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjú�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jŽh´KhjîŒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÒŒubhÞ)�”}”(hŒ**Note**”h]”jÁ)�”}”(hj`Žh]”hŒNote”…”�”}”(hjbŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj^Žubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´KhjÒŒubjó)�”}”(hŒœReal digital TV demod drivers should not have memcpy wrappers. We use it here because emulating MPEG-TS generation at kernelspace requires some extra care. ”h]”hÞ)�”}”(hŒ›Real digital TV demod drivers should not have memcpy wrappers. We use it here because emulating MPEG-TS generation at kernelspace requires some extra care.”h]”hŒ›Real digital TV demod drivers should not have memcpy wrappers. We use it here because emulating MPEG-TS generation at kernelspace requires some extra care.”…”�”}”(hjzŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´KhjvŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jòh³jˆŽh´KhjÒŒubhÞ)�”}”(hŒ **Return**”h]”jÁ)�”}”(hj‘Žh]”hŒReturn”…”�”}”(hj“Žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj�Žubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´K"hjÒŒubhÞ)�”}”(hŒ#Returns the number of bytes written”h]”hŒ#Returns the number of bytes written”…”�”}”(hj§Žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´K#hjÒŒubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒvidtv_memset (C function)”Œc.vidtv_memset”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒVu32 vidtv_memset (void *to, size_t to_offset, size_t to_size, const int c, size_t len)”h]”j )�”}”(hŒUu32 vidtv_memset(void *to, size_t to_offset, size_t to_size, const int c, size_t len)”h]”(h)�”}”(hhh]”j9)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjÙŽh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjÖŽubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jÛŽŒmodname”NŒ classname”Nj“j–)�”}”j™]”jœ)�”}”j�Œ vidtv_memset”sbŒc.vidtv_memset”†”asbuh1hhjÒŽh²hh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´K8ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjûŽh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÒŽh²hh³júŽh´K8ubj3)�”}”(hŒ vidtv_memset”h]”j9)�”}”(hj÷Žh]”hŒ vidtv_memset”…”�”}”(hj �h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj �ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjÒŽh²hh³júŽh´K8ubjP)�”}”(hŒE(void *to, size_t to_offset, size_t to_size, const int c, size_t len)”h]”(jV)�”}”(hŒvoid *to”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj(�h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhj$�ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6�h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj$�ubj°)�”}”(hj³h]”hŒ*”…”�”}”(hjD�h²hh³Nh´Nubah}”(h]”h ]”j¼ah"]”h$]”h&]”uh1j¯hj$�ubj9)�”}”(hŒto”h]”hŒto”…”�”}”(hjQ�h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj$�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj �ubjV)�”}”(hŒsize_t to_offset”h]”(h)�”}”(hhh]”j9)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjm�h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjj�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jo�Œmodname”NŒ classname”Nj“j–)�”}”j™]”jõŽŒc.vidtv_memset”†”asbuh1hhjf�ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹�h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjf�ubj9)�”}”(hŒ to_offset”h]”hŒ to_offset”…”�”}”(hj™�h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjf�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj �ubjV)�”}”(hŒsize_t to_size”h]”(h)�”}”(hhh]”j9)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjµ�h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj²�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”j·�Œmodname”NŒ classname”Nj“j–)�”}”j™]”jõŽŒc.vidtv_memset”†”asbuh1hhj®�ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓ�h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj®�ubj9)�”}”(hŒto_size”h]”hŒto_size”…”�”}”(hjá�h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hj®�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj �ubjV)�”}”(hŒ const int c”h]”(j)�”}”(hjý„h]”hŒconst”…”�”}”(hjú�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjö�ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjö�ubj)�”}”(hŒint”h]”hŒint”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjö�ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#�h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjö�ubj9)�”}”(hj�h]”hŒc”…”�”}”(hj1�h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjö�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj �ubjV)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”j9)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjL�h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjI�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j�Œ reftarget”jN�Œmodname”NŒ classname”Nj“j–)�”}”j™]”jõŽŒc.vidtv_memset”†”asbuh1hhjE�ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj�h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjE�ubj9)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjx�h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjE�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jUhj �ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jOhjÒŽh²hh³júŽh´K8ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjÎŽh²hh³júŽh´K8ubah}”(h]”jÉŽah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³júŽh´K8hjËŽh²hubje)�”}”(hhh]”hÞ)�”}”(hŒ`wrapper routine to be used by MPEG-TS generator, in order to avoid going past the output buffer.”h]”hŒ`wrapper routine to be used by MPEG-TS generator, in order to avoid going past the output buffer.”…”�”}”(hj¢�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´K8hjŸ�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjËŽh²hh³júŽh´K8ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jº�jˆjº�j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX8**Parameters** ``void *to`` Starting element to set ``size_t to_offset`` Starting position of the **to** buffer to be filled. ``size_t to_size`` Size of the **to** buffer. ``const int c`` The value to set the memory to. ``size_t len`` Number of elements to be copy from **from** buffer into **to**+ **to_offset** buffer. **Note** Real digital TV demod drivers should not have memset wrappers. We use it here because emulating MPEG-TS generation at kernelspace requires some extra care. **Return** Returns the number of bytes written”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jÁ)�”}”(hjÄ�h]”hŒ Parameters”…”�”}”(hjÆ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÂ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´Khj¬‘ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe value to set the memory to.”h]”hŒThe value to set the memory to.”…”�”}”(hjË‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÇ‘h´K>hjÈ‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¬‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÇ‘h´K>hjÚ�ubj)�”}”(hŒe``size_t len`` Number of elements to be copy from **from** buffer into **to**+ **to_offset** buffer. ”h]”(j…)�”}”(hŒ``size_t len``”h]”j¤ )�”}”(hjë‘h]”hŒ size_t len”…”�”}”(hjí‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjé‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´K@hjå‘ubj•)�”}”(hhh]”hÞ)�”}”(hŒUNumber of elements to be copy from **from** buffer into **to**+ **to_offset** buffer.”h]”(hŒ#Number of elements to be copy from ”…”�”}”(hj’h²hh³Nh´NubjÁ)�”}”(hŒ**from**”h]”hŒfrom”…”�”}”(hj ’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj’ubhŒ buffer into ”…”�”}”(hj’h²hh³Nh´NubjÁ)�”}”(hŒ**to**+ **to_offset**”h]”hŒto**+ **to_offset”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj’ubhŒ buffer.”…”�”}”(hj’h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´K?hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjå‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j’h´K@hjÚ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¾�ubhÞ)�”}”(hŒ**Note**”h]”jÁ)�”}”(hjK’h]”hŒNote”…”�”}”(hjM’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjI’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´KBhj¾�ubjó)�”}”(hŒœReal digital TV demod drivers should not have memset wrappers. We use it here because emulating MPEG-TS generation at kernelspace requires some extra care. ”h]”hÞ)�”}”(hŒ›Real digital TV demod drivers should not have memset wrappers. We use it here because emulating MPEG-TS generation at kernelspace requires some extra care.”h]”hŒ›Real digital TV demod drivers should not have memset wrappers. We use it here because emulating MPEG-TS generation at kernelspace requires some extra care.”…”�”}”(hje’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´KBhja’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jòh³js’h´KBhj¾�ubhÞ)�”}”(hŒ **Return**”h]”jÁ)�”}”(hj|’h]”hŒReturn”…”�”}”(hj~’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjz’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´KFhj¾�ubhÞ)�”}”(hŒ#Returns the number of bytes written”h]”hŒ#Returns the number of bytes written”…”�”}”(hj’’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:511: ./drivers/media/test-drivers/vidtv/vidtv_common.c”h´KGhj¾�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒ%vidtv_tuner_hardware_state (C struct)”Œc.vidtv_tuner_hardware_state”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒvidtv_tuner_hardware_state”h]”j )�”}”(hŒ!struct vidtv_tuner_hardware_state”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÁ’h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj½’h²hh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´Kubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏ’h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj½’h²hh³jÎ’h´Kubj3)�”}”(hŒvidtv_tuner_hardware_state”h]”j9)�”}”(hj»’h]”hŒvidtv_tuner_hardware_state”…”�”}”(hjá’h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjÝ’ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hj½’h²hh³jÎ’h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhj¹’h²hh³jÎ’h´Kubah}”(h]”j´’ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jÎ’h´Khj¶’h²hubje)�”}”(hhh]”hÞ)�”}”(hŒ"Simulate the tuner hardware status”h]”hŒ"Simulate the tuner hardware status”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´KRhj“h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj¶’h²hh³jÎ’h´Kubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡j“jˆj“j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX,**Definition**:: struct vidtv_tuner_hardware_state { bool asleep; u32 lock_status; u32 if_frequency; u32 tuned_frequency; u32 bandwidth; }; **Members** ``asleep`` whether the tuner is asleep, i.e whether _sleep() or _suspend() was called. ``lock_status`` Whether the tuner has managed to lock on the requested frequency. ``if_frequency`` The tuner's intermediate frequency. Hardcoded for the purposes of simulation. ``tuned_frequency`` The actual tuned frequency. ``bandwidth`` The actual bandwidth.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj'“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj#“ubhŒ:”…”�”}”(hj#“h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´KVhj“ubjÇ)�”}”(hŒŽstruct vidtv_tuner_hardware_state { bool asleep; u32 lock_status; u32 if_frequency; u32 tuned_frequency; u32 bandwidth; };”h]”hŒŽstruct vidtv_tuner_hardware_state { bool asleep; u32 lock_status; u32 if_frequency; u32 tuned_frequency; u32 bandwidth; };”…”�”}”hj@“sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´KXhj“ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjQ“h]”hŒMembers”…”�”}”(hjS“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjO“ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´K`hj“ubjz)�”}”(hhh]”(j)�”}”(hŒW``asleep`` whether the tuner is asleep, i.e whether _sleep() or _suspend() was called. ”h]”(j…)�”}”(hŒ ``asleep``”h]”j¤ )�”}”(hjp“h]”hŒasleep”…”�”}”(hjr“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjn“ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´KUhjj“ubj•)�”}”(hhh]”hÞ)�”}”(hŒKwhether the tuner is asleep, i.e whether _sleep() or _suspend() was called.”h]”hŒKwhether the tuner is asleep, i.e whether _sleep() or _suspend() was called.”…”�”}”(hj‰“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´KThj†“ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjj“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j…“h´KUhjg“ubj)�”}”(hŒR``lock_status`` Whether the tuner has managed to lock on the requested frequency. ”h]”(j…)�”}”(hŒ``lock_status``”h]”j¤ )�”}”(hjª“h]”hŒ lock_status”…”�”}”(hj¬“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¨“ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´KWhj¤“ubj•)�”}”(hhh]”hÞ)�”}”(hŒAWhether the tuner has managed to lock on the requested frequency.”h]”hŒAWhether the tuner has managed to lock on the requested frequency.”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´KVhjÀ“ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¤“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j¿“h´KWhjg“ubj)�”}”(hŒ_``if_frequency`` The tuner's intermediate frequency. Hardcoded for the purposes of simulation. ”h]”(j…)�”}”(hŒ``if_frequency``”h]”j¤ )�”}”(hjä“h]”hŒ if_frequency”…”�”}”(hjæ“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjâ“ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´KYhjÞ“ubj•)�”}”(hhh]”hÞ)�”}”(hŒMThe tuner's intermediate frequency. Hardcoded for the purposes of simulation.”h]”hŒOThe tuner’s intermediate frequency. Hardcoded for the purposes of simulation.”…”�”}”(hjý“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´KXhjú“ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÞ“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jù“h´KYhjg“ubj)�”}”(hŒ0``tuned_frequency`` The actual tuned frequency. ”h]”(j…)�”}”(hŒ``tuned_frequency``”h]”j¤ )�”}”(hj”h]”hŒtuned_frequency”…”�”}”(hj ”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´KZhj”ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe actual tuned frequency.”h]”hŒThe actual tuned frequency.”…”�”}”(hj7”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j3”h´KZhj4”ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j3”h´KZhjg“ubj)�”}”(hŒ#``bandwidth`` The actual bandwidth.”h]”(j…)�”}”(hŒ ``bandwidth``”h]”j¤ )�”}”(hjW”h]”hŒ bandwidth”…”�”}”(hjY”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjU”ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´KZhjQ”ubj•)�”}”(hhh]”hÞ)�”}”(hŒThe actual bandwidth.”h]”hŒThe actual bandwidth.”…”�”}”(hjp”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´K[hjm”ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjQ”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jl”h´KZhjg“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj“ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´NubhÞ)�”}”(hŒ**Description**”h]”jÁ)�”}”(hjš”h]”hŒ Description”…”�”}”(hjœ”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj˜”ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´K^hjÜh²hubhÞ)�”}”(hŒmThis structure is meant to simulate the status of the tuner hardware, as if we had a physical tuner hardware.”h]”hŒmThis structure is meant to simulate the status of the tuner hardware, as if we had a physical tuner hardware.”…”�”}”(hj°”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´K[hjÜh²hubjî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(júŒvidtv_tuner_dev (C struct)”Œc.vidtv_tuner_dev”hNt”auh1jíhjÜh²hh³Nh´Nubjÿ)�”}”(hhh]”(j)�”}”(hŒvidtv_tuner_dev”h]”j )�”}”(hŒstruct vidtv_tuner_dev”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjØ”h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÔ”h²hh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´Kaubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæ”h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÔ”h²hh³jå”h´Kaubj3)�”}”(hŒvidtv_tuner_dev”h]”j9)�”}”(hjÒ”h]”hŒvidtv_tuner_dev”…”�”}”(hjø”h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j8hjô”ubah}”(h]”h ]”(jKjLeh"]”h$]”h&]”hÅhÆuh1j2hjÔ”h²hh³jå”h´Kaubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjVˆuh1j jWjXhjДh²hh³jå”h´Kaubah}”(h]”jË”ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jå”h´KahjÍ”h²hubje)�”}”(hhh]”hÞ)�”}”(hŒThe tuner struct”h]”hŒThe tuner struct”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´Khhj•h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÍ”h²hh³jå”h´Kaubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡j2•jˆj2•j‰‰jЉj‹‰uh1jþh²hhjÜh³Nh´Nubj�)�”}”(hX **Definition**:: struct vidtv_tuner_dev { struct dvb_frontend *fe; struct vidtv_tuner_hardware_state hw_state; struct vidtv_tuner_config config; }; **Members** ``fe`` A pointer to the dvb_frontend structure allocated by vidtv_demod ``hw_state`` A struct to simulate the tuner's hardware state as if we had a physical tuner hardware. ``config`` The configuration used to start the tuner module, usually filled by a bridge driver. For vidtv, this is filled by vidtv_bridge before the tuner module is probed.”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jÁ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj>•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj:•ubhŒ:”…”�”}”(hj:•h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´Klhj6•ubjÇ)�”}”(hŒŽstruct vidtv_tuner_dev { struct dvb_frontend *fe; struct vidtv_tuner_hardware_state hw_state; struct vidtv_tuner_config config; };”h]”hŒŽstruct vidtv_tuner_dev { struct dvb_frontend *fe; struct vidtv_tuner_hardware_state hw_state; struct vidtv_tuner_config config; };”…”�”}”hjW•sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´Knhj6•ubhÞ)�”}”(hŒ **Members**”h]”jÁ)�”}”(hjh•h]”hŒMembers”…”�”}”(hjj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjf•ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´Kthj6•ubjz)�”}”(hhh]”(j)�”}”(hŒH``fe`` A pointer to the dvb_frontend structure allocated by vidtv_demod ”h]”(j…)�”}”(hŒ``fe``”h]”j¤ )�”}”(hj‡•h]”hŒfe”…”�”}”(hj‰•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj…•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´Kjhj�•ubj•)�”}”(hhh]”hÞ)�”}”(hŒ@A pointer to the dvb_frontend structure allocated by vidtv_demod”h]”hŒ@A pointer to the dvb_frontend structure allocated by vidtv_demod”…”�”}”(hj •h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jœ•h´Kjhj�•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj�•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jœ•h´Kjhj~•ubj)�”}”(hŒe``hw_state`` A struct to simulate the tuner's hardware state as if we had a physical tuner hardware. ”h]”(j…)�”}”(hŒ ``hw_state``”h]”j¤ )�”}”(hjÀ•h]”hŒhw_state”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hj¾•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´Klhjº•ubj•)�”}”(hhh]”hÞ)�”}”(hŒWA struct to simulate the tuner's hardware state as if we had a physical tuner hardware.”h]”hŒYA struct to simulate the tuner’s hardware state as if we had a physical tuner hardware.”…”�”}”(hjÙ•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´KkhjÖ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjº•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³jÕ•h´Klhj~•ubj)�”}”(hŒ¬``config`` The configuration used to start the tuner module, usually filled by a bridge driver. For vidtv, this is filled by vidtv_bridge before the tuner module is probed.”h]”(j…)�”}”(hŒ ``config``”h]”j¤ )�”}”(hjú•h]”hŒconfig”…”�”}”(hjü•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j£ hjø•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„h³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´Knhjô•ubj•)�”}”(hhh]”hÞ)�”}”(hŒ¡The configuration used to start the tuner module, usually filled by a bridge driver. For vidtv, this is filled by vidtv_bridge before the tuner module is probed.”h]”hŒ¡The configuration used to start the tuner module, usually filled by a bridge driver. For vidtv, this is filled by vidtv_bridge before the tuner module is probed.”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œ~/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vidtv:513: ./drivers/media/test-drivers/vidtv/vidtv_tuner.c”h´Kmhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjô•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j~h³j–h´Knhj~•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj6•ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhjÜh²hh³Nh´Nubeh}”(h]”Œ'functions-and-structs-used-within-vidtv”ah ]”h"]”Œ'functions and structs used within vidtv”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Méubeh}”(h]”Œvidtv-virtual-digital-tv-driver”ah ]”h"]”Œ vidtv: virtual digital tv driver”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jn–Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œ1”]”jD asŒrefids”}”Œnameids”}”(jH–jE–j¤j¡j¤j¡jWjTjòjïj. j+ j‚jj³j°j‚ j jd ja j6 j3 j# j j& j# jÇ jÄ j j jz jw j˜ jT jE jB jg jd jÙjÖjö jó jKjHjÑjÎj@–j=–uŒ nametypes”}”(jH–‰j¤‰j¤‰jW‰jò‰j. ‰j‚ˆj³ˆj‚ ‰jd ˆj6 ‰j# ˆj& ‰jÇ ˆj ˆjz ‰j˜ ˆjE ˆjg ˆjÙ‰jö ‰jK‰jщj@–‰uh}”(jE–hÊj¡jj¡j§jTj§jïjZj+ jõjjyj°jªj j1 ja j[ j3 j¸ j j j# j9 jÄ j¾ j j jw j) jN jD jT jr jB j< jd j^ jÖj… jó j– jHjù jÎjNj=–jÜjüjjjj jjxj}jÒj×j½jÂj%j*jÙjÞjk#jp#j¹%j¾%jÜ'já'jX)j])jž.j£.jâ1jç1j'5j,5jÀ7jÅ7jé;jî;j³=j¸=j½@jÂ@jCj!CjBEjGEj¡Gj¦GjËIjÐIjLjLjâNjçNjÂQjÇQjëSjðSjVjVj8Xj=XjuZjzZj\j \j•]jš]j%_j*_jajajÍbjÒbjºdj¿djufjzfjÓhjØhjŽjj“jjYmj^mjFojKoj3qj8qj sj%sjÛtjàtjÈvjÍvjƒxjˆxjzjzj=|jB|jc~jh~j€jÇ€jè‚jí‚jœ„j¡„js†jx†jIˆjOˆjÏŠjÔŠjÉŽjÎŽj´’j¹’jË”jДuŒ footnote_refs”}”j®–]”jD asŒ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”jr aŒ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”j|–Ks…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.