On Monday 26 July 2010 18:12:55 Laurent Pinchart wrote:
> On Friday 23 July 2010 17:56:02 Karicheri, Muralidharan wrote:
> > Laurent,
> >
> > Could you explain the probe and active usage using an example such as
> > below?
> >
> > Link1 Link2
> > input sensor -> ccdc -> video node.
> >
> > Assume Link2 we can have either format 1 or format 2 for capture.
>
> Sure.
>
> The probe and active formats are used to probe supported formats and
> getting/setting active formats.
Just to verify: we are dealing with mediabus formats here, right?
One thing that I don't like is the name 'probe'. I would prefer the name
'proposed'. You propose an input format and based on that you can enumerate
a list of proposed output format. I think that name fits better than 'probe'
which I find confusing in this context.
>
> * Enumerating supported formats on the CCDC input and output would be done
> with the following calls
>
> ENUM_FMT(CCDC input pad)
>
> for the input, and
>
> S_FMT(PROBE, CCDC input pad, format)
> ENUM_FMT(CCDC output pad)
>
> for the output.
How does ENUM_FMT know if it has to use the proposed or actual input formats?
Or is it supposed to always act on proposed formats?
>
> Setting the probe format on the input pad is required, as the format on an
> output pad usually depends on the format on input pads.
>
> * Trying a format on the CCDC input and output would be done with
>
> S_FMT(PROBE, CCDC input pad, format)
>
> for the input, and
>
> S_FMT(PROBE, CCDC input pad, format)
> S_FMT(PROBE, CCDC output pad, format)
>
> on the output. The S_FMT call will mangle the format given format if it can't
> be supported exactly, so there's no need to call G_FMT after S_FMT (a G_FMT
> call following a S_FMT call will return the same format as the S_FMT call).
>
> * Setting the active format is done with
>
> S_FMT(ACTIVE, CCDC input pad, format)
> S_FMT(ACTIVE, CCDC output pad, format)
>
> The formats will be applied to the hardware (possibly with a delay, drivers
> can delay register writes until STREAMON for instance).
>
> Probe formats are stored in the subdev file handles, so two applications
> trying formats at the same time will not interfere with each other. Active
> formats are stored in the device structure, so modifications done by an
> application are visible to other applications.
>
> Hope this helps clarifying the API.
You know that I have never been happy with this approach, but I also have to
admit that I haven't found a better way of doing it.
Regards,
Hans
--
Hans Verkuil - video4linux developer - sponsored by TANDBERG, part of Cisco
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html