/* * struct isp_format_info - ISP media bus format information * @code: V4L2 media bus format code * @truncated: V4L2 media bus format code for the same format truncated to 10 * bits. Identical to @code if the format is 10 bits wide or less. * @uncompressed: V4L2 media bus format code for the corresponding uncompressed * format. Identical to @code if the format is not DPCM compressed. * @flavor: V4L2 media bus format code for the same pixel layout but * shifted to be 8 bits per pixel. =0 if format is not shiftable. * @pixelformat: V4L2 pixel format FCC identifier * @width: Bits per pixel (when transferred over a bus) * @bpp: Bytes per pixel (when stored in memory)
*/ struct isp_format_info {
u32 code;
u32 truncated;
u32 uncompressed;
u32 flavor;
u32 pixelformat; unsignedint width; unsignedint bpp;
};
enum isp_pipeline_state { /* The stream has been started on the input video node. */
ISP_PIPELINE_STREAM_INPUT = 1, /* The stream has been started on the output video node. */
ISP_PIPELINE_STREAM_OUTPUT = 2, /* At least one buffer is queued on the input video node. */
ISP_PIPELINE_QUEUE_INPUT = 4, /* At least one buffer is queued on the output video node. */
ISP_PIPELINE_QUEUE_OUTPUT = 8, /* The input entity is idle, ready to be started. */
ISP_PIPELINE_IDLE_INPUT = 16, /* The output entity is idle, ready to be started. */
ISP_PIPELINE_IDLE_OUTPUT = 32, /* The pipeline is currently streaming. */
ISP_PIPELINE_STREAM = 64,
};
/* * struct isp_pipeline - An ISP hardware pipeline * @field: The field being processed by the pipeline * @error: A hardware error occurred during capture * @ent_enum: Entities in the pipeline
*/ struct isp_pipeline { struct media_pipeline pipe;
spinlock_t lock; /* Pipeline state and queue flags */ unsignedint state; enum isp_pipeline_stream_state stream_state; struct isp_video *input; struct isp_video *output; struct media_entity_enum ent_enum; unsignedlong l3_ick; unsignedint max_rate; enum v4l2_field field;
atomic_t frame_number; bool do_propagation; /* of frame number */ bool error; struct v4l2_fract max_timeperframe; struct v4l2_subdev *external; unsignedint external_rate; unsignedint external_width;
};
enum isp_video_dmaqueue_flags { /* Set if DMA queue becomes empty when ISP_PIPELINE_STREAM_CONTINUOUS */
ISP_VIDEO_DMAQUEUE_UNDERRUN = (1 << 0), /* Set when queuing buffer to an empty DMA queue */
ISP_VIDEO_DMAQUEUE_QUEUED = (1 << 1),
};
/* * struct isp_video_operations - ISP video operations * @queue: Resume streaming when a buffer is queued. Called on VIDIOC_QBUF * if there was no buffer previously queued.
*/ struct isp_video_operations { int(*queue)(struct isp_video *video, struct isp_buffer *buffer);
};
struct mutex mutex; /* format and crop settings */
atomic_t active;
struct isp_device *isp;
unsignedint capture_mem; unsignedint bpl_alignment; /* alignment value */ unsignedint bpl_zero_padding; /* whether the alignment is optional */ unsignedint bpl_max; /* maximum bytes per line value */ unsignedint bpl_value; /* bytes per line value */ unsignedint bpl_padding; /* padding at end of line */
/* Pipeline state */ struct isp_pipeline pipe; struct mutex stream_lock; /* pipeline and stream states */ bool error;
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.