media fixes for v4.13-rc2

-----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJZhZWFAAoJEAhfPr2O5OEV690P/10GYZrdz4QbhTP0l0M6/VZv
 KXmW+zFzmmt8NQCxo8RUflcmWezTHzlVmcFpYiX1GWWXC6tnjlc+PVwTHOjLkpdK
 UO/0K8UDQwahUa84XaoDJmT/xd+JaXJSxu78gqHF7KTyVPj8qPxjjZhdBSEV83/E
 tH3q1si0QS6hRWNh3Cb4VqeimV0qGS/onu6uFTgBuTXZRh4iyOYxC7NRQOxw0eu5
 VrNvmYOWDWGaoGKII6XoHTjOuVvmCCgNDRh3YrM73elT+W4FCfej6CqsbiQQvYf9
 PL0aroi2sIyhTGLR3dtQ5KjfIExUF/lZ3hpp+rByW5HebJXrBTEW7YgSvmf1eeJt
 dhP901Y1rp6cj8cjKroCh5Gh0WMV4cnboA7iKxhpiEcV6/Iid1aB2qLvwuSXrdlM
 DRqXic9iFTljtEZuFz8/HgxQO6f84ljc6yMaapQHiGDlx/CD0aSJOBEAxTRYfKXt
 R36E2Um2Wo5GMvcaHf8GNlwyKipZbn4ECI9zdqH7rlCGa6xc3nr+3VoY/KqUd7ZS
 OhHh8c8bQEhCAG56yGEbUsmS5zUjY1nrD4eLEA3hZI1kSw+KQOrvYXtQsZp7X06h
 ih0XvyEDH5ATFBH8P7hr+NvtdEh5WzOFkNmrv3POhYn8dLrixeC3cgy+5jVcsh0j
 GCm20eNXdsjfebAE9Bgb
 =wQ04
 -----END PGP SIGNATURE-----

Merge tag 'media/v4.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

Pull media fixes from Mauro Carvalho Chehab:
 "This series is larger than I would like to submit for -rc4. My
  original intent were to sent it to either -rc2 or -rc3. Unfortunately,
  due to my vacations, I got a lot of pending stuff after my return, and
  had to do some biz trips, with prevented me to send this earlier.

  Several fixes:

   - some fixes at atomisp staging driver

   - several gcc 7 warning fixes

   - cleanup media SVG files, in order to fix PDF build on some distros

   - fix random Kconfig build of venus driver

   - some fixes for the venus driver

   - some changes from semaphone to mutex in ngene's driver

   - some locking fixes at dib0700 driver

   - several fixes on ngene's driver and frontends to make it properly
     support some new boards added on Kernel 4.13

   - some fixes to CEC drivers

   - omap_vout: vrfb: convert to dmaengine

   - docs-rst: document EBUSY for VIDIOC_S_FMT

  Please notice that the big diffstat changes here are at the SVG files.

  Visually, the images look the same, but the file size is now a lot
  smaller than before, and they don't use some XML tags that would cause
  them to be badly parsed by some ImageMagick versions, or to require a
  lot of memory by TeTex, with would break PDF output on some
  distributions"

* tag 'media/v4.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (68 commits)
  media: atomisp2: array underflow in imx_enum_frame_size()
  media: atomisp2: array underflow in ap1302_enum_frame_size()
  media: atomisp2: Array underflow in atomisp_enum_input()
  media: platform: davinci: drop VPFE_CMD_S_CCDC_RAW_PARAMS
  media: platform: davinci: return -EINVAL for VPFE_CMD_S_CCDC_RAW_PARAMS ioctl
  media: venus: don't abuse dma_alloc for non-DMA allocations
  media: venus: hfi: fix error handling in hfi_sys_init_done()
  media: venus: fix compile-test build on non-qcom ARM platform
  media: venus: mark PM functions as __maybe_unused
  media: cec-notifier: small improvements
  media: pulse8-cec: persistent_config should be off by default
  media: cec: cec_transmit_attempt_done: ignore CEC_TX_STATUS_MAX_RETRIES
  media: staging: atomisp: array underflow in ioctl
  media: lirc: LIRC_GET_REC_RESOLUTION should return microseconds
  media: svg: avoid too long lines
  media: svg files: simplify files
  media: selection.svg: simplify the SVG file
  media: vimc: set id_table for platform drivers
  media: staging: atomisp: disable warnings with cc-disable-warning
  media: davinci: variable 'common' set but not used
  ...
This commit is contained in:
Linus Torvalds 2017-08-05 14:09:26 -07:00
commit 0fdd951c9b
91 changed files with 5179 additions and 14190 deletions

View file

@ -1,6 +1,31 @@
Digital TV (DVB) devices
------------------------
Digital TV devices are implemented by several different drivers:
- A bridge driver that is responsible to talk with the bus where the other
devices are connected (PCI, USB, SPI), bind to the other drivers and
implement the digital demux logic (either in software or in hardware);
- Frontend drivers that are usually implemented as two separate drivers:
- A tuner driver that implements the logic with commands the part of the
hardware with is reponsible to tune into a digital TV transponder or
physical channel. The output of a tuner is usually a baseband or
Intermediate Frequency (IF) signal;
- A demodulator driver (a.k.a "demod") that implements the logic with
commands the digital TV decoding hardware. The output of a demod is
a digital stream, with multiple audio, video and data channels typically
multiplexed using MPEG Transport Stream [#f1]_.
On most hardware, the frontend drivers talk with the bridge driver using an
I2C bus.
.. [#f1] Some standards use TCP/IP for multiplexing data, like DVB-H (an
abandoned standard, not used anymore) and ATSC version 3.0 current
proposals. Currently, the DVB subsystem doesn't implement those standards.
Digital TV Common functions
---------------------------
@ -55,8 +80,141 @@ Digital TV Frontend
The Digital TV Frontend kABI defines a driver-internal interface for
registering low-level, hardware specific driver to a hardware independent
frontend layer. It is only of interest for Digital TV device driver writers.
The header file for this API is named dvb_frontend.h and located in
drivers/media/dvb-core.
The header file for this API is named ``dvb_frontend.h`` and located in
``drivers/media/dvb-core``.
Demodulator driver
^^^^^^^^^^^^^^^^^^
The demodulator driver is responsible to talk with the decoding part of the
hardware. Such driver should implement :c:type:`dvb_frontend_ops`, with
tells what type of digital TV standards are supported, and points to a
series of functions that allow the DVB core to command the hardware via
the code under ``drivers/media/dvb-core/dvb_frontend.c``.
A typical example of such struct in a driver ``foo`` is::
static struct dvb_frontend_ops foo_ops = {
.delsys = { SYS_DVBT, SYS_DVBT2, SYS_DVBC_ANNEX_A },
.info = {
.name = "foo DVB-T/T2/C driver",
.caps = FE_CAN_FEC_1_2 |
FE_CAN_FEC_2_3 |
FE_CAN_FEC_3_4 |
FE_CAN_FEC_5_6 |
FE_CAN_FEC_7_8 |
FE_CAN_FEC_AUTO |
FE_CAN_QPSK |
FE_CAN_QAM_16 |
FE_CAN_QAM_32 |
FE_CAN_QAM_64 |
FE_CAN_QAM_128 |
FE_CAN_QAM_256 |
FE_CAN_QAM_AUTO |
FE_CAN_TRANSMISSION_MODE_AUTO |
FE_CAN_GUARD_INTERVAL_AUTO |
FE_CAN_HIERARCHY_AUTO |
FE_CAN_MUTE_TS |
FE_CAN_2G_MODULATION,
.frequency_min = 42000000, /* Hz */
.frequency_max = 1002000000, /* Hz */
.symbol_rate_min = 870000,
.symbol_rate_max = 11700000
},
.init = foo_init,
.sleep = foo_sleep,
.release = foo_release,
.set_frontend = foo_set_frontend,
.get_frontend = foo_get_frontend,
.read_status = foo_get_status_and_stats,
.tune = foo_tune,
.i2c_gate_ctrl = foo_i2c_gate_ctrl,
.get_frontend_algo = foo_get_algo,
};
A typical example of such struct in a driver ``bar`` meant to be used on
Satellite TV reception is::
static const struct dvb_frontend_ops bar_ops = {
.delsys = { SYS_DVBS, SYS_DVBS2 },
.info = {
.name = "Bar DVB-S/S2 demodulator",
.frequency_min = 500000, /* KHz */
.frequency_max = 2500000, /* KHz */
.frequency_stepsize = 0,
.symbol_rate_min = 1000000,
.symbol_rate_max = 45000000,
.symbol_rate_tolerance = 500,
.caps = FE_CAN_INVERSION_AUTO |
FE_CAN_FEC_AUTO |
FE_CAN_QPSK,
},
.init = bar_init,
.sleep = bar_sleep,
.release = bar_release,
.set_frontend = bar_set_frontend,
.get_frontend = bar_get_frontend,
.read_status = bar_get_status_and_stats,
.i2c_gate_ctrl = bar_i2c_gate_ctrl,
.get_frontend_algo = bar_get_algo,
.tune = bar_tune,
/* Satellite-specific */
.diseqc_send_master_cmd = bar_send_diseqc_msg,
.diseqc_send_burst = bar_send_burst,
.set_tone = bar_set_tone,
.set_voltage = bar_set_voltage,
};
.. note::
#) For satellite digital TV standards (DVB-S, DVB-S2, ISDB-S), the
frequencies are specified in kHz, while, for terrestrial and cable
standards, they're specified in Hz. Due to that, if the same frontend
supports both types, you'll need to have two separate
:c:type:`dvb_frontend_ops` structures, one for each standard.
#) The ``.i2c_gate_ctrl`` field is present only when the hardware has
allows controlling an I2C gate (either directly of via some GPIO pin),
in order to remove the tuner from the I2C bus after a channel is
tuned.
#) All new drivers should implement the
:ref:`DVBv5 statistics <dvbv5_stats>` via ``.read_status``.
Yet, there are a number of callbacks meant to get statistics for
signal strength, S/N and UCB. Those are there to provide backward
compatibility with legacy applications that don't support the DVBv5
API. Implementing those callbacks are optional. Those callbacks may be
removed in the future, after we have all existing drivers supporting
DVBv5 stats.
#) Other callbacks are required for satellite TV standards, in order to
control LNBf and DiSEqC: ``.diseqc_send_master_cmd``,
``.diseqc_send_burst``, ``.set_tone``, ``.set_voltage``.
.. |delta| unicode:: U+00394
The ``drivers/media/dvb-core/dvb_frontend.c`` has a kernel thread with is
responsible for tuning the device. It supports multiple algoritms to
detect a channel, as defined at enum :c:func:`dvbfe_algo`.
The algorithm to be used is obtained via ``.get_frontend_algo``. If the driver
doesn't fill its field at struct :c:type:`dvb_frontend_ops`, it will default to
``DVBFE_ALGO_SW``, meaning that the dvb-core will do a zigzag when tuning,
e. g. it will try first to use the specified center frequency ``f``,
then, it will do ``f`` + |delta|, ``f`` - |delta|, ``f`` + 2 x |delta|,
``f`` - 2 x |delta| and so on.
If the hardware has internally a some sort of zigzag algorithm, you should
define a ``.get_frontend_algo`` function that would return ``DVBFE_ALGO_HW``.
.. note::
The core frontend support also supports
a third type (``DVBFE_ALGO_CUSTOM``), in order to allow the driver to
define its own hardware-assisted algorithm. Very few hardware need to
use it nowadays. Using ``DVBFE_ALGO_CUSTOM`` require to provide other
function callbacks at struct :c:type:`dvb_frontend_ops`.
Attaching frontend driver to the bridge driver
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Before using the Digital TV frontend core, the bridge driver should attach
the frontend demod, tuner and SEC devices and call
@ -74,6 +232,287 @@ part of their handler for :c:type:`device_driver`.\ ``resume()``.
A few other optional functions are provided to handle some special cases.
.. _dvbv5_stats:
Digital TV Frontend statistics
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Introduction
^^^^^^^^^^^^
Digital TV frontends provide a range of
:ref:`statistics <frontend-stat-properties>` meant to help tuning the device
and measuring the quality of service.
For each statistics measurement, the driver should set the type of scale used,
or ``FE_SCALE_NOT_AVAILABLE`` if the statistics is not available on a given
time. Drivers should also provide the number of statistics for each type.
that's usually 1 for most video standards [#f2]_.
Drivers should initialize each statistic counters with length and
scale at its init code. For example, if the frontend provides signal
strength, it should have, on its init code::
struct dtv_frontend_properties *c = &state->fe.dtv_property_cache;
c->strength.len = 1;
c->strength.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
And, when the statistics got updated, set the scale::
c->strength.stat[0].scale = FE_SCALE_DECIBEL;
c->strength.stat[0].uvalue = strength;
.. [#f2] For ISDB-T, it may provide both a global statistics and a per-layer
set of statistics. On such cases, len should be equal to 4. The first
value corresponds to the global stat; the other ones to each layer, e. g.:
- c->cnr.stat[0] for global S/N carrier ratio,
- c->cnr.stat[1] for Layer A S/N carrier ratio,
- c->cnr.stat[2] for layer B S/N carrier ratio,
- c->cnr.stat[3] for layer C S/N carrier ratio.
.. note:: Please prefer to use ``FE_SCALE_DECIBEL`` instead of
``FE_SCALE_RELATIVE`` for signal strength and CNR measurements.
Groups of statistics
^^^^^^^^^^^^^^^^^^^^
There are several groups of statistics currently supported:
Signal strength (:ref:`DTV-STAT-SIGNAL-STRENGTH`)
- Measures the signal strength level at the analog part of the tuner or
demod.
- Typically obtained from the gain applied to the tuner and/or frontend
in order to detect the carrier. When no carrier is detected, the gain is
at the maximum value (so, strength is on its minimal).
- As the gain is visible through the set of registers that adjust the gain,
typically, this statistics is always available [#f3]_.
- Drivers should try to make it available all the times, as this statistics
can be used when adjusting an antenna position and to check for troubles
at the cabling.
.. [#f3] On a few devices, the gain keeps floating if no carrier.
On such devices, strength report should check first if carrier is
detected at the tuner (``FE_HAS_CARRIER``, see :c:type:`fe_status`),
and otherwise return the lowest possible value.
Carrier Signal to Noise ratio (:ref:`DTV-STAT-CNR`)
- Signal to Noise ratio for the main carrier.
- Signal to Noise measurement depends on the device. On some hardware, is
available when the main carrier is detected. On those hardware, CNR
measurement usually comes from the tuner (e. g. after ``FE_HAS_CARRIER``,
see :c:type:`fe_status`).
On other devices, it requires inner FEC decoding,
as the frontend measures it indirectly from other parameters (e. g. after
``FE_HAS_VITERBI``, see :c:type:`fe_status`).
Having it available after inner FEC is more common.
Bit counts post-FEC (:ref:`DTV-STAT-POST-ERROR-BIT-COUNT` and :ref:`DTV-STAT-POST-TOTAL-BIT-COUNT`)
- Those counters measure the number of bits and bit errors errors after
the forward error correction (FEC) on the inner coding block
(after Viterbi, LDPC or other inner code).
- Due to its nature, those statistics depend on full coding lock
(e. g. after ``FE_HAS_SYNC`` or after ``FE_HAS_LOCK``,
see :c:type:`fe_status`).
Bit counts pre-FEC (:ref:`DTV-STAT-PRE-ERROR-BIT-COUNT` and :ref:`DTV-STAT-PRE-TOTAL-BIT-COUNT`)
- Those counters measure the number of bits and bit errors errors before
the forward error correction (FEC) on the inner coding block
(before Viterbi, LDPC or other inner code).
- Not all frontends provide this kind of statistics.
- Due to its nature, those statistics depend on inner coding lock (e. g.
after ``FE_HAS_VITERBI``, see :c:type:`fe_status`).
Block counts (:ref:`DTV-STAT-ERROR-BLOCK-COUNT` and :ref:`DTV-STAT-TOTAL-BLOCK-COUNT`)
- Those counters measure the number of blocks and block errors errors after
the forward error correction (FEC) on the inner coding block
(before Viterbi, LDPC or other inner code).
- Due to its nature, those statistics depend on full coding lock
(e. g. after ``FE_HAS_SYNC`` or after
``FE_HAS_LOCK``, see :c:type:`fe_status`).
.. note:: All counters should be monotonically increased as they're
collected from the hardware.
A typical example of the logic that handle status and statistics is::
static int foo_get_status_and_stats(struct dvb_frontend *fe)
{
struct foo_state *state = fe->demodulator_priv;
struct dtv_frontend_properties *c = &fe->dtv_property_cache;
int rc;
enum fe_status *status;
/* Both status and strength are always available */
rc = foo_read_status(fe, &status);
if (rc < 0)
return rc;
rc = foo_read_strength(fe);
if (rc < 0)
return rc;
/* Check if CNR is available */
if (!(fe->status & FE_HAS_CARRIER))
return 0;
rc = foo_read_cnr(fe);
if (rc < 0)
return rc;
/* Check if pre-BER stats are available */
if (!(fe->status & FE_HAS_VITERBI))
return 0;
rc = foo_get_pre_ber(fe);
if (rc < 0)
return rc;
/* Check if post-BER stats are available */
if (!(fe->status & FE_HAS_SYNC))
return 0;
rc = foo_get_post_ber(fe);
if (rc < 0)
return rc;
}
static const struct dvb_frontend_ops ops = {
/* ... */
.read_status = foo_get_status_and_stats,
};
Statistics collect
^^^^^^^^^^^^^^^^^^
On almost all frontend hardware, the bit and byte counts are stored by
the hardware after a certain amount of time or after the total bit/block
counter reaches a certain value (usually programable), for example, on
every 1000 ms or after receiving 1,000,000 bits.
So, if you read the registers too soon, you'll end by reading the same
value as in the previous reading, causing the monotonic value to be
incremented too often.
Drivers should take the responsibility to avoid too often reads. That
can be done using two approaches:
if the driver have a bit that indicates when a collected data is ready
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Driver should check such bit before making the statistics available.
An example of such behavior can be found at this code snippet (adapted
from mb86a20s driver's logic)::
static int foo_get_pre_ber(struct dvb_frontend *fe)
{
struct foo_state *state = fe->demodulator_priv;
struct dtv_frontend_properties *c = &fe->dtv_property_cache;
int rc, bit_error;
/* Check if the BER measures are already available */
rc = foo_read_u8(state, 0x54);
if (rc < 0)
return rc;
if (!rc)
return 0;
/* Read Bit Error Count */
bit_error = foo_read_u32(state, 0x55);
if (bit_error < 0)
return bit_error;
/* Read Total Bit Count */
rc = foo_read_u32(state, 0x51);
if (rc < 0)
return rc;
c->pre_bit_error.stat[0].scale = FE_SCALE_COUNTER;
c->pre_bit_error.stat[0].uvalue += bit_error;
c->pre_bit_count.stat[0].scale = FE_SCALE_COUNTER;
c->pre_bit_count.stat[0].uvalue += rc;
return 0;
}
If the driver doesn't provide a statistics available check bit
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A few devices, however, may not provide a way to check if the stats are
available (or the way to check it is unknown). They may not even provide
a way to directly read the total number of bits or blocks.
On those devices, the driver need to ensure that it won't be reading from
the register too often and/or estimate the total number of bits/blocks.
On such drivers, a typical routine to get statistics would be like
(adapted from dib8000 driver's logic)::
struct foo_state {
/* ... */
unsigned long per_jiffies_stats;
}
static int foo_get_pre_ber(struct dvb_frontend *fe)
{
struct foo_state *state = fe->demodulator_priv;
struct dtv_frontend_properties *c = &fe->dtv_property_cache;
int rc, bit_error;
u64 bits;
/* Check if time for stats was elapsed */
if (!time_after(jiffies, state->per_jiffies_stats))
return 0;
/* Next stat should be collected in 1000 ms */
state->per_jiffies_stats = jiffies + msecs_to_jiffies(1000);
/* Read Bit Error Count */
bit_error = foo_read_u32(state, 0x55);
if (bit_error < 0)
return bit_error;
/*
* On this particular frontend, there's no register that
* would provide the number of bits per 1000ms sample. So,
* some function would calculate it based on DTV properties
*/
bits = get_number_of_bits_per_1000ms(fe);
c->pre_bit_error.stat[0].scale = FE_SCALE_COUNTER;
c->pre_bit_error.stat[0].uvalue += bit_error;
c->pre_bit_count.stat[0].scale = FE_SCALE_COUNTER;
c->pre_bit_count.stat[0].uvalue += bits;
return 0;
}
Please notice that, on both cases, we're getting the statistics using the
:c:type:`dvb_frontend_ops` ``.read_status`` callback. The rationale is that
the frontend core will automatically call this function periodically
(usually, 3 times per second, when the frontend is locked).
That warrants that we won't miss to collect a counter and increment the
monotonic stats at the right time.
Digital TV Frontend functions and types
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. kernel-doc:: drivers/media/dvb-core/dvb_frontend.h

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View file

@ -1,651 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.2"
width="237.70221mm"
height="126.28221mm"
viewBox="0 0 23770.221 12628.221"
preserveAspectRatio="xMidYMid"
xml:space="preserve"
id="svg2"
inkscape:version="0.91 r13725"
sodipodi:docname="dvbstb.svg"
style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata
id="metadata519"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="997"
id="namedview517"
showgrid="false"
inkscape:zoom="1.0818519"
inkscape:cx="411.31718"
inkscape:cy="274.87517"
inkscape:window-x="1920"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><defs
class="ClipPathGroup"
id="defs4" /><defs
id="defs9" /><defs
id="defs90" /><defs
id="defs113" /><defs
class="TextShapeIndex"
id="defs124" /><defs
class="EmbeddedBulletChars"
id="defs128" /><defs
class="TextEmbeddedBitmaps"
id="defs157" /><rect
class="BoundingBox"
x="5355.1108"
y="13.111"
width="18403"
height="9603"
id="rect197"
style="fill:none;stroke:none" /><path
d="m 14556.111,9614.111 -9200,0 0,-9600 18400,0 0,9600 -9200,0 z"
id="path199"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none" /><path
d="m 14556.111,9614.111 -9200,0 0,-9600 18400,0 0,9600 -9200,0 z"
id="path201"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><rect
class="BoundingBox"
x="13.111"
y="4013.1111"
width="4544"
height="2403"
id="rect206"
style="fill:none;stroke:none" /><path
d="m 2285.111,6414.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path208"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none" /><path
d="m 2285.111,6414.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path210"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><text
class="TextShape"
id="text212"
y="-4585.8892"
x="-2443.8889"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan214"
style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
class="TextPosition"
x="1281.111"
y="5435.1108"
id="tspan216"><tspan
id="tspan218"
style="fill:#000000;stroke:none">Antena</tspan></tspan></tspan></text>
<rect
class="BoundingBox"
x="6213.1108"
y="1813.111"
width="4544"
height="2403"
id="rect223"
style="fill:none;stroke:none" /><path
d="m 8485.111,4214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path225"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none" /><path
d="m 8485.111,4214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path227"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><text
class="TextShape"
id="text229"
x="-2443.8889"
y="-4585.8892"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan231"
style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
class="TextPosition"
x="7217.1108"
y="3235.1111"
id="tspan233"><tspan
id="tspan235"
style="fill:#000000;stroke:none">Frontend</tspan></tspan></tspan></text>
<rect
class="BoundingBox"
x="12113.111"
y="1813.111"
width="4544"
height="2403"
id="rect240"
style="fill:none;stroke:none" /><path
d="m 14385.111,4214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path242"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none" /><path
d="m 14385.111,4214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path244"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><text
class="TextShape"
id="text246"
x="-2443.8889"
y="-4585.8892"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan248"
style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
class="TextPosition"
x="13944.111"
y="3235.1111"
id="tspan250"><tspan
id="tspan252"
style="fill:#000000;stroke:none">CA</tspan></tspan></tspan></text>
<rect
class="BoundingBox"
x="18113.111"
y="1813.111"
width="4544"
height="2403"
id="rect257"
style="fill:none;stroke:none" /><path
d="m 20385.111,4214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path259"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none" /><path
d="m 20385.111,4214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path261"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><text
class="TextShape"
id="text263"
x="-2443.8889"
y="-4585.8892"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan265"
style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
class="TextPosition"
x="19384.111"
y="3235.1111"
id="tspan267"><tspan
id="tspan269"
style="fill:#000000;stroke:none">Demux</tspan></tspan></tspan></text>
<rect
class="BoundingBox"
x="6113.1108"
y="5813.1108"
width="4544"
height="2403"
id="rect274"
style="fill:none;stroke:none" /><path
d="m 8385.111,8214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path276"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none" /><path
d="m 8385.111,8214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path278"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><text
class="TextShape"
id="text280"
x="-2443.8889"
y="-4585.8892"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan282"
style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
class="TextPosition"
x="7733.1108"
y="7235.1108"
id="tspan284"><tspan
id="tspan286"
style="fill:#000000;stroke:none">SEC</tspan></tspan></tspan></text>
<rect
class="BoundingBox"
x="12213.111"
y="5813.1108"
width="4544"
height="2403"
id="rect291"
style="fill:none;stroke:none" /><path
d="m 14485.111,8214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path293"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none" /><path
d="m 14485.111,8214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path295"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><text
class="TextShape"
id="text297"
x="-2443.8889"
y="-4585.8892"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan299"
style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
class="TextPosition"
x="13676.111"
y="7235.1108"
id="tspan301"><tspan
id="tspan303"
style="fill:#000000;stroke:none">Audio</tspan></tspan></tspan></text>
<rect
class="BoundingBox"
x="18113.111"
y="5813.1108"
width="4544"
height="2403"
id="rect308"
style="fill:none;stroke:none" /><path
d="m 20385.111,8214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path310"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none" /><path
d="m 20385.111,8214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path312"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><text
class="TextShape"
id="text314"
x="-2443.8889"
y="-4585.8892"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan316"
style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
class="TextPosition"
x="19583.111"
y="7235.1108"
id="tspan318"><tspan
id="tspan320"
style="fill:#000000;stroke:none">Video</tspan></tspan></tspan></text>
<rect
class="BoundingBox"
x="15213.111"
y="10213.111"
width="4544"
height="2403"
id="rect325"
style="fill:none;stroke:none" /><path
d="m 17485.111,12614.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path327"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none" /><path
d="m 17485.111,12614.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
id="path329"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><text
class="TextShape"
id="text331"
x="-2443.8889"
y="-4585.8892"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan333"
style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
class="TextPosition"
x="17076.111"
y="11635.111"
id="tspan335"><tspan
id="tspan337"
style="fill:#000000;stroke:none">TV</tspan></tspan></tspan></text>
<rect
class="BoundingBox"
x="4555.1108"
y="3014.1111"
width="1661"
height="2202"
id="rect342"
style="fill:none;stroke:none" /><path
d="m 4556.111,5214.111 1400,-1857"
id="path344"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 6215.111,3014.111 -391,269 240,181 151,-450 z"
id="path346"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:none" /><rect
class="BoundingBox"
x="4555.1108"
y="5213.1108"
width="1561"
height="1802"
id="rect351"
style="fill:none;stroke:none" /><path
d="m 4556.111,5214.111 1277,1475"
id="path353"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 6115.111,7014.111 -181,-438 -227,196 408,242 z"
id="path355"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:none" /><rect
class="BoundingBox"
x="10755.111"
y="2864.1111"
width="1361"
height="301"
id="rect360"
style="fill:none;stroke:none" /><path
d="m 10756.111,3014.111 929,0"
id="path362"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 12115.111,3014.111 -450,-150 0,300 450,-150 z"
id="path364"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:none" /><rect
class="BoundingBox"
x="16655.111"
y="2864.1111"
width="1461"
height="301"
id="rect369"
style="fill:none;stroke:none" /><path
d="m 16656.111,3014.111 1029,0"
id="path371"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 18115.111,3014.111 -450,-150 0,300 450,-150 z"
id="path373"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:none" /><rect
class="BoundingBox"
x="20235.111"
y="4213.1108"
width="301"
height="1602"
id="rect378"
style="fill:none;stroke:none" /><path
d="m 20385.111,4214.111 0,1170"
id="path380"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 20385.111,5814.111 150,-450 -300,0 150,450 z"
id="path382"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:none" /><rect
class="BoundingBox"
x="17485.111"
y="8213.1113"
width="2902"
height="2002"
id="rect387"
style="fill:none;stroke:none" /><path
d="m 20385.111,8214.111 -2546,1756"
id="path389"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 17485.111,10214.111 456,-132 -171,-247 -285,379 z"
id="path391"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:none" /><rect
class="BoundingBox"
x="14484.111"
y="8213.1113"
width="3002"
height="2002"
id="rect396"
style="fill:none;stroke:none" /><path
d="m 14485.111,8214.111 2642,1761"
id="path398"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 17485.111,10214.111 -291,-374 -167,249 458,125 z"
id="path400"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:none" /><rect
class="BoundingBox"
x="14485.111"
y="4213.1108"
width="5902"
height="1629"
id="rect405"
style="fill:none;stroke:none" /><path
d="m 20385.111,4214.111 -51,14"
id="path407"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 20283.111,4242.111 -52,14"
id="path409"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 20180.111,4270.111 -51,13"
id="path411"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 20078.111,4297.111 -52,14"
id="path413"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 19975.111,4325.111 -51,14"
id="path415"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 19873.111,4353.111 -52,14"
id="path417"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 19770.111,4381.111 -51,14"
id="path419"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 19668.111,4409.111 -52,13"
id="path421"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 19565.111,4436.111 -51,14"
id="path423"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 19463.111,4464.111 -52,14"
id="path425"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 19360.111,4492.111 -51,14"
id="path427"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 19258.111,4520.111 -52,14"
id="path429"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 19155.111,4547.111 -51,14"
id="path431"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 19053.111,4575.111 -52,14"
id="path433"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 18950.111,4603.111 -51,14"
id="path435"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 18848.111,4631.111 -51,14"
id="path437"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 18745.111,4659.111 -51,14"
id="path439"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 18643.111,4686.111 -51,14"
id="path441"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 18540.111,4714.111 -51,14"
id="path443"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 18438.111,4742.111 -51,14"
id="path445"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 18335.111,4770.111 -51,14"
id="path447"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 18233.111,4798.111 -51,14"
id="path449"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 18130.111,4825.111 -51,14"
id="path451"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 18028.111,4853.111 -51,14"
id="path453"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 17925.111,4881.111 -51,14"
id="path455"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 17823.111,4909.111 -51,14"
id="path457"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 17720.111,4937.111 -51,13"
id="path459"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 17618.111,4964.111 -51,14"
id="path461"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 17516.111,4992.111 -52,14"
id="path463"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 17413.111,5020.111 -51,14"
id="path465"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 17311.111,5048.111 -52,14"
id="path467"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 17208.111,5076.111 -51,13"
id="path469"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 17106.111,5103.111 -52,14"
id="path471"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 17003.111,5131.111 -51,14"
id="path473"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 16901.111,5159.111 -52,14"
id="path475"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 16798.111,5187.111 -51,14"
id="path477"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 16696.111,5214.111 -52,14"
id="path479"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 16593.111,5242.111 -51,14"
id="path481"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 16491.111,5270.111 -52,14"
id="path483"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 16388.111,5298.111 -51,14"
id="path485"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 16286.111,5326.111 -52,14"
id="path487"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 16183.111,5353.111 -51,14"
id="path489"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 16081.111,5381.111 -51,14"
id="path491"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 15978.111,5409.111 -51,14"
id="path493"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 15876.111,5437.111 -51,14"
id="path495"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 15773.111,5465.111 -51,14"
id="path497"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 15671.111,5492.111 -51,14"
id="path499"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 15568.111,5520.111 -51,14"
id="path501"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 15466.111,5548.111 -51,14"
id="path503"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 15363.111,5576.111 -51,14"
id="path505"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 15261.111,5604.111 -51,13"
id="path507"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 15158.111,5631.111 -51,14"
id="path509"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 15056.111,5659.111 -51,14"
id="path511"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 14953.111,5687.111 -51,14"
id="path513"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000" /><path
d="m 14485.111,5814.111 474,27 -79,-290 -395,263 z"
id="path515"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:none" /></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg id="svg2" width="237.7mm" height="126.28mm" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" preserveAspectRatio="xMidYMid" version="1.2" viewBox="0 0 23770.221 12628.221" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata id="metadata519"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><rect id="rect197" class="BoundingBox" x="5355.1" y="13.111" width="18403" height="9603" fill="none"/><path id="path199" d="m14556 9614.1h-9200v-9600h18400v9600h-9200z" fill="#fff"/><path id="path201" d="m14556 9614.1h-9200v-9600h18400v9600h-9200z" fill="none" stroke="#000"/><rect id="rect206"
class="BoundingBox" x="13.111" y="4013.1" width="4544" height="2403" fill="none"/><path id="path208" d="m2285.1 6414.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path210" d="m2285.1 6414.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text212" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan214" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan216" class="TextPosition" x="1281.111" y="5435.1108"><tspan id="tspan218" fill="#000000">Antena</tspan></tspan></tspan></text>
<rect id="rect223" class="BoundingBox" x="6213.1" y="1813.1" width="4544" height="2403" fill="none"/><path id="path225" d="m8485.1 4214.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path227" d="m8485.1 4214.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text229" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan231" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan233" class="TextPosition" x="7217.1108" y="3235.1111"><tspan id="tspan235" fill="#000000">Frontend</tspan></tspan></tspan></text>
<rect id="rect240" class="BoundingBox" x="12113" y="1813.1" width="4544" height="2403" fill="none"/><path id="path242" d="m14385 4214.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path244" d="m14385 4214.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text246" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan248" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan250" class="TextPosition" x="13944.111" y="3235.1111"><tspan id="tspan252" fill="#000000">CA</tspan></tspan></tspan></text>
<rect id="rect257" class="BoundingBox" x="18113" y="1813.1" width="4544" height="2403" fill="none"/><path id="path259" d="m20385 4214.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path261" d="m20385 4214.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text263" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan265" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan267" class="TextPosition" x="19384.111" y="3235.1111"><tspan id="tspan269" fill="#000000">Demux</tspan></tspan></tspan></text>
<rect id="rect274" class="BoundingBox" x="6113.1" y="5813.1" width="4544" height="2403" fill="none"/><path id="path276" d="m8385.1 8214.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path278" d="m8385.1 8214.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text280" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan282" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan284" class="TextPosition" x="7733.1108" y="7235.1108"><tspan id="tspan286" fill="#000000">SEC</tspan></tspan></tspan></text>
<rect id="rect291" class="BoundingBox" x="12213" y="5813.1" width="4544" height="2403" fill="none"/><path id="path293" d="m14485 8214.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path295" d="m14485 8214.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text297" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan299" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan301" class="TextPosition" x="13676.111" y="7235.1108"><tspan id="tspan303" fill="#000000">Audio</tspan></tspan></tspan></text>
<rect id="rect308" class="BoundingBox" x="18113" y="5813.1" width="4544" height="2403" fill="none"/><path id="path310" d="m20385 8214.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path312" d="m20385 8214.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text314" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan316" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan318" class="TextPosition" x="19583.111" y="7235.1108"><tspan id="tspan320" fill="#000000">Video</tspan></tspan></tspan></text>
<rect id="rect325" class="BoundingBox" x="15213" y="10213" width="4544" height="2403" fill="none"/><path id="path327" d="m17485 12614h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path329" d="m17485 12614h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text331" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan333" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan335" class="TextPosition" x="17076.111" y="11635.111"><tspan id="tspan337" fill="#000000">TV</tspan></tspan></tspan></text>
<rect id="rect342" class="BoundingBox" x="4555.1" y="3014.1" width="1661" height="2202" fill="none"/><path id="path344" d="m4556.1 5214.1 1400-1857" fill="none" stroke="#000"/><path id="path346" d="m6215.1 3014.1-391 269 240 181 151-450z"/><rect id="rect351" class="BoundingBox" x="4555.1" y="5213.1" width="1561" height="1802" fill="none"/><path id="path353" d="m4556.1 5214.1 1277 1475" fill="none" stroke="#000"/><path id="path355" d="m6115.1 7014.1-181-438-227 196 408 242z"/><rect id="rect360" class="BoundingBox" x="10755" y="2864.1" width="1361" height="301" fill="none"/><path id="path362" d="m10756 3014.1h929" fill="none" stroke="#000"/><path id="path364" d="m12115 3014.1-450-150v300l450-150z"/><rect id="rect369" class="BoundingBox" x="16655" y="2864.1" width="1461" height="301" fill="none"/><path id="path371" d="m16656 3014.1h1029" fill="none" stroke="#000"/><path id="path373"
d="m18115 3014.1-450-150v300l450-150z"/><rect id="rect378" class="BoundingBox" x="20235" y="4213.1" width="301" height="1602" fill="none"/><path id="path380" d="m20385 4214.1v1170" fill="none" stroke="#000"/><path id="path382" d="m20385 5814.1 150-450h-300l150 450z"/><rect id="rect387" class="BoundingBox" x="17485" y="8213.1" width="2902" height="2002" fill="none"/><path id="path389" d="m20385 8214.1-2546 1756" fill="none" stroke="#000"/><path id="path391" d="m17485 10214 456-132-171-247-285 379z"/><rect id="rect396" class="BoundingBox" x="14484" y="8213.1" width="3002" height="2002" fill="none"/><path id="path398" d="m14485 8214.1 2642 1761" fill="none" stroke="#000"/><path id="path400" d="m17485 10214-291-374-167 249 458 125z"/><rect id="rect405" class="BoundingBox" x="14485" y="4213.1" width="5902" height="1629" fill="none"/><path id="path407" d="m20385 4214.1-51 14" fill="none"
stroke="#000"/><path id="path409" d="m20283 4242.1-52 14" fill="none" stroke="#000"/><path id="path411" d="m20180 4270.1-51 13" fill="none" stroke="#000"/><path id="path413" d="m20078 4297.1-52 14" fill="none" stroke="#000"/><path id="path415" d="m19975 4325.1-51 14" fill="none" stroke="#000"/><path id="path417" d="m19873 4353.1-52 14" fill="none" stroke="#000"/><path id="path419" d="m19770 4381.1-51 14" fill="none" stroke="#000"/><path id="path421" d="m19668 4409.1-52 13" fill="none" stroke="#000"/><path id="path423" d="m19565 4436.1-51 14" fill="none" stroke="#000"/><path id="path425" d="m19463 4464.1-52 14" fill="none" stroke="#000"/><path id="path427" d="m19360 4492.1-51 14" fill="none" stroke="#000"/><path id="path429" d="m19258 4520.1-52 14" fill="none" stroke="#000"/><path id="path431" d="m19155 4547.1-51 14" fill="none" stroke="#000"/><path id="path433" d="m19053 4575.1-52 14"
fill="none" stroke="#000"/><path id="path435" d="m18950 4603.1-51 14" fill="none" stroke="#000"/><path id="path437" d="m18848 4631.1-51 14" fill="none" stroke="#000"/><path id="path439" d="m18745 4659.1-51 14" fill="none" stroke="#000"/><path id="path441" d="m18643 4686.1-51 14" fill="none" stroke="#000"/><path id="path443" d="m18540 4714.1-51 14" fill="none" stroke="#000"/><path id="path445" d="m18438 4742.1-51 14" fill="none" stroke="#000"/><path id="path447" d="m18335 4770.1-51 14" fill="none" stroke="#000"/><path id="path449" d="m18233 4798.1-51 14" fill="none" stroke="#000"/><path id="path451" d="m18130 4825.1-51 14" fill="none" stroke="#000"/><path id="path453" d="m18028 4853.1-51 14" fill="none" stroke="#000"/><path id="path455" d="m17925 4881.1-51 14" fill="none" stroke="#000"/><path id="path457" d="m17823 4909.1-51 14" fill="none" stroke="#000"/><path id="path459" d="m17720
4937.1-51 13" fill="none" stroke="#000"/><path id="path461" d="m17618 4964.1-51 14" fill="none" stroke="#000"/><path id="path463" d="m17516 4992.1-52 14" fill="none" stroke="#000"/><path id="path465" d="m17413 5020.1-51 14" fill="none" stroke="#000"/><path id="path467" d="m17311 5048.1-52 14" fill="none" stroke="#000"/><path id="path469" d="m17208 5076.1-51 13" fill="none" stroke="#000"/><path id="path471" d="m17106 5103.1-52 14" fill="none" stroke="#000"/><path id="path473" d="m17003 5131.1-51 14" fill="none" stroke="#000"/><path id="path475" d="m16901 5159.1-52 14" fill="none" stroke="#000"/><path id="path477" d="m16798 5187.1-51 14" fill="none" stroke="#000"/><path id="path479" d="m16696 5214.1-52 14" fill="none" stroke="#000"/><path id="path481" d="m16593 5242.1-51 14" fill="none" stroke="#000"/><path id="path483" d="m16491 5270.1-52 14" fill="none" stroke="#000"/><path id="path485"
d="m16388 5298.1-51 14" fill="none" stroke="#000"/><path id="path487" d="m16286 5326.1-52 14" fill="none" stroke="#000"/><path id="path489" d="m16183 5353.1-51 14" fill="none" stroke="#000"/><path id="path491" d="m16081 5381.1-51 14" fill="none" stroke="#000"/><path id="path493" d="m15978 5409.1-51 14" fill="none" stroke="#000"/><path id="path495" d="m15876 5437.1-51 14" fill="none" stroke="#000"/><path id="path497" d="m15773 5465.1-51 14" fill="none" stroke="#000"/><path id="path499" d="m15671 5492.1-51 14" fill="none" stroke="#000"/><path id="path501" d="m15568 5520.1-51 14" fill="none" stroke="#000"/><path id="path503" d="m15466 5548.1-51 14" fill="none" stroke="#000"/><path id="path505" d="m15363 5576.1-51 14" fill="none" stroke="#000"/><path id="path507" d="m15261 5604.1-51 13" fill="none" stroke="#000"/><path id="path509" d="m15158 5631.1-51 14" fill="none" stroke="#000"/><path
id="path511" d="m15056 5659.1-51 14" fill="none" stroke="#000"/><path id="path513" d="m14953 5687.1-51 14" fill="none" stroke="#000"/><path id="path515" d="m14485 5814.1 474 27-79-290-395 263z"/></svg>

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -1,346 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.2"
width="249.00998mm"
height="143.00999mm"
viewBox="0 0 24900.998 14300.999"
preserveAspectRatio="xMidYMid"
xml:space="preserve"
id="svg2"
inkscape:version="0.91 r13725"
sodipodi:docname="constraints.svg"
style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata
id="metadata325"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="997"
id="namedview323"
showgrid="false"
inkscape:zoom="1.0818519"
inkscape:cx="270.29272"
inkscape:cy="249.83854"
inkscape:window-x="1920"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><defs
class="ClipPathGroup"
id="defs4"><marker
inkscape:isstock="true"
style="overflow:visible"
id="marker6261"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"><path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
id="path6263"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="marker6125"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always"><path
id="path6127"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" /></marker><marker
inkscape:isstock="true"
style="overflow:visible"
id="marker6001"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:collect="always"><path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
id="path6003"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="marker5693"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always"><path
id="path5695"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" /></marker><marker
inkscape:isstock="true"
style="overflow:visible"
id="marker5575"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:collect="always"><path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
id="path5577"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="marker5469"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always"><path
id="path5471"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="marker5259"
style="overflow:visible"
inkscape:isstock="true"><path
id="path5261"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mend"
style="overflow:visible"
inkscape:isstock="true"><path
id="path4241"
style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(-0.6,-0.6)"
inkscape:connector-curvature="0" /></marker></defs><defs
id="defs9" /><defs
id="defs100" /><defs
id="defs123" /><defs
class="TextShapeIndex"
id="defs134" /><defs
class="EmbeddedBulletChars"
id="defs138" /><defs
class="TextEmbeddedBitmaps"
id="defs167" /><g
class="com.sun.star.drawing.CustomShape"
id="g204"
transform="translate(-1350,-3250)"><g
id="id6"><rect
class="BoundingBox"
x="1350"
y="3250"
width="24901"
height="14301"
id="rect207"
style="fill:none;stroke:none" /><path
d="m 13800,17500 -12400,0 0,-14200 24800,0 0,14200 -12400,0 z"
id="path209"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none" /><path
d="m 13800,17500 -12400,0 0,-14200 24800,0 0,14200 -12400,0 z"
id="path211"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff0000;stroke-width:100;stroke-linejoin:round" /><text
class="TextShape"
id="text213"><tspan
class="TextParagraph"
font-size="846px"
font-weight="400"
id="tspan215"
style="font-weight:400;font-size:846px;font-family:'Liberation Sans', sans-serif"><tspan
class="TextPosition"
x="1652"
y="17093"
id="tspan217"><tspan
id="tspan219"
style="fill:#ff0000;stroke:none" /><tspan
id="tspan221"
style="fill:#ff0000;stroke:none">V4L2_SEL_FLAG_GE</tspan></tspan></tspan></text>
</g></g><rect
class="BoundingBox"
x="3000"
y="2200"
width="18101"
height="10101"
id="rect226"
style="fill:none;stroke:none" /><path
d="m 12050,12250 -9000,0 0,-10000 18000,0 0,10000 -9000,0 z"
id="path228"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none" /><path
d="m 12050,12250 -9000,0 0,-10000 18000,0 0,10000 -9000,0 z"
id="path230"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:100;stroke-linejoin:round" /><text
class="TextShape"
id="text232"
x="-1350"
y="-3250"><tspan
class="TextParagraph"
font-size="987px"
font-weight="400"
id="tspan234"
style="font-weight:400;font-size:987px;font-family:'Liberation Sans', sans-serif"><tspan
class="TextPosition"
x="3227"
y="11503"
id="tspan236"><tspan
id="tspan238"
style="fill:#000000;stroke:none" /><tspan
id="tspan240"
style="fill:#000000;stroke:none">ORIGINAL</tspan></tspan></tspan></text>
<g
class="com.sun.star.drawing.CustomShape"
id="g242"
transform="translate(-1350,-3250)"><g
id="id8"><rect
class="BoundingBox"
x="7050"
y="7950"
width="7901"
height="5501"
id="rect245"
style="fill:none;stroke:none" /><path
d="m 11000,13400 -3900,0 0,-5400 7800,0 0,5400 -3900,0 z"
id="path247"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none" /><path
d="m 11000,13400 -3900,0 0,-5400 7800,0 0,5400 -3900,0 z"
id="path249"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4;stroke-width:100;stroke-linejoin:round" /><text
class="TextShape"
id="text251"><tspan
class="TextParagraph"
font-size="776px"
font-weight="400"
id="tspan253"
style="font-weight:400;font-size:776px;font-family:'Liberation Sans', sans-serif"><tspan
class="TextPosition"
x="7228"
y="10969"
id="tspan255"><tspan
id="tspan257"
style="fill:#000080;stroke:none">V4L2_SEL_FLAG_LE</tspan></tspan></tspan></text>
</g></g><rect
class="BoundingBox"
x="13700"
y="7100"
width="7101"
height="101"
id="rect262"
style="fill:none;stroke:none" /><path
d="m 20750,7150 -7000,0"
id="path264"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000080;stroke-width:99.99134064;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /><rect
class="BoundingBox"
x="3400"
y="7100"
width="2101"
height="101"
id="rect269"
style="fill:none;stroke:none" /><path
d="m 3450,7150 2000,0"
id="path271"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000080;stroke-width:100;stroke-linejoin:round;marker-end:url(#marker5575)" /><rect
class="BoundingBox"
x="9800"
y="2900"
width="101"
height="1501"
id="rect276"
style="fill:none;stroke:none" /><path
d="m 9850,2950 0,1400"
id="path278"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000080;stroke-width:100;stroke-linejoin:round;marker-end:url(#marker5259)" /><rect
class="BoundingBox"
x="9600"
y="10600"
width="101"
height="1301"
id="rect283"
style="fill:none;stroke:none" /><path
d="m 9650,11850 0,-1200"
id="path285"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000080;stroke-width:100;stroke-linejoin:round;marker-end:url(#marker5469)" /><rect
class="BoundingBox"
x="450"
y="6850"
width="2051"
height="601"
id="rect290"
style="fill:none;stroke:none" /><path
d="m 2450,7150 -2000.8696,0"
id="path292"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff0000;stroke-width:132.48202515;stroke-linejoin:round;marker-end:url(#marker6125)" /><rect
class="BoundingBox"
x="21600"
y="6750"
width="2651"
height="601"
id="rect299"
style="fill:none;stroke:none" /><path
d="m 21650,7050 2522.609,0"
id="path301"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff0000;stroke-width:120.40660858;stroke-linejoin:round;marker-end:url(#marker6001)" /><rect
class="BoundingBox"
x="9550"
y="550"
width="601"
height="1451"
id="rect308"
style="fill:none;stroke:none" /><path
d="m 9836.957,1950 0,-1453.0435"
id="path310"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff0000;stroke-width:164.03721619;stroke-linejoin:round;marker-end:url(#marker6261)" /><rect
class="BoundingBox"
x="9350"
y="12500"
width="601"
height="1451"
id="rect317"
style="fill:none;stroke:none" /><path
d="m 9650,12550 0,1505.217"
id="path319"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff0000;stroke-width:166.95626831;stroke-linejoin:round;marker-end:url(#marker5693)" /></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg id="svg2" width="249.01mm" height="143.01mm" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" preserveAspectRatio="xMidYMid" version="1.2" viewBox="0 0 24900.998 14300.999" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata id="metadata325"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><defs id="defs4" class="ClipPathGroup"><marker id="marker6261" overflow="visible" orient="auto"><path id="path6263" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#f00" fill-rule="evenodd" stroke="#f00" stroke-width="1pt"/></marker><marker id="marker6125" overflow="visible"
orient="auto"><path id="path6127" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#f00" fill-rule="evenodd" stroke="#f00" stroke-width="1pt"/></marker><marker id="marker6001" overflow="visible" orient="auto"><path id="path6003" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#f00" fill-rule="evenodd" stroke="#f00" stroke-width="1pt"/></marker><marker id="marker5693" overflow="visible" orient="auto"><path id="path5695" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#f00" fill-rule="evenodd" stroke="#f00" stroke-width="1pt"/></marker><marker id="marker5575" overflow="visible" orient="auto"><path id="path5577" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#000080" fill-rule="evenodd" stroke="#000080" stroke-width="1pt"/></marker><marker id="marker5469" overflow="visible"
orient="auto"><path id="path5471" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#000080" fill-rule="evenodd" stroke="#000080" stroke-width="1pt"/></marker><marker id="marker5259" overflow="visible" orient="auto"><path id="path5261" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#000080" fill-rule="evenodd" stroke="#000080" stroke-width="1pt"/></marker><marker id="Arrow2Mend" overflow="visible" orient="auto"><path id="path4241" transform="scale(-.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="#000080" fill-rule="evenodd" stroke="#000080" stroke-linejoin="round" stroke-width=".625"/></marker></defs><g id="g204" class="com.sun.star.drawing.CustomShape" transform="translate(-1350,-3250)"><g id="id6"><rect id="rect207" class="BoundingBox" x="1350" y="3250" width="24901" height="14301"
fill="none"/><path id="path209" d="m13800 17500h-12400v-14200h24800v14200h-12400z" fill="#fff"/><path id="path211" d="m13800 17500h-12400v-14200h24800v14200h-12400z" fill="none" stroke="#f00" stroke-linejoin="round" stroke-width="100"/><text id="text213" class="TextShape"><tspan id="tspan215" class="TextParagraph" font-family="sans-serif" font-size="846px" font-weight="400"><tspan id="tspan217" class="TextPosition" x="1652" y="17093" fill="#ff0000"><tspan id="tspan219"/><tspan id="tspan221">V4L2_SEL_FLAG_GE</tspan></tspan></tspan></text>
</g></g><rect id="rect226" class="BoundingBox" x="3e3" y="2200" width="18101" height="10101" fill="none"/><path id="path228" d="m12050 12250h-9e3v-1e4h18000v1e4h-9e3z" fill="#fff"/><path id="path230" d="m12050 12250h-9e3v-1e4h18000v1e4h-9e3z" fill="none" stroke="#000" stroke-linejoin="round" stroke-width="100"/><text id="text232" class="TextShape" x="-1350" y="-3250"><tspan id="tspan234" class="TextParagraph" font-family="sans-serif" font-size="987px" font-weight="400"><tspan id="tspan236" class="TextPosition" x="3227" y="11503" fill="#000000"><tspan id="tspan238"/><tspan id="tspan240">ORIGINAL</tspan></tspan></tspan></text>
<g id="g242" class="com.sun.star.drawing.CustomShape" transform="translate(-1350,-3250)"><g id="id8"><rect id="rect245" class="BoundingBox" x="7050" y="7950" width="7901" height="5501" fill="none"/><path id="path247" d="m11000 13400h-3900v-5400h7800v5400h-3900z" fill="#fff"/><path id="path249" d="m11000 13400h-3900v-5400h7800v5400h-3900z" fill="none" stroke="#3465a4" stroke-linejoin="round" stroke-width="100"/><text id="text251" class="TextShape"><tspan id="tspan253" class="TextParagraph" font-family="sans-serif" font-size="776px" font-weight="400"><tspan id="tspan255" class="TextPosition" x="7228" y="10969"><tspan id="tspan257" fill="#000080">V4L2_SEL_FLAG_LE</tspan></tspan></tspan></text>
</g></g><rect id="rect262" class="BoundingBox" x="13700" y="7100" width="7101" height="101" fill="none"/><path id="path264" d="m20750 7150h-7e3" fill="none" marker-end="url(#Arrow2Mend)" stroke="#000080" stroke-linejoin="round" stroke-width="99.991"/><rect id="rect269" class="BoundingBox" x="3400" y="7100" width="2101" height="101" fill="none"/><path id="path271" d="m3450 7150h2e3" fill="none" marker-end="url(#marker5575)" stroke="#000080" stroke-linejoin="round" stroke-width="100"/><rect id="rect276" class="BoundingBox" x="9800" y="2900" width="101" height="1501" fill="none"/><path id="path278" d="m9850 2950v1400" fill="none" marker-end="url(#marker5259)" stroke="#000080" stroke-linejoin="round" stroke-width="100"/><rect id="rect283" class="BoundingBox" x="9600" y="10600" width="101" height="1301" fill="none"/><path id="path285" d="m9650 11850v-1200" fill="none"
marker-end="url(#marker5469)" stroke="#000080" stroke-linejoin="round" stroke-width="100"/><rect id="rect290" class="BoundingBox" x="450" y="6850" width="2051" height="601" fill="none"/><path id="path292" d="m2450 7150h-2000.9" fill="none" marker-end="url(#marker6125)" stroke="#f00" stroke-linejoin="round" stroke-width="132.48"/><rect id="rect299" class="BoundingBox" x="21600" y="6750" width="2651" height="601" fill="none"/><path id="path301" d="m21650 7050h2522.6" fill="none" marker-end="url(#marker6001)" stroke="#f00" stroke-linejoin="round" stroke-width="120.41"/><rect id="rect308" class="BoundingBox" x="9550" y="550" width="601" height="1451" fill="none"/><path id="path310" d="m9837 1950v-1453" fill="none" marker-end="url(#marker6261)" stroke="#f00" stroke-linejoin="round" stroke-width="164.04"/><rect id="rect317" class="BoundingBox" x="9350" y="12500" width="601" height="1451"
fill="none"/><path id="path319" d="m9650 12550v1505.2" fill="none" marker-end="url(#marker5693)" stroke="#f00" stroke-linejoin="round" stroke-width="166.96"/></svg>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

@ -18,33 +18,34 @@
viewBox="0 0 739.11388 339.6584"
sodipodi:docname="crop.svg"><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs6"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath44"><path
d="m 0,0 0,1895 4118,0 L 4118,0 0,0 Z m 3051.62,250.48 8.19,17.01 -46.93,23.31 29.61,-25.515 -38.12,8.505 47.25,-23.31 z m -1559.25,800.73 -8.5,-17.01 46.93,-23.31 -29.29,25.2 37.8,-8.19 -46.94,23.31 z"
id="path46"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath><clipPath
d="m 0,0 0,1895 4118,0 L 4118,0 0,0 Z m 3051.62,250.48 8.19,17.01 -46.93,23.31 29.61,-25.515 -38.12,8.505 47.25,-23.31 z m -1559.25,800.73 -8.5,-17.01 46.93,-23.31 -29.29,25.2 37.8,-8.19 -46.94,23.31 z"
id="path46"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath64"><path
d="m 0,0 0,1895 4118,0 0,-1626 -1,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -1,0 0,-1 1,0 0,-1 1,0 0,-1 2,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 2,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 2,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 -4,0 0,1 -5,0 0,1 -4,0 0,1 -5,0 0,1 -4,0 0,1 -4,0 0,1 -4,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 1,0 0,3 1,0 0,2 1,0 0,2 1,0 L 4118,0 0,0 Z m 4074,272 0,-1 1,0 0,1 -1,0 z m -1486,743 0,-1 1,0 0,1 -1,0 z m -2,1 0,-1 1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,2 2,0 0,-1 4,0 0,-1 5,0 0,-1 4,0 0,-1 5,0 0,-1 5,0 0,-1 4,0 0,-1 3,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -3,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 z"
id="path66"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath><clipPath
d="m 0,0 0,1895 4118,0 0,-1626 -1,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -1,0 0,-1 1,0 0,-1 1,0 0,-1 2,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 2,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 2,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 -4,0 0,1 -5,0 0,1 -4,0 0,1 -5,0 0,1 -4,0 0,1 -4,0 0,1 -4,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 1,0 0,3 1,0 0,2 1,0 0,2 1,0 L 4118,0 0,0 Z m 4074,272 0,-1 1,0 0,1 -1,0 z m -1486,743 0,-1 1,0 0,1 -1,0 z m -2,1 0,-1 1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,1 -1,0 0,1
-1,0 0,1 -1,0 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,2 2,0 0,-1 4,0 0,-1 5,0 0,-1 4,0 0,-1 5,0 0,-1 5,0 0,-1 4,0 0,-1 3,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -3,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 z"
id="path66"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath84"><path
d="m 0,0 0,1895 4118,0 0,-136 -3,0 0,-1 -11,0 0,-1 -11,0 0,-1 -11,0 0,-1 -11,0 0,-1 5,0 0,-1 6,0 0,-1 7,0 0,-1 6,0 0,-1 6,0 0,-1 4,0 0,-1 -1,0 0,-1 -3,0 0,-1 -3,0 0,-1 -2,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 7,0 0,1 11,0 0,1 11,0 0,1 11,0 0,1 3,0 L 4118,0 0,0 Z m 2552,1599 0,-1 2,0 0,1 11,0 0,1 11,0 0,1 11,0 0,1 11,0 0,1 -4,0 0,1 -7,0 0,1 -6,0 0,1 -7,0 0,1 -6,0 0,1 -3,0 0,1 2,0 0,1 2,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 2,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 -7,0 0,-1 -12,0 0,-1 -11,0 0,-1 -11,0 0,-1 -4,0 0,-1 1,0 0,-12 1,0 0,-4 z"
id="path86"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath><clipPath
d="m 0,0 0,1895 4118,0 0,-136 -3,0 0,-1 -11,0 0,-1 -11,0 0,-1 -11,0 0,-1 -11,0 0,-1 5,0 0,-1 6,0 0,-1 7,0 0,-1 6,0 0,-1 6,0 0,-1 4,0 0,-1 -1,0 0,-1 -3,0 0,-1 -3,0 0,-1 -2,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 7,0 0,1 11,0 0,1 11,0 0,1 11,0 0,1 3,0 L 4118,0 0,0 Z m 2552,1599 0,-1 2,0 0,1 11,0 0,1 11,0 0,1 11,0 0,1 11,0 0,1 -4,0 0,1 -7,0 0,1 -6,0 0,1 -7,0 0,1 -6,0 0,1 -3,0 0,1 2,0 0,1 2,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 2,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 -7,0 0,-1 -12,0 0,-1 -11,0 0,-1 -11,0 0,-1 -4,0 0,-1 1,0 0,-12 1,0 0,-4 z"
id="path86"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath104"><path
d="m 0,0 0,1895 4118,0 L 4118,0 0,0 Z m 3056.98,1740.43 -1.58,18.9 -52.6,-4.72 38.74,-6.3 -36.85,-12.6 52.29,4.72 z m -1570.28,-123.79 1.58,-18.9 52.6,4.72 -38.43,5.99 36.54,12.91 -52.29,-4.72 z"
id="path106"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath></defs><sodipodi:namedview
d="m 0,0 0,1895 4118,0 L 4118,0 0,0 Z m 3056.98,1740.43 -1.58,18.9 -52.6,-4.72 38.74,-6.3 -36.85,-12.6 52.29,4.72 z m -1570.28,-123.79 1.58,-18.9 52.6,4.72 -38.43,5.99 36.54,12.91 -52.29,-4.72 z"
id="path106"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
@ -123,90 +124,90 @@
inkscape:connector-curvature="0" /><g
id="g40"
transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><g
clip-path="url(#clipPath44)"
id="g42"><path
inkscape:connector-curvature="0"
id="path48"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="M 1492.37,1040.5 3051.62,260.875" /></g></g><g
clip-path="url(#clipPath44)"
id="g42"><path
inkscape:connector-curvature="0"
id="path48"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="M 1492.37,1040.5 3051.62,260.875" /></g></g><g
id="g50"
transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><path
inkscape:connector-curvature="0"
id="path52"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 1539.31,1027.9 -37.8,8.19 29.29,-25.2 8.51,17.01" /><path
inkscape:connector-curvature="0"
id="path54"
style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1539.31,1027.9 -37.8,8.19 29.29,-25.2 8.51,17.01 z" /><path
inkscape:connector-curvature="0"
id="path56"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 3004.37,273.79 38.12,-8.505 -29.61,25.515 -8.51,-17.01" /><path
inkscape:connector-curvature="0"
id="path58"
style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3004.37,273.79 38.12,-8.505 -29.61,25.515 -8.51,-17.01 z" /></g><g
inkscape:connector-curvature="0"
id="path52"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 1539.31,1027.9 -37.8,8.19 29.29,-25.2 8.51,17.01" /><path
inkscape:connector-curvature="0"
id="path54"
style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1539.31,1027.9 -37.8,8.19 29.29,-25.2 8.51,17.01 z" /><path
inkscape:connector-curvature="0"
id="path56"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 3004.37,273.79 38.12,-8.505 -29.61,25.515 -8.51,-17.01" /><path
inkscape:connector-curvature="0"
id="path58"
style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3004.37,273.79 38.12,-8.505 -29.61,25.515 -8.51,-17.01 z" /></g><g
id="g60"
transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><g
clip-path="url(#clipPath64)"
id="g62"><path
inkscape:connector-curvature="0"
id="path68"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="M 2555.5,1040.5 4114.75,260.875" /></g></g><g
clip-path="url(#clipPath64)"
id="g62"><path
inkscape:connector-curvature="0"
id="path68"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="M 2555.5,1040.5 4114.75,260.875" /></g></g><g
id="g70"
transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><path
inkscape:connector-curvature="0"
id="path72"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 2602.43,1027.9 -37.8,8.19 29.3,-25.2 8.5,17.01" /><path
inkscape:connector-curvature="0"
id="path74"
style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2602.43,1027.9 -37.8,8.19 29.3,-25.2 8.5,17.01 z" /><path
inkscape:connector-curvature="0"
id="path76"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 4067.5,273.79 38.11,-8.505 -29.61,25.515 -8.5,-17.01" /><path
inkscape:connector-curvature="0"
id="path78"
style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4067.5,273.79 38.11,-8.505 -29.61,25.515 -8.5,-17.01 z" /></g><g
inkscape:connector-curvature="0"
id="path72"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 2602.43,1027.9 -37.8,8.19 29.3,-25.2 8.5,17.01" /><path
inkscape:connector-curvature="0"
id="path74"
style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2602.43,1027.9 -37.8,8.19 29.3,-25.2 8.5,17.01 z" /><path
inkscape:connector-curvature="0"
id="path76"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 4067.5,273.79 38.11,-8.505 -29.61,25.515 -8.5,-17.01" /><path
inkscape:connector-curvature="0"
id="path78"
style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4067.5,273.79 38.11,-8.505 -29.61,25.515 -8.5,-17.01 z" /></g><g
id="g80"
transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><g
clip-path="url(#clipPath84)"
id="g82"><path
inkscape:connector-curvature="0"
id="path88"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2555.5,1607.5 1559.25,141.75" /></g></g><g
clip-path="url(#clipPath84)"
id="g82"><path
inkscape:connector-curvature="0"
id="path88"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2555.5,1607.5 1559.25,141.75" /></g></g><g
id="g90"
transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><path
inkscape:connector-curvature="0"
id="path92"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 2602.12,1621.36 -36.54,-12.91 38.43,-5.99 -1.89,18.9" /><path
inkscape:connector-curvature="0"
id="path94"
style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2602.12,1621.36 -36.54,-12.91 38.43,-5.99 -1.89,18.9 z" /><path
inkscape:connector-curvature="0"
id="path96"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 4067.81,1735.71 36.86,12.6 -38.75,6.3 1.89,-18.9" /><path
inkscape:connector-curvature="0"
id="path98"
style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4067.81,1735.71 36.86,12.6 -38.75,6.3 1.89,-18.9 z" /></g><g
inkscape:connector-curvature="0"
id="path92"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 2602.12,1621.36 -36.54,-12.91 38.43,-5.99 -1.89,18.9" /><path
inkscape:connector-curvature="0"
id="path94"
style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2602.12,1621.36 -36.54,-12.91 38.43,-5.99 -1.89,18.9 z" /><path
inkscape:connector-curvature="0"
id="path96"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 4067.81,1735.71 36.86,12.6 -38.75,6.3 1.89,-18.9" /><path
inkscape:connector-curvature="0"
id="path98"
style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4067.81,1735.71 36.86,12.6 -38.75,6.3 1.89,-18.9 z" /></g><g
id="g100"
transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><g
clip-path="url(#clipPath104)"
id="g102"><path
inkscape:connector-curvature="0"
id="path108"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1492.37,1607.5 1559.25,141.75" /></g></g><path
clip-path="url(#clipPath104)"
id="g102"><path
inkscape:connector-curvature="0"
id="path108"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1492.37,1607.5 1559.25,141.75" /></g></g><path
d="m 221.11869,232.99481 -5.25292,-1.85592 5.52462,-0.86111 -0.2717,2.71703"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path112"
@ -225,43 +226,43 @@
inkscape:connector-curvature="0" /><g
id="g120"
transform="matrix(1.4375794,0,0,1.4375794,-0.12334269,-0.08856738)"><text
transform="matrix(1,0,0,-1,204.52,9.07751)"
style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#d10000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text122"><tspan
x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 19.11735 21.320145 24.998085 28.676025 31.983524 35.661465 39.339405 41.178375 44.856316 48.534256 52.212196 55.890137 59.568073"
y="0"
sodipodi:role="line"
id="tspan124">v4l2_cropcap.bounds</tspan></text>
transform="matrix(1,0,0,-1,204.52,9.07751)"
style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#d10000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text122"><tspan
x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 19.11735 21.320145 24.998085 28.676025 31.983524 35.661465 39.339405 41.178375 44.856316 48.534256 52.212196 55.890137 59.568073"
y="0"
sodipodi:role="line"
id="tspan124">v4l2_cropcap.bounds</tspan></text>
</g><g
id="g126"
transform="matrix(1.4375794,0,0,1.4375794,-0.12334269,-0.08856738)"><text
transform="matrix(1,0,0,-1,58.5175,166.42)"
style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#0000d1;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text128"><tspan
x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 19.11735 21.320145 24.998085 28.676025 31.983524 35.661465 39.339405 41.178375 44.856316 48.534256 50.373226 52.576019 56.25396 59.561459"
y="0"
sodipodi:role="line"
id="tspan130">v4l2_cropcap.defrect</tspan></text>
transform="matrix(1,0,0,-1,58.5175,166.42)"
style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#0000d1;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text128"><tspan
x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 19.11735 21.320145 24.998085 28.676025 31.983524 35.661465 39.339405 41.178375 44.856316 48.534256 50.373226 52.576019 56.25396 59.561459"
y="0"
sodipodi:role="line"
id="tspan130">v4l2_cropcap.defrect</tspan></text>
</g><g
id="g132"
transform="matrix(1.4375794,0,0,1.4375794,-0.12334269,-0.08856738)"><text
transform="matrix(1,0,0,-1,153.49,152.245)"
style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#008f00;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text134"><tspan
x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 19.11735 21.320145 24.998085 28.676025 30.514996"
y="0"
sodipodi:role="line"
id="tspan136">v4l2_crop.c</tspan></text>
transform="matrix(1,0,0,-1,153.49,152.245)"
style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#008f00;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text134"><tspan
x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 19.11735 21.320145 24.998085 28.676025 30.514996"
y="0"
sodipodi:role="line"
id="tspan136">v4l2_crop.c</tspan></text>
</g><g
id="g138"
transform="matrix(1.4375794,0,0,1.4375794,-0.12334269,-0.08856738)"><text
transform="matrix(1,0,0,-1,309.415,30.34)"
style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#b000b0;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text140"><tspan
x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 17.648821 21.326759 23.529554 29.03985 32.717789"
y="0"
sodipodi:role="line"
id="tspan142">v4l2_format</tspan></text>
transform="matrix(1,0,0,-1,309.415,30.34)"
style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#b000b0;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text140"><tspan
x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 17.648821 21.326759 23.529554 29.03985 32.717789"
y="0"
sodipodi:role="line"
id="tspan142">v4l2_format</tspan></text>
</g><text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:32px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
@ -270,12 +271,12 @@
id="text3396"
sodipodi:linespacing="125%"
transform="scale(1,-1)"><tspan
sodipodi:role="line"
id="tspan3398"
x="-99.291145"
y="-239.49893"></tspan><tspan
sodipodi:role="line"
x="-99.291145"
y="-199.49893"
id="tspan3400" /></text>
sodipodi:role="line"
id="tspan3398"
x="-99.291145"
y="-239.49893"></tspan><tspan
sodipodi:role="line"
x="-99.291145"
y="-199.49893"
id="tspan3400" /></text>
</g></svg>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -42,15 +42,15 @@
inkscape:window-maximized="1"
inkscape:current-layer="g3627" /><metadata
id="metadata3625"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs3623"><clipPath
id="clipPath4301"
clipPathUnits="userSpaceOnUse"><path
style="clip-rule:evenodd"
inkscape:connector-curvature="0"
id="path4303"
d="M 0,6040 0,0 l 5650,0 0,6040 -5650,0 z m 4786.76,-99.89 103.92,0 0,56.69 -103.92,0 0,0 85.03,-28.35 -85.03,-28.34 z" /></clipPath></defs><g
style="clip-rule:evenodd"
inkscape:connector-curvature="0"
id="path4303"
d="M 0,6040 0,0 l 5650,0 0,6040 -5650,0 z m 4786.76,-99.89 103.92,0 0,56.69 -103.92,0 0,0 85.03,-28.35 -85.03,-28.34 z" /></clipPath></defs><g
transform="matrix(1.25,0,0,-1.25,-1.0537,751.94632)"
inkscape:label="fieldseq_bt"
inkscape:groupmode="layer"
@ -1390,13 +1390,13 @@
transform="scale(0.1,0.1)"
id="g4297"
style=""><g
id="g4299"
clip-path="url(#clipPath4301)"
style=""><path
d="m 3778.18,5968.45 1105.42,0"
style="fill:none;stroke:#000000;stroke-width:14.17199993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="path4305"
inkscape:connector-curvature="0" /></g></g><path
id="g4299"
clip-path="url(#clipPath4301)"
style=""><path
d="m 3778.18,5968.45 1105.42,0"
style="fill:none;stroke:#000000;stroke-width:14.17199993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="path4305"
inkscape:connector-curvature="0" /></g></g><path
d="m 478.676,594.011 8.503,2.834 -8.503,2.835 0,-5.669"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path4307"
@ -2466,148 +2466,148 @@
id="text4841"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan4843"
sodipodi:role="line"
y="-533.07098"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan><tspan
id="tspan4845"
sodipodi:role="line"
y="-465.04559"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan><tspan
id="tspan4847"
sodipodi:role="line"
y="-397.0202"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text>
id="tspan4843"
sodipodi:role="line"
y="-533.07098"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan><tspan
id="tspan4845"
sodipodi:role="line"
y="-465.04559"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan><tspan
id="tspan4847"
sodipodi:role="line"
y="-397.0202"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text>
<text
y="-316.23969"
x="103.58983"
id="text4849"
style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan4851"
sodipodi:role="line"
y="-316.23969"
x="103.58983 109.09226 113.67899 118.26572 122.85246 127.43919 132.47964 134.77301 140.27545 144.86218 150.81833 155.40506 160.44553 166.86365 188.62184 194.12427 198.711 203.29774 207.88448 212.47121 217.51166 219.80502 225.30746 229.8942 235.85034 240.43707 245.9395 252.35764 257.3981 262.43854 268.85669 375.69293 381.19534 385.78207 390.3688 394.95554 399.54227 404.58273 406.8761 412.37854 416.96527 422.92142 427.50815 433.01059 439.42871 444.46918 449.50961 455.92776 1.551828 7.0542617 11.640993 16.227724 20.814463 25.401194 30.441652 32.735016 38.237442 42.824177 48.780331 53.367065 58.869492 65.287621 70.328079 75.368538 81.786659">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOM</tspan><tspan
id="tspan4853"
sodipodi:role="line"
y="-328.99481"
x="10.054964 14.17972 18.766451 20.597849 25.18458 29.771311 34.358047 38.944778 41.238144 43.531509 48.118244 50.865334 53.158699 55.452068 57.283459 61.870193 63.701588 68.288322">v4l2_buffer.field:</tspan></text>
id="tspan4851"
sodipodi:role="line"
y="-316.23969"
x="103.58983 109.09226 113.67899 118.26572 122.85246 127.43919 132.47964 134.77301 140.27545 144.86218 150.81833 155.40506 160.44553 166.86365 188.62184 194.12427 198.711 203.29774 207.88448 212.47121 217.51166 219.80502 225.30746 229.8942 235.85034 240.43707 245.9395 252.35764 257.3981 262.43854 268.85669 375.69293 381.19534 385.78207 390.3688 394.95554 399.54227 404.58273 406.8761 412.37854 416.96527 422.92142 427.50815 433.01059 439.42871 444.46918 449.50961 455.92776 1.551828 7.0542617 11.640993 16.227724 20.814463 25.401194 30.441652 32.735016 38.237442 42.824177 48.780331 53.367065 58.869492 65.287621 70.328079 75.368538 81.786659">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOM</tspan><tspan
id="tspan4853"
sodipodi:role="line"
y="-328.99481"
x="10.054964 14.17972 18.766451 20.597849 25.18458 29.771311 34.358047 38.944778 41.238144 43.531509 48.118244 50.865334 53.158699 55.452068 57.283459 61.870193 63.701588 68.288322">v4l2_buffer.field:</tspan></text>
<text
y="-592.59381"
x="5.8034"
id="text4855"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan4857"
sodipodi:role="line"
y="-592.59381"
x="5.8034 13.134789 19.806232 29.801399 36.472843 43.144287 47.139954 53.811398 56.475174 59.810898 66.482346 70.478004 77.149452 83.820892 87.816566 91.152283 94.488007 101.15945 107.83089 111.16662 114.50233 121.17377 131.16895 134.50468 137.84041 140.50418 147.17563 149.8394 156.51085 159.84657 163.1823 165.84607 169.84174 175.84123 179.17696 182.51268 185.8484 189.84407 196.51552 203.18695 209.18646 219.18163 221.8454 225.18112 228.51685 235.18829 241.85973 245.19545 249.19112 255.86256 259.19827 265.86972 269.20544 272.54117 282.53635 285.87207 294.53534 301.86673 309.87006 318.53336">Temporal order, bottom field first transmitted (e.g. M/NTSC)</tspan></text>
id="tspan4857"
sodipodi:role="line"
y="-592.59381"
x="5.8034 13.134789 19.806232 29.801399 36.472843 43.144287 47.139954 53.811398 56.475174 59.810898 66.482346 70.478004 77.149452 83.820892 87.816566 91.152283 94.488007 101.15945 107.83089 111.16662 114.50233 121.17377 131.16895 134.50468 137.84041 140.50418 147.17563 149.8394 156.51085 159.84657 163.1823 165.84607 169.84174 175.84123 179.17696 182.51268 185.8484 189.84407 196.51552 203.18695 209.18646 219.18163 221.8454 225.18112 228.51685 235.18829 241.85973 245.19545 249.19112 255.86256 259.19827 265.86972 269.20544 272.54117 282.53635 285.87207 294.53534 301.86673 309.87006 318.53336">Temporal order, bottom field first transmitted (e.g. M/NTSC)</tspan></text>
<text
y="-316.23981"
x="290.6604"
id="text4859"
style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan4861"
sodipodi:role="line"
y="-316.23981"
x="290.6604 296.16284 300.74957 305.3363 309.92303 314.50977 319.55023 321.8436 327.34601 331.93274 337.88889 342.47565 347.51608 353.9342 477.73062 483.23306 487.81979 492.40652 496.99326 501.57999 506.62045 508.91382 514.41626 519.00299 524.95911 529.5459 534.5863 541.00446">V4L2_FIELD_TOPV4L2_FIELD_TOP</tspan></text>
id="tspan4861"
sodipodi:role="line"
y="-316.23981"
x="290.6604 296.16284 300.74957 305.3363 309.92303 314.50977 319.55023 321.8436 327.34601 331.93274 337.88889 342.47565 347.51608 353.9342 477.73062 483.23306 487.81979 492.40652 496.99326 501.57999 506.62045 508.91382 514.41626 519.00299 524.95911 529.5459 534.5863 541.00446">V4L2_FIELD_TOPV4L2_FIELD_TOP</tspan></text>
<text
y="-299.23349"
x="5.8034"
id="text4863"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan4865"
sodipodi:role="line"
y="-299.23349"
x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 84.504837 93.168114 100.4995 108.50284 117.16611 123.83755 131.8409 140.50418 148.50751 157.17079 160.50652 163.84224 167.17796 175.18129 181.85274 188.52419 195.19562 201.86707 209.19846 212.53418 220.53751 227.20895 235.87224 242.54367 245.87939 254.54268 261.87405 269.87741 278.54068 285.21213 293.21545 301.87872 309.88205 318.54535 325.2168 333.22012">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_BT</tspan><tspan
id="tspan4867"
sodipodi:role="line"
y="-192.9435"
x="1.5518398 9.5551729 16.226616 22.898062 29.569506 36.240948 43.572334 46.908058 54.911392 61.582836 70.246117 76.917557 80.253281 88.916557 96.247948 104.25128 112.91456 119.586 127.58932 136.25262 144.25595 152.91924 159.59067 166.92206 174.9254 178.26112 182.25679 192.25195 194.91573 200.91524 207.58667 210.25046 212.91423 219.58568 226.25713 232.92856 239.60001">V4L2_FIELD_INTERLACED_TB (misaligned)</tspan><tspan
id="tspan4869"
sodipodi:role="line"
y="-86.653496"
x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 89.172447 97.175781 106.511 113.18245 121.18579">V4L2_FIELD_SEQ_BT</tspan></text>
id="tspan4865"
sodipodi:role="line"
y="-299.23349"
x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 84.504837 93.168114 100.4995 108.50284 117.16611 123.83755 131.8409 140.50418 148.50751 157.17079 160.50652 163.84224 167.17796 175.18129 181.85274 188.52419 195.19562 201.86707 209.19846 212.53418 220.53751 227.20895 235.87224 242.54367 245.87939 254.54268 261.87405 269.87741 278.54068 285.21213 293.21545 301.87872 309.88205 318.54535 325.2168 333.22012">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_BT</tspan><tspan
id="tspan4867"
sodipodi:role="line"
y="-192.9435"
x="1.5518398 9.5551729 16.226616 22.898062 29.569506 36.240948 43.572334 46.908058 54.911392 61.582836 70.246117 76.917557 80.253281 88.916557 96.247948 104.25128 112.91456 119.586 127.58932 136.25262 144.25595 152.91924 159.59067 166.92206 174.9254 178.26112 182.25679 192.25195 194.91573 200.91524 207.58667 210.25046 212.91423 219.58568 226.25713 232.92856 239.60001">V4L2_FIELD_INTERLACED_TB (misaligned)</tspan><tspan
id="tspan4869"
sodipodi:role="line"
y="-86.653496"
x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 89.172447 97.175781 106.511 113.18245 121.18579">V4L2_FIELD_SEQ_BT</tspan></text>
<text
y="-533.07098"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464"
id="text4592"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan4594"
sodipodi:role="line"
y="-533.07098"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan></text>
id="tspan4594"
sodipodi:role="line"
y="-533.07098"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan></text>
<text
y="-465.04559"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054"
id="text4596"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan4598"
sodipodi:role="line"
y="-465.04559"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan></text>
id="tspan4598"
sodipodi:role="line"
y="-465.04559"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan></text>
<text
y="-397.0202"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963"
id="text4600"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan4602"
sodipodi:role="line"
y="-397.0202"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text>
id="tspan4602"
sodipodi:role="line"
y="-397.0202"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text>
<text
y="-299.23349"
x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 84.504837 93.168114 100.4995 108.50284 117.16611 123.83755 131.8409 140.50418 148.50751 157.17079 160.50652 163.84224 167.17796 175.18129 181.85274 188.52419 195.19562 201.86707 209.19846 212.53418 220.53751 227.20895 235.87224 242.54367 245.87939 254.54268 261.87405 269.87741 278.54068 285.21213 293.21545 301.87872 309.88205 318.54535 325.2168 333.22012"
id="text5862"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan5864"
sodipodi:role="line"
y="-299.23349"
x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 84.504837 93.168114 100.4995 108.50284 117.16611 123.83755 131.8409 140.50418 148.50751 157.17079 160.50652 163.84224 167.17796 175.18129 181.85274 188.52419 195.19562 201.86707 209.19846 212.53418 220.53751 227.20895 235.87224 242.54367 245.87939 254.54268 261.87405 269.87741 278.54068 285.21213 293.21545 301.87872 309.88205 318.54535 325.2168 333.22012">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_BT</tspan></text>
id="tspan5864"
sodipodi:role="line"
y="-299.23349"
x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 84.504837 93.168114 100.4995 108.50284 117.16611 123.83755 131.8409 140.50418 148.50751 157.17079 160.50652 163.84224 167.17796 175.18129 181.85274 188.52419 195.19562 201.86707 209.19846 212.53418 220.53751 227.20895 235.87224 242.54367 245.87939 254.54268 261.87405 269.87741 278.54068 285.21213 293.21545 301.87872 309.88205 318.54535 325.2168 333.22012">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_BT</tspan></text>
<text
y="-192.9435"
x="1.5518398 9.5551729 16.226616 22.898062 29.569506 36.240948 43.572334 46.908058 54.911392 61.582836 70.246117 76.917557 80.253281 88.916557 96.247948 104.25128 112.91456 119.586 127.58932 136.25262 144.25595 152.91924 159.59067 166.92206 174.9254 178.26112 182.25679 192.25195 194.91573 200.91524 207.58667 210.25046 212.91423 219.58568 226.25713 232.92856 239.60001"
id="text5866"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan5868"
sodipodi:role="line"
y="-192.9435"
x="1.5518398 9.5551729 16.226616 22.898062 29.569506 36.240948 43.572334 46.908058 54.911392 61.582836 70.246117 76.917557 80.253281 88.916557 96.247948 104.25128 112.91456 119.586 127.58932 136.25262 144.25595 152.91924 159.59067 166.92206 174.9254 178.26112 182.25679 192.25195 194.91573 200.91524 207.58667 210.25046 212.91423 219.58568 226.25713 232.92856 239.60001">V4L2_FIELD_INTERLACED_TB (misaligned)</tspan></text>
id="tspan5868"
sodipodi:role="line"
y="-192.9435"
x="1.5518398 9.5551729 16.226616 22.898062 29.569506 36.240948 43.572334 46.908058 54.911392 61.582836 70.246117 76.917557 80.253281 88.916557 96.247948 104.25128 112.91456 119.586 127.58932 136.25262 144.25595 152.91924 159.59067 166.92206 174.9254 178.26112 182.25679 192.25195 194.91573 200.91524 207.58667 210.25046 212.91423 219.58568 226.25713 232.92856 239.60001">V4L2_FIELD_INTERLACED_TB (misaligned)</tspan></text>
<text
y="-86.653496"
x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 89.172447 97.175781 106.511 113.18245 121.18579"
id="text5870"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan5872"
sodipodi:role="line"
y="-86.653496"
x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 89.172447 97.175781 106.511 113.18245 121.18579">V4L2_FIELD_SEQ_BT</tspan></text>
id="tspan5872"
sodipodi:role="line"
y="-86.653496"
x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 89.172447 97.175781 106.511 113.18245 121.18579">V4L2_FIELD_SEQ_BT</tspan></text>
<text
y="-316.23969"
x="103.58983 109.09226 113.67899 118.26572 122.85246 127.43919 132.47964 134.77301 140.27545 144.86218 150.81833 155.40506 160.44553 166.86365 188.62184 194.12427 198.711 203.29774 207.88448 212.47121 217.51166 219.80502 225.30746 229.8942 235.85034 240.43707 245.9395 252.35764 257.3981 262.43854 268.85669 375.69293 381.19534 385.78207 390.3688 394.95554 399.54227 404.58273 406.8761 412.37854 416.96527 422.92142 427.50815 433.01059 439.42871 444.46918 449.50961 455.92776 1.551828 7.0542617 11.640993 16.227724 20.814463 25.401194 30.441652 32.735016 38.237442 42.824177 48.780331 53.367065 58.869492 65.287621 70.328079 75.368538 81.786659"
id="text7144"
style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan7146"
sodipodi:role="line"
y="-316.23969"
x="103.58983 109.09226 113.67899 118.26572 122.85246 127.43919 132.47964 134.77301 140.27545 144.86218 150.81833 155.40506 160.44553 166.86365 188.62184 194.12427 198.711 203.29774 207.88448 212.47121 217.51166 219.80502 225.30746 229.8942 235.85034 240.43707 245.9395 252.35764 257.3981 262.43854 268.85669 375.69293 381.19534 385.78207 390.3688 394.95554 399.54227 404.58273 406.8761 412.37854 416.96527 422.92142 427.50815 433.01059 439.42871 444.46918 449.50961 455.92776 1.551828 7.0542617 11.640993 16.227724 20.814463 25.401194 30.441652 32.735016 38.237442 42.824177 48.780331 53.367065 58.869492 65.287621 70.328079 75.368538 81.786659">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOM</tspan></text>
id="tspan7146"
sodipodi:role="line"
y="-316.23969"
x="103.58983 109.09226 113.67899 118.26572 122.85246 127.43919 132.47964 134.77301 140.27545 144.86218 150.81833 155.40506 160.44553 166.86365 188.62184 194.12427 198.711 203.29774 207.88448 212.47121 217.51166 219.80502 225.30746 229.8942 235.85034 240.43707 245.9395 252.35764 257.3981 262.43854 268.85669 375.69293 381.19534 385.78207 390.3688 394.95554 399.54227 404.58273 406.8761 412.37854 416.96527 422.92142 427.50815 433.01059 439.42871 444.46918 449.50961 455.92776 1.551828 7.0542617 11.640993 16.227724 20.814463 25.401194 30.441652 32.735016 38.237442 42.824177 48.780331 53.367065 58.869492 65.287621 70.328079 75.368538 81.786659">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOM</tspan></text>
<text
y="-328.99481"
x="10.054964 14.17972 18.766451 20.597849 25.18458 29.771311 34.358047 38.944778 41.238144 43.531509 48.118244 50.865334 53.158699 55.452068 57.283459 61.870193 63.701588 68.288322"
id="text7148"
style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan7150"
sodipodi:role="line"
y="-328.99481"
x="10.054964 14.17972 18.766451 20.597849 25.18458 29.771311 34.358047 38.944778 41.238144 43.531509 48.118244 50.865334 53.158699 55.452068 57.283459 61.870193 63.701588 68.288322">v4l2_buffer.field:</tspan></text>
id="tspan7150"
sodipodi:role="line"
y="-328.99481"
x="10.054964 14.17972 18.766451 20.597849 25.18458 29.771311 34.358047 38.944778 41.238144 43.531509 48.118244 50.865334 53.158699 55.452068 57.283459 61.870193 63.701588 68.288322">v4l2_buffer.field:</tspan></text>
</g></svg>

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 170 KiB

View file

@ -42,15 +42,15 @@
inkscape:window-maximized="1"
inkscape:current-layer="g5551" /><metadata
id="metadata5549"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs5547"><clipPath
id="clipPath6753"
clipPathUnits="userSpaceOnUse"><path
style="clip-rule:evenodd"
inkscape:connector-curvature="0"
id="path6755"
d="M 0,6000 0,0 l 5660,0 0,6000 -5660,0 z m 4786.76,-102.89 103.92,0 0,56.69 -103.92,0 0,0 85.03,-28.35 -85.03,-28.34 z" /></clipPath></defs><g
style="clip-rule:evenodd"
inkscape:connector-curvature="0"
id="path6755"
d="M 0,6000 0,0 l 5660,0 0,6000 -5660,0 z m 4786.76,-102.89 103.92,0 0,56.69 -103.92,0 0,0 85.03,-28.35 -85.03,-28.34 z" /></clipPath></defs><g
transform="matrix(1.25,0,0,-1.25,-1.0537,746.57119)"
inkscape:label="fieldseq_tb"
inkscape:groupmode="layer"
@ -2446,13 +2446,13 @@
transform="scale(0.1,0.1)"
id="g6749"
style=""><g
id="g6751"
clip-path="url(#clipPath6753)"
style=""><path
d="m 3778.18,5925.45 1105.42,0"
style="fill:none;stroke:#000000;stroke-width:14.17199993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="path6757"
inkscape:connector-curvature="0" /></g></g><path
id="g6751"
clip-path="url(#clipPath6753)"
style=""><path
d="m 3778.18,5925.45 1105.42,0"
style="fill:none;stroke:#000000;stroke-width:14.17199993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="path6757"
inkscape:connector-curvature="0" /></g></g><path
d="m 478.676,589.711 8.503,2.834 -8.503,2.835 0,-5.669"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path6759"
@ -2466,142 +2466,145 @@
id="text6765"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan6767"
sodipodi:role="line"
y="-528.771"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan><tspan
id="tspan6769"
sodipodi:role="line"
y="-460.74561"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan><tspan
id="tspan6771"
sodipodi:role="line"
y="-392.72021"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text>
id="tspan6767"
sodipodi:role="line"
y="-528.771"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan><tspan
id="tspan6769"
sodipodi:role="line"
y="-460.74561"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan><tspan
id="tspan6771"
sodipodi:role="line"
y="-392.72021"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text>
<text
y="-324.69479"
x="10.05469"
id="text6773"
style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan6775"
sodipodi:role="line"
y="-324.69479"
x="10.05469 14.17945 18.766184 20.597576 25.184309 29.771042 34.357777 38.944508 41.237877 43.531242 48.117977 50.865067 53.158432 55.451801 57.283192 61.869926 63.701321 68.288048">v4l2_buffer.field:</tspan><tspan
id="tspan6777"
sodipodi:role="line"
y="-311.9397"
x="10.05469 15.55712 20.143852 24.730585 29.317318 33.904053 38.944508 41.237877 46.740307 51.327042 57.283192 61.869926 66.910378 73.328506 95.0867 100.58913 105.17586 109.7626 114.34933 118.93606 123.97652 126.26987 131.77232 136.35905 142.3152 146.90193 152.40436 158.82249 163.86295 168.9034 175.32153 197.12534 202.62778 207.21451 211.80124 216.38797 220.9747 226.01515 228.30853 233.81096 238.39769 244.35384 248.94058 253.98103 260.39917 282.15695 287.65936 292.24609 296.83282 301.41956 306.00629 311.04675 313.34012 318.84256 323.42929 329.38544 333.97217 339.47461 345.89273 350.9332 355.97363 362.39175 384.19559 389.698 394.28473 398.87149 403.45822 408.04495 413.08539 415.37875 420.8812 425.46793 431.42407 436.0108 441.05127 447.46939 469.2276 474.73001 479.31674 483.90347 488.49023 493.07697 498.1174 500.41077 505.91321 510.49994 516.45612 521.04285 526.54523 532.96338 538.00385 543.04431 549.4624">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOM</tspan></text>
id="tspan6775"
sodipodi:role="line"
y="-324.69479"
x="10.05469 14.17945 18.766184 20.597576 25.184309 29.771042 34.357777 38.944508 41.237877 43.531242 48.117977 50.865067 53.158432 55.451801 57.283192 61.869926 63.701321 68.288048">v4l2_buffer.field:</tspan><tspan
id="tspan6777"
sodipodi:role="line"
y="-311.9397"
x="10.05469 15.55712 20.143852 24.730585 29.317318 33.904053 38.944508 41.237877 46.740307 51.327042 57.283192 61.869926 66.910378 73.328506 95.0867 100.58913 105.17586 109.7626 114.34933 118.93606 123.97652 126.26987 131.77232 136.35905 142.3152 146.90193 152.40436 158.82249 163.86295 168.9034 175.32153 197.12534 202.62778 207.21451 211.80124 216.38797 220.9747 226.01515 228.30853 233.81096 238.39769 244.35384 248.94058 253.98103 260.39917 282.15695 287.65936 292.24609 296.83282 301.41956 306.00629 311.04675 313.34012 318.84256 323.42929 329.38544 333.97217 339.47461 345.89273 350.9332 355.97363 362.39175 384.19559 389.698 394.28473 398.87149 403.45822 408.04495 413.08539 415.37875 420.8812 425.46793 431.42407 436.0108 441.05127 447.46939 469.2276 474.73001 479.31674 483.90347 488.49023 493.07697 498.1174 500.41077 505.91321 510.49994 516.45612 521.04285 526.54523 532.96338
538.00385 543.04431 549.4624">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOM</tspan></text>
<text
y="-588.2937"
x="5.8031301"
id="text6779"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan6781"
sodipodi:role="line"
y="-588.2937"
x="5.8031301 13.134519 19.805964 29.801128 36.472572 43.14402 47.139687 53.811131 56.474907 59.810631 66.482071 70.477737 77.149185 83.820625 87.816299 91.152016 94.48774 97.823463 104.4949 111.16635 114.50207 117.83779 120.50157 127.17302 129.83679 136.50824 139.84396 143.17969 145.84346 149.83913 155.83862 159.17435 162.51007 165.84579 169.84146 176.51291 183.18434 189.18385 199.17902 201.84279 205.17851 208.51424 215.18568 221.85713 225.19284 229.18851 235.85995 239.19568 245.86713 249.20285 252.53857 260.5419 269.87714 273.21286 281.21619 289.21951 295.89096">Temporal order, top field first transmitted (e.g. BG/PAL)</tspan><tspan
id="tspan6783"
sodipodi:role="line"
y="-86.604706"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 97.175514 106.51073 113.18218 120.51357">V4L2_FIELD_SEQ_TB</tspan><tspan
id="tspan6785"
sodipodi:role="line"
y="-192.89471"
x="10.05469 18.058023 24.729465 31.400909 38.072357 44.743801 52.075188 55.410912 63.414246 70.085686 78.748962 85.42041 88.756134 97.419411 104.7508 112.75413 121.41741 128.08885 136.09219 144.75546 152.7588 161.42207 168.09352 176.09685 183.42824 186.76396 190.75963 200.75479 203.41858 209.41808 216.08952 218.7533 221.41707 228.08852 234.75996 241.43141 248.10286">V4L2_FIELD_INTERLACED_BT (misaligned)</tspan><tspan
id="tspan6787"
sodipodi:role="line"
y="-294.93271"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 84.50457 93.167847 100.49924 108.50257 117.16585 123.83729 131.84062 140.50391 148.50723 157.17052 160.50624 163.84196 167.17769 175.18102 181.85246 188.52391 195.19534 201.86679 209.19818 212.53391 220.53723 227.20868 235.87196 242.5434 245.87912 254.5424 261.87378 269.87714 278.54041 285.21185 293.21518 301.87845 309.88177 318.54507 325.21652 332.54791">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_TB</tspan></text>
id="tspan6781"
sodipodi:role="line"
y="-588.2937"
x="5.8031301 13.134519 19.805964 29.801128 36.472572 43.14402 47.139687 53.811131 56.474907 59.810631 66.482071 70.477737 77.149185 83.820625 87.816299 91.152016 94.48774 97.823463 104.4949 111.16635 114.50207 117.83779 120.50157 127.17302 129.83679 136.50824 139.84396 143.17969 145.84346 149.83913 155.83862 159.17435 162.51007 165.84579 169.84146 176.51291 183.18434 189.18385 199.17902 201.84279 205.17851 208.51424 215.18568 221.85713 225.19284 229.18851 235.85995 239.19568 245.86713 249.20285 252.53857 260.5419 269.87714 273.21286 281.21619 289.21951 295.89096">Temporal order, top field first transmitted (e.g. BG/PAL)</tspan><tspan
id="tspan6783"
sodipodi:role="line"
y="-86.604706"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 97.175514 106.51073 113.18218 120.51357">V4L2_FIELD_SEQ_TB</tspan><tspan
id="tspan6785"
sodipodi:role="line"
y="-192.89471"
x="10.05469 18.058023 24.729465 31.400909 38.072357 44.743801 52.075188 55.410912 63.414246 70.085686 78.748962 85.42041 88.756134 97.419411 104.7508 112.75413 121.41741 128.08885 136.09219 144.75546 152.7588 161.42207 168.09352 176.09685 183.42824 186.76396 190.75963 200.75479 203.41858 209.41808 216.08952 218.7533 221.41707 228.08852 234.75996 241.43141 248.10286">V4L2_FIELD_INTERLACED_BT (misaligned)</tspan><tspan
id="tspan6787"
sodipodi:role="line"
y="-294.93271"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 84.50457 93.167847 100.49924 108.50257 117.16585 123.83729 131.84062 140.50391 148.50723 157.17052 160.50624 163.84196 167.17769 175.18102 181.85246 188.52391 195.19534 201.86679 209.19818 212.53391 220.53723 227.20868 235.87196 242.5434 245.87912 254.5424 261.87378 269.87714 278.54041 285.21185 293.21518 301.87845 309.88177 318.54507 325.21652 332.54791">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_TB</tspan></text>
<text
y="-528.771"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464"
id="text4583"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan4585"
sodipodi:role="line"
y="-528.771"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan></text>
id="tspan4585"
sodipodi:role="line"
y="-528.771"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan></text>
<text
y="-460.74561"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054"
id="text4587"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan4589"
sodipodi:role="line"
y="-460.74561"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan></text>
id="tspan4589"
sodipodi:role="line"
y="-460.74561"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan></text>
<text
y="-392.72021"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963"
id="text4591"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan4593"
sodipodi:role="line"
y="-392.72021"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text>
id="tspan4593"
sodipodi:role="line"
y="-392.72021"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text>
<text
y="-588.2937"
x="5.8031301 13.134519 19.805964 29.801128 36.472572 43.14402 47.139687 53.811131 56.474907 59.810631 66.482071 70.477737 77.149185 83.820625 87.816299 91.152016 94.48774 97.823463 104.4949 111.16635 114.50207 117.83779 120.50157 127.17302 129.83679 136.50824 139.84396 143.17969 145.84346 149.83913 155.83862 159.17435 162.51007 165.84579 169.84146 176.51291 183.18434 189.18385 199.17902 201.84279 205.17851 208.51424 215.18568 221.85713 225.19284 229.18851 235.85995 239.19568 245.86713 249.20285 252.53857 260.5419 269.87714 273.21286 281.21619 289.21951 295.89096"
id="text5847"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan5849"
sodipodi:role="line"
y="-588.2937"
x="5.8031301 13.134519 19.805964 29.801128 36.472572 43.14402 47.139687 53.811131 56.474907 59.810631 66.482071 70.477737 77.149185 83.820625 87.816299 91.152016 94.48774 97.823463 104.4949 111.16635 114.50207 117.83779 120.50157 127.17302 129.83679 136.50824 139.84396 143.17969 145.84346 149.83913 155.83862 159.17435 162.51007 165.84579 169.84146 176.51291 183.18434 189.18385 199.17902 201.84279 205.17851 208.51424 215.18568 221.85713 225.19284 229.18851 235.85995 239.19568 245.86713 249.20285 252.53857 260.5419 269.87714 273.21286 281.21619 289.21951 295.89096">Temporal order, top field first transmitted (e.g. BG/PAL)</tspan></text>
id="tspan5849"
sodipodi:role="line"
y="-588.2937"
x="5.8031301 13.134519 19.805964 29.801128 36.472572 43.14402 47.139687 53.811131 56.474907 59.810631 66.482071 70.477737 77.149185 83.820625 87.816299 91.152016 94.48774 97.823463 104.4949 111.16635 114.50207 117.83779 120.50157 127.17302 129.83679 136.50824 139.84396 143.17969 145.84346 149.83913 155.83862 159.17435 162.51007 165.84579 169.84146 176.51291 183.18434 189.18385 199.17902 201.84279 205.17851 208.51424 215.18568 221.85713 225.19284 229.18851 235.85995 239.19568 245.86713 249.20285 252.53857 260.5419 269.87714 273.21286 281.21619 289.21951 295.89096">Temporal order, top field first transmitted (e.g. BG/PAL)</tspan></text>
<text
y="-86.604706"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 97.175514 106.51073 113.18218 120.51357"
id="text5851"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan5853"
sodipodi:role="line"
y="-86.604706"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 97.175514 106.51073 113.18218 120.51357">V4L2_FIELD_SEQ_TB</tspan></text>
id="tspan5853"
sodipodi:role="line"
y="-86.604706"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 97.175514 106.51073 113.18218 120.51357">V4L2_FIELD_SEQ_TB</tspan></text>
<text
y="-192.89471"
x="10.05469 18.058023 24.729465 31.400909 38.072357 44.743801 52.075188 55.410912 63.414246 70.085686 78.748962 85.42041 88.756134 97.419411 104.7508 112.75413 121.41741 128.08885 136.09219 144.75546 152.7588 161.42207 168.09352 176.09685 183.42824 186.76396 190.75963 200.75479 203.41858 209.41808 216.08952 218.7533 221.41707 228.08852 234.75996 241.43141 248.10286"
id="text5855"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan5857"
sodipodi:role="line"
y="-192.89471"
x="10.05469 18.058023 24.729465 31.400909 38.072357 44.743801 52.075188 55.410912 63.414246 70.085686 78.748962 85.42041 88.756134 97.419411 104.7508 112.75413 121.41741 128.08885 136.09219 144.75546 152.7588 161.42207 168.09352 176.09685 183.42824 186.76396 190.75963 200.75479 203.41858 209.41808 216.08952 218.7533 221.41707 228.08852 234.75996 241.43141 248.10286">V4L2_FIELD_INTERLACED_BT (misaligned)</tspan></text>
id="tspan5857"
sodipodi:role="line"
y="-192.89471"
x="10.05469 18.058023 24.729465 31.400909 38.072357 44.743801 52.075188 55.410912 63.414246 70.085686 78.748962 85.42041 88.756134 97.419411 104.7508 112.75413 121.41741 128.08885 136.09219 144.75546 152.7588 161.42207 168.09352 176.09685 183.42824 186.76396 190.75963 200.75479 203.41858 209.41808 216.08952 218.7533 221.41707 228.08852 234.75996 241.43141 248.10286">V4L2_FIELD_INTERLACED_BT (misaligned)</tspan></text>
<text
y="-294.93271"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 84.50457 93.167847 100.49924 108.50257 117.16585 123.83729 131.84062 140.50391 148.50723 157.17052 160.50624 163.84196 167.17769 175.18102 181.85246 188.52391 195.19534 201.86679 209.19818 212.53391 220.53723 227.20868 235.87196 242.5434 245.87912 254.5424 261.87378 269.87714 278.54041 285.21185 293.21518 301.87845 309.88177 318.54507 325.21652 332.54791"
id="text5859"
style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan5861"
sodipodi:role="line"
y="-294.93271"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 84.50457 93.167847 100.49924 108.50257 117.16585 123.83729 131.84062 140.50391 148.50723 157.17052 160.50624 163.84196 167.17769 175.18102 181.85246 188.52391 195.19534 201.86679 209.19818 212.53391 220.53723 227.20868 235.87196 242.5434 245.87912 254.5424 261.87378 269.87714 278.54041 285.21185 293.21518 301.87845 309.88177 318.54507 325.21652 332.54791">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_TB</tspan></text>
id="tspan5861"
sodipodi:role="line"
y="-294.93271"
x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 84.50457 93.167847 100.49924 108.50257 117.16585 123.83729 131.84062 140.50391 148.50723 157.17052 160.50624 163.84196 167.17769 175.18102 181.85246 188.52391 195.19534 201.86679 209.19818 212.53391 220.53723 227.20868 235.87196 242.5434 245.87912 254.5424 261.87378 269.87714 278.54041 285.21185 293.21518 301.87845 309.88177 318.54507 325.21652 332.54791">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_TB</tspan></text>
<text
y="-324.69479"
x="10.05469 14.17945 18.766184 20.597576 25.184309 29.771042 34.357777 38.944508 41.237877 43.531242 48.117977 50.865067 53.158432 55.451801 57.283192 61.869926 63.701321 68.288048"
id="text7131"
style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan7133"
sodipodi:role="line"
y="-324.69479"
x="10.05469 14.17945 18.766184 20.597576 25.184309 29.771042 34.357777 38.944508 41.237877 43.531242 48.117977 50.865067 53.158432 55.451801 57.283192 61.869926 63.701321 68.288048">v4l2_buffer.field:</tspan></text>
id="tspan7133"
sodipodi:role="line"
y="-324.69479"
x="10.05469 14.17945 18.766184 20.597576 25.184309 29.771042 34.357777 38.944508 41.237877 43.531242 48.117977 50.865067 53.158432 55.451801 57.283192 61.869926 63.701321 68.288048">v4l2_buffer.field:</tspan></text>
<text
y="-311.9397"
x="10.05469 15.55712 20.143852 24.730585 29.317318 33.904053 38.944508 41.237877 46.740307 51.327042 57.283192 61.869926 66.910378 73.328506 95.0867 100.58913 105.17586 109.7626 114.34933 118.93606 123.97652 126.26987 131.77232 136.35905 142.3152 146.90193 152.40436 158.82249 163.86295 168.9034 175.32153 197.12534 202.62778 207.21451 211.80124 216.38797 220.9747 226.01515 228.30853 233.81096 238.39769 244.35384 248.94058 253.98103 260.39917 282.15695 287.65936 292.24609 296.83282 301.41956 306.00629 311.04675 313.34012 318.84256 323.42929 329.38544 333.97217 339.47461 345.89273 350.9332 355.97363 362.39175 384.19559 389.698 394.28473 398.87149 403.45822 408.04495 413.08539 415.37875 420.8812 425.46793 431.42407 436.0108 441.05127 447.46939 469.2276 474.73001 479.31674 483.90347 488.49023 493.07697 498.1174 500.41077 505.91321 510.49994 516.45612 521.04285 526.54523 532.96338 538.00385 543.04431 549.4624"
x="10.05469 15.55712 20.143852 24.730585 29.317318 33.904053 38.944508 41.237877 46.740307 51.327042 57.283192 61.869926 66.910378 73.328506 95.0867 100.58913 105.17586 109.7626 114.34933 118.93606 123.97652 126.26987 131.77232 136.35905 142.3152 146.90193 152.40436 158.82249 163.86295 168.9034 175.32153 197.12534 202.62778 207.21451 211.80124 216.38797 220.9747 226.01515 228.30853 233.81096 238.39769 244.35384 248.94058 253.98103 260.39917 282.15695 287.65936 292.24609 296.83282 301.41956 306.00629 311.04675 313.34012 318.84256 323.42929 329.38544 333.97217 339.47461 345.89273 350.9332 355.97363 362.39175 384.19559 389.698 394.28473 398.87149 403.45822 408.04495 413.08539 415.37875 420.8812 425.46793 431.42407 436.0108 441.05127 447.46939 469.2276 474.73001 479.31674 483.90347 488.49023 493.07697 498.1174 500.41077 505.91321 510.49994 516.45612 521.04285 526.54523 532.96338
538.00385 543.04431 549.4624"
id="text7135"
style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan7137"
sodipodi:role="line"
y="-311.9397"
x="10.05469 15.55712 20.143852 24.730585 29.317318 33.904053 38.944508 41.237877 46.740307 51.327042 57.283192 61.869926 66.910378 73.328506 95.0867 100.58913 105.17586 109.7626 114.34933 118.93606 123.97652 126.26987 131.77232 136.35905 142.3152 146.90193 152.40436 158.82249 163.86295 168.9034 175.32153 197.12534 202.62778 207.21451 211.80124 216.38797 220.9747 226.01515 228.30853 233.81096 238.39769 244.35384 248.94058 253.98103 260.39917 282.15695 287.65936 292.24609 296.83282 301.41956 306.00629 311.04675 313.34012 318.84256 323.42929 329.38544 333.97217 339.47461 345.89273 350.9332 355.97363 362.39175 384.19559 389.698 394.28473 398.87149 403.45822 408.04495 413.08539 415.37875 420.8812 425.46793 431.42407 436.0108 441.05127 447.46939 469.2276 474.73001 479.31674 483.90347 488.49023 493.07697 498.1174 500.41077 505.91321 510.49994 516.45612 521.04285 526.54523 532.96338 538.00385 543.04431 549.4624">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOM</tspan></text>
id="tspan7137"
sodipodi:role="line"
y="-311.9397"
x="10.05469 15.55712 20.143852 24.730585 29.317318 33.904053 38.944508 41.237877 46.740307 51.327042 57.283192 61.869926 66.910378 73.328506 95.0867 100.58913 105.17586 109.7626 114.34933 118.93606 123.97652 126.26987 131.77232 136.35905 142.3152 146.90193 152.40436 158.82249 163.86295 168.9034 175.32153 197.12534 202.62778 207.21451 211.80124 216.38797 220.9747 226.01515 228.30853 233.81096 238.39769 244.35384 248.94058 253.98103 260.39917 282.15695 287.65936 292.24609 296.83282 301.41956 306.00629 311.04675 313.34012 318.84256 323.42929 329.38544 333.97217 339.47461 345.89273 350.9332 355.97363 362.39175 384.19559 389.698 394.28473 398.87149 403.45822 408.04495 413.08539 415.37875 420.8812 425.46793 431.42407 436.0108 441.05127 447.46939 469.2276 474.73001 479.31674 483.90347 488.49023 493.07697 498.1174 500.41077 505.91321 510.49994 516.45612 521.04285 526.54523 532.96338
538.00385 543.04431 549.4624">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOM</tspan></text>
</g></svg>

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 171 KiB

View file

@ -18,8 +18,8 @@
sodipodi:docname="nv12mt.svg"
style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata
id="metadata383"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
@ -47,11 +47,11 @@
id="defs4"><clipPath
id="presentation_clip_path"
clipPathUnits="userSpaceOnUse"><rect
x="0"
y="0"
width="28000"
height="21000"
id="rect7" /></clipPath></defs><defs
x="0"
y="0"
width="28000"
height="21000"
id="rect7" /></clipPath></defs><defs
id="defs9" /><defs
id="defs80" /><defs
id="defs103" /><defs
@ -65,386 +65,386 @@
id="g177"
transform="translate(-3285.889,-3185.889)"><g
id="g179"><g
id="id1"
class="Slide"
clip-path="url(#presentation_clip_path)"><g
class="Page"
id="g182"><g
class="com.sun.star.drawing.CustomShape"
id="g184"><g
id="id6"><rect
class="BoundingBox"
x="3299"
y="3199"
width="2403"
height="1403"
id="rect187"
style="fill:none;stroke:none" /><path
d="m 4500,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path189"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text191"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan193"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="4325"
y="4121"
id="tspan195"><tspan
id="tspan197"
style="fill:#000000;stroke:none">0</tspan></tspan></tspan></text>
id="id1"
class="Slide"
clip-path="url(#presentation_clip_path)"><g
class="Page"
id="g182"><g
class="com.sun.star.drawing.CustomShape"
id="g184"><g
id="id6"><rect
class="BoundingBox"
x="3299"
y="3199"
width="2403"
height="1403"
id="rect187"
style="fill:none;stroke:none" /><path
d="m 4500,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path189"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text191"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan193"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="4325"
y="4121"
id="tspan195"><tspan
id="tspan197"
style="fill:#000000;stroke:none">0</tspan></tspan></tspan></text>
</g></g><g
class="com.sun.star.drawing.CustomShape"
id="g199"><g
id="id7"><rect
class="BoundingBox"
x="5699"
y="3199"
width="2403"
height="1403"
id="rect202"
style="fill:none;stroke:none" /><path
d="m 6900,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path204"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /></g></g><g
class="com.sun.star.drawing.CustomShape"
id="g206"><g
id="id8"><rect
class="BoundingBox"
x="8099"
y="3199"
width="2403"
height="1403"
id="rect209"
style="fill:none;stroke:none" /><path
d="m 9300,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path211"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text213"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan215"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="9125"
y="4121"
id="tspan217"><tspan
id="tspan219"
style="fill:#000000;stroke:none">6</tspan></tspan></tspan></text>
class="com.sun.star.drawing.CustomShape"
id="g199"><g
id="id7"><rect
class="BoundingBox"
x="5699"
y="3199"
width="2403"
height="1403"
id="rect202"
style="fill:none;stroke:none" /><path
d="m 6900,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path204"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /></g></g><g
class="com.sun.star.drawing.CustomShape"
id="g206"><g
id="id8"><rect
class="BoundingBox"
x="8099"
y="3199"
width="2403"
height="1403"
id="rect209"
style="fill:none;stroke:none" /><path
d="m 9300,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path211"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text213"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan215"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="9125"
y="4121"
id="tspan217"><tspan
id="tspan219"
style="fill:#000000;stroke:none">6</tspan></tspan></tspan></text>
</g></g><g
class="com.sun.star.drawing.CustomShape"
id="g221"><g
id="id9"><rect
class="BoundingBox"
x="5699"
y="3199"
width="2403"
height="1403"
id="rect224"
style="fill:none;stroke:none" /><path
d="m 6900,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path226"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text228"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan230"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="6725"
y="4121"
id="tspan232"><tspan
id="tspan234"
style="fill:#000000;stroke:none">1</tspan></tspan></tspan></text>
class="com.sun.star.drawing.CustomShape"
id="g221"><g
id="id9"><rect
class="BoundingBox"
x="5699"
y="3199"
width="2403"
height="1403"
id="rect224"
style="fill:none;stroke:none" /><path
d="m 6900,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path226"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text228"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan230"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="6725"
y="4121"
id="tspan232"><tspan
id="tspan234"
style="fill:#000000;stroke:none">1</tspan></tspan></tspan></text>
</g></g><g
class="com.sun.star.drawing.CustomShape"
id="g236"><g
id="id10"><rect
class="BoundingBox"
x="10499"
y="3199"
width="2403"
height="1403"
id="rect239"
style="fill:none;stroke:none" /><path
d="m 11700,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path241"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text243"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan245"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="11525"
y="4121"
id="tspan247"><tspan
id="tspan249"
style="fill:#000000;stroke:none">7</tspan></tspan></tspan></text>
class="com.sun.star.drawing.CustomShape"
id="g236"><g
id="id10"><rect
class="BoundingBox"
x="10499"
y="3199"
width="2403"
height="1403"
id="rect239"
style="fill:none;stroke:none" /><path
d="m 11700,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path241"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text243"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan245"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="11525"
y="4121"
id="tspan247"><tspan
id="tspan249"
style="fill:#000000;stroke:none">7</tspan></tspan></tspan></text>
</g></g><g
class="com.sun.star.drawing.CustomShape"
id="g251"><g
id="id11"><rect
class="BoundingBox"
x="3299"
y="4599"
width="2403"
height="1403"
id="rect254"
style="fill:none;stroke:none" /><path
d="m 4500,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path256"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text258"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan260"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="4325"
y="5521"
id="tspan262"><tspan
id="tspan264"
style="fill:#000000;stroke:none">2</tspan></tspan></tspan></text>
class="com.sun.star.drawing.CustomShape"
id="g251"><g
id="id11"><rect
class="BoundingBox"
x="3299"
y="4599"
width="2403"
height="1403"
id="rect254"
style="fill:none;stroke:none" /><path
d="m 4500,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path256"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text258"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan260"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="4325"
y="5521"
id="tspan262"><tspan
id="tspan264"
style="fill:#000000;stroke:none">2</tspan></tspan></tspan></text>
</g></g><g
class="com.sun.star.drawing.CustomShape"
id="g266"><g
id="id12"><rect
class="BoundingBox"
x="5699"
y="4599"
width="2403"
height="1403"
id="rect269"
style="fill:none;stroke:none" /><path
d="m 6900,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path271"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /></g></g><g
class="com.sun.star.drawing.CustomShape"
id="g273"><g
id="id13"><rect
class="BoundingBox"
x="8099"
y="4599"
width="2403"
height="1403"
id="rect276"
style="fill:none;stroke:none" /><path
d="m 9300,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path278"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text280"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan282"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="9125"
y="5521"
id="tspan284"><tspan
id="tspan286"
style="fill:#000000;stroke:none">4</tspan></tspan></tspan></text>
class="com.sun.star.drawing.CustomShape"
id="g266"><g
id="id12"><rect
class="BoundingBox"
x="5699"
y="4599"
width="2403"
height="1403"
id="rect269"
style="fill:none;stroke:none" /><path
d="m 6900,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path271"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /></g></g><g
class="com.sun.star.drawing.CustomShape"
id="g273"><g
id="id13"><rect
class="BoundingBox"
x="8099"
y="4599"
width="2403"
height="1403"
id="rect276"
style="fill:none;stroke:none" /><path
d="m 9300,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path278"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text280"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan282"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="9125"
y="5521"
id="tspan284"><tspan
id="tspan286"
style="fill:#000000;stroke:none">4</tspan></tspan></tspan></text>
</g></g><g
class="com.sun.star.drawing.CustomShape"
id="g288"><g
id="id14"><rect
class="BoundingBox"
x="5699"
y="4599"
width="2403"
height="1403"
id="rect291"
style="fill:none;stroke:none" /><path
d="m 6900,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path293"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text295"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan297"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="6725"
y="5521"
id="tspan299"><tspan
id="tspan301"
style="fill:#000000;stroke:none">3</tspan></tspan></tspan></text>
class="com.sun.star.drawing.CustomShape"
id="g288"><g
id="id14"><rect
class="BoundingBox"
x="5699"
y="4599"
width="2403"
height="1403"
id="rect291"
style="fill:none;stroke:none" /><path
d="m 6900,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path293"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text295"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan297"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="6725"
y="5521"
id="tspan299"><tspan
id="tspan301"
style="fill:#000000;stroke:none">3</tspan></tspan></tspan></text>
</g></g><g
class="com.sun.star.drawing.CustomShape"
id="g303"><g
id="id15"><rect
class="BoundingBox"
x="10499"
y="4599"
width="2403"
height="1403"
id="rect306"
style="fill:none;stroke:none" /><path
d="m 11700,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path308"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text310"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan312"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="11525"
y="5521"
id="tspan314"><tspan
id="tspan316"
style="fill:#000000;stroke:none">5</tspan></tspan></tspan></text>
class="com.sun.star.drawing.CustomShape"
id="g303"><g
id="id15"><rect
class="BoundingBox"
x="10499"
y="4599"
width="2403"
height="1403"
id="rect306"
style="fill:none;stroke:none" /><path
d="m 11700,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
id="path308"
inkscape:connector-curvature="0"
style="fill:none;stroke:#3465a4" /><text
class="TextShape"
id="text310"><tspan
class="TextParagraph"
font-size="635px"
font-weight="400"
id="tspan312"
style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
class="TextPosition"
x="11525"
y="5521"
id="tspan314"><tspan
id="tspan316"
style="fill:#000000;stroke:none">5</tspan></tspan></tspan></text>
</g></g><g
class="com.sun.star.drawing.LineShape"
id="g318"><g
id="id16"><rect
class="BoundingBox"
x="5199"
y="3850"
width="1402"
height="301"
id="rect321"
style="fill:none;stroke:none" /><path
d="m 5200,4000 970,0"
id="path323"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 6600,4000 -450,-150 0,300 450,-150 z"
id="path325"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g><g
class="com.sun.star.drawing.LineShape"
id="g327"><g
id="id17"><rect
class="BoundingBox"
x="5000"
y="4299"
width="1202"
height="802"
id="rect330"
style="fill:none;stroke:none" /><path
d="m 6200,4300 -842,561"
id="path332"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 5000,5100 458,-125 -167,-249 -291,374 z"
id="path334"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g><g
class="com.sun.star.drawing.LineShape"
id="g336"><g
id="id18"><rect
class="BoundingBox"
x="5399"
y="5250"
width="1202"
height="301"
id="rect339"
style="fill:none;stroke:none" /><path
d="m 5400,5400 770,0"
id="path341"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 6600,5400 -450,-150 0,300 450,-150 z"
id="path343"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g><g
class="com.sun.star.drawing.LineShape"
id="g345"><g
id="id19"><rect
class="BoundingBox"
x="7599"
y="5250"
width="1202"
height="301"
id="rect348"
style="fill:none;stroke:none" /><path
d="m 7600,5400 770,0"
id="path350"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 8800,5400 -450,-150 0,300 450,-150 z"
id="path352"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g><g
class="com.sun.star.drawing.LineShape"
id="g354"><g
id="id20"><rect
class="BoundingBox"
x="9799"
y="5250"
width="1402"
height="301"
id="rect357"
style="fill:none;stroke:none" /><path
d="m 9800,5400 970,0"
id="path359"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 11200,5400 -450,-150 0,300 450,-150 z"
id="path361"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g><g
class="com.sun.star.drawing.LineShape"
id="g363"><g
id="id21"><rect
class="BoundingBox"
x="9900"
y="4200"
width="1202"
height="802"
id="rect366"
style="fill:none;stroke:none" /><path
d="m 11100,5000 -842,-561"
id="path368"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 9900,4200 291,374 167,-249 -458,-125 z"
id="path370"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g><g
class="com.sun.star.drawing.LineShape"
id="g372"><g
id="id22"><rect
class="BoundingBox"
x="9999"
y="3850"
width="1402"
height="301"
id="rect375"
style="fill:none;stroke:none" /><path
d="m 10000,4000 970,0"
id="path377"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 11400,4000 -450,-150 0,300 450,-150 z"
id="path379"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g></g></g></g></g></svg>
class="com.sun.star.drawing.LineShape"
id="g318"><g
id="id16"><rect
class="BoundingBox"
x="5199"
y="3850"
width="1402"
height="301"
id="rect321"
style="fill:none;stroke:none" /><path
d="m 5200,4000 970,0"
id="path323"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 6600,4000 -450,-150 0,300 450,-150 z"
id="path325"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g><g
class="com.sun.star.drawing.LineShape"
id="g327"><g
id="id17"><rect
class="BoundingBox"
x="5000"
y="4299"
width="1202"
height="802"
id="rect330"
style="fill:none;stroke:none" /><path
d="m 6200,4300 -842,561"
id="path332"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 5000,5100 458,-125 -167,-249 -291,374 z"
id="path334"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g><g
class="com.sun.star.drawing.LineShape"
id="g336"><g
id="id18"><rect
class="BoundingBox"
x="5399"
y="5250"
width="1202"
height="301"
id="rect339"
style="fill:none;stroke:none" /><path
d="m 5400,5400 770,0"
id="path341"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 6600,5400 -450,-150 0,300 450,-150 z"
id="path343"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g><g
class="com.sun.star.drawing.LineShape"
id="g345"><g
id="id19"><rect
class="BoundingBox"
x="7599"
y="5250"
width="1202"
height="301"
id="rect348"
style="fill:none;stroke:none" /><path
d="m 7600,5400 770,0"
id="path350"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 8800,5400 -450,-150 0,300 450,-150 z"
id="path352"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g><g
class="com.sun.star.drawing.LineShape"
id="g354"><g
id="id20"><rect
class="BoundingBox"
x="9799"
y="5250"
width="1402"
height="301"
id="rect357"
style="fill:none;stroke:none" /><path
d="m 9800,5400 970,0"
id="path359"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 11200,5400 -450,-150 0,300 450,-150 z"
id="path361"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g><g
class="com.sun.star.drawing.LineShape"
id="g363"><g
id="id21"><rect
class="BoundingBox"
x="9900"
y="4200"
width="1202"
height="802"
id="rect366"
style="fill:none;stroke:none" /><path
d="m 11100,5000 -842,-561"
id="path368"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 9900,4200 291,374 167,-249 -458,-125 z"
id="path370"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g><g
class="com.sun.star.drawing.LineShape"
id="g372"><g
id="id22"><rect
class="BoundingBox"
x="9999"
y="3850"
width="1402"
height="301"
id="rect375"
style="fill:none;stroke:none" /><path
d="m 10000,4000 970,0"
id="path377"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ff3333" /><path
d="m 11400,4000 -450,-150 0,300 450,-150 z"
id="path379"
inkscape:connector-curvature="0"
style="fill:#ff3333;stroke:none" /></g></g></g></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 44 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 551 KiB

After

Width:  |  Height:  |  Size: 203 KiB

View file

@ -18,11 +18,11 @@
id="metadata100">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

View file

@ -18,11 +18,11 @@
id="metadata260">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

@ -18,11 +18,11 @@
id="metadata186">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -42,19 +42,21 @@
inkscape:current-layer="g10"
units="mm" /><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs6"><clipPath
id="clipPath20"
clipPathUnits="userSpaceOnUse"><path
inkscape:connector-curvature="0"
id="path22"
d="m 0,0 5950,0 0,3922 L 0,3922 0,0 Z m 0,3922 5950,0 0,1 -5950,0 0,-1 z m 0,1 1359,0 0,1 -1359,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1363,0 0,1 -1363,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1367,0 0,1 -1367,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1371,0 0,1 -1371,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1375,0 0,1 -1375,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1379,0 0,1 -1379,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1383,0 0,1 -1383,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1387,0 0,1 -1387,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1391,0 0,1 -1391,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1390,0 0,1 -1390,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1386,0 0,1 -1386,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1382,0 0,1 -1382,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1378,0 0,1 -1378,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1374,0 0,1 -1374,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1370,0 0,1 -1370,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1366,0 0,1 -1366,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1362,0 0,1 -1362,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1358,0 0,1 -1358,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,4478 -5950,0 0,-4478 z" /></clipPath><clipPath
inkscape:connector-curvature="0"
id="path22"
d="m 0,0 5950,0 0,3922 L 0,3922 0,0 Z m 0,3922 5950,0 0,1 -5950,0 0,-1 z m 0,1 1359,0 0,1 -1359,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1363,0 0,1 -1363,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1367,0 0,1 -1367,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1371,0 0,1 -1371,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1375,0 0,1 -1375,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1379,0 0,1 -1379,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1383,0 0,1 -1383,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1387,0 0,1 -1387,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1391,0 0,1 -1391,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1390,0 0,1 -1390,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1386,0 0,1 -1386,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1382,0 0,1 -1382,0 0,-1 z m
1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1378,0 0,1 -1378,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1374,0 0,1 -1374,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1370,0 0,1 -1370,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1366,0 0,1 -1366,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1362,0 0,1 -1362,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1358,0 0,1 -1358,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,4478 -5950,0 0,-4478 z" /></clipPath><clipPath
id="clipPath98"
clipPathUnits="userSpaceOnUse"><path
inkscape:connector-curvature="0"
id="path100"
d="m 0,0 5950,0 0,4546 L 0,4546 0,0 Z m 0,4546 5950,0 0,1 -5950,0 0,-1 z m 0,1 1360,0 0,1 -1360,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1364,0 0,1 -1364,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1368,0 0,1 -1368,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1372,0 0,1 -1372,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1376,0 0,1 -1376,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1380,0 0,1 -1380,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1384,0 0,1 -1384,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1388,0 0,1 -1388,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1391,0 0,1 -1391,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1389,0 0,1 -1389,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1385,0 0,1 -1385,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1381,0 0,1 -1381,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1377,0 0,1 -1377,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1373,0 0,1 -1373,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1369,0 0,1 -1369,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1365,0 0,1 -1365,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1361,0 0,1 -1361,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1357,0 0,1 -1357,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,3854 -5950,0 0,-3854 z" /></clipPath></defs><g
inkscape:connector-curvature="0"
id="path100"
d="m 0,0 5950,0 0,4546 L 0,4546 0,0 Z m 0,4546 5950,0 0,1 -5950,0 0,-1 z m 0,1 1360,0 0,1 -1360,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1364,0 0,1 -1364,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1368,0 0,1 -1368,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1372,0 0,1 -1372,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1376,0 0,1 -1376,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1380,0 0,1 -1380,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1384,0 0,1 -1384,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1388,0 0,1 -1388,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1391,0 0,1 -1391,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1389,0 0,1 -1389,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1385,0 0,1 -1385,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1381,0 0,1 -1381,0 0,-1 z m
1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1377,0 0,1 -1377,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1373,0 0,1 -1373,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1369,0 0,1 -1369,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1365,0 0,1 -1365,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1361,0 0,1 -1361,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1357,0 0,1 -1357,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,3854 -5950,0 0,-3854 z" /></clipPath></defs><g
transform="matrix(0.125,0,0,-0.125,-87.571875,638.05691)"
inkscape:label="vbi_525"
inkscape:groupmode="layer"
@ -62,165 +64,165 @@
transform="matrix(1.3000026,0,0,1.3000026,-210.17435,-1094.2823)"
id="g12"
style=""><path
inkscape:connector-curvature="0"
id="path14"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1281.75,3974.45 0,-85.05" /></g><g
inkscape:connector-curvature="0"
id="path14"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1281.75,3974.45 0,-85.05" /></g><g
transform="matrix(1.3000026,0,0,1.3000026,-210.17435,-1094.2823)"
id="g16"
style=""><g
clip-path="url(#clipPath20)"
id="g18"
style=""><path
inkscape:connector-curvature="0"
id="path24"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1281.75,3931.93 113.4,0" /></g></g><g
clip-path="url(#clipPath20)"
id="g18"
style=""><path
inkscape:connector-curvature="0"
id="path24"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1281.75,3931.93 113.4,0" /></g></g><g
transform="matrix(1.3000026,0,0,1.3000026,-210.17435,-1094.2823)"
id="g26"
style=""><path
inkscape:connector-curvature="0"
id="path28"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 1352.31,3922.48 37.8,9.45 -37.8,9.45 0,-18.9" /><path
inkscape:connector-curvature="0"
id="path30"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1352.31,3922.48 37.8,9.45 -37.8,9.45 0,-18.9 z" /><path
inkscape:connector-curvature="0"
id="path32"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4683.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path34"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4400.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path36"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4116.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path38"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3833.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path40"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3549.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path42"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3266.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path44"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2982.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path46"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2699.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path48"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2415.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path50"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2132.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path52"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1848.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path54"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1565.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path56"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1281.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path58"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 998.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path60"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 714.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path62"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4683.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path64"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4400.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path66"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4116.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path68"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3833.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path70"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3549.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path72"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3266.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path74"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2982.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path76"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2699.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path78"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2415.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path80"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2132.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path82"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1848.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path84"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1565.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path86"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1281.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path88"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 998.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path90"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 714.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path92"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1281.75,4598.15 0,-85.05" /></g><g
inkscape:connector-curvature="0"
id="path28"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 1352.31,3922.48 37.8,9.45 -37.8,9.45 0,-18.9" /><path
inkscape:connector-curvature="0"
id="path30"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1352.31,3922.48 37.8,9.45 -37.8,9.45 0,-18.9 z" /><path
inkscape:connector-curvature="0"
id="path32"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4683.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path34"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4400.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path36"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4116.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path38"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3833.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path40"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3549.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path42"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3266.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path44"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2982.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path46"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2699.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path48"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2415.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path50"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2132.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path52"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1848.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path54"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1565.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path56"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1281.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path58"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 998.25,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path60"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 714.75,4059.5 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path62"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4683.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path64"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4400.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path66"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 4116.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path68"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3833.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path70"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3549.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path72"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 3266.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path74"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2982.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path76"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2699.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path78"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2415.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path80"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 2132.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path82"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1848.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path84"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1565.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path86"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1281.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path88"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 998.25,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path90"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 714.75,4144.55 0,-56.7" /><path
inkscape:connector-curvature="0"
id="path92"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1281.75,4598.15 0,-85.05" /></g><g
transform="matrix(1.3000026,0,0,1.3000026,-210.17435,-1094.2823)"
id="g94"
style=""><g
clip-path="url(#clipPath98)"
id="g96"
style=""><path
inkscape:connector-curvature="0"
id="path102"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1281.75,4555.63 113.4,0" /></g></g><path
clip-path="url(#clipPath98)"
id="g96"
style=""><path
inkscape:connector-curvature="0"
id="path102"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1281.75,4555.63 113.4,0" /></g></g><path
d="m 1547.8322,4815.7637 49.1401,12.2851 -49.1401,12.285 0,-24.5701"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path106"
@ -546,266 +548,266 @@
id="text268"
style="font-variant:normal;font-weight:normal;font-size:61.42512512px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan270"
sodipodi:role="line"
y="-4035.6582"
x="1621.9453 1642.3999 1676.5522">(1)</tspan></text>
id="tspan270"
sodipodi:role="line"
y="-4035.6582"
x="1621.9453 1642.3999 1676.5522">(1)</tspan></text>
<text
y="-4127.7959"
x="4199.7334"
id="text272"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan274"
sodipodi:role="line"
y="-4127.7959"
x="4199.7334 3831.1829 2725.5305 3112.509 3462.6321 4568.2842 4916.3442 4957.3271 5653.4458 5694.4287 5284.895 5325.8779 2356.9773 1988.4264 1210.3424 1251.3252 1292.3081 1619.8759 841.79163 882.77454 923.75732">874569101211322631262</tspan><tspan
id="tspan276"
sodipodi:role="line"
y="-4238.3613"
x="4158.748 4199.7314 4240.7144 3790.1975 3831.1807 3872.1633 2684.5457 2725.5283 2766.5112 3071.5237 3112.5063 3153.4895 3421.647 3462.6299 3503.6125 4527.2988 4568.2822 4609.2646 4895.8496 4936.833 4977.8154 5632.9517 5673.9341 5714.917 5264.4009 5305.3833 5346.3662 2315.9946 2356.9775 2397.9604 1947.444 1988.4269 2029.4097 1210.3424 1251.3252 1292.3081 1578.8931 1619.876 1660.8589 841.79163 882.77454 923.75732">271270267268269272273275274266265263264262</tspan><tspan
id="tspan278"
sodipodi:role="line"
y="-5049.1729"
x="2725.5347 4568.2881 1988.4331 2356.9839 1619.8822 3094.0852 3462.636 4916.3506 4957.334 5284.9019 5325.8843 5653.4526 5694.4351 3812.7656 4181.3164">492315610111278</tspan><tspan
id="tspan280"
sodipodi:role="line"
y="-4938.6074"
x="2725.5474 4568.3013 1988.446 2356.9966 1619.8953 3094.0981 3462.6489 4916.3638 4957.3472 5284.9146 5325.8975 5653.4653 5694.4482 3812.7788 4181.3296">492315610111278</tspan><tspan
id="tspan282"
sodipodi:role="line"
y="-5049.1729"
x="841.81781 882.8006 923.78326">524</tspan><tspan
id="tspan284"
sodipodi:role="line"
y="-4938.6074"
x="841.81781 882.8006 923.78326">261</tspan><tspan
id="tspan286"
sodipodi:role="line"
y="-5049.1729"
x="1210.3684 1251.3512 1292.3342">525</tspan><tspan
id="tspan288"
sodipodi:role="line"
y="-4938.6074"
x="1210.3684 1251.3512 1292.3342">262</tspan><tspan
id="tspan290"
sodipodi:role="line"
y="-5049.1729"
x="6022.0161 6062.999">22</tspan><tspan
id="tspan292"
sodipodi:role="line"
y="-4938.6074"
x="6022.0161 6062.999">22</tspan><tspan
id="tspan294"
sodipodi:role="line"
y="-5049.1729"
x="6390.5669 6431.5498">23</tspan><tspan
id="tspan296"
sodipodi:role="line"
y="-4938.6074"
x="6390.5669 6431.5498">23</tspan><tspan
id="tspan298"
sodipodi:role="line"
y="-4238.3623"
x="6001.5244 6042.5068 6083.4902">285</tspan><tspan
id="tspan300"
sodipodi:role="line"
y="-4127.7964"
x="6022.0156 6062.9985">22</tspan><tspan
id="tspan302"
sodipodi:role="line"
y="-4238.3623"
x="6370.0747 6411.0571 6452.04">286</tspan><tspan
id="tspan304"
sodipodi:role="line"
y="-4127.7964"
x="6390.5664 6431.5493">23</tspan><tspan
id="tspan306"
sodipodi:role="line"
y="-4459.4922"
x="3540.4146 3581.3972 3618.2522 3638.7437 3659.2354 3679.7266 3696.0901 3737.073 3753.4365">1st field</tspan><tspan
id="tspan308"
sodipodi:role="line"
y="-3648.6809"
x="3528.1047 3569.0876 3610.0703 3651.0532 3671.5447 3692.0361 3708.3999 3749.3826 3765.7463">2nd field</tspan></text>
id="tspan274"
sodipodi:role="line"
y="-4127.7959"
x="4199.7334 3831.1829 2725.5305 3112.509 3462.6321 4568.2842 4916.3442 4957.3271 5653.4458 5694.4287 5284.895 5325.8779 2356.9773 1988.4264 1210.3424 1251.3252 1292.3081 1619.8759 841.79163 882.77454 923.75732">874569101211322631262</tspan><tspan
id="tspan276"
sodipodi:role="line"
y="-4238.3613"
x="4158.748 4199.7314 4240.7144 3790.1975 3831.1807 3872.1633 2684.5457 2725.5283 2766.5112 3071.5237 3112.5063 3153.4895 3421.647 3462.6299 3503.6125 4527.2988 4568.2822 4609.2646 4895.8496 4936.833 4977.8154 5632.9517 5673.9341 5714.917 5264.4009 5305.3833 5346.3662 2315.9946 2356.9775 2397.9604 1947.444 1988.4269 2029.4097 1210.3424 1251.3252 1292.3081 1578.8931 1619.876 1660.8589 841.79163 882.77454 923.75732">271270267268269272273275274266265263264262</tspan><tspan
id="tspan278"
sodipodi:role="line"
y="-5049.1729"
x="2725.5347 4568.2881 1988.4331 2356.9839 1619.8822 3094.0852 3462.636 4916.3506 4957.334 5284.9019 5325.8843 5653.4526 5694.4351 3812.7656 4181.3164">492315610111278</tspan><tspan
id="tspan280"
sodipodi:role="line"
y="-4938.6074"
x="2725.5474 4568.3013 1988.446 2356.9966 1619.8953 3094.0981 3462.6489 4916.3638 4957.3472 5284.9146 5325.8975 5653.4653 5694.4482 3812.7788 4181.3296">492315610111278</tspan><tspan
id="tspan282"
sodipodi:role="line"
y="-5049.1729"
x="841.81781 882.8006 923.78326">524</tspan><tspan
id="tspan284"
sodipodi:role="line"
y="-4938.6074"
x="841.81781 882.8006 923.78326">261</tspan><tspan
id="tspan286"
sodipodi:role="line"
y="-5049.1729"
x="1210.3684 1251.3512 1292.3342">525</tspan><tspan
id="tspan288"
sodipodi:role="line"
y="-4938.6074"
x="1210.3684 1251.3512 1292.3342">262</tspan><tspan
id="tspan290"
sodipodi:role="line"
y="-5049.1729"
x="6022.0161 6062.999">22</tspan><tspan
id="tspan292"
sodipodi:role="line"
y="-4938.6074"
x="6022.0161 6062.999">22</tspan><tspan
id="tspan294"
sodipodi:role="line"
y="-5049.1729"
x="6390.5669 6431.5498">23</tspan><tspan
id="tspan296"
sodipodi:role="line"
y="-4938.6074"
x="6390.5669 6431.5498">23</tspan><tspan
id="tspan298"
sodipodi:role="line"
y="-4238.3623"
x="6001.5244 6042.5068 6083.4902">285</tspan><tspan
id="tspan300"
sodipodi:role="line"
y="-4127.7964"
x="6022.0156 6062.9985">22</tspan><tspan
id="tspan302"
sodipodi:role="line"
y="-4238.3623"
x="6370.0747 6411.0571 6452.04">286</tspan><tspan
id="tspan304"
sodipodi:role="line"
y="-4127.7964"
x="6390.5664 6431.5493">23</tspan><tspan
id="tspan306"
sodipodi:role="line"
y="-4459.4922"
x="3540.4146 3581.3972 3618.2522 3638.7437 3659.2354 3679.7266 3696.0901 3737.073 3753.4365">1st field</tspan><tspan
id="tspan308"
sodipodi:role="line"
y="-3648.6809"
x="3528.1047 3569.0876 3610.0703 3651.0532 3671.5447 3692.0361 3708.3999 3749.3826 3765.7463">2nd field</tspan></text>
<text
y="-4127.7959"
x="4199.7334 3831.1829 2725.5305 3112.509 3462.6321 4568.2842 4916.3442 4957.3271 5653.4458 5694.4287 5284.895 5325.8779 2356.9773 1988.4264 1210.3424 1251.3252 1292.3081 1619.8759 841.79163 882.77454 923.75732"
id="text3632"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3634"
sodipodi:role="line"
y="-4127.7959"
x="4199.7334 3831.1829 2725.5305 3112.509 3462.6321 4568.2842 4916.3442 4957.3271 5653.4458 5694.4287 5284.895 5325.8779 2356.9773 1988.4264 1210.3424 1251.3252 1292.3081 1619.8759 841.79163 882.77454 923.75732">874569101211322631262</tspan></text>
id="tspan3634"
sodipodi:role="line"
y="-4127.7959"
x="4199.7334 3831.1829 2725.5305 3112.509 3462.6321 4568.2842 4916.3442 4957.3271 5653.4458 5694.4287 5284.895 5325.8779 2356.9773 1988.4264 1210.3424 1251.3252 1292.3081 1619.8759 841.79163 882.77454 923.75732">874569101211322631262</tspan></text>
<text
y="-4238.3613"
x="4158.748 4199.7314 4240.7144 3790.1975 3831.1807 3872.1633 2684.5457 2725.5283 2766.5112 3071.5237 3112.5063 3153.4895 3421.647 3462.6299 3503.6125 4527.2988 4568.2822 4609.2646 4895.8496 4936.833 4977.8154 5632.9517 5673.9341 5714.917 5264.4009 5305.3833 5346.3662 2315.9946 2356.9775 2397.9604 1947.444 1988.4269 2029.4097 1210.3424 1251.3252 1292.3081 1578.8931 1619.876 1660.8589 841.79163 882.77454 923.75732"
id="text3636"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3638"
sodipodi:role="line"
y="-4238.3613"
x="4158.748 4199.7314 4240.7144 3790.1975 3831.1807 3872.1633 2684.5457 2725.5283 2766.5112 3071.5237 3112.5063 3153.4895 3421.647 3462.6299 3503.6125 4527.2988 4568.2822 4609.2646 4895.8496 4936.833 4977.8154 5632.9517 5673.9341 5714.917 5264.4009 5305.3833 5346.3662 2315.9946 2356.9775 2397.9604 1947.444 1988.4269 2029.4097 1210.3424 1251.3252 1292.3081 1578.8931 1619.876 1660.8589 841.79163 882.77454 923.75732">271270267268269272273275274266265263264262</tspan></text>
id="tspan3638"
sodipodi:role="line"
y="-4238.3613"
x="4158.748 4199.7314 4240.7144 3790.1975 3831.1807 3872.1633 2684.5457 2725.5283 2766.5112 3071.5237 3112.5063 3153.4895 3421.647 3462.6299 3503.6125 4527.2988 4568.2822 4609.2646 4895.8496 4936.833 4977.8154 5632.9517 5673.9341 5714.917 5264.4009 5305.3833 5346.3662 2315.9946 2356.9775 2397.9604 1947.444 1988.4269 2029.4097 1210.3424 1251.3252 1292.3081 1578.8931 1619.876 1660.8589 841.79163 882.77454 923.75732">271270267268269272273275274266265263264262</tspan></text>
<text
y="-5049.1729"
x="2725.5347 4568.2881 1988.4331 2356.9839 1619.8822 3094.0852 3462.636 4916.3506 4957.334 5284.9019 5325.8843 5653.4526 5694.4351 3812.7656 4181.3164"
id="text3640"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3642"
sodipodi:role="line"
y="-5049.1729"
x="2725.5347 4568.2881 1988.4331 2356.9839 1619.8822 3094.0852 3462.636 4916.3506 4957.334 5284.9019 5325.8843 5653.4526 5694.4351 3812.7656 4181.3164">492315610111278</tspan></text>
id="tspan3642"
sodipodi:role="line"
y="-5049.1729"
x="2725.5347 4568.2881 1988.4331 2356.9839 1619.8822 3094.0852 3462.636 4916.3506 4957.334 5284.9019 5325.8843 5653.4526 5694.4351 3812.7656 4181.3164">492315610111278</tspan></text>
<text
y="-4938.6074"
x="2725.5474 4568.3013 1988.446 2356.9966 1619.8953 3094.0981 3462.6489 4916.3638 4957.3472 5284.9146 5325.8975 5653.4653 5694.4482 3812.7788 4181.3296"
id="text3644"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3646"
sodipodi:role="line"
y="-4938.6074"
x="2725.5474 4568.3013 1988.446 2356.9966 1619.8953 3094.0981 3462.6489 4916.3638 4957.3472 5284.9146 5325.8975 5653.4653 5694.4482 3812.7788 4181.3296">492315610111278</tspan></text>
id="tspan3646"
sodipodi:role="line"
y="-4938.6074"
x="2725.5474 4568.3013 1988.446 2356.9966 1619.8953 3094.0981 3462.6489 4916.3638 4957.3472 5284.9146 5325.8975 5653.4653 5694.4482 3812.7788 4181.3296">492315610111278</tspan></text>
<text
y="-5049.1729"
x="841.81781 882.8006 923.78326"
id="text3648"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3650"
sodipodi:role="line"
y="-5049.1729"
x="841.81781 882.8006 923.78326">524</tspan></text>
id="tspan3650"
sodipodi:role="line"
y="-5049.1729"
x="841.81781 882.8006 923.78326">524</tspan></text>
<text
y="-4938.6074"
x="841.81781 882.8006 923.78326"
id="text3652"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3654"
sodipodi:role="line"
y="-4938.6074"
x="841.81781 882.8006 923.78326">261</tspan></text>
id="tspan3654"
sodipodi:role="line"
y="-4938.6074"
x="841.81781 882.8006 923.78326">261</tspan></text>
<text
y="-5049.1729"
x="1210.3684 1251.3512 1292.3342"
id="text3656"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3658"
sodipodi:role="line"
y="-5049.1729"
x="1210.3684 1251.3512 1292.3342">525</tspan></text>
id="tspan3658"
sodipodi:role="line"
y="-5049.1729"
x="1210.3684 1251.3512 1292.3342">525</tspan></text>
<text
y="-4938.6074"
x="1210.3684 1251.3512 1292.3342"
id="text3660"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3662"
sodipodi:role="line"
y="-4938.6074"
x="1210.3684 1251.3512 1292.3342">262</tspan></text>
id="tspan3662"
sodipodi:role="line"
y="-4938.6074"
x="1210.3684 1251.3512 1292.3342">262</tspan></text>
<text
y="-5049.1729"
x="6022.0161 6062.999"
id="text3664"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3666"
sodipodi:role="line"
y="-5049.1729"
x="6022.0161 6062.999">22</tspan></text>
id="tspan3666"
sodipodi:role="line"
y="-5049.1729"
x="6022.0161 6062.999">22</tspan></text>
<text
y="-4938.6074"
x="6022.0161 6062.999"
id="text3668"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3670"
sodipodi:role="line"
y="-4938.6074"
x="6022.0161 6062.999">22</tspan></text>
id="tspan3670"
sodipodi:role="line"
y="-4938.6074"
x="6022.0161 6062.999">22</tspan></text>
<text
y="-5049.1729"
x="6390.5669 6431.5498"
id="text3672"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3674"
sodipodi:role="line"
y="-5049.1729"
x="6390.5669 6431.5498">23</tspan></text>
id="tspan3674"
sodipodi:role="line"
y="-5049.1729"
x="6390.5669 6431.5498">23</tspan></text>
<text
y="-4938.6074"
x="6390.5669 6431.5498"
id="text3676"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3678"
sodipodi:role="line"
y="-4938.6074"
x="6390.5669 6431.5498">23</tspan></text>
id="tspan3678"
sodipodi:role="line"
y="-4938.6074"
x="6390.5669 6431.5498">23</tspan></text>
<text
y="-4238.3623"
x="6001.5244 6042.5068 6083.4902"
id="text3680"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3682"
sodipodi:role="line"
y="-4238.3623"
x="6001.5244 6042.5068 6083.4902">285</tspan></text>
id="tspan3682"
sodipodi:role="line"
y="-4238.3623"
x="6001.5244 6042.5068 6083.4902">285</tspan></text>
<text
y="-4127.7964"
x="6022.0156 6062.9985"
id="text3684"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3686"
sodipodi:role="line"
y="-4127.7964"
x="6022.0156 6062.9985">22</tspan></text>
id="tspan3686"
sodipodi:role="line"
y="-4127.7964"
x="6022.0156 6062.9985">22</tspan></text>
<text
y="-4238.3623"
x="6370.0747 6411.0571 6452.04"
id="text3688"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3690"
sodipodi:role="line"
y="-4238.3623"
x="6370.0747 6411.0571 6452.04">286</tspan></text>
id="tspan3690"
sodipodi:role="line"
y="-4238.3623"
x="6370.0747 6411.0571 6452.04">286</tspan></text>
<text
y="-4127.7964"
x="6390.5664 6431.5493"
id="text3692"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3694"
sodipodi:role="line"
y="-4127.7964"
x="6390.5664 6431.5493">23</tspan></text>
id="tspan3694"
sodipodi:role="line"
y="-4127.7964"
x="6390.5664 6431.5493">23</tspan></text>
<text
y="-4459.4922"
x="3540.4146 3581.3972 3618.2522 3638.7437 3659.2354 3679.7266 3696.0901 3737.073 3753.4365"
id="text3696"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3698"
sodipodi:role="line"
y="-4459.4922"
x="3540.4146 3581.3972 3618.2522 3638.7437 3659.2354 3679.7266 3696.0901 3737.073 3753.4365">1st field</tspan></text>
id="tspan3698"
sodipodi:role="line"
y="-4459.4922"
x="3540.4146 3581.3972 3618.2522 3638.7437 3659.2354 3679.7266 3696.0901 3737.073 3753.4365">1st field</tspan></text>
<text
y="-3648.6809"
x="3528.1047 3569.0876 3610.0703 3651.0532 3671.5447 3692.0361 3708.3999 3749.3826 3765.7463"
id="text3700"
style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"><tspan
id="tspan3702"
sodipodi:role="line"
y="-3648.6809"
x="3528.1047 3569.0876 3610.0703 3651.0532 3671.5447 3692.0361 3708.3999 3749.3826 3765.7463">2nd field</tspan></text>
id="tspan3702"
sodipodi:role="line"
y="-3648.6809"
x="3528.1047 3569.0876 3610.0703 3651.0532 3671.5447 3692.0361 3708.3999 3749.3826 3765.7463">2nd field</tspan></text>
</g></svg>

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View file

@ -42,19 +42,21 @@
inkscape:current-layer="g10"
units="mm" /><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs6"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath20"><path
d="m 0,0 5950,0 0,4546 L 0,4546 0,0 Z m 0,4546 5950,0 0,1 -5950,0 0,-1 z m 0,1 2211,0 0,1 -2211,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2215,0 0,1 -2215,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2219,0 0,1 -2219,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2223,0 0,1 -2223,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2227,0 0,1 -2227,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2231,0 0,1 -2231,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2235,0 0,1 -2235,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2239,0 0,1 -2239,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2241,0 0,1 -2241,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2240,0 0,1 -2240,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2236,0 0,1 -2236,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2232,0 0,1 -2232,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2228,0 0,1 -2228,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2224,0 0,1 -2224,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2220,0 0,1 -2220,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2216,0 0,1 -2216,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2212,0 0,1 -2212,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2208,0 0,1 -2208,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,3854 -5950,0 0,-3854 z"
id="path22"
inkscape:connector-curvature="0" /></clipPath><clipPath
d="m 0,0 5950,0 0,4546 L 0,4546 0,0 Z m 0,4546 5950,0 0,1 -5950,0 0,-1 z m 0,1 2211,0 0,1 -2211,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2215,0 0,1 -2215,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2219,0 0,1 -2219,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2223,0 0,1 -2223,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2227,0 0,1 -2227,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2231,0 0,1 -2231,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2235,0 0,1 -2235,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2239,0 0,1 -2239,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2241,0 0,1 -2241,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2240,0 0,1 -2240,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2236,0 0,1 -2236,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2232,0 0,1 -2232,0 0,-1 z m
2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2228,0 0,1 -2228,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2224,0 0,1 -2224,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2220,0 0,1 -2220,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2216,0 0,1 -2216,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2212,0 0,1 -2212,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2208,0 0,1 -2208,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,3854 -5950,0 0,-3854 z"
id="path22"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath98"><path
d="m 0,0 5950,0 0,3922 L 0,3922 0,0 Z m 0,3922 5950,0 0,1 -5950,0 0,-1 z m 0,1 2209,0 0,1 -2209,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2213,0 0,1 -2213,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2217,0 0,1 -2217,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2221,0 0,1 -2221,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2225,0 0,1 -2225,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2229,0 0,1 -2229,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2233,0 0,1 -2233,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2237,0 0,1 -2237,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2241,0 0,1 -2241,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2241,0 0,1 -2241,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2237,0 0,1 -2237,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2233,0 0,1 -2233,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2229,0 0,1 -2229,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2225,0 0,1 -2225,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2221,0 0,1 -2221,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2217,0 0,1 -2217,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2213,0 0,1 -2213,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2209,0 0,1 -2209,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,4478 -5950,0 0,-4478 z"
id="path100"
inkscape:connector-curvature="0" /></clipPath></defs><g
d="m 0,0 5950,0 0,3922 L 0,3922 0,0 Z m 0,3922 5950,0 0,1 -5950,0 0,-1 z m 0,1 2209,0 0,1 -2209,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2213,0 0,1 -2213,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2217,0 0,1 -2217,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2221,0 0,1 -2221,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2225,0 0,1 -2225,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2229,0 0,1 -2229,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2233,0 0,1 -2233,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2237,0 0,1 -2237,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2241,0 0,1 -2241,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2241,0 0,1 -2241,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2237,0 0,1 -2237,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2233,0 0,1 -2233,0 0,-1 z m
2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2229,0 0,1 -2229,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2225,0 0,1 -2225,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2221,0 0,1 -2221,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2217,0 0,1 -2217,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2213,0 0,1 -2213,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2209,0 0,1 -2209,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,4478 -5950,0 0,-4478 z"
id="path100"
inkscape:connector-curvature="0" /></clipPath></defs><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="vbi_625"
@ -62,20 +64,20 @@
id="g12"
transform="matrix(1.3045828,0,0,1.3045828,-213.38312,-1110.9872)"
style=""><path
d="m 2132.25,4598.15 0,-85.05"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="path14"
inkscape:connector-curvature="0" /></g><g
d="m 2132.25,4598.15 0,-85.05"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="path14"
inkscape:connector-curvature="0" /></g><g
id="g16"
transform="matrix(1.3045828,0,0,1.3045828,-213.38312,-1110.9872)"
style=""><g
id="g18"
clip-path="url(#clipPath20)"
style=""><path
d="m 2132.25,4555.63 113.4,0"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="path24"
inkscape:connector-curvature="0" /></g></g><path
id="g18"
clip-path="url(#clipPath20)"
style=""><path
d="m 2132.25,4555.63 113.4,0"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="path24"
inkscape:connector-curvature="0" /></g></g><path
inkscape:connector-curvature="0"
id="path28"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
@ -211,13 +213,13 @@
id="g94"
transform="matrix(1.3045828,0,0,1.3045828,-213.38312,-1110.9872)"
style=""><g
id="g96"
clip-path="url(#clipPath98)"
style=""><path
d="m 2132.25,3931.93 113.4,0"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="path102"
inkscape:connector-curvature="0" /></g></g><path
id="g96"
clip-path="url(#clipPath98)"
style=""><path
d="m 2132.25,3931.93 113.4,0"
style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="path102"
inkscape:connector-curvature="0" /></g></g><path
inkscape:connector-curvature="0"
id="path106"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
@ -385,7 +387,8 @@
inkscape:connector-curvature="0"
id="path188"
style="fill:none;stroke:#000000;stroke-width:3.08207679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1162.8865,4739.7407 18.486,0 0,92.4688 18.499,-18.499 18.4859,36.9849 18.499,-36.9849 18.4859,36.9849 18.499,-55.4708 18.4859,55.4708 18.499,-18.4859 18.486,55.4708 18.499,-55.4708 18.4859,18.4859 18.499,36.9849 18.4859,-73.9698 18.499,36.9849 18.4859,-55.4708 0,-55.4839 18.499,0 0,-110.9548 36.985,0 0,110.9548 18.4859,0 0,55.4839 18.499,36.9849 18.4859,-36.9849 18.499,55.4708 18.4859,-18.4859 18.499,55.4708 18.486,-18.4859 0,-129.4537 18.4989,0 0,-110.9548 18.486,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 147.9397,0 0,110.9548 36.985,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.486,0 0,110.9548 166.4386,0 0,-110.9548 18.486,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 36.9849,0 0,110.9548 332.8643,0 0,-110.9548 36.9849,0 0,110.9548 18.486,0" /><path
d="m 1162.8865,4739.7407 18.486,0 0,92.4688 18.499,-18.499 18.4859,36.9849 18.499,-36.9849 18.4859,36.9849 18.499,-55.4708 18.4859,55.4708 18.499,-18.4859 18.486,55.4708 18.499,-55.4708 18.4859,18.4859 18.499,36.9849 18.4859,-73.9698 18.499,36.9849 18.4859,-55.4708 0,-55.4839 18.499,0 0,-110.9548 36.985,0 0,110.9548 18.4859,0 0,55.4839 18.499,36.9849 18.4859,-36.9849 18.499,55.4708 18.4859,-18.4859 18.499,55.4708 18.486,-18.4859 0,-129.4537 18.4989,0 0,-110.9548 18.486,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 147.9397,0 0,110.9548 36.985,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0
0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.486,0 0,110.9548 166.4386,0 0,-110.9548 18.486,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 36.9849,0 0,110.9548 332.8643,0 0,-110.9548 36.9849,0 0,110.9548 18.486,0" /><path
inkscape:connector-curvature="0"
id="path190"
style="fill:none;stroke:#000000;stroke-width:3.08207679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
@ -409,7 +412,8 @@
inkscape:connector-curvature="0"
id="path200"
style="fill:none;stroke:#000000;stroke-width:3.08207679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1162.8865,3926.0723 18.486,0 0,55.4839 18.499,92.4558 18.4859,-55.4708 36.9849,36.9849 18.499,-55.4839 18.4859,18.499 18.499,-36.985 18.486,55.4709 18.499,-18.4859 18.4859,-36.985 18.499,18.486 18.4859,36.9849 18.499,-36.9849 18.4859,36.9849 0,-110.9548 18.499,0 0,-110.9547 18.486,0 0,110.9547 166.4386,0 0,-110.9547 18.486,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 147.9397,0 0,110.9547 36.985,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.486,0 0,110.9547 166.4386,0 0,-110.9547 18.486,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 351.3633,0 0,-110.9547 36.9849,0 0,110.9547 18.486,0" /><path
d="m 1162.8865,3926.0723 18.486,0 0,55.4839 18.499,92.4558 18.4859,-55.4708 36.9849,36.9849 18.499,-55.4839 18.4859,18.499 18.499,-36.985 18.486,55.4709 18.499,-18.4859 18.4859,-36.985 18.499,18.486 18.4859,36.9849 18.499,-36.9849 18.4859,36.9849 0,-110.9548 18.499,0 0,-110.9547 18.486,0 0,110.9547 166.4386,0 0,-110.9547 18.486,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 147.9397,0 0,110.9547 36.985,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.486,0 0,110.9547 166.4386,0 0,-110.9547 18.486,0 0,110.9547 166.4387,0 0,-110.9547
18.4859,0 0,110.9547 351.3633,0 0,-110.9547 36.9849,0 0,110.9547 18.486,0" /><path
inkscape:connector-curvature="0"
id="path202"
style="fill:none;stroke:#000000;stroke-width:3.08207679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
@ -559,300 +563,300 @@
id="text276"
x="3550.4165"
y="-4462.3472"><tspan
x="3550.4165 3591.5437 3628.5286 3649.0923 3669.656 3690.2195 3706.6409 3747.7681 3764.1895"
y="-4462.3472"
sodipodi:role="line"
id="tspan278">1st field</tspan><tspan
x="2732.6792 3823.7344 4193.5835 4581.9253 4951.7744 5321.6235 3472.3777 3102.5283 2321.7029 2362.8303 2403.9575 1951.8538 1992.981 2034.1083 1582.0045 1623.132 1664.259 5670.9062 5712.0337"
y="-4943.1509"
sodipodi:role="line"
id="tspan280">1456783231231131022</tspan><tspan
x="2732.6726 3823.7278 4193.5771 4581.9189 4951.7681 5321.6172 3472.3711 3102.522 2321.6965 2362.8237 2403.9509 1951.8473 1992.9745 2034.1018 1581.998 1623.1254 1664.2524 5670.8999 5712.0269"
y="-5054.1064"
sodipodi:role="line"
id="tspan282">1456783262562462322</tspan><tspan
x="842.29962 883.42694 924.55408"
y="-4943.1509"
sodipodi:role="line"
id="tspan284">308</tspan><tspan
x="842.29962 883.42694 924.55408"
y="-5054.1064"
sodipodi:role="line"
id="tspan286">621</tspan><tspan
x="1212.1489 1253.276 1294.4033"
y="-4943.1509"
sodipodi:role="line"
id="tspan288">309</tspan><tspan
x="1212.1489 1253.276 1294.4033"
y="-5054.1064"
sodipodi:role="line"
id="tspan290">622</tspan><tspan
x="3538.0635 3579.1907 3620.3179 3661.4451 3682.0088 3702.5723 3718.9937 3760.1208 3776.5422"
y="-3648.6792"
sodipodi:role="line"
id="tspan292">2nd field</tspan></text>
x="3550.4165 3591.5437 3628.5286 3649.0923 3669.656 3690.2195 3706.6409 3747.7681 3764.1895"
y="-4462.3472"
sodipodi:role="line"
id="tspan278">1st field</tspan><tspan
x="2732.6792 3823.7344 4193.5835 4581.9253 4951.7744 5321.6235 3472.3777 3102.5283 2321.7029 2362.8303 2403.9575 1951.8538 1992.981 2034.1083 1582.0045 1623.132 1664.259 5670.9062 5712.0337"
y="-4943.1509"
sodipodi:role="line"
id="tspan280">1456783231231131022</tspan><tspan
x="2732.6726 3823.7278 4193.5771 4581.9189 4951.7681 5321.6172 3472.3711 3102.522 2321.6965 2362.8237 2403.9509 1951.8473 1992.9745 2034.1018 1581.998 1623.1254 1664.2524 5670.8999 5712.0269"
y="-5054.1064"
sodipodi:role="line"
id="tspan282">1456783262562462322</tspan><tspan
x="842.29962 883.42694 924.55408"
y="-4943.1509"
sodipodi:role="line"
id="tspan284">308</tspan><tspan
x="842.29962 883.42694 924.55408"
y="-5054.1064"
sodipodi:role="line"
id="tspan286">621</tspan><tspan
x="1212.1489 1253.276 1294.4033"
y="-4943.1509"
sodipodi:role="line"
id="tspan288">309</tspan><tspan
x="1212.1489 1253.276 1294.4033"
y="-5054.1064"
sodipodi:role="line"
id="tspan290">622</tspan><tspan
x="3538.0635 3579.1907 3620.3179 3661.4451 3682.0088 3702.5723 3718.9937 3760.1208 3776.5422"
y="-3648.6792"
sodipodi:role="line"
id="tspan292">2nd field</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:61.64153671px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text294"
x="2734.751"
y="-4037.021"><tspan
x="2734.751 2755.2776 2789.5503"
y="-4037.021"
sodipodi:role="line"
id="tspan296">(1)</tspan></text>
x="2734.751 2755.2776 2789.5503"
y="-4037.021"
sodipodi:role="line"
id="tspan296">(1)</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text298"
x="4951.772"
y="-4129.4834"><tspan
x="4951.772 4581.9229 4212.0737 3842.2244 3490.8677 3102.5259 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
y="-4129.4834"
sodipodi:role="line"
id="tspan300">765432313312311</tspan><tspan
x="6020.1929 6061.3198 6102.4473 5650.3433 5691.4707 5732.5981 5280.4941 5321.6216 5362.7485 4910.645 4951.7725 4992.8994 4540.7959 4581.9229 4623.0503 4170.9468 4212.0737 4253.2012 3801.0974 3842.2246 3883.3518 3449.7405 3490.8677 3531.9951 3061.3989 3102.5261 3143.6533 2691.5496 2732.677 2773.8042 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
y="-4240.4385"
sodipodi:role="line"
id="tspan302">336335321320319318317316315314313312311</tspan><tspan
x="2732.6765 5321.6211 5670.9062 5712.0337 6040.7554 6081.8828 842.30634 883.43323 924.56055"
y="-4129.4834"
sodipodi:role="line"
id="tspan304">182223309</tspan><tspan
x="842.30634 883.43323 924.56055"
y="-4240.4385"
sodipodi:role="line"
id="tspan306">309</tspan><tspan
x="1212.1553 1253.2826 1294.4099"
y="-4129.4834"
sodipodi:role="line"
id="tspan308">310</tspan><tspan
x="1212.1553 1253.2826 1294.4099"
y="-4240.4385"
sodipodi:role="line"
id="tspan310">310</tspan><tspan
x="6410.605 6451.7319"
y="-4129.4834"
sodipodi:role="line"
id="tspan312">24</tspan><tspan
x="6390.041 6431.1685 6472.2954"
y="-4240.4385"
sodipodi:role="line"
id="tspan314">337</tspan><tspan
x="6040.7559 6081.8833"
y="-4943.1504"
sodipodi:role="line"
id="tspan316">23</tspan><tspan
x="6040.7559 6081.8833"
y="-5054.106"
sodipodi:role="line"
id="tspan318">23</tspan><tspan
x="6410.605 6451.7324"
y="-4943.1504"
sodipodi:role="line"
id="tspan320">24</tspan><tspan
x="6410.605 6451.7324"
y="-5054.106"
sodipodi:role="line"
id="tspan322">24</tspan></text>
x="4951.772 4581.9229 4212.0737 3842.2244 3490.8677 3102.5259 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
y="-4129.4834"
sodipodi:role="line"
id="tspan300">765432313312311</tspan><tspan
x="6020.1929 6061.3198 6102.4473 5650.3433 5691.4707 5732.5981 5280.4941 5321.6216 5362.7485 4910.645 4951.7725 4992.8994 4540.7959 4581.9229 4623.0503 4170.9468 4212.0737 4253.2012 3801.0974 3842.2246 3883.3518 3449.7405 3490.8677 3531.9951 3061.3989 3102.5261 3143.6533 2691.5496 2732.677 2773.8042 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
y="-4240.4385"
sodipodi:role="line"
id="tspan302">336335321320319318317316315314313312311</tspan><tspan
x="2732.6765 5321.6211 5670.9062 5712.0337 6040.7554 6081.8828 842.30634 883.43323 924.56055"
y="-4129.4834"
sodipodi:role="line"
id="tspan304">182223309</tspan><tspan
x="842.30634 883.43323 924.56055"
y="-4240.4385"
sodipodi:role="line"
id="tspan306">309</tspan><tspan
x="1212.1553 1253.2826 1294.4099"
y="-4129.4834"
sodipodi:role="line"
id="tspan308">310</tspan><tspan
x="1212.1553 1253.2826 1294.4099"
y="-4240.4385"
sodipodi:role="line"
id="tspan310">310</tspan><tspan
x="6410.605 6451.7319"
y="-4129.4834"
sodipodi:role="line"
id="tspan312">24</tspan><tspan
x="6390.041 6431.1685 6472.2954"
y="-4240.4385"
sodipodi:role="line"
id="tspan314">337</tspan><tspan
x="6040.7559 6081.8833"
y="-4943.1504"
sodipodi:role="line"
id="tspan316">23</tspan><tspan
x="6040.7559 6081.8833"
y="-5054.106"
sodipodi:role="line"
id="tspan318">23</tspan><tspan
x="6410.605 6451.7324"
y="-4943.1504"
sodipodi:role="line"
id="tspan320">24</tspan><tspan
x="6410.605 6451.7324"
y="-5054.106"
sodipodi:role="line"
id="tspan322">24</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text3671"
x="3550.4165 3591.5437 3628.5286 3649.0923 3669.656 3690.2195 3706.6409 3747.7681 3764.1895"
y="-4462.3472"><tspan
x="3550.4165 3591.5437 3628.5286 3649.0923 3669.656 3690.2195 3706.6409 3747.7681 3764.1895"
y="-4462.3472"
sodipodi:role="line"
id="tspan3673">1st field</tspan></text>
x="3550.4165 3591.5437 3628.5286 3649.0923 3669.656 3690.2195 3706.6409 3747.7681 3764.1895"
y="-4462.3472"
sodipodi:role="line"
id="tspan3673">1st field</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text3675"
x="2732.6792 3823.7344 4193.5835 4581.9253 4951.7744 5321.6235 3472.3777 3102.5283 2321.7029 2362.8303 2403.9575 1951.8538 1992.981 2034.1083 1582.0045 1623.132 1664.259 5670.9062 5712.0337"
y="-4943.1509"><tspan
x="2732.6792 3823.7344 4193.5835 4581.9253 4951.7744 5321.6235 3472.3777 3102.5283 2321.7029 2362.8303 2403.9575 1951.8538 1992.981 2034.1083 1582.0045 1623.132 1664.259 5670.9062 5712.0337"
y="-4943.1509"
sodipodi:role="line"
id="tspan3677">1456783231231131022</tspan></text>
x="2732.6792 3823.7344 4193.5835 4581.9253 4951.7744 5321.6235 3472.3777 3102.5283 2321.7029 2362.8303 2403.9575 1951.8538 1992.981 2034.1083 1582.0045 1623.132 1664.259 5670.9062 5712.0337"
y="-4943.1509"
sodipodi:role="line"
id="tspan3677">1456783231231131022</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text3679"
x="2732.6726 3823.7278 4193.5771 4581.9189 4951.7681 5321.6172 3472.3711 3102.522 2321.6965 2362.8237 2403.9509 1951.8473 1992.9745 2034.1018 1581.998 1623.1254 1664.2524 5670.8999 5712.0269"
y="-5054.1064"><tspan
x="2732.6726 3823.7278 4193.5771 4581.9189 4951.7681 5321.6172 3472.3711 3102.522 2321.6965 2362.8237 2403.9509 1951.8473 1992.9745 2034.1018 1581.998 1623.1254 1664.2524 5670.8999 5712.0269"
y="-5054.1064"
sodipodi:role="line"
id="tspan3681">1456783262562462322</tspan></text>
x="2732.6726 3823.7278 4193.5771 4581.9189 4951.7681 5321.6172 3472.3711 3102.522 2321.6965 2362.8237 2403.9509 1951.8473 1992.9745 2034.1018 1581.998 1623.1254 1664.2524 5670.8999 5712.0269"
y="-5054.1064"
sodipodi:role="line"
id="tspan3681">1456783262562462322</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text3683"
x="842.29962 883.42694 924.55408"
y="-4943.1509"><tspan
x="842.29962 883.42694 924.55408"
y="-4943.1509"
sodipodi:role="line"
id="tspan3685">308</tspan></text>
x="842.29962 883.42694 924.55408"
y="-4943.1509"
sodipodi:role="line"
id="tspan3685">308</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text3687"
x="842.29962 883.42694 924.55408"
y="-5054.1064"><tspan
x="842.29962 883.42694 924.55408"
y="-5054.1064"
sodipodi:role="line"
id="tspan3689">621</tspan></text>
x="842.29962 883.42694 924.55408"
y="-5054.1064"
sodipodi:role="line"
id="tspan3689">621</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text3691"
x="1212.1489 1253.276 1294.4033"
y="-4943.1509"><tspan
x="1212.1489 1253.276 1294.4033"
y="-4943.1509"
sodipodi:role="line"
id="tspan3693">309</tspan></text>
x="1212.1489 1253.276 1294.4033"
y="-4943.1509"
sodipodi:role="line"
id="tspan3693">309</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text3695"
x="1212.1489 1253.276 1294.4033"
y="-5054.1064"><tspan
x="1212.1489 1253.276 1294.4033"
y="-5054.1064"
sodipodi:role="line"
id="tspan3697">622</tspan></text>
x="1212.1489 1253.276 1294.4033"
y="-5054.1064"
sodipodi:role="line"
id="tspan3697">622</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text3699"
x="3538.0635 3579.1907 3620.3179 3661.4451 3682.0088 3702.5723 3718.9937 3760.1208 3776.5422"
y="-3648.6792"><tspan
x="3538.0635 3579.1907 3620.3179 3661.4451 3682.0088 3702.5723 3718.9937 3760.1208 3776.5422"
y="-3648.6792"
sodipodi:role="line"
id="tspan3701">2nd field</tspan></text>
x="3538.0635 3579.1907 3620.3179 3661.4451 3682.0088 3702.5723 3718.9937 3760.1208 3776.5422"
y="-3648.6792"
sodipodi:role="line"
id="tspan3701">2nd field</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text4083"
x="4951.772 4581.9229 4212.0737 3842.2244 3490.8677 3102.5259 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
y="-4129.4834"><tspan
x="4951.772 4581.9229 4212.0737 3842.2244 3490.8677 3102.5259 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
y="-4129.4834"
sodipodi:role="line"
id="tspan4085">765432313312311</tspan></text>
x="4951.772 4581.9229 4212.0737 3842.2244 3490.8677 3102.5259 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
y="-4129.4834"
sodipodi:role="line"
id="tspan4085">765432313312311</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text4087"
x="6020.1929 6061.3198 6102.4473 5650.3433 5691.4707 5732.5981 5280.4941 5321.6216 5362.7485 4910.645 4951.7725 4992.8994 4540.7959 4581.9229 4623.0503 4170.9468 4212.0737 4253.2012 3801.0974 3842.2246 3883.3518 3449.7405 3490.8677 3531.9951 3061.3989 3102.5261 3143.6533 2691.5496 2732.677 2773.8042 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
y="-4240.4385"><tspan
x="6020.1929 6061.3198 6102.4473 5650.3433 5691.4707 5732.5981 5280.4941 5321.6216 5362.7485 4910.645 4951.7725 4992.8994 4540.7959 4581.9229 4623.0503 4170.9468 4212.0737 4253.2012 3801.0974 3842.2246 3883.3518 3449.7405 3490.8677 3531.9951 3061.3989 3102.5261 3143.6533 2691.5496 2732.677 2773.8042 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
y="-4240.4385"
sodipodi:role="line"
id="tspan4089">336335321320319318317316315314313312311</tspan></text>
x="6020.1929 6061.3198 6102.4473 5650.3433 5691.4707 5732.5981 5280.4941 5321.6216 5362.7485 4910.645 4951.7725 4992.8994 4540.7959 4581.9229 4623.0503 4170.9468 4212.0737 4253.2012 3801.0974 3842.2246 3883.3518 3449.7405 3490.8677 3531.9951 3061.3989 3102.5261 3143.6533 2691.5496 2732.677 2773.8042 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
y="-4240.4385"
sodipodi:role="line"
id="tspan4089">336335321320319318317316315314313312311</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text4091"
x="2732.6765 5321.6211 5670.9062 5712.0337 6040.7554 6081.8828 842.30634 883.43323 924.56055"
y="-4129.4834"><tspan
x="2732.6765 5321.6211 5670.9062 5712.0337 6040.7554 6081.8828 842.30634 883.43323 924.56055"
y="-4129.4834"
sodipodi:role="line"
id="tspan4093">182223309</tspan></text>
x="2732.6765 5321.6211 5670.9062 5712.0337 6040.7554 6081.8828 842.30634 883.43323 924.56055"
y="-4129.4834"
sodipodi:role="line"
id="tspan4093">182223309</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text4095"
x="842.30634 883.43323 924.56055"
y="-4240.4385"><tspan
x="842.30634 883.43323 924.56055"
y="-4240.4385"
sodipodi:role="line"
id="tspan4097">309</tspan></text>
x="842.30634 883.43323 924.56055"
y="-4240.4385"
sodipodi:role="line"
id="tspan4097">309</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text4099"
x="1212.1553 1253.2826 1294.4099"
y="-4129.4834"><tspan
x="1212.1553 1253.2826 1294.4099"
y="-4129.4834"
sodipodi:role="line"
id="tspan4101">310</tspan></text>
x="1212.1553 1253.2826 1294.4099"
y="-4129.4834"
sodipodi:role="line"
id="tspan4101">310</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text4103"
x="1212.1553 1253.2826 1294.4099"
y="-4240.4385"><tspan
x="1212.1553 1253.2826 1294.4099"
y="-4240.4385"
sodipodi:role="line"
id="tspan4105">310</tspan></text>
x="1212.1553 1253.2826 1294.4099"
y="-4240.4385"
sodipodi:role="line"
id="tspan4105">310</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text4107"
x="6410.605 6451.7319"
y="-4129.4834"><tspan
x="6410.605 6451.7319"
y="-4129.4834"
sodipodi:role="line"
id="tspan4109">24</tspan></text>
x="6410.605 6451.7319"
y="-4129.4834"
sodipodi:role="line"
id="tspan4109">24</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text4111"
x="6390.041 6431.1685 6472.2954"
y="-4240.4385"><tspan
x="6390.041 6431.1685 6472.2954"
y="-4240.4385"
sodipodi:role="line"
id="tspan4113">337</tspan></text>
x="6390.041 6431.1685 6472.2954"
y="-4240.4385"
sodipodi:role="line"
id="tspan4113">337</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text4115"
x="6040.7559 6081.8833"
y="-4943.1504"><tspan
x="6040.7559 6081.8833"
y="-4943.1504"
sodipodi:role="line"
id="tspan4117">23</tspan></text>
x="6040.7559 6081.8833"
y="-4943.1504"
sodipodi:role="line"
id="tspan4117">23</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text4119"
x="6040.7559 6081.8833"
y="-5054.106"><tspan
x="6040.7559 6081.8833"
y="-5054.106"
sodipodi:role="line"
id="tspan4121">23</tspan></text>
x="6040.7559 6081.8833"
y="-5054.106"
sodipodi:role="line"
id="tspan4121">23</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text4123"
x="6410.605 6451.7324"
y="-4943.1504"><tspan
x="6410.605 6451.7324"
y="-4943.1504"
sodipodi:role="line"
id="tspan4125">24</tspan></text>
x="6410.605 6451.7324"
y="-4943.1504"
sodipodi:role="line"
id="tspan4125">24</tspan></text>
<text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
id="text4127"
x="6410.605 6451.7324"
y="-5054.106"><tspan
x="6410.605 6451.7324"
y="-5054.106"
sodipodi:role="line"
id="tspan4129">24</tspan></text>
x="6410.605 6451.7324"
y="-5054.106"
sodipodi:role="line"
id="tspan4129">24</tspan></text>
</g></svg>

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View file

@ -42,27 +42,27 @@
fit-margin-right="0"
fit-margin-bottom="0" /><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs6"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath30"><path
d="m 0,0 0,1163 1544,0 L 1544,0 0,0 Z m 187.184,836.05 0,-19.278 48.517,0 -38.556,9.639 38.556,9.639 -48.517,0 z m 689.189,-19.278 0,19.278 -48.516,0 38.556,-9.639 -38.556,-9.639 48.516,0 z"
id="path32"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath><clipPath
d="m 0,0 0,1163 1544,0 L 1544,0 0,0 Z m 187.184,836.05 0,-19.278 48.517,0 -38.556,9.639 38.556,9.639 -48.517,0 z m 689.189,-19.278 0,19.278 -48.516,0 38.556,-9.639 -38.556,-9.639 48.516,0 z"
id="path32"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath52"><path
d="m 0,0 0,1163 1544,0 L 1544,0 0,0 Z m 804.08,79.3887 0,19.2778 -48.516,0 38.556,-9.6389 -38.556,-9.6389 48.516,0 z m -703.647,19.2778 0,-19.2778 48.517,0 -38.556,9.6389 38.556,9.6389 -48.517,0 z"
id="path54"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath><clipPath
d="m 0,0 0,1163 1544,0 L 1544,0 0,0 Z m 804.08,79.3887 0,19.2778 -48.516,0 38.556,-9.6389 -38.556,-9.6389 48.516,0 z m -703.647,19.2778 0,-19.2778 48.517,0 -38.556,9.6389 38.556,9.6389 -48.517,0 z"
id="path54"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath94"><path
d="m 0,0 0,1163 1544,0 L 1544,0 0,0 Z m 471.535,195.057 0,19.278 -48.516,0 38.555,-9.639 -38.555,-9.639 48.516,0 z m -284.351,19.278 0,-19.278 48.517,0 -38.556,9.639 38.556,9.639 -48.517,0 z"
id="path96"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath></defs><g
d="m 0,0 0,1163 1544,0 L 1544,0 0,0 Z m 471.535,195.057 0,19.278 -48.516,0 38.555,-9.639 -38.555,-9.639 48.516,0 z m -284.351,19.278 0,-19.278 48.517,0 -38.556,9.639 38.556,9.639 -48.517,0 z"
id="path96"
inkscape:connector-curvature="0"
style="clip-rule:evenodd" /></clipPath></defs><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="vbi_hsync"
@ -70,69 +70,69 @@
id="g14"
transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)"
style=""><path
inkscape:connector-curvature="0"
id="path16"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="M 32.9604,580.617 4.04346,493.866" /><path
inkscape:connector-curvature="0"
id="path18"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 192.004,855.328 0,-665.091" /><path
inkscape:connector-curvature="0"
id="path20"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 466.715,392.656 0,-202.419" /><path
inkscape:connector-curvature="0"
id="path22"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 799.261,508.324 0,-433.7549" /><path
inkscape:connector-curvature="0"
id="path24"
style="fill:none;stroke:#000000;stroke-width:4.81949997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 857.095,537.241 231.335,0" /></g><g
inkscape:connector-curvature="0"
id="path16"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="M 32.9604,580.617 4.04346,493.866" /><path
inkscape:connector-curvature="0"
id="path18"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 192.004,855.328 0,-665.091" /><path
inkscape:connector-curvature="0"
id="path20"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 466.715,392.656 0,-202.419" /><path
inkscape:connector-curvature="0"
id="path22"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 799.261,508.324 0,-433.7549" /><path
inkscape:connector-curvature="0"
id="path24"
style="fill:none;stroke:#000000;stroke-width:4.81949997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 857.095,537.241 231.335,0" /></g><g
id="g26"
transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)"
style=""><g
clip-path="url(#clipPath30)"
id="g28"
style=""><path
inkscape:connector-curvature="0"
id="path34"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 871.553,826.411 -679.549,0" /></g></g><g
clip-path="url(#clipPath30)"
id="g28"
style=""><path
inkscape:connector-curvature="0"
id="path34"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 871.553,826.411 -679.549,0" /></g></g><g
id="g36"
transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)"
style=""><path
inkscape:connector-curvature="0"
id="path38"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 827.857,816.772 38.556,9.639 -38.556,9.639 0,-19.278" /><path
inkscape:connector-curvature="0"
id="path40"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 827.857,816.772 38.556,9.639 -38.556,9.639 0,-19.278 z" /><path
inkscape:connector-curvature="0"
id="path42"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 235.701,836.05 -38.556,-9.639 38.556,-9.639 0,19.278" /><path
inkscape:connector-curvature="0"
id="path44"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 235.701,836.05 -38.556,-9.639 38.556,-9.639 0,19.278 z" /><path
inkscape:connector-curvature="0"
id="path46"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1073.97,493.866 28.92,86.751" /></g><g
inkscape:connector-curvature="0"
id="path38"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 827.857,816.772 38.556,9.639 -38.556,9.639 0,-19.278" /><path
inkscape:connector-curvature="0"
id="path40"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 827.857,816.772 38.556,9.639 -38.556,9.639 0,-19.278 z" /><path
inkscape:connector-curvature="0"
id="path42"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 235.701,836.05 -38.556,-9.639 38.556,-9.639 0,19.278" /><path
inkscape:connector-curvature="0"
id="path44"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 235.701,836.05 -38.556,-9.639 38.556,-9.639 0,19.278 z" /><path
inkscape:connector-curvature="0"
id="path46"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 1073.97,493.866 28.92,86.751" /></g><g
id="g48"
transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)"
style=""><g
clip-path="url(#clipPath52)"
id="g50"
style=""><path
inkscape:connector-curvature="0"
id="path56"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 105.253,89.0276 694.008,0" /></g></g><path
clip-path="url(#clipPath52)"
id="g50"
style=""><path
inkscape:connector-curvature="0"
id="path56"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 105.253,89.0276 694.008,0" /></g></g><path
d="m 52.91205,34.475403 -13.891817,-3.472918 13.891817,-3.472918 0,6.945836"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path60"
@ -196,13 +196,13 @@
id="g90"
transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)"
style=""><g
clip-path="url(#clipPath94)"
id="g92"
style=""><path
inkscape:connector-curvature="0"
id="path98"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 192.004,204.696 274.711,0" /></g></g><path
clip-path="url(#clipPath94)"
id="g92"
style=""><path
inkscape:connector-curvature="0"
id="path98"
style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 192.004,204.696 274.711,0" /></g></g><path
d="m 84.168639,76.151036 -13.891817,-3.472955 13.891817,-3.472954 0,6.945909"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path102"
@ -224,90 +224,90 @@
transform="scale(1,-1)"
x="438.29504"
y="-187.28558"><tspan
id="tspan114"
sodipodi:role="line"
y="-187.28558"
x="438.29504 452.19382 456.81979 468.40555 478.82443 489.24329 495.03619 506.62195 518.2077 528.62659 540.21234">Black Level</tspan><tspan
id="tspan116"
sodipodi:role="line"
y="-83.096947"
x="438.29504 452.19382 462.61267 474.19846 484.61731 490.41019 501.99597 513.58173 524.00061 535.58636">Sync Level</tspan><tspan
id="tspan118"
sodipodi:role="line"
y="-395.66284"
x="438.29504 457.96585 469.55164 474.17761 479.97049 491.55627 497.34915 508.93494 520.52069 530.93958 542.52533">White Level</tspan></text>
id="tspan114"
sodipodi:role="line"
y="-187.28558"
x="438.29504 452.19382 456.81979 468.40555 478.82443 489.24329 495.03619 506.62195 518.2077 528.62659 540.21234">Black Level</tspan><tspan
id="tspan116"
sodipodi:role="line"
y="-83.096947"
x="438.29504 452.19382 462.61267 474.19846 484.61731 490.41019 501.99597 513.58173 524.00061 535.58636">Sync Level</tspan><tspan
id="tspan118"
sodipodi:role="line"
y="-395.66284"
x="438.29504 457.96585 469.55164 474.17761 479.97049 491.55627 497.34915 508.93494 520.52069 530.93958 542.52533">White Level</tspan></text>
<text
id="text120"
style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"
x="159.88258"
y="-270.63647"><tspan
id="tspan122"
sodipodi:role="line"
y="-270.63647"
x="159.88258 172.61443 179.55339 186.49236 198.07812 209.66391">offset</tspan></text>
id="tspan122"
sodipodi:role="line"
y="-270.63647"
x="159.88258 172.61443 179.55339 186.49236 198.07812 209.66391">offset</tspan></text>
<text
id="text124"
style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"
x="46.973549"
y="-46.630745"><tspan
id="tspan126"
sodipodi:role="line"
y="-46.630745"
x="46.973549 58.559322 63.185299 74.771072 86.35685 92.149734 102.5686 112.98746 124.57324 134.9921 146.57788 153.51685 159.30972 165.10262 176.68839 188.27417 192.90015 203.319">Line synchr. pulse</tspan><tspan
id="tspan128"
sodipodi:role="line"
y="-4.9552913"
x="100.80776 112.39354 117.01952 128.60529 140.19107 145.98395 157.56973 162.19569 173.78148 185.36726 195.78612 200.41209 211.99788">Line blanking</tspan></text>
id="tspan126"
sodipodi:role="line"
y="-46.630745"
x="46.973549 58.559322 63.185299 74.771072 86.35685 92.149734 102.5686 112.98746 124.57324 134.9921 146.57788 153.51685 159.30972 165.10262 176.68839 188.27417 192.90015 203.319">Line synchr. pulse</tspan><tspan
id="tspan128"
sodipodi:role="line"
y="-4.9552913"
x="100.80776 112.39354 117.01952 128.60529 140.19107 145.98395 157.56973 162.19569 173.78148 185.36726 195.78612 200.41209 211.99788">Line blanking</tspan></text>
<text
id="text3473"
style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"
x="46.973549 58.559322 63.185299 74.771072 86.35685 92.149734 102.5686 112.98746 124.57324 134.9921 146.57788 153.51685 159.30972 165.10262 176.68839 188.27417 192.90015 203.319"
y="-46.630745"><tspan
id="tspan3475"
sodipodi:role="line"
y="-46.630745"
x="46.973549 58.559322 63.185299 74.771072 86.35685 92.149734 102.5686 112.98746 124.57324 134.9921 146.57788 153.51685 159.30972 165.10262 176.68839 188.27417 192.90015 203.319">Line synchr. pulse</tspan></text>
id="tspan3475"
sodipodi:role="line"
y="-46.630745"
x="46.973549 58.559322 63.185299 74.771072 86.35685 92.149734 102.5686 112.98746 124.57324 134.9921 146.57788 153.51685 159.30972 165.10262 176.68839 188.27417 192.90015 203.319">Line synchr. pulse</tspan></text>
<text
id="text3477"
style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"
x="100.80776 112.39354 117.01952 128.60529 140.19107 145.98395 157.56973 162.19569 173.78148 185.36726 195.78612 200.41209 211.99788"
y="-4.9552913"><tspan
id="tspan3479"
sodipodi:role="line"
y="-4.9552913"
x="100.80776 112.39354 117.01952 128.60529 140.19107 145.98395 157.56973 162.19569 173.78148 185.36726 195.78612 200.41209 211.99788">Line blanking</tspan></text>
id="tspan3479"
sodipodi:role="line"
y="-4.9552913"
x="100.80776 112.39354 117.01952 128.60529 140.19107 145.98395 157.56973 162.19569 173.78148 185.36726 195.78612 200.41209 211.99788">Line blanking</tspan></text>
<text
id="text3607"
style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"
x="438.29504 452.19382 456.81979 468.40555 478.82443 489.24329 495.03619 506.62195 518.2077 528.62659 540.21234"
y="-187.28558"><tspan
id="tspan3609"
sodipodi:role="line"
y="-187.28558"
x="438.29504 452.19382 456.81979 468.40555 478.82443 489.24329 495.03619 506.62195 518.2077 528.62659 540.21234">Black Level</tspan></text>
id="tspan3609"
sodipodi:role="line"
y="-187.28558"
x="438.29504 452.19382 456.81979 468.40555 478.82443 489.24329 495.03619 506.62195 518.2077 528.62659 540.21234">Black Level</tspan></text>
<text
id="text3611"
style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"
x="438.29504 452.19382 462.61267 474.19846 484.61731 490.41019 501.99597 513.58173 524.00061 535.58636"
y="-83.096947"><tspan
id="tspan3613"
sodipodi:role="line"
y="-83.096947"
x="438.29504 452.19382 462.61267 474.19846 484.61731 490.41019 501.99597 513.58173 524.00061 535.58636">Sync Level</tspan></text>
id="tspan3613"
sodipodi:role="line"
y="-83.096947"
x="438.29504 452.19382 462.61267 474.19846 484.61731 490.41019 501.99597 513.58173 524.00061 535.58636">Sync Level</tspan></text>
<text
id="text3615"
style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
transform="scale(1,-1)"
x="438.29504 457.96585 469.55164 474.17761 479.97049 491.55627 497.34915 508.93494 520.52069 530.93958 542.52533"
y="-395.66284"><tspan
id="tspan3617"
sodipodi:role="line"
y="-395.66284"
x="438.29504 457.96585 469.55164 474.17761 479.97049 491.55627 497.34915 508.93494 520.52069 530.93958 542.52533">White Level</tspan></text>
id="tspan3617"
sodipodi:role="line"
y="-395.66284"
x="438.29504 457.96585 469.55164 474.17761 479.97049 491.55627 497.34915 508.93494 520.52069 530.93958 542.52533">White Level</tspan></text>
</g></svg>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -147,3 +147,9 @@ appropriately. The generic error codes are described at the
EINVAL
The struct :c:type:`v4l2_format` ``type`` field is
invalid or the requested buffer type not supported.
EBUSY
The device is busy and cannot change the format. This could be
because or the device is streaming or buffers are allocated or
queued to the driver. Relevant for :ref:`VIDIOC_S_FMT
<VIDIOC_G_FMT>` only.

View file

@ -607,8 +607,9 @@ References
Authors
-------
Steve Longerbeam <steve_longerbeam@mentor.com>
Philipp Zabel <kernel@pengutronix.de>
Russell King <linux@armlinux.org.uk>
- Steve Longerbeam <steve_longerbeam@mentor.com>
- Philipp Zabel <kernel@pengutronix.de>
- Russell King <linux@armlinux.org.uk>
Copyright (C) 2012-2017 Mentor Graphics Inc.

View file

@ -41,6 +41,7 @@ For more details see the file COPYING in the source distribution of Linux.
cx88
davinci-vpbe
fimc
imx
ivtv
max2175
meye

View file

@ -559,7 +559,7 @@ EXPORT_SYMBOL_GPL(cec_transmit_done);
void cec_transmit_attempt_done(struct cec_adapter *adap, u8 status)
{
switch (status) {
switch (status & ~CEC_TX_STATUS_MAX_RETRIES) {
case CEC_TX_STATUS_OK:
cec_transmit_done(adap, status, 0, 0, 0, 0);
return;

View file

@ -87,6 +87,9 @@ EXPORT_SYMBOL_GPL(cec_notifier_put);
void cec_notifier_set_phys_addr(struct cec_notifier *n, u16 pa)
{
if (n == NULL)
return;
mutex_lock(&n->lock);
n->phys_addr = pa;
if (n->callback)
@ -100,6 +103,9 @@ void cec_notifier_set_phys_addr_from_edid(struct cec_notifier *n,
{
u16 pa = CEC_PHYS_ADDR_INVALID;
if (n == NULL)
return;
if (edid && edid->extensions)
pa = cec_get_edid_phys_addr((const u8 *)edid,
EDID_LENGTH * (edid->extensions + 1), NULL);

View file

@ -349,7 +349,8 @@ static int dvb_ca_en50221_link_init(struct dvb_ca_private *ca, int slot)
/* read the buffer size from the CAM */
if ((ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, IRQEN | CMDREG_SR)) != 0)
return ret;
if ((ret = dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_DA, HZ / 10)) != 0)
ret = dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_DA, HZ);
if (ret != 0)
return ret;
if ((ret = dvb_ca_en50221_read_data(ca, slot, buf, 2)) != 2)
return -EIO;
@ -644,74 +645,103 @@ static int dvb_ca_en50221_read_data(struct dvb_ca_private *ca, int slot,
}
buf_free = dvb_ringbuffer_free(&ca->slot_info[slot].rx_buffer);
if (buf_free < (ca->slot_info[slot].link_buf_size + DVB_RINGBUFFER_PKTHDRSIZE)) {
if (buf_free < (ca->slot_info[slot].link_buf_size +
DVB_RINGBUFFER_PKTHDRSIZE)) {
status = -EAGAIN;
goto exit;
}
}
/* check if there is data available */
if ((status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_STATUS)) < 0)
goto exit;
if (!(status & STATUSREG_DA)) {
/* no data */
status = 0;
goto exit;
}
/* read the amount of data */
if ((status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_SIZE_HIGH)) < 0)
goto exit;
bytes_read = status << 8;
if ((status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_SIZE_LOW)) < 0)
goto exit;
bytes_read |= status;
/* check it will fit */
if (ebuf == NULL) {
if (bytes_read > ca->slot_info[slot].link_buf_size) {
pr_err("dvb_ca adapter %d: CAM tried to send a buffer larger than the link buffer size (%i > %i)!\n",
ca->dvbdev->adapter->num, bytes_read,
ca->slot_info[slot].link_buf_size);
ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_LINKINIT;
status = -EIO;
if (ca->pub->read_data &&
(ca->slot_info[slot].slot_state != DVB_CA_SLOTSTATE_LINKINIT)) {
if (ebuf == NULL)
status = ca->pub->read_data(ca->pub, slot, buf,
sizeof(buf));
else
status = ca->pub->read_data(ca->pub, slot, buf, ecount);
if (status < 0)
return status;
bytes_read = status;
if (status == 0)
goto exit;
}
if (bytes_read < 2) {
pr_err("dvb_ca adapter %d: CAM sent a buffer that was less than 2 bytes!\n",
ca->dvbdev->adapter->num);
ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_LINKINIT;
status = -EIO;
goto exit;
}
} else {
if (bytes_read > ecount) {
pr_err("dvb_ca adapter %d: CAM tried to send a buffer larger than the ecount size!\n",
ca->dvbdev->adapter->num);
/* check if there is data available */
status = ca->pub->read_cam_control(ca->pub, slot,
CTRLIF_STATUS);
if (status < 0)
goto exit;
if (!(status & STATUSREG_DA)) {
/* no data */
status = 0;
goto exit;
}
/* read the amount of data */
status = ca->pub->read_cam_control(ca->pub, slot,
CTRLIF_SIZE_HIGH);
if (status < 0)
goto exit;
bytes_read = status << 8;
status = ca->pub->read_cam_control(ca->pub, slot,
CTRLIF_SIZE_LOW);
if (status < 0)
goto exit;
bytes_read |= status;
/* check it will fit */
if (ebuf == NULL) {
if (bytes_read > ca->slot_info[slot].link_buf_size) {
pr_err("dvb_ca adapter %d: CAM tried to send a buffer larger than the link buffer size (%i > %i)!\n",
ca->dvbdev->adapter->num, bytes_read,
ca->slot_info[slot].link_buf_size);
ca->slot_info[slot].slot_state =
DVB_CA_SLOTSTATE_LINKINIT;
status = -EIO;
goto exit;
}
if (bytes_read < 2) {
pr_err("dvb_ca adapter %d: CAM sent a buffer that was less than 2 bytes!\n",
ca->dvbdev->adapter->num);
ca->slot_info[slot].slot_state =
DVB_CA_SLOTSTATE_LINKINIT;
status = -EIO;
goto exit;
}
} else {
if (bytes_read > ecount) {
pr_err("dvb_ca adapter %d: CAM tried to send a buffer larger than the ecount size!\n",
ca->dvbdev->adapter->num);
status = -EIO;
goto exit;
}
}
/* fill the buffer */
for (i = 0; i < bytes_read; i++) {
/* read byte and check */
status = ca->pub->read_cam_control(ca->pub, slot,
CTRLIF_DATA);
if (status < 0)
goto exit;
/* OK, store it in the buffer */
buf[i] = status;
}
/* check for read error (RE should now be 0) */
status = ca->pub->read_cam_control(ca->pub, slot,
CTRLIF_STATUS);
if (status < 0)
goto exit;
if (status & STATUSREG_RE) {
ca->slot_info[slot].slot_state =
DVB_CA_SLOTSTATE_LINKINIT;
status = -EIO;
goto exit;
}
}
/* fill the buffer */
for (i = 0; i < bytes_read; i++) {
/* read byte and check */
if ((status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_DATA)) < 0)
goto exit;
/* OK, store it in the buffer */
buf[i] = status;
}
/* check for read error (RE should now be 0) */
if ((status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_STATUS)) < 0)
goto exit;
if (status & STATUSREG_RE) {
ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_LINKINIT;
status = -EIO;
goto exit;
}
/* OK, add it to the receive buffer, or copy into external buffer if supplied */
if (ebuf == NULL) {
if (ca->slot_info[slot].rx_buffer.data == NULL) {
@ -762,6 +792,10 @@ static int dvb_ca_en50221_write_data(struct dvb_ca_private *ca, int slot,
if (bytes_write > ca->slot_info[slot].link_buf_size)
return -EINVAL;
if (ca->pub->write_data &&
(ca->slot_info[slot].slot_state != DVB_CA_SLOTSTATE_LINKINIT))
return ca->pub->write_data(ca->pub, slot, buf, bytes_write);
/* it is possible we are dealing with a single buffer implementation,
thus if there is data available for read or if there is even a read
already in progress, we do nothing but awake the kernel thread to
@ -1176,7 +1210,8 @@ static int dvb_ca_en50221_thread(void *data)
pr_err("dvb_ca adapter %d: DVB CAM link initialisation failed :(\n",
ca->dvbdev->adapter->num);
ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_INVALID;
ca->slot_info[slot].slot_state =
DVB_CA_SLOTSTATE_UNINITIALISED;
dvb_ca_en50221_thread_update_delay(ca);
break;
}

View file

@ -41,6 +41,8 @@
* @write_attribute_mem: function for writing attribute memory on the CAM
* @read_cam_control: function for reading the control interface on the CAM
* @write_cam_control: function for reading the control interface on the CAM
* @read_data: function for reading data (block mode)
* @write_data: function for writing data (block mode)
* @slot_reset: function to reset the CAM slot
* @slot_shutdown: function to shutdown a CAM slot
* @slot_ts_enable: function to enable the Transport Stream on a CAM slot
@ -66,6 +68,11 @@ struct dvb_ca_en50221 {
int (*write_cam_control)(struct dvb_ca_en50221 *ca,
int slot, u8 address, u8 value);
int (*read_data)(struct dvb_ca_en50221 *ca,
int slot, u8 *ebuf, int ecount);
int (*write_data)(struct dvb_ca_en50221 *ca,
int slot, u8 *ebuf, int ecount);
int (*slot_reset)(struct dvb_ca_en50221 *ca, int slot);
int (*slot_shutdown)(struct dvb_ca_en50221 *ca, int slot);
int (*slot_ts_enable)(struct dvb_ca_en50221 *ca, int slot);

View file

@ -3279,7 +3279,10 @@ static int cxd2841er_get_frontend(struct dvb_frontend *fe,
else if (priv->state == STATE_ACTIVE_TC)
cxd2841er_read_status_tc(fe, &status);
cxd2841er_read_signal_strength(fe);
if (priv->state == STATE_ACTIVE_TC || priv->state == STATE_ACTIVE_S)
cxd2841er_read_signal_strength(fe);
else
p->strength.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
if (status & FE_HAS_LOCK) {
cxd2841er_read_snr(fe);

View file

@ -307,7 +307,7 @@ int drxbsp_tuner_default_i2c_write_read(struct tuner_instance *tuner,
* \def DRX_UNKNOWN
* \brief Generic UNKNOWN value for DRX enumerated types.
*
* Used to indicate that the parameter value is unknown or not yet initalized.
* Used to indicate that the parameter value is unknown or not yet initialized.
*/
#ifndef DRX_UNKNOWN
#define DRX_UNKNOWN (254)
@ -449,19 +449,6 @@ MACROS
#define DRX_16TO8(x) ((u8) (((u16)x) & 0xFF)), \
((u8)((((u16)x)>>8)&0xFF))
/**
* \brief Macro to sign extend signed 9 bit value to signed 16 bit value
*/
#define DRX_S9TOS16(x) ((((u16)x)&0x100) ? ((s16)((u16)(x)|0xFF00)) : (x))
/**
* \brief Macro to sign extend signed 9 bit value to signed 16 bit value
*/
#define DRX_S24TODRXFREQ(x) ((((u32) x) & 0x00800000UL) ? \
((s32) \
(((u32) x) | 0xFF000000)) : \
((s32) x))
/**
* \brief Macro to convert 16 bit register value to a s32
*/

View file

@ -76,8 +76,8 @@ static int lnbh25_read_vmon(struct lnbh25_priv *priv)
return ret;
}
}
print_hex_dump_bytes("lnbh25_read_vmon: ",
DUMP_PREFIX_OFFSET, status, sizeof(status));
dev_dbg(&priv->i2c->dev, "%s(): %*ph\n",
__func__, (int) sizeof(status), status);
if ((status[0] & (LNBH25_STATUS_OFL | LNBH25_STATUS_VMON)) != 0) {
dev_err(&priv->i2c->dev,
"%s(): voltage in failure state, status reg 0x%x\n",
@ -178,7 +178,7 @@ struct dvb_frontend *lnbh25_attach(struct dvb_frontend *fe,
fe->ops.release_sec = lnbh25_release;
fe->ops.set_voltage = lnbh25_set_voltage;
dev_err(&i2c->dev, "%s(): attached at I2C addr 0x%02x\n",
dev_info(&i2c->dev, "%s(): attached at I2C addr 0x%02x\n",
__func__, priv->i2c_address);
return fe;
}

View file

@ -25,6 +25,8 @@
#include <linux/slab.h>
#include <linux/i2c.h>
#include "dvb_math.h"
#include "stv0367.h"
#include "stv0367_defs.h"
#include "stv0367_regs.h"
@ -1437,7 +1439,7 @@ static int stv0367ter_get_frontend(struct dvb_frontend *fe,
return 0;
}
static int stv0367ter_read_snr(struct dvb_frontend *fe, u16 *snr)
static u32 stv0367ter_snr_readreg(struct dvb_frontend *fe)
{
struct stv0367_state *state = fe->demodulator_priv;
u32 snru32 = 0;
@ -1453,10 +1455,16 @@ static int stv0367ter_read_snr(struct dvb_frontend *fe, u16 *snr)
cpt++;
}
snru32 /= 10;/*average on 10 values*/
*snr = snru32 / 1000;
return snru32;
}
static int stv0367ter_read_snr(struct dvb_frontend *fe, u16 *snr)
{
u32 snrval = stv0367ter_snr_readreg(fe);
*snr = snrval / 1000;
return 0;
}
@ -1501,7 +1509,8 @@ static int stv0367ter_read_status(struct dvb_frontend *fe,
*status = 0;
if (stv0367_readbits(state, F367TER_LK)) {
*status |= FE_HAS_LOCK;
*status = FE_HAS_SIGNAL | FE_HAS_CARRIER | FE_HAS_VITERBI
| FE_HAS_SYNC | FE_HAS_LOCK;
dprintk("%s: stv0367 has locked\n", __func__);
}
@ -2149,6 +2158,18 @@ static int stv0367cab_read_status(struct dvb_frontend *fe,
*status = 0;
if (state->cab_state->state > FE_CAB_NOSIGNAL)
*status |= FE_HAS_SIGNAL;
if (state->cab_state->state > FE_CAB_NOCARRIER)
*status |= FE_HAS_CARRIER;
if (state->cab_state->state >= FE_CAB_DEMODOK)
*status |= FE_HAS_VITERBI;
if (state->cab_state->state >= FE_CAB_DATAOK)
*status |= FE_HAS_SYNC;
if (stv0367_readbits(state, (state->cab_state->qamfec_status_reg ?
state->cab_state->qamfec_status_reg : F367CAB_QAMFEC_LOCK))) {
*status |= FE_HAS_LOCK;
@ -2702,51 +2723,61 @@ static int stv0367cab_read_strength(struct dvb_frontend *fe, u16 *strength)
return 0;
}
static int stv0367cab_read_snr(struct dvb_frontend *fe, u16 *snr)
static int stv0367cab_snr_power(struct dvb_frontend *fe)
{
struct stv0367_state *state = fe->demodulator_priv;
u32 noisepercentage;
enum stv0367cab_mod QAMSize;
u32 regval = 0, temp = 0;
int power, i;
QAMSize = stv0367_readbits(state, F367CAB_QAM_MODE);
switch (QAMSize) {
case FE_CAB_MOD_QAM4:
power = 21904;
break;
return 21904;
case FE_CAB_MOD_QAM16:
power = 20480;
break;
return 20480;
case FE_CAB_MOD_QAM32:
power = 23040;
break;
return 23040;
case FE_CAB_MOD_QAM64:
power = 21504;
break;
return 21504;
case FE_CAB_MOD_QAM128:
power = 23616;
break;
return 23616;
case FE_CAB_MOD_QAM256:
power = 21760;
break;
case FE_CAB_MOD_QAM512:
power = 1;
break;
return 21760;
case FE_CAB_MOD_QAM1024:
power = 21280;
break;
return 21280;
default:
power = 1;
break;
}
return 1;
}
static int stv0367cab_snr_readreg(struct dvb_frontend *fe, int avgdiv)
{
struct stv0367_state *state = fe->demodulator_priv;
u32 regval = 0;
int i;
for (i = 0; i < 10; i++) {
regval += (stv0367_readbits(state, F367CAB_SNR_LO)
+ 256 * stv0367_readbits(state, F367CAB_SNR_HI));
}
regval /= 10; /*for average over 10 times in for loop above*/
if (avgdiv)
regval /= 10;
return regval;
}
static int stv0367cab_read_snr(struct dvb_frontend *fe, u16 *snr)
{
struct stv0367_state *state = fe->demodulator_priv;
u32 noisepercentage;
u32 regval = 0, temp = 0;
int power;
power = stv0367cab_snr_power(fe);
regval = stv0367cab_snr_readreg(fe, 1);
if (regval != 0) {
temp = power
* (1 << (3 + stv0367_readbits(state, F367CAB_SNR_PER)));
@ -2980,21 +3011,117 @@ static int stv0367ddb_set_frontend(struct dvb_frontend *fe)
return -EINVAL;
}
static void stv0367ddb_read_signal_strength(struct dvb_frontend *fe)
{
struct stv0367_state *state = fe->demodulator_priv;
struct dtv_frontend_properties *p = &fe->dtv_property_cache;
s32 signalstrength;
switch (state->activedemod) {
case demod_cab:
signalstrength = stv0367cab_get_rf_lvl(state) * 1000;
break;
default:
p->strength.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
return;
}
p->strength.stat[0].scale = FE_SCALE_DECIBEL;
p->strength.stat[0].uvalue = signalstrength;
}
static void stv0367ddb_read_snr(struct dvb_frontend *fe)
{
struct stv0367_state *state = fe->demodulator_priv;
struct dtv_frontend_properties *p = &fe->dtv_property_cache;
int cab_pwr;
u32 regval, tmpval, snrval = 0;
switch (state->activedemod) {
case demod_ter:
snrval = stv0367ter_snr_readreg(fe);
break;
case demod_cab:
cab_pwr = stv0367cab_snr_power(fe);
regval = stv0367cab_snr_readreg(fe, 0);
/* prevent division by zero */
if (!regval) {
snrval = 0;
break;
}
tmpval = (cab_pwr * 320) / regval;
snrval = ((tmpval != 0) ? (intlog2(tmpval) / 5581) : 0);
break;
default:
p->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
return;
}
p->cnr.stat[0].scale = FE_SCALE_DECIBEL;
p->cnr.stat[0].uvalue = snrval;
}
static void stv0367ddb_read_ucblocks(struct dvb_frontend *fe)
{
struct stv0367_state *state = fe->demodulator_priv;
struct dtv_frontend_properties *p = &fe->dtv_property_cache;
u32 ucblocks = 0;
switch (state->activedemod) {
case demod_ter:
stv0367ter_read_ucblocks(fe, &ucblocks);
break;
case demod_cab:
stv0367cab_read_ucblcks(fe, &ucblocks);
break;
default:
p->block_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
return;
}
p->block_error.stat[0].scale = FE_SCALE_COUNTER;
p->block_error.stat[0].uvalue = ucblocks;
}
static int stv0367ddb_read_status(struct dvb_frontend *fe,
enum fe_status *status)
{
struct stv0367_state *state = fe->demodulator_priv;
struct dtv_frontend_properties *p = &fe->dtv_property_cache;
int ret;
switch (state->activedemod) {
case demod_ter:
return stv0367ter_read_status(fe, status);
case demod_cab:
return stv0367cab_read_status(fe, status);
default:
ret = stv0367ter_read_status(fe, status);
break;
case demod_cab:
ret = stv0367cab_read_status(fe, status);
break;
default:
return 0;
}
return -EINVAL;
/* stop and report on *_read_status failure */
if (ret)
return ret;
stv0367ddb_read_signal_strength(fe);
/* read carrier/noise when a carrier is detected */
if (*status & FE_HAS_CARRIER)
stv0367ddb_read_snr(fe);
else
p->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
/* read uncorrected blocks on FE_HAS_LOCK */
if (*status & FE_HAS_LOCK)
stv0367ddb_read_ucblocks(fe);
else
p->block_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
return 0;
}
static int stv0367ddb_get_frontend(struct dvb_frontend *fe,
@ -3035,6 +3162,7 @@ static int stv0367ddb_sleep(struct dvb_frontend *fe)
static int stv0367ddb_init(struct stv0367_state *state)
{
struct stv0367ter_state *ter_state = state->ter_state;
struct dtv_frontend_properties *p = &state->fe.dtv_property_cache;
stv0367_writereg(state, R367TER_TOPCTRL, 0x10);
@ -3109,6 +3237,13 @@ static int stv0367ddb_init(struct stv0367_state *state)
ter_state->first_lock = 0;
ter_state->unlock_counter = 2;
p->strength.len = 1;
p->strength.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
p->cnr.len = 1;
p->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
p->block_error.len = 1;
p->block_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
return 0;
}
@ -3126,15 +3261,12 @@ static const struct dvb_frontend_ops stv0367ddb_ops = {
0x400 |/* FE_CAN_QAM_4 */
FE_CAN_QAM_16 | FE_CAN_QAM_32 |
FE_CAN_QAM_64 | FE_CAN_QAM_128 |
FE_CAN_QAM_256 | FE_CAN_FEC_AUTO |
FE_CAN_QAM_256 | FE_CAN_QAM_AUTO |
/* DVB-T */
FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 |
FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 |
FE_CAN_FEC_AUTO |
FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
FE_CAN_QAM_128 | FE_CAN_QAM_256 | FE_CAN_QAM_AUTO |
FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_RECOVER |
FE_CAN_INVERSION_AUTO |
FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
FE_CAN_QPSK | FE_CAN_TRANSMISSION_MODE_AUTO |
FE_CAN_RECOVER | FE_CAN_INVERSION_AUTO |
FE_CAN_MUTE_TS
},
.release = stv0367_release,

View file

@ -1496,7 +1496,6 @@ MODULE_DEVICE_TABLE(i2c, et8ek8_id_table);
static const struct dev_pm_ops et8ek8_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(et8ek8_suspend, et8ek8_resume)
};
MODULE_DEVICE_TABLE(of, et8ek8_of_table);
static struct i2c_driver et8ek8_i2c_driver = {
.driver = {

View file

@ -659,7 +659,7 @@ static int tvp5150_set_vbi(struct v4l2_subdev *sd,
struct tvp5150 *decoder = to_tvp5150(sd);
v4l2_std_id std = decoder->norm;
u8 reg;
int pos=0;
int pos = 0;
if (std == V4L2_STD_ALL) {
dev_err(sd->dev, "VBI can't be configured without knowing number of lines\n");
@ -669,33 +669,30 @@ static int tvp5150_set_vbi(struct v4l2_subdev *sd,
line += 3;
}
if (line<6||line>27)
if (line < 6 || line > 27)
return 0;
while (regs->reg != (u16)-1 ) {
while (regs->reg != (u16)-1) {
if ((type & regs->type.vbi_type) &&
(line>=regs->type.ini_line) &&
(line<=regs->type.end_line)) {
type=regs->type.vbi_type;
(line >= regs->type.ini_line) &&
(line <= regs->type.end_line))
break;
}
regs++;
pos++;
}
if (regs->reg == (u16)-1)
return 0;
type=pos | (flags & 0xf0);
reg=((line-6)<<1)+TVP5150_LINE_MODE_INI;
type = pos | (flags & 0xf0);
reg = ((line - 6) << 1) + TVP5150_LINE_MODE_INI;
if (fields&1) {
if (fields & 1)
tvp5150_write(sd, reg, type);
}
if (fields&2) {
tvp5150_write(sd, reg+1, type);
}
if (fields & 2)
tvp5150_write(sd, reg + 1, type);
return type;
}

View file

@ -17,6 +17,8 @@
* http://www.gnu.org/copyleft/gpl.html
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/module.h>
#include <linux/init.h>
#include <linux/interrupt.h>
@ -114,6 +116,19 @@ static int i2c_write_reg(struct i2c_adapter *adap, u8 adr,
return i2c_write(adap, adr, msg, 2);
}
static inline u32 safe_ddbreadl(struct ddb *dev, u32 adr)
{
u32 val = ddbreadl(adr);
/* (ddb)readl returns (uint)-1 (all bits set) on failure, catch that */
if (val == ~0) {
dev_err(&dev->pdev->dev, "ddbreadl failure, adr=%08x\n", adr);
return 0;
}
return val;
}
static int ddb_i2c_cmd(struct ddb_i2c *i2c, u32 adr, u32 cmd)
{
struct ddb *dev = i2c->dev;
@ -124,10 +139,10 @@ static int ddb_i2c_cmd(struct ddb_i2c *i2c, u32 adr, u32 cmd)
ddbwritel((adr << 9) | cmd, i2c->regs + I2C_COMMAND);
stat = wait_event_timeout(i2c->wq, i2c->done == 1, HZ);
if (stat == 0) {
printk(KERN_ERR "I2C timeout\n");
dev_err(&dev->pdev->dev, "I2C timeout\n");
{ /* MSI debugging*/
u32 istat = ddbreadl(INTERRUPT_STATUS);
printk(KERN_ERR "IRS %08x\n", istat);
dev_err(&dev->pdev->dev, "IRS %08x\n", istat);
ddbwritel(istat, INTERRUPT_ACK);
}
return -EIO;
@ -533,7 +548,7 @@ static u32 ddb_input_avail(struct ddb_input *input)
off = (stat & 0x7ff) << 7;
if (ctrl & 4) {
printk(KERN_ERR "IA %d %d %08x\n", idx, off, ctrl);
dev_err(&dev->pdev->dev, "IA %d %d %08x\n", idx, off, ctrl);
ddbwritel(input->stat, DMA_BUFFER_ACK(input->nr));
return 0;
}
@ -611,6 +626,7 @@ static int demod_attach_drxk(struct ddb_input *input)
struct i2c_adapter *i2c = &input->port->i2c->adap;
struct dvb_frontend *fe;
struct drxk_config config;
struct device *dev = &input->port->dev->pdev->dev;
memset(&config, 0, sizeof(config));
config.microcode_name = "drxk_a3.mc";
@ -619,7 +635,7 @@ static int demod_attach_drxk(struct ddb_input *input)
fe = input->fe = dvb_attach(drxk_attach, &config, i2c);
if (!input->fe) {
printk(KERN_ERR "No DRXK found!\n");
dev_err(dev, "No DRXK found!\n");
return -ENODEV;
}
fe->sec_priv = input;
@ -632,12 +648,13 @@ static int tuner_attach_tda18271(struct ddb_input *input)
{
struct i2c_adapter *i2c = &input->port->i2c->adap;
struct dvb_frontend *fe;
struct device *dev = &input->port->dev->pdev->dev;
if (input->fe->ops.i2c_gate_ctrl)
input->fe->ops.i2c_gate_ctrl(input->fe, 1);
fe = dvb_attach(tda18271c2dd_attach, input->fe, i2c, 0x60);
if (!fe) {
printk(KERN_ERR "No TDA18271 found!\n");
dev_err(dev, "No TDA18271 found!\n");
return -ENODEV;
}
if (input->fe->ops.i2c_gate_ctrl)
@ -670,13 +687,14 @@ static struct stv0367_config ddb_stv0367_config[] = {
static int demod_attach_stv0367(struct ddb_input *input)
{
struct i2c_adapter *i2c = &input->port->i2c->adap;
struct device *dev = &input->port->dev->pdev->dev;
/* attach frontend */
input->fe = dvb_attach(stv0367ddb_attach,
&ddb_stv0367_config[(input->nr & 1)], i2c);
if (!input->fe) {
printk(KERN_ERR "stv0367ddb_attach failed (not found?)\n");
dev_err(dev, "stv0367ddb_attach failed (not found?)\n");
return -ENODEV;
}
@ -690,17 +708,19 @@ static int demod_attach_stv0367(struct ddb_input *input)
static int tuner_tda18212_ping(struct ddb_input *input, unsigned short adr)
{
struct i2c_adapter *adapter = &input->port->i2c->adap;
struct device *dev = &input->port->dev->pdev->dev;
u8 tda_id[2];
u8 subaddr = 0x00;
printk(KERN_DEBUG "stv0367-tda18212 tuner ping\n");
dev_dbg(dev, "stv0367-tda18212 tuner ping\n");
if (input->fe->ops.i2c_gate_ctrl)
input->fe->ops.i2c_gate_ctrl(input->fe, 1);
if (i2c_read_regs(adapter, adr, subaddr, tda_id, sizeof(tda_id)) < 0)
printk(KERN_DEBUG "tda18212 ping 1 fail\n");
dev_dbg(dev, "tda18212 ping 1 fail\n");
if (i2c_read_regs(adapter, adr, subaddr, tda_id, sizeof(tda_id)) < 0)
printk(KERN_DEBUG "tda18212 ping 2 fail\n");
dev_warn(dev, "tda18212 ping failed, expect problems\n");
if (input->fe->ops.i2c_gate_ctrl)
input->fe->ops.i2c_gate_ctrl(input->fe, 0);
@ -711,6 +731,7 @@ static int tuner_tda18212_ping(struct ddb_input *input, unsigned short adr)
static int demod_attach_cxd28xx(struct ddb_input *input, int par, int osc24)
{
struct i2c_adapter *i2c = &input->port->i2c->adap;
struct device *dev = &input->port->dev->pdev->dev;
struct cxd2841er_config cfg;
/* the cxd2841er driver expects 8bit/shifted I2C addresses */
@ -728,7 +749,7 @@ static int demod_attach_cxd28xx(struct ddb_input *input, int par, int osc24)
input->fe = dvb_attach(cxd2841er_attach_t_c, &cfg, i2c);
if (!input->fe) {
printk(KERN_ERR "No Sony CXD28xx found!\n");
dev_err(dev, "No Sony CXD28xx found!\n");
return -ENODEV;
}
@ -742,6 +763,7 @@ static int demod_attach_cxd28xx(struct ddb_input *input, int par, int osc24)
static int tuner_attach_tda18212(struct ddb_input *input, u32 porttype)
{
struct i2c_adapter *adapter = &input->port->i2c->adap;
struct device *dev = &input->port->dev->pdev->dev;
struct i2c_client *client;
struct tda18212_config config = {
.fe = input->fe,
@ -786,7 +808,7 @@ static int tuner_attach_tda18212(struct ddb_input *input, u32 porttype)
return 0;
err:
printk(KERN_INFO "TDA18212 tuner not found. Device is not fully operational.\n");
dev_warn(dev, "TDA18212 tuner not found. Device is not fully operational.\n");
return -ENODEV;
}
@ -847,19 +869,20 @@ static struct stv6110x_config stv6110b = {
static int demod_attach_stv0900(struct ddb_input *input, int type)
{
struct i2c_adapter *i2c = &input->port->i2c->adap;
struct device *dev = &input->port->dev->pdev->dev;
struct stv090x_config *feconf = type ? &stv0900_aa : &stv0900;
input->fe = dvb_attach(stv090x_attach, feconf, i2c,
(input->nr & 1) ? STV090x_DEMODULATOR_1
: STV090x_DEMODULATOR_0);
if (!input->fe) {
printk(KERN_ERR "No STV0900 found!\n");
dev_err(dev, "No STV0900 found!\n");
return -ENODEV;
}
if (!dvb_attach(lnbh24_attach, input->fe, i2c, 0,
0, (input->nr & 1) ?
(0x09 - type) : (0x0b - type))) {
printk(KERN_ERR "No LNBH24 found!\n");
dev_err(dev, "No LNBH24 found!\n");
return -ENODEV;
}
return 0;
@ -868,6 +891,7 @@ static int demod_attach_stv0900(struct ddb_input *input, int type)
static int tuner_attach_stv6110(struct ddb_input *input, int type)
{
struct i2c_adapter *i2c = &input->port->i2c->adap;
struct device *dev = &input->port->dev->pdev->dev;
struct stv090x_config *feconf = type ? &stv0900_aa : &stv0900;
struct stv6110x_config *tunerconf = (input->nr & 1) ?
&stv6110b : &stv6110a;
@ -875,10 +899,10 @@ static int tuner_attach_stv6110(struct ddb_input *input, int type)
ctl = dvb_attach(stv6110x_attach, input->fe, tunerconf, i2c);
if (!ctl) {
printk(KERN_ERR "No STV6110X found!\n");
dev_err(dev, "No STV6110X found!\n");
return -ENODEV;
}
printk(KERN_INFO "attach tuner input %d adr %02x\n",
dev_info(dev, "attach tuner input %d adr %02x\n",
input->nr, tunerconf->addr);
feconf->tuner_init = ctl->tuner_init;
@ -1009,13 +1033,14 @@ static int dvb_input_attach(struct ddb_input *input)
struct ddb_port *port = input->port;
struct dvb_adapter *adap = &input->adap;
struct dvb_demux *dvbdemux = &input->demux;
struct device *dev = &input->port->dev->pdev->dev;
int sony_osc24 = 0, sony_tspar = 0;
ret = dvb_register_adapter(adap, "DDBridge", THIS_MODULE,
&input->port->dev->pdev->dev,
adapter_nr);
if (ret < 0) {
printk(KERN_ERR "ddbridge: Could not register adapter.Check if you enabled enough adapters in dvb-core!\n");
dev_err(dev, "Could not register adapter. Check if you enabled enough adapters in dvb-core!\n");
return ret;
}
input->attached = 1;
@ -1241,9 +1266,9 @@ static void input_tasklet(unsigned long data)
if (input->port->class == DDB_PORT_TUNER) {
if (4&ddbreadl(DMA_BUFFER_CONTROL(input->nr)))
printk(KERN_ERR "Overflow input %d\n", input->nr);
dev_err(&dev->pdev->dev, "Overflow input %d\n", input->nr);
while (input->cbuf != ((input->stat >> 11) & 0x1f)
|| (4&ddbreadl(DMA_BUFFER_CONTROL(input->nr)))) {
|| (4 & safe_ddbreadl(dev, DMA_BUFFER_CONTROL(input->nr)))) {
dvb_dmx_swfilter_packets(&input->demux,
input->vbuf[input->cbuf],
input->dma_buf_size / 188);
@ -1280,6 +1305,7 @@ static struct cxd2099_cfg cxd_cfg = {
.adr = 0x40,
.polarity = 1,
.clock_mode = 1,
.max_i2c = 512,
};
static int ddb_ci_attach(struct ddb_port *port)
@ -1310,6 +1336,7 @@ static int ddb_ci_attach(struct ddb_port *port)
static int ddb_port_attach(struct ddb_port *port)
{
struct device *dev = &port->dev->pdev->dev;
int ret = 0;
switch (port->class) {
@ -1326,7 +1353,7 @@ static int ddb_port_attach(struct ddb_port *port)
break;
}
if (ret < 0)
printk(KERN_ERR "port_attach on port %d failed\n", port->nr);
dev_err(dev, "port_attach on port %d failed\n", port->nr);
return ret;
}
@ -1377,6 +1404,7 @@ static void ddb_ports_detach(struct ddb *dev)
static int init_xo2(struct ddb_port *port)
{
struct i2c_adapter *i2c = &port->i2c->adap;
struct device *dev = &port->dev->pdev->dev;
u8 val, data[2];
int res;
@ -1385,7 +1413,7 @@ static int init_xo2(struct ddb_port *port)
return res;
if (data[0] != 0x01) {
pr_info("Port %d: invalid XO2\n", port->nr);
dev_info(dev, "Port %d: invalid XO2\n", port->nr);
return -1;
}
@ -1511,7 +1539,7 @@ static void ddb_port_probe(struct ddb_port *port)
port->class = DDB_PORT_CI;
ddbwritel(I2C_SPEED_400, port->i2c->regs + I2C_TIMING);
} else if (port_has_xo2(port, &xo2_type, &xo2_id)) {
printk(KERN_INFO "Port %d (TAB %d): XO2 type: %d, id: %d\n",
dev_dbg(&dev->pdev->dev, "Port %d (TAB %d): XO2 type: %d, id: %d\n",
port->nr, port->nr+1, xo2_type, xo2_id);
ddbwritel(I2C_SPEED_400, port->i2c->regs + I2C_TIMING);
@ -1556,10 +1584,10 @@ static void ddb_port_probe(struct ddb_port *port)
}
break;
case DDB_XO2_TYPE_CI:
printk(KERN_INFO "DuoFlex CI modules not supported\n");
dev_info(&dev->pdev->dev, "DuoFlex CI modules not supported\n");
break;
default:
printk(KERN_INFO "Unknown XO2 DuoFlex module\n");
dev_info(&dev->pdev->dev, "Unknown XO2 DuoFlex module\n");
break;
}
} else if (port_has_cxd28xx(port, &cxd_id)) {
@ -1611,7 +1639,7 @@ static void ddb_port_probe(struct ddb_port *port)
ddbwritel(I2C_SPEED_100, port->i2c->regs + I2C_TIMING);
}
printk(KERN_INFO "Port %d (TAB %d): %s\n",
dev_info(&dev->pdev->dev, "Port %d (TAB %d): %s\n",
port->nr, port->nr+1, modname);
}
@ -1765,7 +1793,7 @@ static int flashio(struct ddb *dev, u8 *wbuf, u32 wlen, u8 *rbuf, u32 rlen)
wbuf += 4;
wlen -= 4;
ddbwritel(data, SPI_DATA);
while (ddbreadl(SPI_CONTROL) & 0x0004)
while (safe_ddbreadl(dev, SPI_CONTROL) & 0x0004)
;
}
@ -1785,7 +1813,7 @@ static int flashio(struct ddb *dev, u8 *wbuf, u32 wlen, u8 *rbuf, u32 rlen)
if (shift)
data <<= shift;
ddbwritel(data, SPI_DATA);
while (ddbreadl(SPI_CONTROL) & 0x0004)
while (safe_ddbreadl(dev, SPI_CONTROL) & 0x0004)
;
if (!rlen) {
@ -1797,7 +1825,7 @@ static int flashio(struct ddb *dev, u8 *wbuf, u32 wlen, u8 *rbuf, u32 rlen)
while (rlen > 4) {
ddbwritel(0xffffffff, SPI_DATA);
while (ddbreadl(SPI_CONTROL) & 0x0004)
while (safe_ddbreadl(dev, SPI_CONTROL) & 0x0004)
;
data = ddbreadl(SPI_DATA);
*(u32 *) rbuf = swab32(data);
@ -1806,7 +1834,7 @@ static int flashio(struct ddb *dev, u8 *wbuf, u32 wlen, u8 *rbuf, u32 rlen)
}
ddbwritel(0x0003 | ((rlen << (8 + 3)) & 0x1F00), SPI_CONTROL);
ddbwritel(0xffffffff, SPI_DATA);
while (ddbreadl(SPI_CONTROL) & 0x0004)
while (safe_ddbreadl(dev, SPI_CONTROL) & 0x0004)
;
data = ddbreadl(SPI_DATA);
@ -1993,7 +2021,7 @@ static int ddb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
dev->pdev = pdev;
pci_set_drvdata(pdev, dev);
dev->info = (struct ddb_info *) id->driver_data;
printk(KERN_INFO "DDBridge driver detected: %s\n", dev->info->name);
dev_info(&pdev->dev, "Detected %s\n", dev->info->name);
dev->regs = ioremap(pci_resource_start(dev->pdev, 0),
pci_resource_len(dev->pdev, 0));
@ -2001,13 +2029,13 @@ static int ddb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
stat = -ENOMEM;
goto fail;
}
printk(KERN_INFO "HW %08x FW %08x\n", ddbreadl(0), ddbreadl(4));
dev_info(&pdev->dev, "HW %08x FW %08x\n", ddbreadl(0), ddbreadl(4));
#ifdef CONFIG_PCI_MSI
if (pci_msi_enabled())
stat = pci_enable_msi(dev->pdev);
if (stat) {
printk(KERN_INFO ": MSI not available.\n");
dev_info(&pdev->dev, "MSI not available.\n");
} else {
irq_flag = 0;
dev->msi = 1;
@ -2040,7 +2068,7 @@ static int ddb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
goto fail1;
ddb_ports_init(dev);
if (ddb_buffers_alloc(dev) < 0) {
printk(KERN_INFO ": Could not allocate buffer memory\n");
dev_err(&pdev->dev, "Could not allocate buffer memory\n");
goto fail2;
}
if (ddb_ports_attach(dev) < 0)
@ -2050,19 +2078,19 @@ static int ddb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
fail3:
ddb_ports_detach(dev);
printk(KERN_ERR "fail3\n");
dev_err(&pdev->dev, "fail3\n");
ddb_ports_release(dev);
fail2:
printk(KERN_ERR "fail2\n");
dev_err(&pdev->dev, "fail2\n");
ddb_buffers_free(dev);
fail1:
printk(KERN_ERR "fail1\n");
dev_err(&pdev->dev, "fail1\n");
if (dev->msi)
pci_disable_msi(dev->pdev);
if (stat == 0)
free_irq(dev->pdev->irq, dev);
fail:
printk(KERN_ERR "fail\n");
dev_err(&pdev->dev, "fail\n");
ddb_unmap(dev);
pci_set_drvdata(pdev, NULL);
pci_disable_device(pdev);
@ -2242,7 +2270,7 @@ static __init int module_init_ddbridge(void)
{
int ret;
printk(KERN_INFO "Digital Devices PCIE bridge driver, Copyright (C) 2010-11 Digital Devices GmbH\n");
pr_info("Digital Devices PCIE bridge driver, Copyright (C) 2010-11 Digital Devices GmbH\n");
ret = ddb_class_create();
if (ret < 0)

View file

@ -336,9 +336,9 @@ int ngene_command(struct ngene *dev, struct ngene_command *com)
{
int result;
down(&dev->cmd_mutex);
mutex_lock(&dev->cmd_mutex);
result = ngene_command_mutex(dev, com);
up(&dev->cmd_mutex);
mutex_unlock(&dev->cmd_mutex);
return result;
}
@ -560,7 +560,6 @@ static int ngene_command_stream_control(struct ngene *dev, u8 stream,
u16 BsSPI = ((stream & 1) ? 0x9800 : 0x9700);
u16 BsSDO = 0x9B00;
down(&dev->stream_mutex);
memset(&com, 0, sizeof(com));
com.cmd.hdr.Opcode = CMD_CONTROL;
com.cmd.hdr.Length = sizeof(struct FW_STREAM_CONTROL) - 2;
@ -586,17 +585,13 @@ static int ngene_command_stream_control(struct ngene *dev, u8 stream,
chan->State = KSSTATE_ACQUIRE;
chan->HWState = HWSTATE_STOP;
spin_unlock_irq(&chan->state_lock);
if (ngene_command(dev, &com) < 0) {
up(&dev->stream_mutex);
if (ngene_command(dev, &com) < 0)
return -1;
}
/* clear_buffers(chan); */
flush_buffers(chan);
up(&dev->stream_mutex);
return 0;
}
spin_unlock_irq(&chan->state_lock);
up(&dev->stream_mutex);
return 0;
}
@ -692,11 +687,9 @@ static int ngene_command_stream_control(struct ngene *dev, u8 stream,
chan->HWState = HWSTATE_STARTUP;
spin_unlock_irq(&chan->state_lock);
if (ngene_command(dev, &com) < 0) {
up(&dev->stream_mutex);
if (ngene_command(dev, &com) < 0)
return -1;
}
up(&dev->stream_mutex);
return 0;
}
@ -750,8 +743,11 @@ void set_transfer(struct ngene_channel *chan, int state)
/* else printk(KERN_INFO DEVICE_NAME ": lock=%08x\n",
ngreadl(0x9310)); */
mutex_lock(&dev->stream_mutex);
ret = ngene_command_stream_control(dev, chan->number,
control, mode, flags);
mutex_unlock(&dev->stream_mutex);
if (!ret)
chan->running = state;
else
@ -1283,7 +1279,7 @@ static int ngene_load_firm(struct ngene *dev)
static void ngene_stop(struct ngene *dev)
{
down(&dev->cmd_mutex);
mutex_destroy(&dev->cmd_mutex);
i2c_del_adapter(&(dev->channel[0].i2c_adapter));
i2c_del_adapter(&(dev->channel[1].i2c_adapter));
ngwritel(0, NGENE_INT_ENABLE);
@ -1346,10 +1342,10 @@ static int ngene_start(struct ngene *dev)
init_waitqueue_head(&dev->cmd_wq);
init_waitqueue_head(&dev->tx_wq);
init_waitqueue_head(&dev->rx_wq);
sema_init(&dev->cmd_mutex, 1);
sema_init(&dev->stream_mutex, 1);
mutex_init(&dev->cmd_mutex);
mutex_init(&dev->stream_mutex);
sema_init(&dev->pll_mutex, 1);
sema_init(&dev->i2c_switch_mutex, 1);
mutex_init(&dev->i2c_switch_mutex);
spin_lock_init(&dev->cmd_lock);
for (i = 0; i < MAX_STREAM; i++)
spin_lock_init(&dev->channel[i].state_lock);
@ -1606,10 +1602,10 @@ static void ngene_unlink(struct ngene *dev)
com.in_len = 3;
com.out_len = 1;
down(&dev->cmd_mutex);
mutex_lock(&dev->cmd_mutex);
ngwritel(0, NGENE_INT_ENABLE);
ngene_command_mutex(dev, &com);
up(&dev->cmd_mutex);
mutex_unlock(&dev->cmd_mutex);
}
void ngene_shutdown(struct pci_dev *pdev)

View file

@ -118,7 +118,7 @@ static int ngene_i2c_master_xfer(struct i2c_adapter *adapter,
(struct ngene_channel *)i2c_get_adapdata(adapter);
struct ngene *dev = chan->dev;
down(&dev->i2c_switch_mutex);
mutex_lock(&dev->i2c_switch_mutex);
ngene_i2c_set_bus(dev, chan->number);
if (num == 2 && msg[1].flags & I2C_M_RD && !(msg[0].flags & I2C_M_RD))
@ -136,11 +136,11 @@ static int ngene_i2c_master_xfer(struct i2c_adapter *adapter,
msg[0].buf, msg[0].len, 0))
goto done;
up(&dev->i2c_switch_mutex);
mutex_unlock(&dev->i2c_switch_mutex);
return -EIO;
done:
up(&dev->i2c_switch_mutex);
mutex_unlock(&dev->i2c_switch_mutex);
return num;
}

View file

@ -762,10 +762,10 @@ struct ngene {
wait_queue_head_t cmd_wq;
int cmd_done;
struct semaphore cmd_mutex;
struct semaphore stream_mutex;
struct mutex cmd_mutex;
struct mutex stream_mutex;
struct semaphore pll_mutex;
struct semaphore i2c_switch_mutex;
struct mutex i2c_switch_mutex;
int i2c_current_channel;
int i2c_current_bus;
spinlock_t cmd_lock;

View file

@ -545,6 +545,7 @@ static int tw5864_fmt_vid_cap(struct file *file, void *priv,
switch (input->std) {
default:
WARN_ON_ONCE(1);
return -EINVAL;
case STD_NTSC:
f->fmt.pix.height = 480;
break;

View file

@ -475,8 +475,8 @@ config VIDEO_QCOM_VENUS
tristate "Qualcomm Venus V4L2 encoder/decoder driver"
depends on VIDEO_DEV && VIDEO_V4L2 && HAS_DMA
depends on (ARCH_QCOM && IOMMU_DMA) || COMPILE_TEST
select QCOM_MDT_LOADER if (ARM || ARM64)
select QCOM_SCM if (ARM || ARM64)
select QCOM_MDT_LOADER if ARCH_QCOM
select QCOM_SCM if ARCH_QCOM
select VIDEOBUF2_DMA_SG
select V4L2_MEM2MEM_DEV
---help---

View file

@ -393,8 +393,8 @@ static int coda_alloc_framebuffers(struct coda_ctx *ctx,
int ret;
int i;
if (ctx->codec && (ctx->codec->src_fourcc == V4L2_PIX_FMT_H264 ||
ctx->codec->dst_fourcc == V4L2_PIX_FMT_H264)) {
if (ctx->codec->src_fourcc == V4L2_PIX_FMT_H264 ||
ctx->codec->dst_fourcc == V4L2_PIX_FMT_H264) {
width = round_up(q_data->width, 16);
height = round_up(q_data->height, 16);
} else {
@ -2198,7 +2198,7 @@ static void coda_finish_decode(struct coda_ctx *ctx)
ctx->display_idx = display_idx;
}
static void coda_error_decode(struct coda_ctx *ctx)
static void coda_decode_timeout(struct coda_ctx *ctx)
{
struct vb2_v4l2_buffer *dst_buf;
@ -2223,7 +2223,7 @@ const struct coda_context_ops coda_bit_decode_ops = {
.start_streaming = coda_start_decoding,
.prepare_run = coda_prepare_decode,
.finish_run = coda_finish_decode,
.error_run = coda_error_decode,
.run_timeout = coda_decode_timeout,
.seq_end_work = coda_seq_end_work,
.release = coda_bit_release,
};

View file

@ -1164,8 +1164,8 @@ static void coda_pic_run_work(struct work_struct *work)
coda_hw_reset(ctx);
if (ctx->ops->error_run)
ctx->ops->error_run(ctx);
if (ctx->ops->run_timeout)
ctx->ops->run_timeout(ctx);
} else if (!ctx->aborting) {
ctx->ops->finish_run(ctx);
}

View file

@ -183,7 +183,7 @@ struct coda_context_ops {
int (*start_streaming)(struct coda_ctx *ctx);
int (*prepare_run)(struct coda_ctx *ctx);
void (*finish_run)(struct coda_ctx *ctx);
void (*error_run)(struct coda_ctx *ctx);
void (*run_timeout)(struct coda_ctx *ctx);
void (*seq_end_work)(struct work_struct *work);
void (*release)(struct coda_ctx *ctx);
};

View file

@ -42,16 +42,6 @@ struct ccdc_hw_ops {
int (*set_hw_if_params) (struct vpfe_hw_if_param *param);
/* get interface parameters */
int (*get_hw_if_params) (struct vpfe_hw_if_param *param);
/*
* Pointer to function to set parameters. Used
* for implementing VPFE_S_CCDC_PARAMS
*/
int (*set_params) (void *params);
/*
* Pointer to function to get parameter. Used
* for implementing VPFE_G_CCDC_PARAMS
*/
int (*get_params) (void *params);
/* Pointer to function to configure ccdc */
int (*configure) (void);

View file

@ -17,12 +17,7 @@
* This module is for configuring DM355 CCD controller of VPFE to capture
* Raw yuv or Bayer RGB data from a decoder. CCDC has several modules
* such as Defect Pixel Correction, Color Space Conversion etc to
* pre-process the Bayer RGB data, before writing it to SDRAM. This
* module also allows application to configure individual
* module parameters through VPFE_CMD_S_CCDC_RAW_PARAMS IOCTL.
* To do so, application include dm355_ccdc.h and vpfe_capture.h header
* files. The setparams() API is called by vpfe_capture driver
* to configure module parameters
* pre-process the Bayer RGB data, before writing it to SDRAM.
*
* TODO: 1) Raw bayer parameter settings and bayer capture
* 2) Split module parameter structure to module specific ioctl structs
@ -260,90 +255,6 @@ static void ccdc_setwin(struct v4l2_rect *image_win,
dev_dbg(ccdc_cfg.dev, "\nEnd of ccdc_setwin...");
}
static int validate_ccdc_param(struct ccdc_config_params_raw *ccdcparam)
{
if (ccdcparam->datasft < CCDC_DATA_NO_SHIFT ||
ccdcparam->datasft > CCDC_DATA_SHIFT_6BIT) {
dev_dbg(ccdc_cfg.dev, "Invalid value of data shift\n");
return -EINVAL;
}
if (ccdcparam->mfilt1 < CCDC_NO_MEDIAN_FILTER1 ||
ccdcparam->mfilt1 > CCDC_MEDIAN_FILTER1) {
dev_dbg(ccdc_cfg.dev, "Invalid value of median filter1\n");
return -EINVAL;
}
if (ccdcparam->mfilt2 < CCDC_NO_MEDIAN_FILTER2 ||
ccdcparam->mfilt2 > CCDC_MEDIAN_FILTER2) {
dev_dbg(ccdc_cfg.dev, "Invalid value of median filter2\n");
return -EINVAL;
}
if ((ccdcparam->med_filt_thres < 0) ||
(ccdcparam->med_filt_thres > CCDC_MED_FILT_THRESH)) {
dev_dbg(ccdc_cfg.dev,
"Invalid value of median filter threshold\n");
return -EINVAL;
}
if (ccdcparam->data_sz < CCDC_DATA_16BITS ||
ccdcparam->data_sz > CCDC_DATA_8BITS) {
dev_dbg(ccdc_cfg.dev, "Invalid value of data size\n");
return -EINVAL;
}
if (ccdcparam->alaw.enable) {
if (ccdcparam->alaw.gamma_wd < CCDC_GAMMA_BITS_13_4 ||
ccdcparam->alaw.gamma_wd > CCDC_GAMMA_BITS_09_0) {
dev_dbg(ccdc_cfg.dev, "Invalid value of ALAW\n");
return -EINVAL;
}
}
if (ccdcparam->blk_clamp.b_clamp_enable) {
if (ccdcparam->blk_clamp.sample_pixel < CCDC_SAMPLE_1PIXELS ||
ccdcparam->blk_clamp.sample_pixel > CCDC_SAMPLE_16PIXELS) {
dev_dbg(ccdc_cfg.dev,
"Invalid value of sample pixel\n");
return -EINVAL;
}
if (ccdcparam->blk_clamp.sample_ln < CCDC_SAMPLE_1LINES ||
ccdcparam->blk_clamp.sample_ln > CCDC_SAMPLE_16LINES) {
dev_dbg(ccdc_cfg.dev,
"Invalid value of sample lines\n");
return -EINVAL;
}
}
return 0;
}
/* Parameter operations */
static int ccdc_set_params(void __user *params)
{
struct ccdc_config_params_raw ccdc_raw_params;
int x;
/* only raw module parameters can be set through the IOCTL */
if (ccdc_cfg.if_type != VPFE_RAW_BAYER)
return -EINVAL;
x = copy_from_user(&ccdc_raw_params, params, sizeof(ccdc_raw_params));
if (x) {
dev_dbg(ccdc_cfg.dev, "ccdc_set_params: error in copying ccdcparams, %d\n",
x);
return -EFAULT;
}
if (!validate_ccdc_param(&ccdc_raw_params)) {
memcpy(&ccdc_cfg.bayer.config_params,
&ccdc_raw_params,
sizeof(ccdc_raw_params));
return 0;
}
return -EINVAL;
}
/* This function will configure CCDC for YCbCr video capture */
static void ccdc_config_ycbcr(void)
{
@ -939,7 +850,6 @@ static struct ccdc_hw_device ccdc_hw_dev = {
.enable = ccdc_enable,
.enable_out_to_sdram = ccdc_enable_output_to_sdram,
.set_hw_if_params = ccdc_set_hw_if_params,
.set_params = ccdc_set_params,
.configure = ccdc_configure,
.set_buftype = ccdc_set_buftype,
.get_buftype = ccdc_get_buftype,

View file

@ -17,13 +17,9 @@
* This module is for configuring CCD controller of DM6446 VPFE to capture
* Raw yuv or Bayer RGB data from a decoder. CCDC has several modules
* such as Defect Pixel Correction, Color Space Conversion etc to
* pre-process the Raw Bayer RGB data, before writing it to SDRAM. This
* module also allows application to configure individual
* module parameters through VPFE_CMD_S_CCDC_RAW_PARAMS IOCTL.
* To do so, application includes dm644x_ccdc.h and vpfe_capture.h header
* files. The setparams() API is called by vpfe_capture driver
* to configure module parameters. This file is named DM644x so that other
* variants such DM6443 may be supported using the same module.
* pre-process the Raw Bayer RGB data, before writing it to SDRAM.
* This file is named DM644x so that other variants such DM6443
* may be supported using the same module.
*
* TODO: Test Raw bayer parameter settings and bayer capture
* Split module parameter structure to module specific ioctl structs
@ -216,96 +212,8 @@ static void ccdc_readregs(void)
dev_notice(ccdc_cfg.dev, "\nReading 0x%x to VERT_LINES...\n", val);
}
static int validate_ccdc_param(struct ccdc_config_params_raw *ccdcparam)
{
if (ccdcparam->alaw.enable) {
u8 max_gamma = ccdc_gamma_width_max_bit(ccdcparam->alaw.gamma_wd);
u8 max_data = ccdc_data_size_max_bit(ccdcparam->data_sz);
if ((ccdcparam->alaw.gamma_wd > CCDC_GAMMA_BITS_09_0) ||
(ccdcparam->alaw.gamma_wd < CCDC_GAMMA_BITS_15_6) ||
(max_gamma > max_data)) {
dev_dbg(ccdc_cfg.dev, "\nInvalid data line select");
return -1;
}
}
return 0;
}
static int ccdc_update_raw_params(struct ccdc_config_params_raw *raw_params)
{
struct ccdc_config_params_raw *config_params =
&ccdc_cfg.bayer.config_params;
unsigned int *fpc_virtaddr = NULL;
unsigned int *fpc_physaddr = NULL;
memcpy(config_params, raw_params, sizeof(*raw_params));
/*
* allocate memory for fault pixel table and copy the user
* values to the table
*/
if (!config_params->fault_pxl.enable)
return 0;
fpc_physaddr = (unsigned int *)config_params->fault_pxl.fpc_table_addr;
fpc_virtaddr = (unsigned int *)phys_to_virt(
(unsigned long)fpc_physaddr);
/*
* Allocate memory for FPC table if current
* FPC table buffer is not big enough to
* accommodate FPC Number requested
*/
if (raw_params->fault_pxl.fp_num != config_params->fault_pxl.fp_num) {
if (fpc_physaddr != NULL) {
free_pages((unsigned long)fpc_virtaddr,
get_order
(config_params->fault_pxl.fp_num *
FP_NUM_BYTES));
}
/* Allocate memory for FPC table */
fpc_virtaddr =
(unsigned int *)__get_free_pages(GFP_KERNEL | GFP_DMA,
get_order(raw_params->
fault_pxl.fp_num *
FP_NUM_BYTES));
if (fpc_virtaddr == NULL) {
dev_dbg(ccdc_cfg.dev,
"\nUnable to allocate memory for FPC");
return -EFAULT;
}
fpc_physaddr =
(unsigned int *)virt_to_phys((void *)fpc_virtaddr);
}
/* Copy number of fault pixels and FPC table */
config_params->fault_pxl.fp_num = raw_params->fault_pxl.fp_num;
if (copy_from_user(fpc_virtaddr,
(void __user *)raw_params->fault_pxl.fpc_table_addr,
config_params->fault_pxl.fp_num * FP_NUM_BYTES)) {
dev_dbg(ccdc_cfg.dev, "\n copy_from_user failed");
return -EFAULT;
}
config_params->fault_pxl.fpc_table_addr = (unsigned long)fpc_physaddr;
return 0;
}
static int ccdc_close(struct device *dev)
{
struct ccdc_config_params_raw *config_params =
&ccdc_cfg.bayer.config_params;
unsigned int *fpc_physaddr = NULL, *fpc_virtaddr = NULL;
fpc_physaddr = (unsigned int *)config_params->fault_pxl.fpc_table_addr;
if (fpc_physaddr != NULL) {
fpc_virtaddr = (unsigned int *)
phys_to_virt((unsigned long)fpc_physaddr);
free_pages((unsigned long)fpc_virtaddr,
get_order(config_params->fault_pxl.fp_num *
FP_NUM_BYTES));
}
return 0;
}
@ -339,29 +247,6 @@ static void ccdc_sbl_reset(void)
vpss_clear_wbl_overflow(VPSS_PCR_CCDC_WBL_O);
}
/* Parameter operations */
static int ccdc_set_params(void __user *params)
{
struct ccdc_config_params_raw ccdc_raw_params;
int x;
if (ccdc_cfg.if_type != VPFE_RAW_BAYER)
return -EINVAL;
x = copy_from_user(&ccdc_raw_params, params, sizeof(ccdc_raw_params));
if (x) {
dev_dbg(ccdc_cfg.dev, "ccdc_set_params: error in copyingccdc params, %d\n",
x);
return -EFAULT;
}
if (!validate_ccdc_param(&ccdc_raw_params)) {
if (!ccdc_update_raw_params(&ccdc_raw_params))
return 0;
}
return -EINVAL;
}
/*
* ccdc_config_ycbcr()
* This function will configure CCDC for YCbCr video capture
@ -489,32 +374,6 @@ static void ccdc_config_black_compense(struct ccdc_black_compensation *bcomp)
regw(val, CCDC_BLKCMP);
}
static void ccdc_config_fpc(struct ccdc_fault_pixel *fpc)
{
u32 val;
/* Initially disable FPC */
val = CCDC_FPC_DISABLE;
regw(val, CCDC_FPC);
if (!fpc->enable)
return;
/* Configure Fault pixel if needed */
regw(fpc->fpc_table_addr, CCDC_FPC_ADDR);
dev_dbg(ccdc_cfg.dev, "\nWriting 0x%lx to FPC_ADDR...\n",
(fpc->fpc_table_addr));
/* Write the FPC params with FPC disable */
val = fpc->fp_num & CCDC_FPC_FPC_NUM_MASK;
regw(val, CCDC_FPC);
dev_dbg(ccdc_cfg.dev, "\nWriting 0x%x to FPC...\n", val);
/* read the FPC register */
val = regr(CCDC_FPC) | CCDC_FPC_ENABLE;
regw(val, CCDC_FPC);
dev_dbg(ccdc_cfg.dev, "\nWriting 0x%x to FPC...\n", val);
}
/*
* ccdc_config_raw()
* This function will configure CCDC for Raw capture mode
@ -569,9 +428,6 @@ static void ccdc_config_raw(void)
/* Configure Black level compensation */
ccdc_config_black_compense(&config_params->blk_comp);
/* Configure Fault Pixel Correction */
ccdc_config_fpc(&config_params->fault_pxl);
/* If data size is 8 bit then pack the data */
if ((config_params->data_sz == CCDC_DATA_8BITS) ||
config_params->alaw.enable)
@ -929,7 +785,6 @@ static struct ccdc_hw_device ccdc_hw_dev = {
.reset = ccdc_sbl_reset,
.enable = ccdc_enable,
.set_hw_if_params = ccdc_set_hw_if_params,
.set_params = ccdc_set_params,
.configure = ccdc_configure,
.set_buftype = ccdc_set_buftype,
.get_buftype = ccdc_get_buftype,

View file

@ -280,45 +280,6 @@ void vpfe_unregister_ccdc_device(struct ccdc_hw_device *dev)
}
EXPORT_SYMBOL(vpfe_unregister_ccdc_device);
/*
* vpfe_get_ccdc_image_format - Get image parameters based on CCDC settings
*/
static int vpfe_get_ccdc_image_format(struct vpfe_device *vpfe_dev,
struct v4l2_format *f)
{
struct v4l2_rect image_win;
enum ccdc_buftype buf_type;
enum ccdc_frmfmt frm_fmt;
memset(f, 0, sizeof(*f));
f->type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
ccdc_dev->hw_ops.get_image_window(&image_win);
f->fmt.pix.width = image_win.width;
f->fmt.pix.height = image_win.height;
f->fmt.pix.bytesperline = ccdc_dev->hw_ops.get_line_length();
f->fmt.pix.sizeimage = f->fmt.pix.bytesperline *
f->fmt.pix.height;
buf_type = ccdc_dev->hw_ops.get_buftype();
f->fmt.pix.pixelformat = ccdc_dev->hw_ops.get_pixel_format();
frm_fmt = ccdc_dev->hw_ops.get_frame_format();
if (frm_fmt == CCDC_FRMFMT_PROGRESSIVE)
f->fmt.pix.field = V4L2_FIELD_NONE;
else if (frm_fmt == CCDC_FRMFMT_INTERLACED) {
if (buf_type == CCDC_BUFTYPE_FLD_INTERLEAVED)
f->fmt.pix.field = V4L2_FIELD_INTERLACED;
else if (buf_type == CCDC_BUFTYPE_FLD_SEPARATED)
f->fmt.pix.field = V4L2_FIELD_SEQ_TB;
else {
v4l2_err(&vpfe_dev->v4l2_dev, "Invalid buf_type\n");
return -EINVAL;
}
} else {
v4l2_err(&vpfe_dev->v4l2_dev, "Invalid frm_fmt\n");
return -EINVAL;
}
return 0;
}
/*
* vpfe_config_ccdc_image_format()
* For a pix format, configure ccdc to setup the capture
@ -1697,59 +1658,6 @@ static int vpfe_s_selection(struct file *file, void *priv,
return ret;
}
static long vpfe_param_handler(struct file *file, void *priv,
bool valid_prio, unsigned int cmd, void *param)
{
struct vpfe_device *vpfe_dev = video_drvdata(file);
int ret;
v4l2_dbg(2, debug, &vpfe_dev->v4l2_dev, "vpfe_param_handler\n");
if (vpfe_dev->started) {
/* only allowed if streaming is not started */
v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev,
"device already started\n");
return -EBUSY;
}
ret = mutex_lock_interruptible(&vpfe_dev->lock);
if (ret)
return ret;
switch (cmd) {
case VPFE_CMD_S_CCDC_RAW_PARAMS:
v4l2_warn(&vpfe_dev->v4l2_dev,
"VPFE_CMD_S_CCDC_RAW_PARAMS: experimental ioctl\n");
if (ccdc_dev->hw_ops.set_params) {
ret = ccdc_dev->hw_ops.set_params(param);
if (ret) {
v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev,
"Error setting parameters in CCDC\n");
goto unlock_out;
}
ret = vpfe_get_ccdc_image_format(vpfe_dev,
&vpfe_dev->fmt);
if (ret < 0) {
v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev,
"Invalid image format at CCDC\n");
goto unlock_out;
}
} else {
ret = -EINVAL;
v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev,
"VPFE_CMD_S_CCDC_RAW_PARAMS not supported\n");
}
break;
default:
ret = -ENOTTY;
}
unlock_out:
mutex_unlock(&vpfe_dev->lock);
return ret;
}
/* vpfe capture ioctl operations */
static const struct v4l2_ioctl_ops vpfe_ioctl_ops = {
.vidioc_querycap = vpfe_querycap,
@ -1772,7 +1680,6 @@ static const struct v4l2_ioctl_ops vpfe_ioctl_ops = {
.vidioc_cropcap = vpfe_cropcap,
.vidioc_g_selection = vpfe_g_selection,
.vidioc_s_selection = vpfe_s_selection,
.vidioc_default = vpfe_param_handler,
};
static struct vpfe_device *vpfe_initialize(void)

View file

@ -1719,7 +1719,6 @@ static __init int vpif_probe(struct platform_device *pdev)
*/
static int vpif_remove(struct platform_device *device)
{
struct common_obj *common;
struct channel_obj *ch;
int i;
@ -1730,7 +1729,6 @@ static int vpif_remove(struct platform_device *device)
for (i = 0; i < VPIF_CAPTURE_MAX_DEVICES; i++) {
/* Get the pointer to the channel object */
ch = vpif_obj.dev[i];
common = &ch->common[VPIF_VIDEO_INDEX];
/* Unregister video device */
video_unregister_device(&ch->video_dev);
kfree(vpif_obj.dev[i]);

View file

@ -1339,7 +1339,6 @@ static __init int vpif_probe(struct platform_device *pdev)
*/
static int vpif_remove(struct platform_device *device)
{
struct common_obj *common;
struct channel_obj *ch;
int i;
@ -1350,7 +1349,6 @@ static int vpif_remove(struct platform_device *device)
for (i = 0; i < VPIF_DISPLAY_MAX_DEVICES; i++) {
/* Get the pointer to the channel object */
ch = vpif_obj.dev[i];
common = &ch->common[VPIF_VIDEO_INDEX];
/* Unregister video device */
video_unregister_device(&ch->video_dev);
kfree(vpif_obj.dev[i]);

View file

@ -16,7 +16,6 @@
#include <media/videobuf-dma-contig.h>
#include <media/v4l2-device.h>
#include <linux/omap-dma.h>
#include <video/omapvrfb.h>
#include "omap_voutdef.h"
@ -63,7 +62,7 @@ static int omap_vout_allocate_vrfb_buffers(struct omap_vout_device *vout,
/*
* Wakes up the application once the DMA transfer to VRFB space is completed.
*/
static void omap_vout_vrfb_dma_tx_callback(int lch, u16 ch_status, void *data)
static void omap_vout_vrfb_dma_tx_callback(void *data)
{
struct vid_vrfb_dma *t = (struct vid_vrfb_dma *) data;
@ -94,6 +93,7 @@ int omap_vout_setup_vrfb_bufs(struct platform_device *pdev, int vid_num,
int ret = 0, i, j;
struct omap_vout_device *vout;
struct video_device *vfd;
dma_cap_mask_t mask;
int image_width, image_height;
int vrfb_num_bufs = VRFB_NUM_BUFS;
struct v4l2_device *v4l2_dev = platform_get_drvdata(pdev);
@ -131,18 +131,27 @@ int omap_vout_setup_vrfb_bufs(struct platform_device *pdev, int vid_num,
/*
* Request and Initialize DMA, for DMA based VRFB transfer
*/
vout->vrfb_dma_tx.dev_id = OMAP_DMA_NO_DEVICE;
vout->vrfb_dma_tx.dma_ch = -1;
vout->vrfb_dma_tx.req_status = DMA_CHAN_ALLOTED;
ret = omap_request_dma(vout->vrfb_dma_tx.dev_id, "VRFB DMA TX",
omap_vout_vrfb_dma_tx_callback,
(void *) &vout->vrfb_dma_tx, &vout->vrfb_dma_tx.dma_ch);
if (ret < 0) {
dma_cap_zero(mask);
dma_cap_set(DMA_INTERLEAVE, mask);
vout->vrfb_dma_tx.chan = dma_request_chan_by_mask(&mask);
if (IS_ERR(vout->vrfb_dma_tx.chan)) {
vout->vrfb_dma_tx.req_status = DMA_CHAN_NOT_ALLOTED;
} else {
size_t xt_size = sizeof(struct dma_interleaved_template) +
sizeof(struct data_chunk);
vout->vrfb_dma_tx.xt = kzalloc(xt_size, GFP_KERNEL);
if (!vout->vrfb_dma_tx.xt) {
dma_release_channel(vout->vrfb_dma_tx.chan);
vout->vrfb_dma_tx.req_status = DMA_CHAN_NOT_ALLOTED;
}
}
if (vout->vrfb_dma_tx.req_status == DMA_CHAN_NOT_ALLOTED)
dev_info(&pdev->dev,
": failed to allocate DMA Channel for video%d\n",
vfd->minor);
}
init_waitqueue_head(&vout->vrfb_dma_tx.wait);
/* statically allocated the VRFB buffer is done through
@ -177,7 +186,9 @@ void omap_vout_release_vrfb(struct omap_vout_device *vout)
if (vout->vrfb_dma_tx.req_status == DMA_CHAN_ALLOTED) {
vout->vrfb_dma_tx.req_status = DMA_CHAN_NOT_ALLOTED;
omap_free_dma(vout->vrfb_dma_tx.dma_ch);
kfree(vout->vrfb_dma_tx.xt);
dmaengine_terminate_sync(vout->vrfb_dma_tx.chan);
dma_release_channel(vout->vrfb_dma_tx.chan);
}
}
@ -219,70 +230,84 @@ int omap_vout_vrfb_buffer_setup(struct omap_vout_device *vout,
}
int omap_vout_prepare_vrfb(struct omap_vout_device *vout,
struct videobuf_buffer *vb)
struct videobuf_buffer *vb)
{
dma_addr_t dmabuf;
struct vid_vrfb_dma *tx;
struct dma_async_tx_descriptor *tx;
enum dma_ctrl_flags flags;
struct dma_chan *chan = vout->vrfb_dma_tx.chan;
struct dma_device *dmadev = chan->device;
struct dma_interleaved_template *xt = vout->vrfb_dma_tx.xt;
dma_cookie_t cookie;
enum dma_status status;
enum dss_rotation rotation;
u32 dest_frame_index = 0, src_element_index = 0;
u32 dest_element_index = 0, src_frame_index = 0;
u32 elem_count = 0, frame_count = 0, pixsize = 2;
size_t dst_icg;
u32 pixsize;
if (!is_rotation_enabled(vout))
return 0;
dmabuf = vout->buf_phy_addr[vb->i];
/* If rotation is enabled, copy input buffer into VRFB
* memory space using DMA. We are copying input buffer
* into VRFB memory space of desired angle and DSS will
* read image VRFB memory for 0 degree angle
*/
pixsize = vout->bpp * vout->vrfb_bpp;
/*
* DMA transfer in double index mode
*/
dst_icg = ((MAX_PIXELS_PER_LINE * pixsize) -
(vout->pix.width * vout->bpp)) + 1;
/* Frame index */
dest_frame_index = ((MAX_PIXELS_PER_LINE * pixsize) -
(vout->pix.width * vout->bpp)) + 1;
xt->src_start = vout->buf_phy_addr[vb->i];
xt->dst_start = vout->vrfb_context[vb->i].paddr[0];
/* Source and destination parameters */
src_element_index = 0;
src_frame_index = 0;
dest_element_index = 1;
/* Number of elements per frame */
elem_count = vout->pix.width * vout->bpp;
frame_count = vout->pix.height;
tx = &vout->vrfb_dma_tx;
tx->tx_status = 0;
omap_set_dma_transfer_params(tx->dma_ch, OMAP_DMA_DATA_TYPE_S32,
(elem_count / 4), frame_count, OMAP_DMA_SYNC_ELEMENT,
tx->dev_id, 0x0);
/* src_port required only for OMAP1 */
omap_set_dma_src_params(tx->dma_ch, 0, OMAP_DMA_AMODE_POST_INC,
dmabuf, src_element_index, src_frame_index);
/*set dma source burst mode for VRFB */
omap_set_dma_src_burst_mode(tx->dma_ch, OMAP_DMA_DATA_BURST_16);
rotation = calc_rotation(vout);
xt->numf = vout->pix.height;
xt->frame_size = 1;
xt->sgl[0].size = vout->pix.width * vout->bpp;
xt->sgl[0].icg = dst_icg;
/* dest_port required only for OMAP1 */
omap_set_dma_dest_params(tx->dma_ch, 0, OMAP_DMA_AMODE_DOUBLE_IDX,
vout->vrfb_context[vb->i].paddr[0], dest_element_index,
dest_frame_index);
/*set dma dest burst mode for VRFB */
omap_set_dma_dest_burst_mode(tx->dma_ch, OMAP_DMA_DATA_BURST_16);
omap_dma_set_global_params(DMA_DEFAULT_ARB_RATE, 0x20, 0);
xt->dir = DMA_MEM_TO_MEM;
xt->src_sgl = false;
xt->src_inc = true;
xt->dst_sgl = true;
xt->dst_inc = true;
omap_start_dma(tx->dma_ch);
wait_event_interruptible_timeout(tx->wait, tx->tx_status == 1,
VRFB_TX_TIMEOUT);
if (tx->tx_status == 0) {
omap_stop_dma(tx->dma_ch);
tx = dmadev->device_prep_interleaved_dma(chan, xt, flags);
if (tx == NULL) {
pr_err("%s: DMA interleaved prep error\n", __func__);
return -EINVAL;
}
tx->callback = omap_vout_vrfb_dma_tx_callback;
tx->callback_param = &vout->vrfb_dma_tx;
cookie = dmaengine_submit(tx);
if (dma_submit_error(cookie)) {
pr_err("%s: dmaengine_submit failed (%d)\n", __func__, cookie);
return -EINVAL;
}
vout->vrfb_dma_tx.tx_status = 0;
dma_async_issue_pending(chan);
wait_event_interruptible_timeout(vout->vrfb_dma_tx.wait,
vout->vrfb_dma_tx.tx_status == 1,
VRFB_TX_TIMEOUT);
status = dma_async_is_tx_complete(chan, cookie, NULL, NULL);
if (vout->vrfb_dma_tx.tx_status == 0) {
pr_err("%s: Timeout while waiting for DMA\n", __func__);
dmaengine_terminate_sync(chan);
return -EINVAL;
} else if (status != DMA_COMPLETE) {
pr_err("%s: DMA completion %s status\n", __func__,
status == DMA_ERROR ? "error" : "busy");
dmaengine_terminate_sync(chan);
return -EINVAL;
}
/* Store buffers physical address into an array. Addresses
* from this array will be used to configure DSS */
rotation = calc_rotation(vout);
vout->queued_buf_addr[vb->i] = (u8 *)
vout->vrfb_context[vb->i].paddr[rotation];
return 0;

View file

@ -14,6 +14,7 @@
#include <media/v4l2-ctrls.h>
#include <video/omapfb_dss.h>
#include <video/omapvrfb.h>
#include <linux/dmaengine.h>
#define YUYV_BPP 2
#define RGB565_BPP 2
@ -81,8 +82,9 @@ enum vout_rotaion_type {
* for VRFB hidden buffer
*/
struct vid_vrfb_dma {
int dev_id;
int dma_ch;
struct dma_chan *chan;
struct dma_interleaved_template *xt;
int req_status;
int tx_status;
wait_queue_head_t wait;

View file

@ -76,7 +76,7 @@ static void venus_sys_error_handler(struct work_struct *work)
hfi_core_deinit(core, true);
hfi_destroy(core);
mutex_lock(&core->lock);
venus_shutdown(&core->dev_fw);
venus_shutdown(core->dev);
pm_runtime_put_sync(core->dev);
@ -84,7 +84,7 @@ static void venus_sys_error_handler(struct work_struct *work)
pm_runtime_get_sync(core->dev);
ret |= venus_boot(core->dev, &core->dev_fw, core->res->fwname);
ret |= venus_boot(core->dev, core->res->fwname);
ret |= hfi_core_resume(core, true);
@ -137,7 +137,7 @@ static int venus_clks_enable(struct venus_core *core)
return 0;
err:
while (--i)
while (i--)
clk_disable_unprepare(core->clks[i]);
return ret;
@ -207,7 +207,7 @@ static int venus_probe(struct platform_device *pdev)
if (ret < 0)
goto err_runtime_disable;
ret = venus_boot(dev, &core->dev_fw, core->res->fwname);
ret = venus_boot(dev, core->res->fwname);
if (ret)
goto err_runtime_disable;
@ -238,7 +238,7 @@ static int venus_probe(struct platform_device *pdev)
err_core_deinit:
hfi_core_deinit(core, false);
err_venus_shutdown:
venus_shutdown(&core->dev_fw);
venus_shutdown(dev);
err_runtime_disable:
pm_runtime_set_suspended(dev);
pm_runtime_disable(dev);
@ -259,7 +259,7 @@ static int venus_remove(struct platform_device *pdev)
WARN_ON(ret);
hfi_destroy(core);
venus_shutdown(&core->dev_fw);
venus_shutdown(dev);
of_platform_depopulate(dev);
pm_runtime_put_sync(dev);
@ -270,8 +270,7 @@ static int venus_remove(struct platform_device *pdev)
return ret;
}
#ifdef CONFIG_PM
static int venus_runtime_suspend(struct device *dev)
static __maybe_unused int venus_runtime_suspend(struct device *dev)
{
struct venus_core *core = dev_get_drvdata(dev);
int ret;
@ -283,7 +282,7 @@ static int venus_runtime_suspend(struct device *dev)
return ret;
}
static int venus_runtime_resume(struct device *dev)
static __maybe_unused int venus_runtime_resume(struct device *dev)
{
struct venus_core *core = dev_get_drvdata(dev);
int ret;
@ -302,7 +301,6 @@ static int venus_runtime_resume(struct device *dev)
venus_clks_disable(core);
return ret;
}
#endif
static const struct dev_pm_ops venus_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,

View file

@ -101,7 +101,6 @@ struct venus_core {
struct device *dev;
struct device *dev_dec;
struct device *dev_enc;
struct device dev_fw;
struct mutex lock;
struct list_head instances;
atomic_t insts_count;

View file

@ -12,97 +12,87 @@
*
*/
#include <linux/dma-mapping.h>
#include <linux/device.h>
#include <linux/firmware.h>
#include <linux/kernel.h>
#include <linux/io.h>
#include <linux/of.h>
#include <linux/of_reserved_mem.h>
#include <linux/slab.h>
#include <linux/of_address.h>
#include <linux/qcom_scm.h>
#include <linux/sizes.h>
#include <linux/soc/qcom/mdt_loader.h>
#include "firmware.h"
#define VENUS_PAS_ID 9
#define VENUS_FW_MEM_SIZE SZ_8M
#define VENUS_FW_MEM_SIZE (6 * SZ_1M)
static void device_release_dummy(struct device *dev)
{
of_reserved_mem_device_release(dev);
}
int venus_boot(struct device *parent, struct device *fw_dev, const char *fwname)
int venus_boot(struct device *dev, const char *fwname)
{
const struct firmware *mdt;
struct device_node *node;
phys_addr_t mem_phys;
struct resource r;
ssize_t fw_size;
size_t mem_size;
void *mem_va;
int ret;
if (!qcom_scm_is_available())
if (!IS_ENABLED(CONFIG_QCOM_MDT_LOADER) || !qcom_scm_is_available())
return -EPROBE_DEFER;
fw_dev->parent = parent;
fw_dev->release = device_release_dummy;
ret = dev_set_name(fw_dev, "%s:%s", dev_name(parent), "firmware");
if (ret)
return ret;
ret = device_register(fw_dev);
if (ret < 0)
return ret;
ret = of_reserved_mem_device_init_by_idx(fw_dev, parent->of_node, 0);
if (ret)
goto err_unreg_device;
mem_size = VENUS_FW_MEM_SIZE;
mem_va = dmam_alloc_coherent(fw_dev, mem_size, &mem_phys, GFP_KERNEL);
if (!mem_va) {
ret = -ENOMEM;
goto err_unreg_device;
node = of_parse_phandle(dev->of_node, "memory-region", 0);
if (!node) {
dev_err(dev, "no memory-region specified\n");
return -EINVAL;
}
ret = request_firmware(&mdt, fwname, fw_dev);
ret = of_address_to_resource(node, 0, &r);
if (ret)
return ret;
mem_phys = r.start;
mem_size = resource_size(&r);
if (mem_size < VENUS_FW_MEM_SIZE)
return -EINVAL;
mem_va = memremap(r.start, mem_size, MEMREMAP_WC);
if (!mem_va) {
dev_err(dev, "unable to map memory region: %pa+%zx\n",
&r.start, mem_size);
return -ENOMEM;
}
ret = request_firmware(&mdt, fwname, dev);
if (ret < 0)
goto err_unreg_device;
goto err_unmap;
fw_size = qcom_mdt_get_size(mdt);
if (fw_size < 0) {
ret = fw_size;
release_firmware(mdt);
goto err_unreg_device;
goto err_unmap;
}
ret = qcom_mdt_load(fw_dev, mdt, fwname, VENUS_PAS_ID, mem_va, mem_phys,
ret = qcom_mdt_load(dev, mdt, fwname, VENUS_PAS_ID, mem_va, mem_phys,
mem_size);
release_firmware(mdt);
if (ret)
goto err_unreg_device;
goto err_unmap;
ret = qcom_scm_pas_auth_and_reset(VENUS_PAS_ID);
if (ret)
goto err_unreg_device;
goto err_unmap;
return 0;
err_unreg_device:
device_unregister(fw_dev);
err_unmap:
memunmap(mem_va);
return ret;
}
int venus_shutdown(struct device *fw_dev)
int venus_shutdown(struct device *dev)
{
int ret;
ret = qcom_scm_pas_shutdown(VENUS_PAS_ID);
device_unregister(fw_dev);
memset(fw_dev, 0, sizeof(*fw_dev));
return ret;
return qcom_scm_pas_shutdown(VENUS_PAS_ID);
}

View file

@ -16,8 +16,7 @@
struct device;
int venus_boot(struct device *parent, struct device *fw_dev,
const char *fwname);
int venus_shutdown(struct device *fw_dev);
int venus_boot(struct device *dev, const char *fwname);
int venus_shutdown(struct device *dev);
#endif

View file

@ -239,11 +239,12 @@ static void hfi_sys_init_done(struct venus_core *core, struct venus_inst *inst,
break;
}
if (!error) {
rem_bytes -= read_bytes;
data += read_bytes;
num_properties--;
}
if (error)
break;
rem_bytes -= read_bytes;
data += read_bytes;
num_properties--;
}
err_no_prop:

View file

@ -104,7 +104,7 @@ static void bdisp_dbg_dump_ins(struct seq_file *s, u32 val)
if (val & BLT_INS_IRQ)
seq_puts(s, "IRQ - ");
seq_puts(s, "\n");
seq_putc(s, '\n');
}
static void bdisp_dbg_dump_tty(struct seq_file *s, u32 val)
@ -153,7 +153,7 @@ static void bdisp_dbg_dump_tty(struct seq_file *s, u32 val)
if (val & BLT_TTY_BIG_END)
seq_puts(s, "BigEndian - ");
seq_puts(s, "\n");
seq_putc(s, '\n');
}
static void bdisp_dbg_dump_xy(struct seq_file *s, u32 val, char *name)
@ -230,7 +230,7 @@ static void bdisp_dbg_dump_sty(struct seq_file *s,
seq_puts(s, "BigEndian - ");
done:
seq_puts(s, "\n");
seq_putc(s, '\n');
}
static void bdisp_dbg_dump_fctl(struct seq_file *s, u32 val)
@ -247,7 +247,7 @@ static void bdisp_dbg_dump_fctl(struct seq_file *s, u32 val)
else if ((val & BLT_FCTL_HV_SCALE) == BLT_FCTL_HV_SAMPLE)
seq_puts(s, "Sample Chroma");
seq_puts(s, "\n");
seq_putc(s, '\n');
}
static void bdisp_dbg_dump_rsf(struct seq_file *s, u32 val, char *name)
@ -266,7 +266,7 @@ static void bdisp_dbg_dump_rsf(struct seq_file *s, u32 val, char *name)
seq_printf(s, "V: %d(6.10) / scale~%dx0.1", inc, 1024 * 10 / inc);
done:
seq_puts(s, "\n");
seq_putc(s, '\n');
}
static void bdisp_dbg_dump_rzi(struct seq_file *s, u32 val, char *name)
@ -281,7 +281,7 @@ static void bdisp_dbg_dump_rzi(struct seq_file *s, u32 val, char *name)
seq_printf(s, "V: init=%d repeat=%d", val & 0x3FF, (val >> 12) & 7);
done:
seq_puts(s, "\n");
seq_putc(s, '\n');
}
static void bdisp_dbg_dump_ivmx(struct seq_file *s,
@ -293,7 +293,7 @@ static void bdisp_dbg_dump_ivmx(struct seq_file *s,
seq_printf(s, "IVMX3\t0x%08X\t", c3);
if (!c0 && !c1 && !c2 && !c3) {
seq_puts(s, "\n");
seq_putc(s, '\n');
return;
}

View file

@ -517,14 +517,6 @@ static int vimc_cap_remove(struct platform_device *pdev)
return 0;
}
static struct platform_driver vimc_cap_pdrv = {
.probe = vimc_cap_probe,
.remove = vimc_cap_remove,
.driver = {
.name = VIMC_CAP_DRV_NAME,
},
};
static const struct platform_device_id vimc_cap_driver_ids[] = {
{
.name = VIMC_CAP_DRV_NAME,
@ -532,6 +524,15 @@ static const struct platform_device_id vimc_cap_driver_ids[] = {
{ }
};
static struct platform_driver vimc_cap_pdrv = {
.probe = vimc_cap_probe,
.remove = vimc_cap_remove,
.id_table = vimc_cap_driver_ids,
.driver = {
.name = VIMC_CAP_DRV_NAME,
},
};
module_platform_driver(vimc_cap_pdrv);
MODULE_DEVICE_TABLE(platform, vimc_cap_driver_ids);

View file

@ -577,14 +577,6 @@ static int vimc_deb_remove(struct platform_device *pdev)
return 0;
}
static struct platform_driver vimc_deb_pdrv = {
.probe = vimc_deb_probe,
.remove = vimc_deb_remove,
.driver = {
.name = VIMC_DEB_DRV_NAME,
},
};
static const struct platform_device_id vimc_deb_driver_ids[] = {
{
.name = VIMC_DEB_DRV_NAME,
@ -592,6 +584,15 @@ static const struct platform_device_id vimc_deb_driver_ids[] = {
{ }
};
static struct platform_driver vimc_deb_pdrv = {
.probe = vimc_deb_probe,
.remove = vimc_deb_remove,
.id_table = vimc_deb_driver_ids,
.driver = {
.name = VIMC_DEB_DRV_NAME,
},
};
module_platform_driver(vimc_deb_pdrv);
MODULE_DEVICE_TABLE(platform, vimc_deb_driver_ids);

View file

@ -431,14 +431,6 @@ static int vimc_sca_remove(struct platform_device *pdev)
return 0;
}
static struct platform_driver vimc_sca_pdrv = {
.probe = vimc_sca_probe,
.remove = vimc_sca_remove,
.driver = {
.name = VIMC_SCA_DRV_NAME,
},
};
static const struct platform_device_id vimc_sca_driver_ids[] = {
{
.name = VIMC_SCA_DRV_NAME,
@ -446,6 +438,15 @@ static const struct platform_device_id vimc_sca_driver_ids[] = {
{ }
};
static struct platform_driver vimc_sca_pdrv = {
.probe = vimc_sca_probe,
.remove = vimc_sca_remove,
.id_table = vimc_sca_driver_ids,
.driver = {
.name = VIMC_SCA_DRV_NAME,
},
};
module_platform_driver(vimc_sca_pdrv);
MODULE_DEVICE_TABLE(platform, vimc_sca_driver_ids);

View file

@ -365,14 +365,6 @@ static int vimc_sen_remove(struct platform_device *pdev)
return 0;
}
static struct platform_driver vimc_sen_pdrv = {
.probe = vimc_sen_probe,
.remove = vimc_sen_remove,
.driver = {
.name = VIMC_SEN_DRV_NAME,
},
};
static const struct platform_device_id vimc_sen_driver_ids[] = {
{
.name = VIMC_SEN_DRV_NAME,
@ -380,6 +372,15 @@ static const struct platform_device_id vimc_sen_driver_ids[] = {
{ }
};
static struct platform_driver vimc_sen_pdrv = {
.probe = vimc_sen_probe,
.remove = vimc_sen_remove,
.id_table = vimc_sen_driver_ids,
.driver = {
.name = VIMC_SEN_DRV_NAME,
},
};
module_platform_driver(vimc_sen_pdrv);
MODULE_DEVICE_TABLE(platform, vimc_sen_driver_ids);

View file

@ -610,10 +610,21 @@ static int wl1273_fm_start(struct wl1273_device *radio, int new_mode)
}
}
if (radio->rds_on)
if (radio->rds_on) {
r = core->write(core, WL1273_RDS_DATA_ENB, 1);
else
if (r) {
dev_err(dev, "%s: RDS_DATA_ENB ON fails\n",
__func__);
goto fail;
}
} else {
r = core->write(core, WL1273_RDS_DATA_ENB, 0);
if (r) {
dev_err(dev, "%s: RDS_DATA_ENB OFF fails\n",
__func__);
goto fail;
}
}
} else {
dev_warn(dev, "%s: Illegal mode.\n", __func__);
}

View file

@ -266,7 +266,7 @@ static long ir_lirc_ioctl(struct file *filep, unsigned int cmd,
if (!dev->rx_resolution)
return -ENOTTY;
val = dev->rx_resolution;
val = dev->rx_resolution / 1000;
break;
case LIRC_SET_WIDEBAND_RECEIVER:

View file

@ -342,6 +342,7 @@ static int fc0011_set_params(struct dvb_frontend *fe)
switch (vco_sel) {
default:
WARN_ON(1);
return -EINVAL;
case 0:
if (vco_cal < 8) {
regs[FC11_REG_VCOSEL] &= ~(FC11_VCOSEL_1 | FC11_VCOSEL_2);

View file

@ -2737,8 +2737,6 @@ static u16 MXL_TuneRF(struct dvb_frontend *fe, u32 RF_Freq)
status += MXL_ControlWrite(fe, TG_LO_DIVVAL, 0x0);
status += MXL_ControlWrite(fe, TG_LO_SELVAL, 0x7);
divider_val = 2 ;
Fmax = FmaxBin ;
Fmin = FminBin ;
}
/* TG_DIV_VAL */

View file

@ -351,7 +351,7 @@ int au0828_rc_register(struct au0828_dev *dev)
if (err)
goto error;
pr_info("Remote controller %s initalized\n", ir->name);
pr_info("Remote controller %s initialized\n", ir->name);
return 0;

View file

@ -207,15 +207,13 @@ static int lme2510_stream_restart(struct dvb_usb_device *d)
struct lme2510_state *st = d->priv;
u8 all_pids[] = LME_ALL_PIDS;
u8 stream_on[] = LME_ST_ON_W;
int ret;
u8 rbuff[1];
if (st->pid_off)
ret = lme2510_usb_talk(d, all_pids, sizeof(all_pids),
rbuff, sizeof(rbuff));
lme2510_usb_talk(d, all_pids, sizeof(all_pids),
rbuff, sizeof(rbuff));
/*Restart Stream Command*/
ret = lme2510_usb_talk(d, stream_on, sizeof(stream_on),
rbuff, sizeof(rbuff));
return ret;
return lme2510_usb_talk(d, stream_on, sizeof(stream_on),
rbuff, sizeof(rbuff));
}
static int lme2510_enable_pid(struct dvb_usb_device *d, u8 index, u16 pid_out)

View file

@ -215,13 +215,14 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
USB_CTRL_GET_TIMEOUT);
if (result < 0) {
deb_info("i2c read error (status = %d)\n", result);
break;
goto unlock;
}
if (msg[i].len > sizeof(st->buf)) {
deb_info("buffer too small to fit %d bytes\n",
msg[i].len);
return -EIO;
result = -EIO;
goto unlock;
}
memcpy(msg[i].buf, st->buf, msg[i].len);
@ -233,8 +234,8 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
/* Write request */
if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
err("could not acquire lock");
mutex_unlock(&d->i2c_mutex);
return -EINTR;
result = -EINTR;
goto unlock;
}
st->buf[0] = REQUEST_NEW_I2C_WRITE;
st->buf[1] = msg[i].addr << 1;
@ -247,7 +248,9 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
if (msg[i].len > sizeof(st->buf) - 4) {
deb_info("i2c message to big: %d\n",
msg[i].len);
return -EIO;
mutex_unlock(&d->usb_mutex);
result = -EIO;
goto unlock;
}
/* The Actual i2c payload */
@ -269,8 +272,11 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
}
}
}
result = i;
unlock:
mutex_unlock(&d->i2c_mutex);
return i;
return result;
}
/*
@ -281,7 +287,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
{
struct dvb_usb_device *d = i2c_get_adapdata(adap);
struct dib0700_state *st = d->priv;
int i,len;
int i, len, result;
if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
return -EINTR;
@ -298,7 +304,8 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
if (msg[i].len > sizeof(st->buf) - 2) {
deb_info("i2c xfer to big: %d\n",
msg[i].len);
return -EIO;
result = -EIO;
goto unlock;
}
memcpy(&st->buf[2], msg[i].buf, msg[i].len);
@ -313,13 +320,15 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
if (len <= 0) {
deb_info("I2C read failed on address 0x%02x\n",
msg[i].addr);
break;
result = -EIO;
goto unlock;
}
if (msg[i + 1].len > sizeof(st->buf)) {
deb_info("i2c xfer buffer to small for %d\n",
msg[i].len);
return -EIO;
result = -EIO;
goto unlock;
}
memcpy(msg[i + 1].buf, st->buf, msg[i + 1].len);
@ -328,14 +337,17 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
i++;
} else {
st->buf[0] = REQUEST_I2C_WRITE;
if (dib0700_ctrl_wr(d, st->buf, msg[i].len + 2) < 0)
break;
result = dib0700_ctrl_wr(d, st->buf, msg[i].len + 2);
if (result < 0)
goto unlock;
}
}
result = i;
unlock:
mutex_unlock(&d->usb_mutex);
mutex_unlock(&d->i2c_mutex);
return i;
return result;
}
static int dib0700_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msg,

View file

@ -1188,6 +1188,22 @@ struct em28xx_board em28xx_boards[] = {
.tuner_gpio = terratec_h5_gpio,
#else
.tuner_type = TUNER_ABSENT,
#endif
.def_i2c_bus = 1,
.i2c_speed = EM28XX_I2C_CLK_WAIT_ENABLE |
EM28XX_I2C_FREQ_400_KHZ,
},
[EM2884_BOARD_TERRATEC_H6] = {
.name = "Terratec Cinergy H6 rev. 2",
.has_dvb = 1,
.ir_codes = RC_MAP_NEC_TERRATEC_CINERGY_XS,
#if 0
.tuner_type = TUNER_PHILIPS_TDA8290,
.tuner_addr = 0x41,
.dvb_gpio = terratec_h5_digital, /* FIXME: probably wrong */
.tuner_gpio = terratec_h5_gpio,
#else
.tuner_type = TUNER_ABSENT,
#endif
.def_i2c_bus = 1,
.i2c_speed = EM28XX_I2C_CLK_WAIT_ENABLE |
@ -2496,6 +2512,8 @@ struct usb_device_id em28xx_id_table[] = {
.driver_info = EM2884_BOARD_TERRATEC_H5 },
{ USB_DEVICE(0x0ccd, 0x10b6), /* H5 Rev. 3 */
.driver_info = EM2884_BOARD_TERRATEC_H5 },
{ USB_DEVICE(0x0ccd, 0x10b2), /* H6 */
.driver_info = EM2884_BOARD_TERRATEC_H6 },
{ USB_DEVICE(0x0ccd, 0x0084),
.driver_info = EM2860_BOARD_TERRATEC_AV350 },
{ USB_DEVICE(0x0ccd, 0x0096),

View file

@ -1522,6 +1522,7 @@ static int em28xx_dvb_init(struct em28xx *dev)
break;
case EM2884_BOARD_ELGATO_EYETV_HYBRID_2008:
case EM2884_BOARD_CINERGY_HTC_STICK:
case EM2884_BOARD_TERRATEC_H6:
terratec_htc_stick_init(dev);
/* attach demodulator */

View file

@ -982,8 +982,6 @@ int em28xx_i2c_register(struct em28xx *dev, unsigned bus,
dev_err(&dev->intf->dev,
"%s: em28xx_i2_eeprom failed! retval [%d]\n",
__func__, retval);
return retval;
}
}

View file

@ -821,7 +821,7 @@ static int em28xx_ir_init(struct em28xx *dev)
if (err)
goto error;
dev_info(&dev->intf->dev, "Input extension successfully initalized\n");
dev_info(&dev->intf->dev, "Input extension successfully initialized\n");
return 0;

View file

@ -148,6 +148,7 @@
#define EM28178_BOARD_PLEX_PX_BCUD 98
#define EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_DVB 99
#define EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_01595 100
#define EM2884_BOARD_TERRATEC_H6 101
/* Limits minimum and default number of buffers */
#define EM28XX_MIN_BUF 4

View file

@ -51,7 +51,7 @@ MODULE_DESCRIPTION("Pulse Eight HDMI CEC driver");
MODULE_LICENSE("GPL");
static int debug;
static int persistent_config = 1;
static int persistent_config;
module_param(debug, int, 0644);
module_param(persistent_config, int, 0644);
MODULE_PARM_DESC(debug, "debug level (0-1)");

View file

@ -116,21 +116,19 @@ static void rain_irq_work_handler(struct work_struct *work)
while (true) {
unsigned long flags;
bool exit_loop = false;
char data;
spin_lock_irqsave(&rain->buf_lock, flags);
if (rain->buf_len) {
data = rain->buf[rain->buf_rd_idx];
rain->buf_len--;
rain->buf_rd_idx = (rain->buf_rd_idx + 1) & 0xff;
} else {
exit_loop = true;
}
spin_unlock_irqrestore(&rain->buf_lock, flags);
if (exit_loop)
if (!rain->buf_len) {
spin_unlock_irqrestore(&rain->buf_lock, flags);
break;
}
data = rain->buf[rain->buf_rd_idx];
rain->buf_len--;
rain->buf_rd_idx = (rain->buf_rd_idx + 1) & 0xff;
spin_unlock_irqrestore(&rain->buf_lock, flags);
if (!rain->cmd_started && data != '?')
continue;

View file

@ -41,6 +41,8 @@
/* It seems the i2c bus is controlled with these registers */
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include "stk-webcam.h"
#define STK_IIC_BASE (0x0200)
@ -239,8 +241,8 @@ static int stk_sensor_outb(struct stk_camera *dev, u8 reg, u8 val)
} while (tmpval == 0 && i < MAX_RETRIES);
if (tmpval != STK_IIC_STAT_TX_OK) {
if (tmpval)
STK_ERROR("stk_sensor_outb failed, status=0x%02x\n",
tmpval);
pr_err("stk_sensor_outb failed, status=0x%02x\n",
tmpval);
return 1;
} else
return 0;
@ -262,8 +264,8 @@ static int stk_sensor_inb(struct stk_camera *dev, u8 reg, u8 *val)
} while (tmpval == 0 && i < MAX_RETRIES);
if (tmpval != STK_IIC_STAT_RX_OK) {
if (tmpval)
STK_ERROR("stk_sensor_inb failed, status=0x%02x\n",
tmpval);
pr_err("stk_sensor_inb failed, status=0x%02x\n",
tmpval);
return 1;
}
@ -366,29 +368,29 @@ int stk_sensor_init(struct stk_camera *dev)
if (stk_camera_write_reg(dev, STK_IIC_ENABLE, STK_IIC_ENABLE_YES)
|| stk_camera_write_reg(dev, STK_IIC_ADDR, SENSOR_ADDRESS)
|| stk_sensor_outb(dev, REG_COM7, COM7_RESET)) {
STK_ERROR("Sensor resetting failed\n");
pr_err("Sensor resetting failed\n");
return -ENODEV;
}
msleep(10);
/* Read the manufacturer ID: ov = 0x7FA2 */
if (stk_sensor_inb(dev, REG_MIDH, &idh)
|| stk_sensor_inb(dev, REG_MIDL, &idl)) {
STK_ERROR("Strange error reading sensor ID\n");
pr_err("Strange error reading sensor ID\n");
return -ENODEV;
}
if (idh != 0x7f || idl != 0xa2) {
STK_ERROR("Huh? you don't have a sensor from ovt\n");
pr_err("Huh? you don't have a sensor from ovt\n");
return -ENODEV;
}
if (stk_sensor_inb(dev, REG_PID, &idh)
|| stk_sensor_inb(dev, REG_VER, &idl)) {
STK_ERROR("Could not read sensor model\n");
pr_err("Could not read sensor model\n");
return -ENODEV;
}
stk_sensor_write_regvals(dev, ov_initvals);
msleep(10);
STK_INFO("OmniVision sensor detected, id %02X%02X at address %x\n",
idh, idl, SENSOR_ADDRESS);
pr_info("OmniVision sensor detected, id %02X%02X at address %x\n",
idh, idl, SENSOR_ADDRESS);
return 0;
}
@ -520,7 +522,8 @@ int stk_sensor_configure(struct stk_camera *dev)
case MODE_SXGA: com7 = COM7_FMT_SXGA;
dummylines = 0;
break;
default: STK_ERROR("Unsupported mode %d\n", dev->vsettings.mode);
default:
pr_err("Unsupported mode %d\n", dev->vsettings.mode);
return -EFAULT;
}
switch (dev->vsettings.palette) {
@ -544,7 +547,8 @@ int stk_sensor_configure(struct stk_camera *dev)
com7 |= COM7_PBAYER;
rv = ov_fmt_bayer;
break;
default: STK_ERROR("Unsupported colorspace\n");
default:
pr_err("Unsupported colorspace\n");
return -EFAULT;
}
/*FIXME sometimes the sensor go to a bad state
@ -564,7 +568,7 @@ int stk_sensor_configure(struct stk_camera *dev)
switch (dev->vsettings.mode) {
case MODE_VGA:
if (stk_sensor_set_hw(dev, 302, 1582, 6, 486))
STK_ERROR("stk_sensor_set_hw failed (VGA)\n");
pr_err("stk_sensor_set_hw failed (VGA)\n");
break;
case MODE_SXGA:
case MODE_CIF:
@ -572,7 +576,7 @@ int stk_sensor_configure(struct stk_camera *dev)
case MODE_QCIF:
/*FIXME These settings seem ignored by the sensor
if (stk_sensor_set_hw(dev, 220, 1500, 10, 1034))
STK_ERROR("stk_sensor_set_hw failed (SXGA)\n");
pr_err("stk_sensor_set_hw failed (SXGA)\n");
*/
break;
}

View file

@ -18,6 +18,8 @@
* GNU General Public License for more details.
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
@ -175,15 +177,15 @@ static int stk_start_stream(struct stk_camera *dev)
if (!is_present(dev))
return -ENODEV;
if (!is_memallocd(dev) || !is_initialised(dev)) {
STK_ERROR("FIXME: Buffers are not allocated\n");
pr_err("FIXME: Buffers are not allocated\n");
return -EFAULT;
}
ret = usb_set_interface(dev->udev, 0, 5);
if (ret < 0)
STK_ERROR("usb_set_interface failed !\n");
pr_err("usb_set_interface failed !\n");
if (stk_sensor_wakeup(dev))
STK_ERROR("error awaking the sensor\n");
pr_err("error awaking the sensor\n");
stk_camera_read_reg(dev, 0x0116, &value_116);
stk_camera_read_reg(dev, 0x0117, &value_117);
@ -224,9 +226,9 @@ static int stk_stop_stream(struct stk_camera *dev)
unset_streaming(dev);
if (usb_set_interface(dev->udev, 0, 0))
STK_ERROR("usb_set_interface failed !\n");
pr_err("usb_set_interface failed !\n");
if (stk_sensor_sleep(dev))
STK_ERROR("error suspending the sensor\n");
pr_err("error suspending the sensor\n");
}
return 0;
}
@ -313,7 +315,7 @@ static void stk_isoc_handler(struct urb *urb)
dev = (struct stk_camera *) urb->context;
if (dev == NULL) {
STK_ERROR("isoc_handler called with NULL device !\n");
pr_err("isoc_handler called with NULL device !\n");
return;
}
@ -326,14 +328,13 @@ static void stk_isoc_handler(struct urb *urb)
spin_lock_irqsave(&dev->spinlock, flags);
if (urb->status != -EINPROGRESS && urb->status != 0) {
STK_ERROR("isoc_handler: urb->status == %d\n", urb->status);
pr_err("isoc_handler: urb->status == %d\n", urb->status);
goto resubmit;
}
if (list_empty(&dev->sio_avail)) {
/*FIXME Stop streaming after a while */
(void) (printk_ratelimit() &&
STK_ERROR("isoc_handler without available buffer!\n"));
pr_err_ratelimited("isoc_handler without available buffer!\n");
goto resubmit;
}
fb = list_first_entry(&dev->sio_avail,
@ -343,8 +344,8 @@ static void stk_isoc_handler(struct urb *urb)
for (i = 0; i < urb->number_of_packets; i++) {
if (urb->iso_frame_desc[i].status != 0) {
if (urb->iso_frame_desc[i].status != -EXDEV)
STK_ERROR("Frame %d has error %d\n", i,
urb->iso_frame_desc[i].status);
pr_err("Frame %d has error %d\n",
i, urb->iso_frame_desc[i].status);
continue;
}
framelen = urb->iso_frame_desc[i].actual_length;
@ -368,9 +369,8 @@ static void stk_isoc_handler(struct urb *urb)
/* This marks a new frame */
if (fb->v4lbuf.bytesused != 0
&& fb->v4lbuf.bytesused != dev->frame_size) {
(void) (printk_ratelimit() &&
STK_ERROR("frame %d, bytesused=%d, skipping\n",
i, fb->v4lbuf.bytesused));
pr_err_ratelimited("frame %d, bytesused=%d, skipping\n",
i, fb->v4lbuf.bytesused);
fb->v4lbuf.bytesused = 0;
fill = fb->buffer;
} else if (fb->v4lbuf.bytesused == dev->frame_size) {
@ -395,8 +395,7 @@ static void stk_isoc_handler(struct urb *urb)
/* Our buffer is full !!! */
if (framelen + fb->v4lbuf.bytesused > dev->frame_size) {
(void) (printk_ratelimit() &&
STK_ERROR("Frame buffer overflow, lost sync\n"));
pr_err_ratelimited("Frame buffer overflow, lost sync\n");
/*FIXME Do something here? */
continue;
}
@ -414,8 +413,8 @@ static void stk_isoc_handler(struct urb *urb)
urb->dev = dev->udev;
ret = usb_submit_urb(urb, GFP_ATOMIC);
if (ret != 0) {
STK_ERROR("Error (%d) re-submitting urb in stk_isoc_handler.\n",
ret);
pr_err("Error (%d) re-submitting urb in stk_isoc_handler\n",
ret);
}
}
@ -433,32 +432,31 @@ static int stk_prepare_iso(struct stk_camera *dev)
udev = dev->udev;
if (dev->isobufs)
STK_ERROR("isobufs already allocated. Bad\n");
pr_err("isobufs already allocated. Bad\n");
else
dev->isobufs = kcalloc(MAX_ISO_BUFS, sizeof(*dev->isobufs),
GFP_KERNEL);
if (dev->isobufs == NULL) {
STK_ERROR("Unable to allocate iso buffers\n");
pr_err("Unable to allocate iso buffers\n");
return -ENOMEM;
}
for (i = 0; i < MAX_ISO_BUFS; i++) {
if (dev->isobufs[i].data == NULL) {
kbuf = kzalloc(ISO_BUFFER_SIZE, GFP_KERNEL);
if (kbuf == NULL) {
STK_ERROR("Failed to allocate iso buffer %d\n",
i);
pr_err("Failed to allocate iso buffer %d\n", i);
goto isobufs_out;
}
dev->isobufs[i].data = kbuf;
} else
STK_ERROR("isobuf data already allocated\n");
pr_err("isobuf data already allocated\n");
if (dev->isobufs[i].urb == NULL) {
urb = usb_alloc_urb(ISO_FRAMES_PER_DESC, GFP_KERNEL);
if (urb == NULL)
goto isobufs_out;
dev->isobufs[i].urb = urb;
} else {
STK_ERROR("Killing URB\n");
pr_err("Killing URB\n");
usb_kill_urb(dev->isobufs[i].urb);
urb = dev->isobufs[i].urb;
}
@ -567,7 +565,7 @@ static int stk_prepare_sio_buffers(struct stk_camera *dev, unsigned n_sbufs)
{
int i;
if (dev->sio_bufs != NULL)
STK_ERROR("sio_bufs already allocated\n");
pr_err("sio_bufs already allocated\n");
else {
dev->sio_bufs = kzalloc(n_sbufs * sizeof(struct stk_sio_buffer),
GFP_KERNEL);
@ -690,7 +688,7 @@ static ssize_t stk_read(struct file *fp, char __user *buf,
spin_lock_irqsave(&dev->spinlock, flags);
if (list_empty(&dev->sio_full)) {
spin_unlock_irqrestore(&dev->spinlock, flags);
STK_ERROR("BUG: No siobufs ready\n");
pr_err("BUG: No siobufs ready\n");
return 0;
}
sbuf = list_first_entry(&dev->sio_full, struct stk_sio_buffer, list);
@ -907,7 +905,7 @@ static int stk_vidioc_g_fmt_vid_cap(struct file *filp,
stk_sizes[i].m != dev->vsettings.mode; i++)
;
if (i == ARRAY_SIZE(stk_sizes)) {
STK_ERROR("ERROR: mode invalid\n");
pr_err("ERROR: mode invalid\n");
return -EINVAL;
}
pix_format->width = stk_sizes[i].w;
@ -985,7 +983,7 @@ static int stk_setup_format(struct stk_camera *dev)
stk_sizes[i].m != dev->vsettings.mode)
i++;
if (i == ARRAY_SIZE(stk_sizes)) {
STK_ERROR("Something is broken in %s\n", __func__);
pr_err("Something is broken in %s\n", __func__);
return -EFAULT;
}
/* This registers controls some timings, not sure of what. */
@ -1241,7 +1239,7 @@ static void stk_v4l_dev_release(struct video_device *vd)
struct stk_camera *dev = vdev_to_camera(vd);
if (dev->sio_bufs != NULL || dev->isobufs != NULL)
STK_ERROR("We are leaking memory\n");
pr_err("We are leaking memory\n");
usb_put_intf(dev->interface);
kfree(dev);
}
@ -1264,10 +1262,10 @@ static int stk_register_video_device(struct stk_camera *dev)
video_set_drvdata(&dev->vdev, dev);
err = video_register_device(&dev->vdev, VFL_TYPE_GRABBER, -1);
if (err)
STK_ERROR("v4l registration failed\n");
pr_err("v4l registration failed\n");
else
STK_INFO("Syntek USB2.0 Camera is now controlling device %s\n",
video_device_node_name(&dev->vdev));
pr_info("Syntek USB2.0 Camera is now controlling device %s\n",
video_device_node_name(&dev->vdev));
return err;
}
@ -1288,7 +1286,7 @@ static int stk_camera_probe(struct usb_interface *interface,
dev = kzalloc(sizeof(struct stk_camera), GFP_KERNEL);
if (dev == NULL) {
STK_ERROR("Out of memory !\n");
pr_err("Out of memory !\n");
return -ENOMEM;
}
err = v4l2_device_register(&interface->dev, &dev->v4l2_dev);
@ -1352,7 +1350,7 @@ static int stk_camera_probe(struct usb_interface *interface,
}
}
if (!dev->isoc_ep) {
STK_ERROR("Could not find isoc-in endpoint");
pr_err("Could not find isoc-in endpoint\n");
err = -ENODEV;
goto error;
}
@ -1387,8 +1385,8 @@ static void stk_camera_disconnect(struct usb_interface *interface)
wake_up_interruptible(&dev->wait_frame);
STK_INFO("Syntek USB2.0 Camera release resources device %s\n",
video_device_node_name(&dev->vdev));
pr_info("Syntek USB2.0 Camera release resources device %s\n",
video_device_node_name(&dev->vdev));
video_unregister_device(&dev->vdev);
v4l2_ctrl_handler_free(&dev->hdl);

View file

@ -31,12 +31,6 @@
#define ISO_MAX_FRAME_SIZE 3 * 1024
#define ISO_BUFFER_SIZE (ISO_FRAMES_PER_DESC * ISO_MAX_FRAME_SIZE)
#define PREFIX "stkwebcam: "
#define STK_INFO(str, args...) printk(KERN_INFO PREFIX str, ##args)
#define STK_ERROR(str, args...) printk(KERN_ERR PREFIX str, ##args)
#define STK_WARNING(str, args...) printk(KERN_WARNING PREFIX str, ##args)
struct stk_iso_buf {
void *data;
int length;

View file

@ -43,8 +43,6 @@
#define UNSET (-1U)
#define PREFIX (t->i2c->dev.driver->name)
/*
* Driver modprobe parameters
*/

View file

@ -158,8 +158,8 @@ struct ap1302_res_struct {
};
struct ap1302_context_res {
s32 res_num;
s32 cur_res;
u32 res_num;
u32 cur_res;
struct ap1302_res_struct *res_table;
};

View file

@ -454,6 +454,6 @@ struct gc0310_resolution gc0310_res_video[] = {
#define N_RES_VIDEO (ARRAY_SIZE(gc0310_res_video))
static struct gc0310_resolution *gc0310_res = gc0310_res_preview;
static int N_RES = N_RES_PREVIEW;
static unsigned long N_RES = N_RES_PREVIEW;
#endif

View file

@ -668,5 +668,5 @@ struct gc2235_resolution gc2235_res_video[] = {
#define N_RES_VIDEO (ARRAY_SIZE(gc2235_res_video))
static struct gc2235_resolution *gc2235_res = gc2235_res_preview;
static int N_RES = N_RES_PREVIEW;
static unsigned long N_RES = N_RES_PREVIEW;
#endif

View file

@ -480,7 +480,7 @@ struct imx_device {
struct imx_vcm *vcm_driver;
struct imx_otp *otp_driver;
const struct imx_resolution *curr_res_table;
int entries_curr_table;
unsigned long entries_curr_table;
const struct firmware *fw;
struct imx_reg_addr *reg_addr;
const struct imx_reg *param_hold;

View file

@ -934,7 +934,6 @@ static struct ov2680_resolution ov2680_res_video[] = {
#define N_RES_VIDEO (ARRAY_SIZE(ov2680_res_video))
static struct ov2680_resolution *ov2680_res = ov2680_res_preview;
static int N_RES = N_RES_PREVIEW;
static unsigned long N_RES = N_RES_PREVIEW;
#endif

View file

@ -1263,5 +1263,5 @@ struct ov2722_resolution ov2722_res_video[] = {
#define N_RES_VIDEO (ARRAY_SIZE(ov2722_res_video))
static struct ov2722_resolution *ov2722_res = ov2722_res_preview;
static int N_RES = N_RES_PREVIEW;
static unsigned long N_RES = N_RES_PREVIEW;
#endif

View file

@ -1377,5 +1377,5 @@ struct ov5693_resolution ov5693_res_video[] = {
#define N_RES_VIDEO (ARRAY_SIZE(ov5693_res_video))
static struct ov5693_resolution *ov5693_res = ov5693_res_preview;
static int N_RES = N_RES_PREVIEW;
static unsigned long N_RES = N_RES_PREVIEW;
#endif

View file

@ -266,7 +266,7 @@ struct ov8858_device {
const struct ov8858_reg *regs;
struct ov8858_vcm *vcm_driver;
const struct ov8858_resolution *curr_res_table;
int entries_curr_table;
unsigned long entries_curr_table;
struct v4l2_ctrl_handler ctrl_handler;
struct v4l2_ctrl *run_mode;

View file

@ -266,7 +266,7 @@ struct ov8858_device {
const struct ov8858_reg *regs;
struct ov8858_vcm *vcm_driver;
const struct ov8858_resolution *curr_res_table;
int entries_curr_table;
unsigned long entries_curr_table;
struct v4l2_ctrl_handler ctrl_handler;
struct v4l2_ctrl *run_mode;

View file

@ -354,7 +354,9 @@ ccflags-y += $(INCLUDES) $(DEFINES) -fno-common
# HACK! While this driver is in bad shape, don't enable several warnings
# that would be otherwise enabled with W=1
ccflags-y += -Wno-unused-const-variable -Wno-missing-prototypes \
-Wno-unused-but-set-variable -Wno-missing-declarations \
-Wno-suggest-attribute=format -Wno-missing-prototypes \
-Wno-implicit-fallthrough
ccflags-y += $(call cc-disable-warning, implicit-fallthrough)
ccflags-y += $(call cc-disable-warning, missing-prototypes)
ccflags-y += $(call cc-disable-warning, missing-declarations)
ccflags-y += $(call cc-disable-warning, suggest-attribute=format)
ccflags-y += $(call cc-disable-warning, unused-const-variable)
ccflags-y += $(call cc-disable-warning, unused-but-set-variable)

View file

@ -275,7 +275,7 @@ struct atomisp_device {
*/
struct mutex streamoff_mutex;
int input_cnt;
unsigned int input_cnt;
struct atomisp_input_subdev inputs[ATOM_ISP_MAX_INPUTS];
struct v4l2_subdev *flash;
struct v4l2_subdev *motor;

View file

@ -1,7 +1,7 @@
/*
* cxd2099.c: Driver for the CXD2099AR Common Interface Controller
*
* Copyright (C) 2010-2011 Digital Devices GmbH
* Copyright (C) 2010-2013 Digital Devices GmbH
*
*
* This program is free software; you can redistribute it and/or
@ -33,7 +33,10 @@
#include "cxd2099.h"
#define MAX_BUFFER_SIZE 248
/* comment this line to deactivate the cxd2099ar buffer mode */
#define BUFFER_MODE 1
static int read_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount);
struct cxd {
struct dvb_ca_en50221 en;
@ -48,6 +51,7 @@ struct cxd {
int mode;
int ready;
int dr;
int write_busy;
int slot_stat;
u8 amem[1024];
@ -55,6 +59,9 @@ struct cxd {
int cammode;
struct mutex lock;
u8 rbuf[1028];
u8 wbuf[1028];
};
static int i2c_write_reg(struct i2c_adapter *adapter, u8 adr,
@ -73,7 +80,7 @@ static int i2c_write_reg(struct i2c_adapter *adapter, u8 adr,
}
static int i2c_write(struct i2c_adapter *adapter, u8 adr,
u8 *data, u8 len)
u8 *data, u16 len)
{
struct i2c_msg msg = {.addr = adr, .flags = 0, .buf = data, .len = len};
@ -100,12 +107,12 @@ static int i2c_read_reg(struct i2c_adapter *adapter, u8 adr,
}
static int i2c_read(struct i2c_adapter *adapter, u8 adr,
u8 reg, u8 *data, u8 n)
u8 reg, u8 *data, u16 n)
{
struct i2c_msg msgs[2] = {{.addr = adr, .flags = 0,
.buf = &reg, .len = 1},
{.addr = adr, .flags = I2C_M_RD,
.buf = data, .len = n} };
.buf = &reg, .len = 1},
{.addr = adr, .flags = I2C_M_RD,
.buf = data, .len = n} };
if (i2c_transfer(adapter, msgs, 2) != 2) {
dev_err(&adapter->dev, "error in i2c_read\n");
@ -114,14 +121,26 @@ static int i2c_read(struct i2c_adapter *adapter, u8 adr,
return 0;
}
static int read_block(struct cxd *ci, u8 adr, u8 *data, u8 n)
static int read_block(struct cxd *ci, u8 adr, u8 *data, u16 n)
{
int status;
int status = 0;
status = i2c_write_reg(ci->i2c, ci->cfg.adr, 0, adr);
if (ci->lastaddress != adr)
status = i2c_write_reg(ci->i2c, ci->cfg.adr, 0, adr);
if (!status) {
ci->lastaddress = adr;
status = i2c_read(ci->i2c, ci->cfg.adr, 1, data, n);
while (n) {
int len = n;
if (ci->cfg.max_i2c && (len > ci->cfg.max_i2c))
len = ci->cfg.max_i2c;
status = i2c_read(ci->i2c, ci->cfg.adr, 1, data, len);
if (status)
return status;
data += len;
n -= len;
}
}
return status;
}
@ -182,16 +201,16 @@ static int write_io(struct cxd *ci, u16 address, u8 val)
static int write_regm(struct cxd *ci, u8 reg, u8 val, u8 mask)
{
int status;
int status = 0;
status = i2c_write_reg(ci->i2c, ci->cfg.adr, 0, reg);
if (ci->lastaddress != reg)
status = i2c_write_reg(ci->i2c, ci->cfg.adr, 0, reg);
if (!status && reg >= 6 && reg <= 8 && mask != 0xff)
status = i2c_read_reg(ci->i2c, ci->cfg.adr, 1, &ci->regs[reg]);
ci->lastaddress = reg;
ci->regs[reg] = (ci->regs[reg] & (~mask)) | val;
if (!status) {
ci->lastaddress = reg;
if (!status)
status = i2c_write_reg(ci->i2c, ci->cfg.adr, 1, ci->regs[reg]);
}
if (reg == 0x20)
ci->regs[reg] &= 0x7f;
return status;
@ -203,16 +222,29 @@ static int write_reg(struct cxd *ci, u8 reg, u8 val)
}
#ifdef BUFFER_MODE
static int write_block(struct cxd *ci, u8 adr, u8 *data, int n)
static int write_block(struct cxd *ci, u8 adr, u8 *data, u16 n)
{
int status;
u8 buf[256] = {1};
int status = 0;
u8 *buf = ci->wbuf;
status = i2c_write_reg(ci->i2c, ci->cfg.adr, 0, adr);
if (!status) {
ci->lastaddress = adr;
memcpy(buf + 1, data, n);
status = i2c_write(ci->i2c, ci->cfg.adr, buf, n + 1);
if (ci->lastaddress != adr)
status = i2c_write_reg(ci->i2c, ci->cfg.adr, 0, adr);
if (status)
return status;
ci->lastaddress = adr;
buf[0] = 1;
while (n) {
int len = n;
if (ci->cfg.max_i2c && (len + 1 > ci->cfg.max_i2c))
len = ci->cfg.max_i2c - 1;
memcpy(buf + 1, data, len);
status = i2c_write(ci->i2c, ci->cfg.adr, buf, len + 1);
if (status)
return status;
n -= len;
data += len;
}
return status;
}
@ -238,6 +270,8 @@ static void set_mode(struct cxd *ci, int mode)
static void cam_mode(struct cxd *ci, int mode)
{
u8 dummy;
if (mode == ci->cammode)
return;
@ -246,16 +280,15 @@ static void cam_mode(struct cxd *ci, int mode)
write_regm(ci, 0x20, 0x80, 0x80);
break;
case 0x01:
#ifdef BUFFER_MODE
if (!ci->en.read_data)
return;
ci->write_busy = 0;
dev_info(&ci->i2c->dev, "enable cam buffer mode\n");
/* write_reg(ci, 0x0d, 0x00); */
/* write_reg(ci, 0x0e, 0x01); */
write_reg(ci, 0x0d, 0x00);
write_reg(ci, 0x0e, 0x01);
write_regm(ci, 0x08, 0x40, 0x40);
/* read_reg(ci, 0x12, &dummy); */
read_reg(ci, 0x12, &dummy);
write_regm(ci, 0x08, 0x80, 0x80);
#endif
break;
default:
break;
@ -325,7 +358,10 @@ static int init(struct cxd *ci)
if (status < 0)
break;
if (ci->cfg.clock_mode) {
if (ci->cfg.clock_mode == 2) {
/* bitrate*2^13/ 72000 */
u32 reg = ((ci->cfg.bitrate << 13) + 71999) / 72000;
if (ci->cfg.polarity) {
status = write_reg(ci, 0x09, 0x6f);
if (status < 0)
@ -335,6 +371,25 @@ static int init(struct cxd *ci)
if (status < 0)
break;
}
status = write_reg(ci, 0x20, 0x08);
if (status < 0)
break;
status = write_reg(ci, 0x21, (reg >> 8) & 0xff);
if (status < 0)
break;
status = write_reg(ci, 0x22, reg & 0xff);
if (status < 0)
break;
} else if (ci->cfg.clock_mode == 1) {
if (ci->cfg.polarity) {
status = write_reg(ci, 0x09, 0x6f); /* D */
if (status < 0)
break;
} else {
status = write_reg(ci, 0x09, 0x6d);
if (status < 0)
break;
}
status = write_reg(ci, 0x20, 0x68);
if (status < 0)
break;
@ -346,7 +401,7 @@ static int init(struct cxd *ci)
break;
} else {
if (ci->cfg.polarity) {
status = write_reg(ci, 0x09, 0x4f);
status = write_reg(ci, 0x09, 0x4f); /* C */
if (status < 0)
break;
} else {
@ -354,7 +409,6 @@ static int init(struct cxd *ci)
if (status < 0)
break;
}
status = write_reg(ci, 0x20, 0x28);
if (status < 0)
break;
@ -401,7 +455,6 @@ static int read_attribute_mem(struct dvb_ca_en50221 *ca,
set_mode(ci, 1);
read_pccard(ci, address, &val, 1);
mutex_unlock(&ci->lock);
/* printk(KERN_INFO "%02x:%02x\n", address,val); */
return val;
}
@ -446,6 +499,9 @@ static int slot_reset(struct dvb_ca_en50221 *ca, int slot)
{
struct cxd *ci = ca->data;
if (ci->cammode)
read_data(ca, slot, ci->rbuf, 0);
mutex_lock(&ci->lock);
cam_mode(ci, 0);
write_reg(ci, 0x00, 0x21);
@ -465,7 +521,6 @@ static int slot_reset(struct dvb_ca_en50221 *ca, int slot)
}
}
mutex_unlock(&ci->lock);
/* msleep(500); */
return 0;
}
@ -474,11 +529,19 @@ static int slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
struct cxd *ci = ca->data;
dev_info(&ci->i2c->dev, "%s\n", __func__);
if (ci->cammode)
read_data(ca, slot, ci->rbuf, 0);
mutex_lock(&ci->lock);
write_reg(ci, 0x00, 0x21);
write_reg(ci, 0x06, 0x1F);
msleep(300);
write_regm(ci, 0x09, 0x08, 0x08);
write_regm(ci, 0x20, 0x80, 0x80); /* Reset CAM Mode */
write_regm(ci, 0x06, 0x07, 0x07); /* Clear IO Mode */
ci->mode = -1;
ci->write_busy = 0;
mutex_unlock(&ci->lock);
return 0;
}
@ -490,9 +553,7 @@ static int slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
mutex_lock(&ci->lock);
write_regm(ci, 0x09, 0x00, 0x08);
set_mode(ci, 0);
#ifdef BUFFER_MODE
cam_mode(ci, 1);
#endif
mutex_unlock(&ci->lock);
return 0;
}
@ -506,12 +567,10 @@ static int campoll(struct cxd *ci)
return 0;
write_reg(ci, 0x05, istat);
if (istat & 0x40) {
if (istat & 0x40)
ci->dr = 1;
dev_info(&ci->i2c->dev, "DR\n");
}
if (istat & 0x20)
dev_info(&ci->i2c->dev, "WC\n");
ci->write_busy = 0;
if (istat & 2) {
u8 slotstat;
@ -519,7 +578,8 @@ static int campoll(struct cxd *ci)
read_reg(ci, 0x01, &slotstat);
if (!(2 & slotstat)) {
if (!ci->slot_stat) {
ci->slot_stat = DVB_CA_EN50221_POLL_CAM_PRESENT;
ci->slot_stat |=
DVB_CA_EN50221_POLL_CAM_PRESENT;
write_regm(ci, 0x03, 0x08, 0x08);
}
@ -531,8 +591,8 @@ static int campoll(struct cxd *ci)
ci->ready = 0;
}
}
if (istat & 8 &&
ci->slot_stat == DVB_CA_EN50221_POLL_CAM_PRESENT) {
if ((istat & 8) &&
(ci->slot_stat == DVB_CA_EN50221_POLL_CAM_PRESENT)) {
ci->ready = 1;
ci->slot_stat |= DVB_CA_EN50221_POLL_CAM_READY;
}
@ -553,7 +613,6 @@ static int poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
return ci->slot_stat;
}
#ifdef BUFFER_MODE
static int read_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount)
{
struct cxd *ci = ca->data;
@ -564,30 +623,38 @@ static int read_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount)
campoll(ci);
mutex_unlock(&ci->lock);
dev_info(&ci->i2c->dev, "%s\n", __func__);
if (!ci->dr)
return 0;
mutex_lock(&ci->lock);
read_reg(ci, 0x0f, &msb);
read_reg(ci, 0x10, &lsb);
len = (msb << 8) | lsb;
len = ((u16)msb << 8) | lsb;
if (len > ecount || len < 2) {
/* read it anyway or cxd may hang */
read_block(ci, 0x12, ci->rbuf, len);
mutex_unlock(&ci->lock);
return -EIO;
}
read_block(ci, 0x12, ebuf, len);
ci->dr = 0;
mutex_unlock(&ci->lock);
return len;
}
#ifdef BUFFER_MODE
static int write_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount)
{
struct cxd *ci = ca->data;
if (ci->write_busy)
return -EAGAIN;
mutex_lock(&ci->lock);
dev_info(&ci->i2c->dev, "%s %d\n", __func__, ecount);
write_reg(ci, 0x0d, ecount >> 8);
write_reg(ci, 0x0e, ecount & 0xff);
write_block(ci, 0x11, ebuf, ecount);
ci->write_busy = 1;
mutex_unlock(&ci->lock);
return ecount;
}

View file

@ -30,8 +30,10 @@
struct cxd2099_cfg {
u32 bitrate;
u8 adr;
u8 polarity:1;
u8 clock_mode:1;
u8 polarity;
u8 clock_mode;
u32 max_i2c;
};
#if defined(CONFIG_DVB_CXD2099) || \

View file

@ -57,6 +57,7 @@ void cec_notifier_put(struct cec_notifier *n);
* @pa: the CEC physical address
*
* Set a new CEC physical address.
* Does nothing if @n == NULL.
*/
void cec_notifier_set_phys_addr(struct cec_notifier *n, u16 pa);
@ -66,6 +67,7 @@ void cec_notifier_set_phys_addr(struct cec_notifier *n, u16 pa);
* @edid: the struct edid pointer
*
* Parses the EDID to obtain the new CEC physical address and set it.
* Does nothing if @n == NULL.
*/
void cec_notifier_set_phys_addr_from_edid(struct cec_notifier *n,
const struct edid *edid);
@ -118,4 +120,17 @@ static inline void cec_notifier_unregister(struct cec_notifier *n)
#endif
/**
* cec_notifier_phys_addr_invalidate() - set the physical address to INVALID
*
* @n: the CEC notifier
*
* This is a simple helper function to invalidate the physical
* address. Does nothing if @n == NULL.
*/
static inline void cec_notifier_phys_addr_invalidate(struct cec_notifier *n)
{
cec_notifier_set_phys_addr(n, CEC_PHYS_ADDR_INVALID);
}
#endif

View file

@ -103,16 +103,6 @@ struct ccdc_black_compensation {
char gb;
};
/* structure for fault pixel correction */
struct ccdc_fault_pixel {
/* Enable or Disable fault pixel correction */
unsigned char enable;
/* Number of fault pixel */
unsigned short fp_num;
/* Address of fault pixel table */
unsigned long fpc_table_addr;
};
/* Structure for CCDC configuration parameters for raw capture mode passed
* by application
*/
@ -125,8 +115,6 @@ struct ccdc_config_params_raw {
struct ccdc_black_clamp blk_clamp;
/* Structure for Black Compensation */
struct ccdc_black_compensation blk_comp;
/* Structure for Fault Pixel Module Configuration */
struct ccdc_fault_pixel fault_pxl;
};

View file

@ -183,14 +183,4 @@ struct vpfe_config_params {
};
#endif /* End of __KERNEL__ */
/**
* VPFE_CMD_S_CCDC_RAW_PARAMS - EXPERIMENTAL IOCTL to set raw capture params
* This can be used to configure modules such as defect pixel correction,
* color space conversion, culling etc. This is an experimental ioctl that
* will change in future kernels. So use this ioctl with care !
* TODO: This is to be split into multiple ioctls and also explore the
* possibility of extending the v4l2 api to include this
**/
#define VPFE_CMD_S_CCDC_RAW_PARAMS _IOW('V', BASE_VIDIOC_PRIVATE + 1, \
void *)
#endif /* _DAVINCI_VPFE_H */