t;> The second session deals with libcamera and is on Wednesday morning
>> from 9:00 to 13:00.
>>
>> Attendees for this session:
>>
>> Nicolas Dufresne
>> Tomasz Figa
>> Ezequiel Garcia
>> Dafna Hirschfeld
>
> I beliebe Dafna and I s
; Signed-off-by: Wei Yongjun
Acked-by: Helen Koike
Thank you
Helen
> ---
> drivers/media/platform/vimc/vimc-core.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/vimc/vimc-core.c
> b/drivers/media/platform/vimc/vimc-co
On 10/3/19 7:44 AM, Dafna Hirschfeld wrote:
> since this function only calls v4l2_device_unregister_subdev,
> it is pointless.
>
> Signed-off-by: Dafna Hirschfeld
Acked-by: Helen Koike
> ---
> drivers/media/platform/vimc/vimc-common.c | 5 -
> drivers/med
Hi Dafna,
Could you just rename the title tags to "media: vimc: sen: " to follow the
model of the other commits?
Thanks
Helen
On 10/3/19 7:44 AM, Dafna Hirschfeld wrote:
> vimc_sen_add function first registers the subdevice and then
> calls tpg_alloc. If tpg_alloc fails it
ng like:
"media: vimc: remove unnecessary var when adding entities"
It makes clear what you are doing and where, what do you think?
With this:
Acked-by: Helen Koike
> ---
> drivers/media/platform/vimc/vimc-core.c | 6 ++
> 1 file changed, 2 insertions(+), 4 deletions(
On 10/3/19 7:44 AM, Dafna Hirschfeld wrote:
> since NULL value for vimc entity pointer indicates
> that entity creation failed and this is tested, the
> pointers should be initialized to NULL.
>
> Signed-off-by: Dafna Hirschfeld
Acked-by: Helen Koike
> ---
> driver
c_ent_device *vimc_sca_add(struct vimc_device
> *vimc,
> return NULL;
>
> /* Initialize ved and sd */
> + vsca->pads[0].flags = MEDIA_PAD_FL_SINK;
> + vsca->pads[1].flags = MEDIA_PAD_FL_SOURCE;
> +
> ret = vimc_ent_sd_register(&am
On 10/1/19 2:25 PM, Andrzej Pietrasiewicz wrote:
> Hi Dafna, hi Helen,
>
> W dniu 01.10.2019 o 19:19, Helen Koike pisze:
>> Hi Dafna,
>>
>> On 10/1/19 1:50 PM, Dafna Hirschfeld wrote:
>>> since NULL value for vimc entity pointer indicates
>>> that e
Hi Dafna,
Thanks for your patch
On 10/1/19 1:50 PM, Dafna Hirschfeld wrote:
> according to the docs, this function must be called during
> the cleanup phase after unregistering the entity.
>
> Signed-off-by: Dafna Hirschfeld
Acked-by: Helen Koike
I just have on
tration also frees vsen.
>
> Signed-off-by: Dafna Hirschfeld
Acked-by: Helen Koike
> ---
> drivers/media/platform/vimc/vimc-sensor.c | 20 ++--
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/media/platform/vimc/vimc-sensor.c
>
vimc->ent_devs = kcalloc(vimc->pipe_cfg->num_ents,
> sizeof(*vimc->ent_devs),
> GFP_KERNEL);
Could you fix the alignment of the params here?
Thanks
Helen
> if (!vimc->ent_devs)
>
8:30 (tentative, might change) to 12:00 (we have to vacate the room at that
>> time).
>>
>> Confirmed attendees for this session:
>>
>> Boris Brezillon
>> Alexandre Courbot
>> Nicolas Dufresne
>> Tomasz Figa
>> Ezequiel Garcia
>> Daniel G
n, unsigned int col,
> const u8 *const sink_frame)
> {
> unsigned int i, j, index;
> const u8 *pixel;
> + const struct v4l2_rect crop_rect = vsca->crop_rect;
>
> /* Point to the pixel value in position (lin, col) in the
--help-all option was not displaying options from --help-subdev.
Add missing subdev_usage() in usage_all() to fix it.
Signed-off-by: Helen Koike
---
utils/v4l2-ctl/v4l2-ctl.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/utils/v4l2-ctl/v4l2-ctl.cpp b/utils/v4l2-ctl/v4l2-ctl.cpp
index
;>>> Attendees for this session:
>>>>>>
>>>>>> Kieran Bingham
>>>>
>>>> Unfortunately I can no longer attend ELCE.
>>>>
>>>> (My second baby will be a bit too new for an extended stay away from home)
>>>
[label="{{ 0} | Decoder\n | { 1}}",
shape=Mrecord, style=filled, fillcolor=green]
n0001:port1 -> n0007
n0001:port1 -> n0004:port0 [style=dashed]
n0004 [label="{{ 0} | PostProc\n | { 1}}",
shape=Mrecord, style=filled, fillcolor=green]
n0004:port1 -> n0007 [style=dashed]
n0007 [label="M2M Video Node\n/dev/video0", shape=box,
style=filled, fillcolor=yellow]
n0007 -> n0001:port0
}
Also, as you mentioned in patch 4:
> On the YUV-to-RGB path, the post-processing pipeline
> allows to modify the image contrast, brigthness and saturation,
> so additional user controls are added to expose them.
So I think it would make sense to expose these controls in the post-processor
subdev,
through a /dev/v4l-subdev0, this avoids having a dynamic set of controls in the
video node
depending on the path.
You don't even need to implement VIDIOC_{G,S}_FORMAT in the pads (at least
v4l2-compliance
doesn't complain, it is happy with "Not Supported"). So the post-processor
/dev/v4l-subdev0
devnode could be used to expose only these controls, and you don't need to
expose a devnode
to the Decoder entity above (unless you have another reason).
I hope this helps,
Helen
y source pads
> + */
please add docs like the other functions in this file.
> +static bool vimc_is_source(struct media_entity *ent)
> +{
> + int i;
unsigned
Regards,
Helen
> +
> + for (i = 0; i < ent->num_pads; i++)
> + if (ent->pads[i].flags & MEDIA_
agree with EMBEDDED, the problem with that is that
>>> many "embedded" platforms don't enable EMBEDDED. So, it's not that useful.
>>>
>>> Finally, let me give an example of why hiding the menus is so bad.
>>> Normally, to enable a symbol, we use the search tool.
>>>
>>> Now, when MEDIA_SUBDRV_AUTOSELECT=y, the search tool will _not_ take you
>>> there and there's no indication why.
>>
>> As someone who has done so in the past year, I agree it's confusing.
>> I had to dig through the Kconfig files to figure out which knobs to
>> turn to get the OV5640 option out. The description says "auto-selecting",
I had this same problem.
>
> Well, the text and/or the help message can be changed, if it is not
> clear enough, but this option was added because we had too many issues
> with users trying to build drivers for their devices without being
> able to do that, because selecting thousands of devices is something
> that an average PC user has troubles.
>
> I'm all to improve it, provided that we don't make harder for non-devs
> to build the Kernel.
>
>> which does not equal hiding everything. You could still have drivers
>> auto-selected (or not) based on a Kconfig option without hiding things.
>>
Another idea is to separate in two options, MEDIA_SUBDRV_AUTOSELECT and
MEDIA_SUBDRV_ADVANCED, where the first one autoselects things and the later
enables more options.
Helen
>> ChenYu
>
>
>
> Thanks,
> Mauro
>
+ while ((entity = media_graph_walk_next(&graph)))
> + if (entity->function == MEDIA_ENT_F_CAM_SENSOR)
> + break;
I was wondering if it should search up to the sensor, or if it could just
search the first entity with a pipe object, what do you think
Hi Shuah,
On 7/2/19 10:44 PM, shuah wrote:
> On 5/23/19 9:07 AM, shuah wrote:
>> Hi Hans and Helen,
>>
>> vimc streaming fails on Linux 5.2-rc1
>>
>> vimc: format doesn't match in link Scaler->RGB/YUV Capture
>>
>> You can reproduce this eas
On 4/26/19 4:51 PM, André Almeida wrote:
> Change the scaling functions in order to scale planes. This change makes
> easier to support multiplanar pixel formats.
>
> Signed-off-by: André Almeida
Acked-by: Helen Koike
> ---
> Changes in v5:
> - Remove bpp from vimc_s
On 4/25/19 10:22 PM, André Almeida wrote:
> Adapt vimc-capture to support multiplanar formats, copying
> each plane to the correct buffer.
>
> Signed-off-by: André Almeida
Acked-by: Helen Koike
> ---
> Change in v4:
> - Move variables to inside the for loop
> -
unsigned int bpp;
> + unsigned int src_line_size[TPG_MAX_PLANES];
> + unsigned int bpp[TPG_MAX_PLANES];
Do you think we could get rid of this bpp variable here as we have it
inside vimc_frame struct ?
Helen
> };
>
> static const struct v4l2_mbus_framefmt sink_fmt_d
CAP_VIDEO_CAPTURE and CAP_VIDEO_CAPTURE_MPLANAR at the
> same time.
>
> Signed-off-by: André Almeida
Acked-by: Helen Koike
> ---
> Change in v4:
> - Split commit with "Add handler for multiplanar fmt ioctls"
>
> Change in v3:
> - Squash commit with "Ad
bdevices work with
> the frame.
>
> Change the return and argument type of process_frame from void* to
> vimc_frame*. Change the frame in subdevices structs from u8* to vimc_frame.
>
> Signed-off-by: André Almeida
Acked-by: Helen Koike
> ---
> Changes in v4:
> - Remo
On 4/25/19 10:22 PM, André Almeida wrote:
> This commit adapts vimc-sensor to handle multiplanar pixel formats,
> adapting the memory allocation and TPG configuration.
>
> Signed-off-by: André Almeida
Acked-by: Helen Koike
> ---
> Changes in v4:
> - Correct `unsigned
> Signed-off-by: André Almeida
Acked-by: Helen Koike
> ---
> Change in v4: none
>
> Changes in v3:
> - Fix typo on commit message
> - Add `_sp` to single planar default format
> - Modify identation
>
> Change in v2:
> - Move here the default format is set to veri
On 4/25/19 10:22 PM, André Almeida wrote:
> Add functions to handle multiplanar format ioctls, calling
> the generic format ioctls functions when possible.
>
> Signed-off-by: André Almeida
Acked-by: Helen Koike
> ---
> Change in v4:
> - Split from multiplanar par
On 4/25/19 10:22 PM, André Almeida wrote:
> Move sp2mp functions from vivid code to v4l2-common as it will be reused
> by vimc driver for multiplanar support.
>
> Signed-off-by: André Almeida
Acked-by: Helen Koike
> ---
> Changes in v4: none
>
> Changes in v3:
m_planes = 1), re-use the multiplanar code, and
> transform them back to single planar. This is implemented with
> v4l2_fmt_sp2mp_func().
>
> Signed-off-by: André Almeida
Acked-by: Helen Koike
> ---
> Changes in v4:
> - Add comment that was in wrong commit
> - Check the ret
On 4/24/19 8:03 PM, André Almeida wrote:
> Hello Helen,
>
> Thanks for your review!
>
> On 4/24/19 6:32 PM, Helen Koike wrote:
>> Hi André,
>>
>> Thanks for the patch, please see my comments below.
>>
>> On 4/24/19 10:56 AM, André Almeida wrote:
&
ap_sp(struct file *file, void *priv,
> + struct v4l2_format *f)
> {
> struct vimc_cap_device *vcap = video_drvdata(file);
>
> @@ -162,7 +182,7 @@ static int vimc_cap_s_fmt_vid_cap(struct file *file, void
> *priv,
> if (vb2_
;vcap->ved);
> vcap->dev = comp;
>
> +
> /* Initialize the video_device struct */
> vdev = &vcap->vdev;
> - vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
> + vdev->device_caps = (multiplanar ?
/
> + for (i = 0; i < vimc_buf->vb2.vb2_buf.num_planes; i++) {
> + vbuf = vb2_plane_vaddr(&vimc_buf->vb2.vb2_buf, i);
> + plane_size = frame->fmt.plane_fmt[i].sizeimage;
I think you should keep the same type, frame->fmt.plane_fmt[i].sizeimage
i
ch pixel from the original sink frame */
> /* TODO: implement scale down, only scale up is supported for now */
> - for (i = 0; i < vsca->sink_fmt.height; i++)
> - for (j = 0; j < vsca->sink_fmt.width; j++)
> - vimc_sca_scale_pix(vsca,
lane_addr[i]) {
> + ret = -ENOMEM;
> + goto free_planes;
> + }
> + }
>
> /* configure the test pattern generator */
> vimc_sen_tpg_s_format(vsen);
&
a/platform/vimc/vimc-common.c
> index fad7c7c6de93..2418626f513d 100644
> --- a/drivers/media/platform/vimc/vimc-common.c
> +++ b/drivers/media/platform/vimc/vimc-common.c
> @@ -380,6 +380,14 @@ int vimc_ent_sd_register(struct vimc_ent_device *ved,
> }
> EXPORT_SYMBO
subdevices :)
Helen
>
> Signed-off-by: André Almeida
> ---
> Change in v3:
> - Use ternary operator to get code more simple
>
> Change in v2:
> - New commit
>
> drivers/media/platform/vimc/vimc-capture.c | 4 +++-
> drivers/media/platform/vimc/vimc-streamer.h |
previous code was not a problem because the first entity is a video
device and not a subdevice, but this patch prepares vimc to allow
setting some configuration in the entity before calling s_stream.
Signed-off-by: Helen Koike
---
drivers/media/platform/vimc/vimc-streamer.c | 25
in a given pixelformat. So we can allow almost any media bus
format to be configured between pads, except for debayer that expects a
media bus code of type bayer in the sink pad.
Signed-off-by: Helen Koike
---
drivers/media/platform/vimc/vimc-capture.c | 76 +++--
drivers/media/platform/vimc
There is no need to have the frame field in the vimc_stream struct.
Signed-off-by: Helen Koike
---
drivers/media/platform/vimc/vimc-streamer.c | 10 --
drivers/media/platform/vimc/vimc-streamer.h | 1 -
2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/media
Add missing documentation for struct vimc_stream
Signed-off-by: Helen Koike
---
drivers/media/platform/vimc/vimc-streamer.h | 15 +++
1 file changed, 15 insertions(+)
diff --git a/drivers/media/platform/vimc/vimc-streamer.h
b/drivers/media/platform/vimc/vimc-streamer.h
index
Add bayer format information in struct v4l2_format_info table.
Signed-off-by: Helen Koike
---
drivers/media/v4l2-core/v4l2-common.c | 22 ++
1 file changed, 22 insertions(+)
diff --git a/drivers/media/v4l2-core/v4l2-common.c
b/drivers/media/v4l2-core/v4l2-common.c
index
The type V4L2_FRMSIZE_TYPE_CONTINUOUS expects a step of 1.
This fixes v4l2-compliance test error:
fail: v4l2-test-formats.cpp(184): invalid step_width/height for
continuous framesize
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: FAIL
Signed-off-by: Helen Koike
---
drivers/media
The format of the sink pad should be a bayer mbus format.
This fixes a kernel NULL pointer dereference error that was caused when
the stream starts because the configured format was not found in the
pixelmap table.
Reported-by: Hans Verkuil
Signed-off-by: Helen Koike
---
drivers/media
in __might_sleep() call, as it's expecting the
task to be in TASK_RUNNING state just before changing the state to
a sleeping state.
Reported-by: Hans Verkuil
Signed-off-by: Helen Koike
---
drivers/media/platform/vimc/vimc-streamer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
eries depends on
"[PATCH] media: Introduce helpers to fill pixel format structs "
Thanks,
Helen
Helen Koike (8):
media: vimc: deb: fix default sink bayer format
media: vimc: stream: fix thread state before sleep
media: vimc: cap: fix step width/height in enum framesize
media: v
Hi Hans,
Sorry about my delay.
On 1/14/19 3:05 PM, Hans Verkuil wrote:
> On 1/14/19 6:04 PM, Helen Koike wrote:
>> Hi Hans,
>>
>> Thanks for the patch.
>>
>> On 1/14/19 12:58 PM, Hans Verkuil wrote:
>>> Add VB2_USERPTR to the vimc capture device.
>
On 1/30/19 11:43 AM, Hans Verkuil wrote:
> It is good practice to fill in bus_info.
>
> Also just use 'platform:vimc' when filling in the bus_info in querycap:
> the bus_info has nothing to do with the video device name.
>
> Signed-off-by: Hans Verkuil
Acked-by
function of each entity.
>
> Fixes: f2fe89061d797 ("vimc: Virtual Media Controller core, capture
> and sensor")
> Cc: sta...@vger.kernel.org # for v4.20
> Signed-off-by: Lucas A. M. Magalhães
lgtm, thanks for the patch.
Acked-by: Helen Koike
Regards,
Helen
> ---
>
source_ved = v4l2_get_subdevdata(sd);
> + } else {
> + vdev = container_of(entity,
> + struct video_device,
> + entity);
> + sourc
he pipeline used later on the streamer thread.
> + * Calls s_stream to enable stream in all entities of the pipeline.
> + */
> +static int vimc_streamer_pipeline_init(struct vimc_stream *stream,
> + struct vimc_ent_device *ved)
> +{
&g
q->ops = &vimc_cap_qops;
>
I remember at the time I was having some issues regarding userptr, I
just want to make a few tests first.
Regards,
Helen
Hi Hans
On 1/11/19 1:25 PM, Hans Verkuil wrote:
> Hi Helen,
>
> I've started work to fix the last compliance failures with vimc so that
> vimc can be used in regression tests.
>
> But I found a kernel warning and a kernel oops using vimc from our master
> tree.
>
We see your photos photos for editing.
Please send us the details of this task.
Do your photos need cut out? Or clipping path, and retouching?
You may give us 1 photo, we will do test for you to check the quality.
Thanks,
Helen
We see your photos photos for editing.
Please send us the details of this task.
Do your photos need cut out? Or clipping path, and retouching?
You may give us 1 photo, we will do test for you to check the quality.
Thanks,
Helen
We see your photos photos for editing.
Please send us the details of this task.
Do your photos need cut out? Or clipping path, and retouching?
You may give us 1 photo, we will do test for you to check the quality.
Thanks,
Helen
IGHT,
> q_data->coded_height);
> + s->r.height = q_data->visible_height;
> + return 0;
> + }
You could avoid this big identation block by doing:
if (!is_out_crop_on_enc && !is_cap_compose_on_dec)
return -EINVAL;
s->r.left = 0;
...
return 0;
> + return -EINVAL;
> +}
> +
> static void vicodec_mark_last_buf(struct vicodec_ctx *ctx)
> {
> static const struct v4l2_event eos_event = {
> @@ -895,6 +971,9 @@ static const struct v4l2_ioctl_ops vicodec_ioctl_ops = {
> .vidioc_streamon= v4l2_m2m_ioctl_streamon,
> .vidioc_streamoff = v4l2_m2m_ioctl_streamoff,
>
> + .vidioc_g_selection = vidioc_g_selection,
> + .vidioc_s_selection = vidioc_s_selection,
> +
> .vidioc_try_encoder_cmd = vicodec_try_encoder_cmd,
> .vidioc_encoder_cmd = vicodec_encoder_cmd,
> .vidioc_try_decoder_cmd = vicodec_try_decoder_cmd,
> @@ -988,8 +1067,8 @@ static int vicodec_start_streaming(struct vb2_queue *q,
> struct vicodec_ctx *ctx = vb2_get_drv_priv(q);
> struct vicodec_q_data *q_data = get_q_data(ctx, q->type);
> struct v4l2_fwht_state *state = &ctx->state;
> - unsigned int size = q_data->width * q_data->height;
> const struct v4l2_fwht_pixfmt_info *info = q_data->info;
> + unsigned int size = q_data->coded_width * q_data->coded_height;
> unsigned int chroma_div = info->width_div * info->height_div;
> unsigned int total_planes_size;
>
> @@ -1008,17 +1087,20 @@ static int vicodec_start_streaming(struct vb2_queue
> *q,
>
> if (!V4L2_TYPE_IS_OUTPUT(q->type)) {
> if (!ctx->is_enc) {
> - state->width = q_data->width;
> - state->height = q_data->height;
> + state->visible_width = q_data->visible_width;
> + state->visible_height = q_data->visible_height;
> + state->coded_width = q_data->coded_width;
> + state->coded_height = q_data->coded_height;
> }
> return 0;
> }
>
> if (ctx->is_enc) {
> - state->width = q_data->width;
> - state->height = q_data->height;
> + state->visible_width = q_data->visible_width;
> + state->visible_height = q_data->visible_height;
> + state->coded_width = q_data->coded_width;
> + state->coded_height = q_data->coded_height;
> }
> - state->ref_frame.width = state->ref_frame.height = 0;
> state->ref_frame.luma = kvmalloc(total_planes_size, GFP_KERNEL);
> ctx->comp_max_size = total_planes_size + sizeof(struct fwht_cframe_hdr);
> state->compressed_frame = kvmalloc(ctx->comp_max_size, GFP_KERNEL);
> @@ -1204,8 +1286,10 @@ static int vicodec_open(struct file *file)
>
> ctx->q_data[V4L2_M2M_SRC].info =
> ctx->is_enc ? v4l2_fwht_get_pixfmt(0) : &pixfmt_fwht;
> - ctx->q_data[V4L2_M2M_SRC].width = 1280;
> - ctx->q_data[V4L2_M2M_SRC].height = 720;
> + ctx->q_data[V4L2_M2M_SRC].coded_width = 1280;
> + ctx->q_data[V4L2_M2M_SRC].coded_height = 720;
> + ctx->q_data[V4L2_M2M_SRC].visible_width = 1280;
> + ctx->q_data[V4L2_M2M_SRC].visible_height = 720;
> size = 1280 * 720 * ctx->q_data[V4L2_M2M_SRC].info->sizeimage_mult /
> ctx->q_data[V4L2_M2M_SRC].info->sizeimage_div;
> if (ctx->is_enc)
>
Regards,
Helen
gt; This patch introduces a streamer controller library for the vimc
> driver. It's a step towards a optimized mode I've been discussing with
> Helen.
> I plan to pass a tpg struct through the pipeline. This tpg struct
> will be configured in each entity and the capture will gen
this can be a problem in the
current implementation, but then your system won't have memory for any 4
nested function calls anyway (which I think the kernel wouldn't work at
all).
Mauro, with that said, do you still think we should send this to stable?
Thanks
Helen
>
> Please noti
Hi Hans,
On 12/10/18 9:31 AM, Hans Verkuil wrote:
> On 12/7/18 7:22 PM, Helen Koike wrote:
>> Add API to allow userspace to create any type of topology in vimc using
>> basic system calls such as mkdir/rmdir/read/write.
>>
>> Signed-off-by: Helen Koike
>&g
Hi Dmitry,
On 10/31/18 9:49 AM, Helen Koike wrote:
> Hi Dmitry,
>
> On 10/31/18 7:46 AM, Hans Verkuil wrote:
>> On 10/30/2018 03:02 PM, Dmitry Vyukov wrote:
>>> Hello Helen and linux-media,
>>>
>>> I've attended your talk "Shifting Media Ap
Add API to allow userspace to create any type of topology in vimc using
basic system calls such as mkdir/rmdir/read/write.
Signed-off-by: Helen Koike
---
Hi,
This patch introduces the configufs API for configuring the topology in
vimc while it removes the hardcoded topology, so now, when you
If link is disabled, media_entity_remote_pad returns NULL, causing a
NULL pointer deference.
Ignore links that are not enabled instead.
Signed-off-by: Helen Koike
---
drivers/media/platform/vimc/vimc-common.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/media/platform/vimc
;
> Signed-off-by: Julia Lawall
Acked-by: Helen Koike
>
> ---
> drivers/media/platform/vimc/vimc-sensor.c |2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/vimc/vimc-sensor.c
> b/drivers/media/platform/vimc/vimc-sensor.c
Hi Dmitry,
On 10/31/18 7:46 AM, Hans Verkuil wrote:
> On 10/30/2018 03:02 PM, Dmitry Vyukov wrote:
>> Hello Helen and linux-media,
>>
>> I've attended your talk "Shifting Media App Development into High
>> Gear" on OSS Summit last week and approached you
ev->cap_stream_start +
> + soe_time +
> + dev->time_wrap_offset;
Could you move the dev->vid_cap_seq_count to the top? I got confused if
it was multiplying only the denominator, I think moving to the top makes
it clearer (or add parenthesis).
> }
>
> /*
> @@ -759,6 +766,7 @@ static int vivid_thread_vid_cap(void *data)
> dev->cap_seq_count = 0;
> dev->cap_seq_resync = false;
> dev->jiffies_vid_cap = jiffies;
> + dev->cap_stream_start = ktime_get_ns();
>
> for (;;) {
> try_to_freeze();
>
Thanks
Helen
usb2-v4l2.c
> index cea232a3302d..97a93ed4bcda 100644
> --- a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c
> +++ b/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c
> @@ -869,7 +869,7 @@ static void pvr2_v4l2_dev_destroy(struct pvr2_v4l2_dev
> *dip)
> are gone. */
> video_unregister_device(&dip->devbase);
>
> - printk(KERN_INFO "%s\n", msg);
> + pr_info("%s\n", msg);
>
> }
>
> @@ -1260,7 +1260,7 @@ static void pvr2_v4l2_dev_init(struct pvr2_v4l2_dev
> *dip,
> ": Failed to register pvrusb2 v4l device\n");
> }
>
> - printk(KERN_INFO "pvrusb2: registered device %s [%s]\n",
> + pr_info("pvrusb2: registered device %s [%s]\n",
> video_device_node_name(&dip->devbase),
> pvr2_config_get_name(dip->config));
>
>
Thanks
Helen
0: Discuss the media development process
> Since we are all here, discuss any issues there may be with the media
> subsystem development process. Anything to improve?
>
> 16:00-16:15: Wrap up
> Create action items (and who will take care of them) if needed.
> Summarize and conclude the day.
>
> End of the day: Key Signing Party
>
> Regards,
>
> Hans
>
Thanks
Helen
On 8/22/18 3:49 AM, Hans Verkuil wrote:
> On 08/22/2018 05:35 AM, Helen Koike wrote:
>> Hello,
>>
>> One of the discussions we had when developing Vimc, was regarding
>> optimizing image generation.
>> The ideia was to generate the images directly in the
image transformation made by each entity in the pipe)
Or do you have any other thing in mind?
Thanks
Helen
Hi Hans,
On 02/07/2018 03:06 PM, Hans Verkuil wrote:
Instead of calling everything a MEDIA_ENT_F_ATV_DECODER, pick the
correct functions for these blocks.
Nice, thanks for the patch
Signed-off-by: Hans Verkuil
Acked-by: Helen Koike
---
diff --git a/drivers/media/platform/vimc/vimc
ons are also called directly from
drivers, so I don't want to change the error code there.
Right, I see, thanks for the patch
Found with vimc and v4l2-compliance.
Signed-off-by: Hans Verkuil
Acked-by: Helen Koike
---
diff --git a/drivers/media/v4l2-core/v4l2-subdev.c
b/drivers/media/v
Hi Hans,
Thanks for the patch
On 02/02/2018 11:00 AM, Hans Verkuil wrote:
The sensor subdev didn't handle control events. Add support for this.
Found with v4l2-compliance.
Signed-off-by: Hans Verkuil
Acked-by: Helen Koike
---
diff --git a/drivers/media/platform/vimc/vimc-common
Hi Hans,
On 2017-11-06 08:19 AM, Hans Verkuil wrote:
> Hi Helen,
>
> On 09/27/2017 08:30 PM, Helen Koike wrote:
>> Hi Hans,
>>
>> Thanks for your patch and sorry for my late reply.
>
> Sorry for my late reply to your reply :-)
>
>> Please see my commen
i >= 0)
> platform_device_unregister(vimc->subdevs[i]);
>
> - return ERR_PTR(-ENOMEM);
> + return match;
> }
>
> component_match_add(&vimc->pdev.dev, &match, vimc_comp_compare,
>
>
>
Nice catch, thanks, looks good to me
Acked-by: Helen Koike
Hi Hans,
Thanks for your review.
On 2017-07-28 10:39 AM, Hans Verkuil wrote:
> Hi Helen,
>
> Finally after way too long I found some time to review this. See my comments
> below.
>
> On 04/11/2017 12:53 AM, Helen Koike wrote:
>>
>> Hi,
>>
>> Continuin
rr_free_vsen;
> + goto err_free_hdl;
>
> dev_set_drvdata(comp, &vsen->ved);
> vsen->dev = comp;
> @@ -342,6 +402,8 @@ static int vimc_sen_comp_bind(struct device *comp, struct
> device *master,
>
> err_unregister_ent_sd:
> vimc_ent_sd_unregister(&vsen->ved, &vsen->sd);
> +err_free_hdl:
> + v4l2_ctrl_handler_free(&vsen->hdl);
> err_free_vsen:
> kfree(vsen);
>
This conflicts a bit in the way I was preparing the optimization to
generate the pattern directly from the capture device as it will need to
propagate the changes from the controls in the sensor as well, but it
shouldn't be a problem to let the sensor to configure the tpg used in
the capture, I'll re-work my patch to include this.
Helen
ms good to me.
Reviewed-by: Helen Koike
---
drivers/media/platform/vimc/vimc-capture.c | 15 ---
drivers/media/platform/vimc/vimc-debayer.c | 15 ---
drivers/media/platform/vimc/vimc-scaler.c | 15 ---
drivers/media/platform/vimc/vimc-sens
Hi Hans,
Thanks for reviewing this
On 2017-06-19 08:15 AM, Hans Verkuil wrote:
On 06/14/2017 06:50 AM, Helen Koike wrote:
Add V4L2_CAP_IO_MC to be used in struct v4l2_capability to indicate that
input and output are controlled by the Media Controller instead of V4L2
API.
When this flag is set
Move the vimc_cap_pipeline_s_stream from the vimc-cap.c to vimc-common.c
as this core will be reused by other subdevices to activate the stream
in their directly connected nodes
Signed-off-by: Helen Koike
---
Changes in v5: None
Changes in v4: None
Changes in v3:
[media] vimc: Add
Allow user space to change the image format as the frame size, the
media bus pixel format, colorspace, quantization, field YCbCr encoding
and the transfer function
Signed-off-by: Helen Koike
---
Changes in v5: None
Changes in v4:
[media] vimc: sen: Support several image formats
- use
Colorimetry value will always be checked in the same way. Adding a
helper macro for that
Signed-off-by: Helen Koike
---
Changes in v5: None
Changes in v4:
[media] vimc: common: Add vimc_colorimetry_clamp
- this is a new patch in the series
Changes in v3: None
Changes in v2: None
Initialize the test pattern generator on the sensor
Generate a colored bar image instead of a grey one
Signed-off-by: Helen Koike
---
Changes in v5: None
Changes in v4: None
Changes in v3:
[media] vimc: sen: Integrate the tpg on the sensor
- Declare frame_size as a local variable
Allow user space to change the image format as the frame size, the
pixel format, colorspace, quantization, field YCbCr encoding
and the transfer function
Signed-off-by: Helen Koike
---
Changes in v5: None
Changes in v4:
[media] vimc: cap: Support several image formats
- add
Remove helper functions from vimc-core and add it in vimc-common to
clean up the core.
Signed-off-by: Helen Koike
---
Changes in v5: None
Changes in v4: None
Changes in v3:
[media] vimc: Move common code from the core
- This is a new patch in the series
Changes in v2: None
All links will be checked in the same way. Adding a helper function for
that
Signed-off-by: Helen Koike
---
Changes in v5: None
Changes in v4:
[media] vimc: common: Add vimc_link_validate
- remove vimc_fmt_pix_to_mbus(), replaced by
v4l2_fill_mbus_format()
- remove
_device in the system.
It also facilitates other implementations of different nodes without
touching the core code and remove the need of a header file for each
type of node.
Signed-off-by: Helen Koike
---
Changes in v5:
[media] vimc: Subdevices as modules
- Fix vimc_add_subdevs in rollback
Implement the debayer filter and integrate it with the core
Signed-off-by: Helen Koike
---
Changes in v5:
[media] vimc: deb: Add debayer filter
- delare vimc_deb_video_ops as static, remove sparse warning
Changes in v4:
[media] vimc: deb: Add debayer filter
- Rebase without
Implement scaler and integrated with the core
Signed-off-by: Helen Koike
---
Changes in v5:
[media] vimc: sca: Add scaler
- declare vimc_sca_video_ops as static, remove sparse warning
Changes in v4:
[media] vimc: sca: Add scaler
- use vimc_colorimetry_clamp
- replace
Declare vimc_sen_video_ops as static, remove warning from sparse tool
Signed-off-by: Helen Koike
---
Changes in v5:
[media] vimc: sen: Declare vimc_sen_video_ops as static
- This is a new patch in the series
Changes in v4: None
Changes in v3: None
Changes in v2: None
---
drivers
As all the subdevices in the topology will be initialized in the same
way, to avoid code repetition the vimc_ent_sd_{register, unregister}
helper functions were created
Signed-off-by: Helen Koike
---
Changes in v5: None
Changes in v4: None
Changes in v3:
[media] vimc: common: Add vimc_ent_sd_
to a bayer format by averaging the pixels within a mean window.
The scaler only scales up the image for now.
This patch series is based on media/master and it is available at:
https://github.com/helen-fornazier/opw-staging/tree/z/sent/vimc/vpu/v5
In this version the errors shown by the
-by: Helen Koike
---
Changes in v2::
- replace the type by capability
- erase V4L2_INPUT_TYPE_DEFAULT
- also consider output
- plug helpers in the ops automatically so drivers doesn't need
to set it by hand
- update docs
- commit messag
Initialize the test pattern generator on the sensor
Generate a colored bar image instead of a grey one
Signed-off-by: Helen Koike
---
Changes in v4: None
Changes in v3:
[media] vimc: sen: Integrate the tpg on the sensor
- Declare frame_size as a local variable
- Set tpg frame
Remove helper functions from vimc-core and add it in vimc-common to
clean up the core.
Signed-off-by: Helen Koike
---
Changes in v4: None
Changes in v3:
[media] vimc: Move common code from the core
- This is a new patch in the series
Changes in v2: None
---
drivers/media/platform
As all the subdevices in the topology will be initialized in the same
way, to avoid code repetition the vimc_ent_sd_{register, unregister}
helper functions were created
Signed-off-by: Helen Koike
---
Changes in v4: None
Changes in v3:
[media] vimc: common: Add vimc_ent_sd_* helper
Move the vimc_cap_pipeline_s_stream from the vimc-cap.c to vimc-common.c
as this core will be reused by other subdevices to activate the stream
in their directly connected nodes
Signed-off-by: Helen Koike
---
Changes in v4: None
Changes in v3:
[media] vimc: Add vimc_pipeline_s_stream in the
All links will be checked in the same way. Adding a helper function for
that
Signed-off-by: Helen Koike
---
Changes in v4:
[media] vimc: common: Add vimc_link_validate
- remove vimc_fmt_pix_to_mbus(), replaced by
v4l2_fill_mbus_format()
- remove EXPORT_SYMBOL
Implement the debayer filter and integrate it with the core
Signed-off-by: Helen Koike
---
Changes in v4:
[media] vimc: deb: Add debayer filter
- Rebase without [media] vimc: Optimize frame generation through
pipe
- use vimc_colorimetry_clamp
- replace
1 - 100 of 204 matches
Mail list logo