#v4l 2017-10-11,Wed

↑back Search ←Prev date Next date→ Show only urls(Click on time to select a line by its url)

WhoWhatWhen
gnurouhverkuil: would you be opposed to a slight refactoring of the way controls are applied in v4l2-ctrls.c?
hverkuil: namely, it would make my life easier if I could reorder try_set_ext_ctrls() to first set all the new values, before looping and calling try_or_set_cluster() for each master control
right now both are done in the same loop, and this prevents me from reusing that part of the code when applying controls for the jobs API
(i.e. I am finally trying to do controls the right way :))
[06:48]
hverkuilgnurou: what exactly do you mean with 'set all the new values'? [06:55]
gnurouhverkuil: set all p_new in a first loop
basically, when starting a job I would have the job framework set all the p_new values for changing controls, then calling into the control framework to validate and set these values
or to generalize the idea more, try_set_ext_ctrls() expects user-space parameters (v4l2_ext_controls), and I would like a variant that also works for values contained inside the kernel (v4l2_ctrl_ptrs stored in jobs)
[06:56]
hverkuilThere are two parts here. The first is that when userspace tries to set controls for a job then try_set_ext_ctrls() needs to be called to verify (i.e. 'try') the given controls. You still need to call try_or_set_cluster() since that calls the try_ctrl op (if available). [07:04]
gnurouyep, that part is ok I think
but then there is the second part, where you try to actually apply the job's parameters because it has been scheduled to run
[07:05]
hverkuilIn the old request API that chromeos is using (or in this patch in my old requests2 branch: https://git.linuxtv.org/hverkuil/media_tree.git/commit/?h=requests2&id=7e3ee57dad05bc32b16a60a4d76c33057c68486e) the try_or_set_cluster() function is modified to check if it is for a request, then return without calling the s_ctrl op. [07:06]
gnuroucontrols have been stored as v4l2_ctrl_ptrs inside the job, and I think it would make sense to re-validate the controls at that time too, so I would like to use the same code path [07:06]
hverkuilTo actually set the controls I created a new v4l2_ctrl_apply_request() function that does that: https://git.linuxtv.org/hverkuil/media_tree.git/commit/?h=requests2&id=91f63b20568d12a2a45ffed8092d05749ef3a197 [07:07]
gnurouexcept this time, the controls are not provided as v4l2_ext_controls (and cannot be, since v4l2_ext_controls are excepted to be backed by user-space memory) [07:07]
hverkuilI think the same thing should be done for jobs. [07:08]
gnurouok, let me look again at that code first, maybe a solution will pop-up :) [07:08]
hverkuilThe problem is that refactoring as you propose will change the error handling in subtle ways: when trying an array of controls the ioctl should fail for the first control in the array that is invalid (either because of basic checks or because of the try_ctrl op returning an error).
By splitting this up into effectively doing the basic checks (validate_new) first, and only later the try_ctrl op the behavior will change.
When applying controls for a job the code will be much simpler though. You already have the v4l2_ctrl pointers, and they are already validated with validate_new, so no need to do that again.
[07:10]
It's going to be tricky, it all depends on how you store the controls and their new values in the job.
In my original request API patch the new request values are stored as part of the control as a list of v4l2_ctrl_req structs:
+struct v4l2_ctrl_req {
+ struct list_head node;
+ u32 request;
+ union v4l2_ctrl_ptr ptr;
+};
The ptr field was a pointer to the new value.
This probably won't work for the jobs API where you probably want to store the ctrl + new value in a jobs-specific struct.
You'd need to store the v4l2_ctrl pointer + the union v4l2_ctrl_ptr.
Feel free to ask me questions or mail me patches. It's not easy, mainly due to the subtleties of control clusters.
I have to go to the office, I should be back here in 30-40 minutes.
[07:18]
gnurouhverkuil: thanks, I think I can figure something out based on your code
indeed, here controls are stored inside the job structure, and I would like to keep this separate of the control framework as much as possible
this should be doable though, the challenge is getting a clear understanding of how controls are applied :)
[07:34]
..... (idle for 24mn)
hverkuilgnurou: I was wondering: do you really need to keep the job and control framework separate? I am asking because the existing request API control code does almost everything you need. The only thing you need to keep in the job data structure is a pointer to the control handler(s) that have job-specific controls that need to be applied.
The advantage is that the control code has already proven itself in practice.
In other words, you'll still be using that code to store the per-job control data.
[07:59]
gnurouwell keeping them as separate as possible seems to be a better design, if we can reuse the control framework code
but if that turns out to be impractical, I will of course switch to the reasonable solution :)
[08:01]
hverkuilJust keep it in mind. [08:02]
gnurouhverkuil: just a question: it seems to me that v4l2_ctrl_helper::next could be omitted if we loop on the master's control cluster instead, is that correct? I think I am missing something here
or maybe v4l2_ctrl_helper::next is better here since it will only contain the controls that we actually change?
s/contain/list
[08:06]
......... (idle for 40mn)
hverkuil: ok, I think I have something basic working here. Probably not perfect but much better than my initial dirty hack
I just need to export try_or_set_cluster since it needs to be called from the generic jobs state handler
would have preferred to enter the control framework at a higher level, but that will do
[08:47]
hverkuilThe 'next' index is there to easily find all the controls in the array that belong to the same cluster. So when you need to try/set the controls of a cluster you can just follow the 'next' index into the array to locate them. The next field is there to make this efficient. [08:56]
....... (idle for 34mn)
pinchartlpinchartl just noticed that you have been discussing the request API
gnurou: I'll have lots of comments about your patches
and you won't like my comments :-(
(but that's fair, as I don't like the patches either ;-))
[09:30]
gnuroupinchartl: please focus on the general structure & API, I know the implementation of controls is crap
doing it hopefully properly now
[09:31]
pinchartlyes, it's the API I'm concerned about, the implementation is a second step [09:34]
gnurouhappy to hear your comments then [09:34]
pinchartlI think we'll discuss that in Prague [09:35]
gnurouguess I will need to bring some ukon no chikara... >_< [09:36]
pinchartllots of it :-)
when will you arrive by the way ?
[09:37]
gnurouwednesday evening it seems [09:40]
pinchartlI'm tempted to fetch you from the airport and discuss the API on the way to the hotel, just to punish you :-D [09:42]
gnuroutempting!
do you have a car there?
[09:43]
pinchartlno I don't
if we come back by taxi we'll need at least two of them, as I don't expect any taxi driver to withstand a whole ride full of request API discussions
[09:46]
gnurous/request/jobs :P [09:49]
pinchartls/jobs/request/ :-)
well, names don't matter much
[09:52]
gnurouif possible, please try to send me an overview of your concerns before Prague though, so we can enter the discussion with some background [09:57]
pinchartlok, I think I should be able to [10:00]
gnurouwill help, thanks!
which day will you arrive btw?
[10:01]
pinchartlSaturday, and I'll leave on the next Sunday
when will you leave ?
[10:03]
gnurousaturday, it will be a short trip [10:08]
pinchartl:-S [10:08]
***prabhakarlad has left [10:19]
......... (idle for 41mn)
sailusHello! [11:00]
hverkuilHei!
(or should I use the dutch 'Hallo
:-)
[11:00]
mchehabhi [11:00]
pinchartlhello [11:01]
sailusGood, we're all here!
So, I wanted to have this meeting to discuss two matters.
[11:01]
pinchartlpinchartl is still reviewing the glossary patch, I'll send the review as soon as it's complete, later today [11:02]
sailus1) What do we call the device consisting of multiple pieces of the hardware, which can be accessed using the media device node (on drivers that support MC).
2) Should a V4L2 sub-device node be considered a "V4L2 device node" or not? From the point of view that V4L2 sub-devices *are* exposed by V4L2 sub-device drivers and seemingly, from user space, don't look that much different, yes, but we've always documented it somewhat differently. The sub-device nodes also don't implement many IOCTLs that all other node types do.
But. Let's go to the first item first.
[11:02]
mchehabok [11:04]
sailusWe haven't had a name for such a device and I understand the need for that became apparent. [11:04]
pinchartlsailus: one question first
when you say "the device consisting of multiple pieces of the hardware"
are you looking for a name to describe the hardware, or a name to describe the software model of that hardware ?
[11:04]
sailusThe hardware. [11:05]
mchehabthat's the proposal for it:
+ Media hardware
+ A group of hardware components that together form the
+ functional media hardware. For instance the :term:`SoC`
+ :term:`ISP` :term:`IP cores <ip core>` and external camera
+ sensors together form the camera media hardware.
we also have:
+ V4L2 hardware
+ Hardware that is controlled by a :term:`V4L2 main driver` or a
+ :term:`V4L2 sub-device driver`. V4L2 hardware is a subset of the
+ :term:`media hardware`. Often the two are the same, but
+ :term:`media hardware` can also contain other non-V4L2 hardware
+ such as Digital TV hardware.
(that's glossary v8)
in other words, if it includes DVB, ALSA, RC, etc, it is "media hardware"
if it is just the stuff seen by V4L2 core, "V4L2 hardware"
[11:06]
sailusMy issue with the current proposal is that hardware is a substance such as milk: you can't say "a hardware". Therefore media hardware or V4L2 hardware are bound to be somewhat vague, at least.
I proposed "aggregate device", i.e. media aggregate device and V4L2 aggregate device, but we haven't used such a term in the past.
[11:07]
pinchartlI'm not fond of the word "device" [11:08]
sailusI'd be happy to hear better proposals though. Or opinions on what's been discussed so far. [11:08]
pinchartlit's one of the most confusing ones [11:08]
sailusYes, but it is still "a device", isn't it? [11:09]
pinchartl"aggregate device" is bound to be abbreviated "device" in discussions, creating confusion [11:09]
sailusWell, if we can have a good name that doesn't contain "device" I'm totally fine with it. [11:09]
hverkuilI would argue that it is vague intentionally: engineers are endlessly inventive and I think "media hardware" and "V4L2 hardware" (being the part of the media hardware controlled by V4L2 drivers/interfaces) is the right level of abstraction. [11:09]
pinchartlit's still a "device" the same way it is a "thing", yet you won't call it a "media thing" or "aggregate thing" :-) [11:09]
sailuspinchartl: That's what always happens when you have a kind of devices. :-)
Device nodes, for instance.
[11:09]
mchehabi like the term hardware too [11:10]
pinchartlI could go with "media hardware device"
if we then enformed a standard abbreviation for hardware device
my point is basically that I don't want to see "device" used standalone
for device nodes, we use devnode
[11:10]
hverkuilpinchartl: +1 [11:11]
pinchartlthat's the de facto standard abbreviation [11:11]
mchehabworks for me [11:11]
pinchartleverybody understands it [11:11]
sailusWorks for me. [11:11]
mchehaboh, that was quick! [11:11]
hverkuilpinchartl: how is "hardware device" better than just plain "hardware"? [11:11]
sailusGood! We're done here then. :-) [11:11]
pinchartland it's short enough to avoid the use of "device" alone [11:11]
sailushverkuil: Hardware is a substance, device is a object. [11:11]
pinchartl"hardware device" could be similarly abbreviated to "hwdev" [11:12]
mchehabpeople will still call it device :-) [11:12]
sailus:-D [11:12]
pinchartlhwdev is short enough that we can push people to use that [11:12]
mchehabok [11:12]
pinchartlit's shorter than device :-)
of course I'm not saying that we need to use an abbreviation
but if in practice we realize that "hardware device" is too long for people to write
[11:12]
mchehabwell, it doesn't hurt adding it to the glossary [11:12]
pinchartlwe'll have hwdev that is unambiguous [11:12]
sailuspinchartl: Will that encompass the fact that the device consists of multiple physical devices? So that sub-devices won't be confused with "media hardware device"? [11:13]
pinchartlthat's a good point [11:13]
mchehabsailus: just using hardware is better [11:14]
pinchartlwe don't have "hardware device" in the glossary at the moment [11:14]
sailusI'm not proposing "media hardware aggregate device". :-) [11:14]
pinchartlwe have "hardware component" [11:14]
mchehabyeah, the glossary makes clear that "hardware component" is a subdevice and "media hardware" is the hole thing [11:14]
hverkuilSorry, I'm not sure "media hardware device" is a good name. A device can contain media hardware, yes, but also other things. [11:14]
sailusSo... device (or hardware) is a collection of components? That sounds a bit like redefining existing terms. [11:15]
pinchartlhverkuil: as Sakari said, hardware in uncountable, you can't say "a media hardware" to describe one instance [11:15]
mchehab+ Hardware component
+ A subset of the :term:`media hardware`. For example an :term:`I²C`
+ or :term:`SPI` device, or an :term:`IP block` inside an
+ :term:`SoC` or :term:`FPGA`.
[11:15]
sailusWhat do you think of "media aggregate device"? [11:15]
mchehabI don't like it [11:16]
sailusAre there other objections than we haven't used the word "aggregate" previously? [11:16]
mchehabI could live it that, though [11:16]
pinchartlsailus: that's an intirely new term that is long to type and doesn't have a good abbreviation
it's bound to become "device" in discussions
[11:16]
sailusWhat we need here is a formal name to describe it when needed. [11:17]
pinchartlyes, but a name that isn't too difficult to use
otherwise nobody will use it
[11:17]
mchehabI still thing that media hardware/v4l2 hardware is OK [11:17]
hverkuilWhat's wrong with saying: "my devkit has media hardware" (meaning an SoC with an ISP. DMA engines, sensors) [11:17]
mchehabs/thing/think/ [11:17]
sailusThe fact we haven't had a term so far and are now coming up with one means that there's not an active need for it. [11:17]
pinchartlsailus: I disagree, it means that we've had lots of confusing discussions before :-) [11:18]
sailusWhat if we drop "device" from "media aggregate device"? [11:19]
pinchartl("aggregate device" seems to be used to describe aggregate audio outputs on macosx :-)) [11:19]
sailusIt becomes "media aggregate". [11:19]
mchehabI doubt anyone would ever use it
in practice
it is just too weird on my ears
[11:19]
pinchartlsailus: aggregate is an adjective in this case, you can't use it alone
although in the geological sense it's a noun
[11:20]
mchehabaggregate reminds the time I worked with telecommunications... it actually means part of a data stream [11:20]
sailuspinchartl: From WordNet: "a sum total of many heterogenous things taken together".
It's a noun as well.
[11:20]
pinchartlanother option: we could use the word peripheral instead of device. "media peripheral"
(I'm not very fond of that, but I could probably live with it)
[11:21]
hverkuilI also think 'aggregate' is too obscure. Just the fact that we're now looking it up in a dictionary really says it all :-) [11:21]
pinchartl(just brainstorming) [11:21]
mchehabpinchartl: it used to be peripheral... people argued against it at the ML
(don't remember the exact comments)
[11:21]
pinchartlI hope I wasn't the one arguing against it :) [11:22]
sailusA peripheral is still just a... device.
I guess I was. :-)
[11:22]
mchehabah, I remember... people was thinking on printers and mice with this term [11:22]
pinchartlsailus: yes, but it's not commonly used for lots of different meanings [11:22]
hverkuilA 'media peripheral' is a webcam, printer, etc. [11:22]
mchehabargued that a SoC ISP is not a peripheral [11:22]
sailuspinchartl: How do you feel about "V4L2 hardware" and "Media hardware"? [11:23]
pinchartlhverkuil: webcam is great, that's part of what we want to describe :) [11:23]
sailusMy dislike comes from the fact that this is improper use of the word hardware. [11:23]
mchehab????
please ellaborate
[11:23]
pinchartlhverkuil: and if you're concerned about printers (or even disks) then we should s/media/multimedia/ everywhere. that would likely be more correct, but would also be painful [11:23]
mchehabwhat's improper? [11:23]
sailusIt's a substance, such as milk. [11:24]
mchehabso?
it is an incontable
noun
[11:24]
pinchartlmchehab: it's uncountable [11:24]
mchehabbut that's exactly what it is: [11:24]
sailusYou can't add an article to that. [11:24]
pinchartlyou can say "two media hardware devices"
you can't say "two media hardwares"
[11:24]
mchehabsomething that can be split or merged [11:25]
pinchartltwo webcams, two media hardware devices, two media hardware
the latter is incorrect
[11:25]
mchehabif we ever need to count it, we can just add "device" at the end
two media hardware devices
[11:25]
pinchartlthen we should use "media hardware device" in singular form too :-) [11:26]
hverkuilRight. A media device has media hardware. [11:26]
sailusWhich we discussed already: can that be confused with what is a sub-device?
From the term alone nothing suggests it may not be a sub-device.
[11:26]
mchehabthere aren't many places (if any) where we need to distinguish, at uAPI or kAPI if we have one or multiple media hardware devices [11:26]
sailusI'd have to look up the definition, and I bet a lot of people won't. [11:26]
hverkuilsailus: Which term are you referring to? "media device" or "media hardware"? [11:26]
sailus"Media hardware device". [11:27]
pinchartl(the English language also has the term "equipment", but that doesn't sound much better) [11:27]
sailusMedia, hardware and device are all very generic terms. [11:27]
mchehabpinchartl: an ISP IP block inside a SoC is not an equipment [11:27]
hverkuil"media hardware" is defined as a collection of hardware components. So I don't think there can be confused with a sub-device. [11:28]
pinchartlmchehab: an ISP isn't a "media hardware device". the camera made by combining the ISP and the sensor is [11:28]
mchehabit is not even a "device" from hardware PoV [11:28]
sailus"Media agglomerate device"? [11:28]
mchehabit is parto of "media hardware" [11:28]
hverkuilbut an ISP is part of "media hardware". [11:28]
sailusI think I prefer "media aggregate device" to that. :-) [11:29]
mchehabsailus: if you add "device", you excluse ISP
s/excluse/exclude/
[11:29]
pinchartlsailus: I agree with you that aggregate is probably the right term to describe this, but it will be hard to use :-/ [11:29]
sailusmchehab: Why?
It's a device, too.
An IP block can be a device, can't it?
[11:29]
mchehaba device implies that it is something physically distinct [11:29]
sailusWell, it is, just in a silicon. :-) [11:30]
mchehabhttps://en.oxforddictionaries.com/definition/device
piece of mechanical or electronic equipment.
[11:30]
pinchartldevice: "Any piece of equipment made for a particular purpose, especially a mechanical or electrical one."
or "(Ireland) An improvised explosive device, home-made bomb" :-)
[11:30]
sailusX-) [11:30]
pinchartlmedia bomb :-) [11:30]
sailusA home-made ISP? [11:31]
hverkuilI agree with mchehab: I wouldn't call an IP block a "device". The SoC is a device, though. [11:31]
sailushverkuil: Linux views this in a different way. [11:31]
mchehabyes, the SoC, as a hole, is a device [11:31]
BanHammora device is a node in /dev/, y'all :P [11:31]
sailusWe can't redefine terms that have established meanings. [11:31]
mchehablinux device is software - let's not mix with hw [11:31]
sailusWell, in Linux in particular. [11:31]
pinchartlhverkuil: from the point of view of the Linux driver model, an ISP is a device (or sometimes a collection of devices) [11:31]
sailusstruct device is (may be) a software representation of hardware. [11:32]
hverkuilpinchartl: yes, software wise (in the linux kernel) you are correct. But we're talking about describing hardware. [11:32]
mchehablet's call it "struct device" to avoid mixing it with "hardware device" [11:32]
hverkuilit's why the term "device" is so confusing and overloaded. [11:32]
mchehabstruct device is just an abstraction to represent something managed by a linux driver [11:33]
pinchartlhverkuil: as we're writing a glossary that will be part of the kernel, I think we can assume that the word "device" alone will be understood by most in the Linux software sense. I don't want to redefine that [11:33]
mchehabit can even be virtual
with no actual hardware attached to it
[11:33]
pinchartlso for the hardware we need to either qualify it ("hardware device") [11:33]
sailus"Media device group"? [11:33]
pinchartlor not use "device" at all [11:33]
sailus"Media device ensemble"? [11:33]
hverkuil"Media hardware group"? [11:33]
sailushverkuil: I like that. [11:34]
mchehabIMHO, just media hardware is enough [11:34]
pinchartl(another word to throw in the brainstorm: unit) [11:34]
sailuspinchartl: Unit is too close to being a device IMO. [11:34]
pinchartlmchehab: but hardware is uncountable :-( [11:34]
mchehabso what?
where, at the API, is it relevant?
[11:34]
pinchartlsailus: it's another word, and has less of a pre-established meaning in the kernel. it might not be a good one, but I thought about it [11:35]
mchehabare there any place at API where you need to count the media hardware devices? [11:35]
pinchartlmchehab: you often have to say "a media hardware device"
you can't say "a media hardware"
[11:35]
sailusmchehab: It's not just that it's uncountable, if you refer to media hardware you refer to all media hardware, whether it's a related group of devices or not. [11:36]
mchehabwhere does it need to say "a media hardware device"?
I don't recall any place there where such distinguish is needed
[11:36]
sailusIf there's just a single "aggregate device" in a system, you're fine, otherwise not. [11:36]
mchehabfrom both V4L2 uAPI and kAPI PoV, it doesn't matter if you have a single media hardware device or multiple ones [11:37]
sailuspinchartl, mchehab: How do you like hverkuil's proposal "media hardware group"? [11:37]
hverkuilPerhaps have two terms in the glossary? One for "media hardware" using the current description, one for "media hardware device" which is defined as a device containing media hardware? [11:37]
mchehabhverkuil: I'm OK with that
sailus: I don't see the need of "group"
[11:37]
pinchartlsailus: I think I'd prefer aggregate device in that case [11:38]
sailusIt makes it countable and bounded. [11:38]
mchehabthe thing is: for the API spec, it doesn't matter how many media devices are present [11:38]
sailusJust as adding "device", but includes the suggestion it does not consist of a single piece of hardware. [11:38]
mchehabon our discussions, we may need to refer to the case where multiple hw devices are present... [11:39]
pinchartlmchehab: from the API point of view you need to be able to tell them apart. there will be one media devnode per media hardware device for instance [11:39]
mchehabfor such usage, we can live very well with either "hw device" or "media device" or "media hw device" [11:39]
sailus"Media hardware bunch"? [11:40]
pinchartlso we need a name that can be instantiated. it needs to be countable [11:40]
mchehabpinchartl: no! [11:40]
pinchartlno to what ? [11:40]
mchehabpinchartl: the V4L2 API provide multiple devnodes per a single media hardware device
there are even multiple devnodes for a single DMA engine there
[11:40]
pinchartlmchehab: I meant one MC devnode :-)
(this is really why a glossary is important...)
[11:41]
mchehabok, first of all, this glossary is only at the V4L2 spec
it doesn't apply to MC (nor DVB, RC, CEC)
[11:41]
sailus"Media hardware set"? [11:42]
mchehabsecond, for MC, we can use "media hardware device" [11:42]
sailus"Media hardware... herd"? [11:42]
hverkuilAgain: is there any reason why we can't have two terms: "media hardware" and "media hardware device" in the glossary? I'm fine with that. [11:42]
pinchartlmchehab: I don't think we should use one term in MC and another term in V4L2 to refer to the same physical concept, that would be quite confusing [11:42]
sailushverkuil: Why would we need two terms? [11:43]
mchehabtrue, but it is out of the escope to extend the glossary to apply to the hole media documentation [11:43]
sailusDo you anticipate people using "media hardware device", rather than just e.g. media device? [11:43]
pinchartlmchehab: sure [11:43]
hverkuilhole -> whole :-) [11:43]
sailusThere's a lack of clear distinction. [11:43]
mchehab:-) [11:43]
pinchartlhverkuil: "media hardware" really means all the media-related hardware present in the system [11:43]
mchehabpinchartl: for the API PoV, such definition is fine
only MC requires to distinguish
[11:44]
pinchartlmchehab: I don't think so :-) if you have two PCI capture cards, you want to refer to them separately [11:44]
mchehabas we have one /dev/mediaX per media hardware device [11:44]
pinchartltrying to provide a summary of my current opinions: [11:45]
mchehabso, adding "media hardware device" to the glossary should meet the goal [11:45]
pinchartl- "media hardware aggregate" is the most precise term I've seen so far [11:45]
mchehabpinchartl: Hauppauge has some devices that have two PCI cards bundled into one [11:45]
pinchartlbut it's also not commonly used
(mchehab: I was talking about the general case, there can of course be exceptions)
[11:45]
mchehabfrom kernel and userspace PoV, it doesn't matter if you buy two HVR-150 or one HVR-500
they'll look the same
[11:46]
hverkuilother synonyms: grouping, constellation, assembly (or is that assemblage?) [11:46]
pinchartl- "media aggregate device" retains the important information that it is an aggregate but lacks the hardware part (which could be fine, as this is a new term, we can define its meaning)
- "media hardware device" lacks the aggregate part, but we could also decide that we define its meaning. on the plus side it has an easy abbreviation
[11:46]
mchehabagain, if one needs to distinguish between two HVR-150 or one HVR-500, it could be said "two media hardware HVR-150 devices" or "one media hardware HVR-500 device" [11:47]
pinchartl- "media hardware" is uncountable, I don't like that [11:47]
sailuspinchartl: The downside with "media hardware device" is that there's no clear suggestion it may not refer to a sub-device alone. [11:47]
pinchartlsailus: that too, yes. but again, as it's a new term, we can define it [11:48]
sailusYes, we'll be fine, but we're steepening the learning curve. [11:48]
hverkuilsailus: that's why we have a glossary, to define such things. [11:48]
pinchartl- "media hardware aggregate" is quite annoying to use, but on the plus side, as it doesn't contain the word "device", it won't be abbreviated to "device", so there should less risks of confusion and misuse [11:48]
sailusThe terms should be easy to remember, consistent and in best case self-explanatory. [11:48]
pinchartlbut to play the devil's advocate, "media hardware aggregate" is any assembly of hardware, even if it doesn't provide the complete user-oriented functionality
for instance
if you have a sensor, an ISP and a USB bridge
the combination of the three is what we want to define
but sensor + ISP or ISP + bridge would also be an aggregate
[11:49]
hverkuilhttp://www.dictionary.com/browse/grouping [11:50]
pinchartlaggregate carries the meaning that there are multiple components, but not that they're all there [11:50]
mchehabas I said before, in telco, "aggregate" is a component of something bigger [11:50]
sailuspinchartl: Of course you could pick a set of devices that are not related, and call it an aggregate. But that'd be a bit of misuse of the term.
The only real possible confusion with "aggregate" I can think of comes from this:
[11:50]
pinchartlmchehab: "A mass, assemblage, or sum of particulars; something consisting of elements but considered as a whole." [11:51]
sailushttps://fi.wikipedia.org/wiki/Aggregaatti [11:51]
pinchartl(https://en.wiktionary.org/wiki/aggregate#English) [11:51]
mchehabhttps://www.juniper.net/documentation/en_US/junos/topics/reference/configuration-statement/aggregate-edit-interfaces-sonet-options.html [11:51]
hverkuil"media hardware grouping". Hmm, still not great. [11:51]
sailushverkuil: I prefer group over grouping, if it's between the two. [11:51]
hverkuilsailus: me too [11:51]
pinchartlsailus: I wonder what the etymology of that Finnish word is :) [11:52]
sailusI like pinchartl's proposal of "media hardware aggregate" as well. [11:52]
pinchartl(other words: cluster, collection) [11:52]
sailusYou see the word "group" being used in many other languages. [11:53]
pinchartlmchehab: aggregate interfaces have a meaning in networking, yes [11:53]
mchehabI won't doubt that "aggregate" could be used on DVB hierarchic transmissions with a similar meaning that it is for SDH [11:53]
pinchartlmchehab: not "media hardware aggregate" though :-) [11:53]
mchehabpinchartl: aggregate is a logical container
on some hierarchical transmissions
[11:54]
pinchartlaggregate is an ensemble [11:54]
hverkuilHmm: interesting synonym: media hardware ensemble
:-)
[11:54]
pinchartlnow we're getting in the music field, which is somehow related :-) [11:54]
sailushverkuil: That sounds very musical to me. :-)
"Media hardware herd".
[11:54]
hverkuil(warning: I have a meeting in 5 minutes) [11:55]
sailusThere can be many different species in the herd, such as cameras and ISPs.
You can also have two herds in the system.
[11:55]
pinchartleither there's no good term for this in English, or we're missing something very obvious. I can't tell :-/ [11:55]
sailusHmm. The more I use it, the more I like it.
pinchartl: I'd say that there's no common need to refer such groupings of hardware devices.
That's why it has no established name.
[11:55]
hverkuilThe two realistic options I've seen are: media hardware device or media hardware aggregate. [11:56]
mchehabI still think that, if we use group/ensemble/aggregate/herd/... it won't be representing what we want [11:56]
hverkuilI lean towards the first, but will be OK with the second. [11:56]
sailusFrom the two, I prefer "media hardware aggregate". [11:56]
pinchartlhverkuil: those are my two favourite ones. the former only provided that we enforce the hwdev abbreviation is someone tries to call it dev [11:57]
mchehabas one could understand a "media hardware heird/group/ensemble/aggregate" as group of PCI devices... [11:57]
hverkuilI think sailus is right: there is no real term for this. I've used 'constellation' in the past in V4L2 presentations. [11:57]
pH5how about 'complex' [11:57]
hverkuil"media hardware complex". Not bad. [11:58]
sailuspH5: Works for me. [11:58]
pinchartlpH5: that's an adjective too :-/ [11:58]
mchehabthe only term that really defines a single PCI device would be to use the word "device" :=) [11:58]
pinchartl(actually it can be a noun, indeed) [11:58]
sailuspinchartl: Complex is a noun, too.
Will it be "media hardware aggregate" or "media hardware complex"?
[11:58]
mchehabusing any other word different than "device" when we need to count media hardware pieces will cause confusion [11:59]
pinchartlmchehab: that's why we need to define the term, yes
"media hardware complex" isn't bad either I think
but maybe I only like it because it's new and we've been discussing this for an hour already :-)
[11:59]
mchehabit isn't bad, but it is worse than "media hardware device" [12:00]
pinchartlHans has a meeting now, should we use that time to let "media hardware complex" sink in our brains ?
mchehab: you could call it media hardware device complex is you insist :-)
[12:00]
sailusSounds like a good idea.
=> Sinking, that is.
[12:00]
mchehabsinging :-p [12:01]
sailusI wouldn't object singing either though. [12:01]
pH5yeah, sorry for jumping in with a new suggestion at the very end, I just read the backlog :) [12:01]
sailuspH5: New suggestions are always good. :-)
Especially before decisions.
Hans said his meeting will take an hour and I'll need to leave soon after he'll be back.
[12:01]
pinchartlpH5: that's what brainstorming is about [12:02]
sailusHow about continuing in Friday?
Before or after the weekly meeting.
We can decide that today.
I prefer before, I'll also need to leave the office soon after the weekly meeting on Friday.
[12:02]
mchehabworks for me [12:03]
pinchartlworks for me too [12:04]
sailusI.e. same time than today, but on Friday. [12:05]
.... (idle for 17mn)
hverkuilIt should be OK on Friday.
I rather like "complex" as it also has the connotation of the constituent parts being connected (as in a "building complex").
"an intricate or complicated association or assemblage of related things, parts, units, etc."
[12:22]
snawrockilet me throw these in: "media composite device", "media hardware subsystem", "media compound device" [12:36]
sailussnawrocki: Thanks, good suggestions! [12:47]
BanHammorthe docs are a little unclear on this: what is the difference between calling VIDIOC_REQBUFS with count=0 and calling VIDIOC_STREAMOFF?
both seem to free all buffers, both call the stop_streaming op.
[12:47]
sailusVIDIOC_STREAMOFF does not release buffers, just stops streaming.
It might have done that with videobuf1 though.
REQBUFS with count=0 releases the buffers.
[12:50]
BanHammorah i see
i was confused by "all images captured but not dequeued yet will be lost, likewise all images enqueued for output but not transmitted yet"
[12:51]
sailusYes, the buffers are dequeued and shall have the V4L2_BUF_FLAG_ERROR flag set.
But not released.
[12:53]
BanHammorso how does one reset that flag?
(oh i guess you just overwrite it in userspace when you pass struct v4l2_buffer)
thanks!
[12:58]
sailusThe flag is just informational to the user space AFAIR.
No need to clean it explicitly before requeuing the buffer.
That's at least as far as I remember.
[13:01]
pinchartlsnawrocki: thanks. I like composite and compound too. less fan of subsystem personally as it has an established meaning in the kernel [13:10]
sailusI put the suggestions to Etherpad here:
http://muistio.tieke.fi
The pad name is media-device-naming
[13:10]
............................... (idle for 2h30mn)
***benjiG has left [15:40]

↑back Search ←Prev date Next date→ Show only urls(Click on time to select a line by its url)