Testing Video4Linux Applications and Drivers

Video in TIB AV-Portal: Testing Video4Linux Applications and Drivers

Formal Metadata

Testing Video4Linux Applications and Drivers
Alternative Title
Graphics - Video4Linux Testing
Title of Series
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date
Production Year

Content Metadata

Subject Area
Weight Multiplication sign Repetition Device driver Cartesian coordinate system Replication (computing) Device driver Videoconferencing Software testing Software testing Complex system Right angle Extension (kinesiology)
Point (geometry) Addition Patch (Unix) Interactive television Core dump Bit Device driver Cartesian coordinate system Replication (computing) Rule of inference Field (computer science) Device driver Logic Device driver Ideal (ethics) Website Software testing Software framework Software testing Data structure Quicksort Traffic reporting Utility software
Email Overlay-Netz State diagram Scaling (geometry) Covering space Demo (music) Source code Inertialsystem Price index Perspective (visual) Computer configuration Hypermedia Kernel (computing) Repository (publishing) Videoconferencing System identification Error message Physical system Exception handling Computer font Link (knot theory) Software developer GUI widget Parameter (computer programming) Bit Motion capture Digital signal Control flow Orbit Digital photography Message passing Process (computing) System programming Software framework Thumbnail Pattern language Simulation Curve fitting Computer file Maxima and minima Student's t-test Number Frequency Latent heat Goodness of fit Computer hardware Selectivity (electronic) Configuration space Contrast (vision) Form (programming) Default (computer science) Information management Distribution (mathematics) Information Demo (music) Tape drive Physical law Core dump Line (geometry) Cartesian coordinate system Mathematics Moment of inertia Error message Function (mathematics) Spherical cap Bloch wave Device driver Revision control Library (computing) Webcam Standard deviation Greatest element Fibonacci number Hecke operator Multiplication sign Strut 1 (number) Function (mathematics) Mereology Total S.A. Airfoil Leak Web 2.0 Graphical user interface Synchronization Query language Flag Software framework Information Data conversion Extension (kinesiology) Pressure Chi-squared distribution Overlay-Netz File format Closed set Moment (mathematics) Ext functor Menu (computing) Streaming media Student's t-test Flow separation Type theory Fluid Computer configuration Vector space output Configuration space Software testing Convex hull Hill differential equation Right angle Block (periodic table) Data buffer Laptop Dataflow Trail Game controller Numerical digit Tesselation Content (media) Plastikkarte Equivalence relation Mortality rate Mach's principle Device driver Causality Ideal (ethics) Software testing output Arithmetic logic unit Summierbarkeit Message passing Utility software Window Default (computer science) Context awareness Execution unit Twin prime Stack (abstract data type) Letterpress printing Device driver Inclusion map CAN bus Kernel (computing) Synchronization Partial derivative Videoconferencing Electronic visual display Extension (kinesiology) Vacuum
Webcam Complex (psychology) View (database) Demo (music) 1 (number) Motion capture Function (mathematics) Mereology Web 2.0 Device driver Read-only memory Semiconductor memory Kernel (computing) Software Computer hardware Videoconferencing Software testing Exception handling Standard deviation Software developer Electronic program guide Moment (mathematics) Sound effect Virtualization Bit Motion capture Device driver Cartesian coordinate system Transmitter Subset Software Computer hardware Function (mathematics) Network topology Device driver Vertex (graph theory) output Software testing Figurate number Quicksort Videoconferencing Window
Webcam Presentation of a group Pixel Game controller Link (knot theory) State of matter Multiplication sign Image resolution 1 (number) Price index TV-Karte Emulation Number Wave packet Web 2.0 Bit rate Different (Kate Ryan album) Computer hardware Square number Software testing output Form (programming) Default (computer science) Default (computer science) Execution unit Theory of relativity Touchscreen Device driver Cartesian coordinate system Sequence Frame problem Word Visualization (computer graphics) Function (mathematics) Cube Device driver output Normal (geometry) Software testing Musical ensemble Block (periodic table) Spacetime
Pixel Video projector Combinational logic Price index Replication (computing) Computer configuration Oval Quilt Square number Videoconferencing Flag Electronic visual display Circle Error message Touchscreen Physicalism Bit Term (mathematics) Connected space Type theory Befehlsprozessor Order (biology) Buffer solution Normal (geometry) output Software testing Pattern language Block (periodic table) Resultant Laptop Game controller Datenausgabegerät Image resolution Patch (Unix) Rule of inference Field (computer science) Computer hardware Software testing Contrast (vision) output Default (computer science) Information Gender Cellular automaton Electronic program guide Projective plane Content (media) Independence (probability theory) Analytic set Device driver Cartesian coordinate system Frame problem Inclusion map Personal digital assistant Device driver
Email Dataflow Pixel Multiplication sign Set (mathematics) Mereology Replication (computing) Power (physics) Frequency Mathematics Computer hardware Square number Arrow of time Error message Form (programming) Physical system Default (computer science) Execution unit Touchscreen Projective plane Bit Line (geometry) Device driver Cartesian coordinate system Frame problem Degree (graph theory) Category of being Arithmetic mean Device driver Software testing Right angle Quicksort
Software testing Device driver Replication (computing)
Topological vector space Touchscreen Scaling (geometry) Multiplication sign Real number Device driver Cartesian coordinate system Frame problem Befehlsprozessor Hooking Different (Kate Ryan album) Term (mathematics) Personal digital assistant Software testing
Scaling (geometry) Multiplication sign Strut Price index Limit (category theory) Function (mathematics) Emulation Prototype Type theory Software Computer hardware Software testing Information output Helix Physical system Default (computer science) Data type Default (computer science) GUI widget Menu (computing) Motion capture Device driver Sequence Transmitter Planar graph Error message Function (mathematics) Computer hardware Device driver output Software testing Right angle Block (periodic table) Videoconferencing Writing
Point (geometry) Group action Multiplication sign Connectivity (graph theory) Execution unit Number Device driver Skeleton (computer programming) Semiconductor memory Synchronization Computer hardware Repository (publishing) Entropie <Informationstheorie> Software framework Software testing Email Electric generator Software developer Expression Physical law Sound effect Core dump Bit Line (geometry) Device driver Cartesian coordinate system Frame problem Skeleton (computer programming) Kernel (computing) Hypermedia Device driver Phase transition Revision control Software framework Software testing Pattern language Resultant Spacetime
Injektivität Game controller Presentation of a group File format Software developer Set (mathematics) Basis <Mathematik> Device driver Cartesian coordinate system Device driver Skeleton (computer programming) Hypermedia Device driver Computer hardware Repository (publishing) Revision control Normal (geometry) Limit set Software testing Error message
Googol Compass (drafting) Elasticity (physics)
to some extent the new output and as we all know video is a very complex system so it is actually when you write an application or right to driver it's very difficult to know whether you're driver replication is actually doing the right thing and this has been a problem for many years and last year I worked hard on and you for the driver compliance testing there has been a tool for quite a long time that last year it was improved in a very big weight and for application testing there is a new driver that you can use to test 2 replication and this basically what is talk is all about and so for Rep atmosphere
of Linux we have a bunch of utilities and this
is a quick overview of them 1st of all the for to compliance that is a utility that tests whether you feel you his driver is actually following the API do you fill in all the structure fields if you miss anything on the sort of ideal tools that you have to implement you didn't or vise versa and it's it's really strict about that and it's an excellent way and for testing you drive then we have the 402 CTL is the Swiss Army command line tool for basically driving the devices so you can greedy them set things up streaming do whatever you want the critical command-line don't in and we a few few from 2 ladies basically the filtered CTL but was you huge framework is being used and this site ideal blue interactive testing and checking what is going on there is a little bit but utility that the logic to directly sets registers in i in your heart where you have to be rude to use this of course but it is a nice little from 10 to do that we have added some Porgy begins so quite often during unification applications of work and you want to know OK what what is it telling the drive to be so by you can actually turn on the for specific your notes if you set it to 1 that will show all vital forces calling to social documents getting to the idea of of as well that's very useful to figure out OK why is in my application working what is what is trying to do and finally last year we add uh support to Valgrind for people to so far greed knows about all the structures that policy I looked it all of the structures we use they have reserved to of the application is supposed to set the 0 we never had a way to a check that the application was doing that I'm this fall great that's now possible if you run over your application it will tell you hey you will be initialized to 0 very very useful to double check that 2 replication is falling all the rules we tried to keep that at the dates of right now it's too big to 3 points 19 that smoking outside our but 320 we have a slight API addition and I've made a patch to add support for the 20 already so we really try to keep that up the data the stools reporters if you don't keep it there but
so let's go bit more into details for people to likes actually started 7 years ago I started out just with this idea it would be nice to have a tool and initially it think it tested 3 ideal of something but whenever I had a bit of time or I need something I've been adding ideal for students and it is now the altering really big parts the the the main breakthrough was early last year when we add a support streaming so it can also test before that it was just configuration if you feel that was tested now it can also start streaming and test whether you know when you get the perspective of a 15 years before related made information is correct and you know everything works as it should the for important if you make a new driver has to pass the flow to compliance are few exceptions not certain types of drivers of were not supported but if it is supported you must also this appliances although me I when you posted a post and right file immediately asked what's out 2 close to something like 9 in the tests I think this probably more than and now are performed and it's really testing is not especially not 1 % over at the I'm really trying to do a really good job here actually I'm working with someone who is currently fixing a driver to make it fast and you keep going through every time we fix 1 thing the new 1 hopes of 0 you need to do that is wise I'm sure if you want to get a drive into the kernel is a really annoying to i currently we have 82 I orbitals we sum over them all except for 7 and they have to do with appropriate selection actually look quite true will be added some tests for that but it looks for over it's of and some overlays stuff importance no in the 2 was actually more strict then specification I because it also checks whether you drivers using all the latest frameworks a lot of 2 frameworks that we end day for example controls controls and things like brightness contrast uh saturation most of all the things that you can do with it we have a framework in the kernel that handles controls and if you use that's then you get lots of freebies so although control related I was all supported the if all this stuff is held by the framework if you're not using the framework then you will have to implement all that himself and I've guarantees that you want to do just that so is the really checking that's the lonely do you follow the API and the do you also follow what the framework to will give you so something suffering frameworks will give you for free maybe or optional in API without subjective if you need to as always compiled from the beautiful story this keeps getting the data regularly what you get is distributions is always out so always use the latest but it is a quick demo Loftus but so the I have uh his laptop I have a work and of course and I can just run the photo to compliance that we make use of the vector the what we call better we go to discover so 1st it's the issue of some background information what this a driver whatever capabilities for the use of these you receive PDL 4th I also records these is 2 6 319 kernel really Standard 6 with all the latest media of that system go to 3 . 27 bleeding edge media and 1 thing that is important to know is this little line you're not using the the fell to a little bit of backgrounds it's useful to is a library that this form of conversion basically came out lots of web can certainly be all the ones they all have proprietary formats you don't want as application developer to convert from all those provided for months to something that can actually handle so his library was created that sits in the back and then there's the conversion for you so basically this library sitting in between what your application is telling the driver and what the drive actually receives so the compliance tests by default are going straight to the driver you can also buy option you can also go through if you fell to and but I know that many people to was doing a few things not quite standardized so it'll give you access errors so but NOT go into although I SOS testing visible this is required by your tool is in there so you should be able to handle multiple open a few device note I mean the guy testing all the various input related I orbitals and junior frequencies and audio inputs you includes same with output in figuring timings and then it's going through all the inputs or outputs that you have in turn and 3 then check whether it handles things correctly and this is a good example where you get a failure our hands this is called so again this basic don't back 2 frameworks almost all drivers to they use to control framework with 1 exception you because you see is actually is very dynamic it's gets its control information from the hardware instead of hard coded in the driver so you've received doesn't use the framework and this happens to be the new extension that was recently edits and you see has not been adapted for that so I'm testing do you follow the framework by using this new feature and it will fail you receive because that has not been really implemented yet and that's the price but this is 1 example where what is very easy to to check that out of the error messages that you get so
they tend to be sometimes a really nice and sometimes the value of secured which often have to do is go into the source look up the line number and see exactly what is trying to do there it would be great so if the messages were completely understandable if anyone wants to volunteer to fix that just let me know on my cause I concentrated on getting as many tests Crampton as possible I did not really concentrate all the marginal making it's nice human-readable fancy there are only so many hours in a day but so diesels it is so what that so is doing a control checks out various formats where that is handled correctly in if if certain articles are not supported that will say it's OK and will say hey it is supported of course if this driver would have to support this it will be a compulsory I orbital for this guy then this would feel but this is just saying I most supported but that's OK for this 1 and you get a nice but summary at the end but is doing just set of configuration if I at the minus s flag then it'll start streaming as well and as you can see here to I don't know why am I'm not you see maintain but I need to tell him this failing again so you see is a bit of an old 1 because of you I don't want signal I know is that Our while it uses a framework for streaming it is not using its entirely correctly and I think I've seen and unseen infectious wouldn't have common yeah it's a bit of a shame I think cause you see as your sources that's the I have a different driver which is just rivals show that later this is where it should look like so now it's doing various dreaming tests and no failures what I quickly I didn't but so was solver intersection the consumer minus the tha so you can actually see this is the output will fall the correction senior that it's apparently this is a new poll our laws will point to the presence of initializing something correctly I to look at that that is is perfect for testing your application did I miss something it but all utilities so that was a combined says that takes care of drivers so make new driver from this when you start developing a driver Anderson softness you can because it will keep you of the track the cure and just go through a phase from top to bottom this process them 1 by 1 best way of doing I on the application side you have to utilities these are bold reference utilities we keep them up to date so we add new API so we add support for that these utilities as well I also utilities are intended to show you best practices it's not necessarily best cold I have to admit could be better but it's really trying hard to do with all the subtleties that you can get this of your right z kept in sync I have this command line so it ideal for testing things in the systems I this is ideal for interactive tested but show a few quick things here so the frontal it has been included in this 1 it if you look at all the messages the and it has a lot of options there we go because as a severer something like 80 whatever I close at the moment and they all have to be implemented the portable options so think the best about thing good thing it's it's all there so you can really exactly and do exactly what you want to do a what is very nice is that you have streaming support another we see constrained that is a streaming from the web cam by default the what it captures is just thrown away but you can write it to a file you can write it the standard output invited to an older processes quite a few options and if you working on embedded systems n and you have the you output that is controlled by the Linux then is also has a pattern generator is building i will talk a bit more about that later but that comes with the with the utility so it's ideal for no I'm putting all of our stuff like that so it's very nice goofy felt to on but so this is a nice go ritual I is you received so high are you control control thing so all these controls are all there so you have the brightness and you can fiddle around that it the but this is easier than a command-line tool where you know the videos is some way yes please following the scary to see that the and this is a little more interactive and if you were on your heart where can do that have to screen hooked up and you can understand that much nicer OK so far so good now we come to the next
bits where they I have this nice fancy application moment test what do most application developers do they have for this web cams and therefore perhaps 1 of toward our devices and that's all the test there is the use rains of video devices with all very different capabilities so it is very difficult for you average application developer to test where you can handle different devices and this is where this test drivers payments so far we have 2 main ones I 1 is for memory to memory test drivers are not really going to discuss that if you 1 of the best things like that then here Our but the really big 1 for most people this visit it's a replacement of all the the drive virtual video that we had before that was very limited and was actually not according to this effect what it was doing that of native fairly useless for application testing have before remember correctly if you would use this as input for sky she would get sort of a very narrow window where I put complete get completely confused my understanding is that the view from his coat Skype is terrible anyway but and white it was a bad driver and it's hopeless but it it is basically trying to do emulate almost everything except for really complicated memory to memory devices for if complex topologies when it comes to standards for you on output all working so with figure capture view output can be done vertical blanking capture output is there other radio receiving enters emitting radio was part of the deal for Linux is basically video capture without the PTO part just audio but you need to tune her and the tutor support for their already get quite India the software defined radio this fairly new so that's also emulated these days and it's is a lot of attention went into emulating with real hot redness us so all the quirks that real hardware has FIL make here without a driver like gets is next to impossible to verify get your application worked within the but you simply do not have the hardware unless you spend like me years collecting hardware of buying it's getting its the scrunching e base for nice new stuff but most people don't do that then all that crazy so they just have a few web into whatever all the test with and that's not enough you you're not able to make a good so good application for that the so but we set this up correctly I
just I ran before I ran the compliance test on this driver and a piece of in an inconsistent state for his novel state I want to use so I need to reload its thank you the so you can see that this cube referred to and to lead this is getting a much bigger screen the this because there are are it huge number of or features portion of the input and as you can see we support webcam standard work and we have a TV tuner and relations SPO inputs and ht my and 4 webcams we have support for different sizes and as a as a typical web cam if you if you look at the frame size year 30 frames per 2nd and go to the highest in those broken down to 50 because that's you know normal web instant emitted by the wind band with the either have a large resolution alone rates or vice versa so again this is this is 1 of the little things words emulating what actual hardware is in the as supports also different feed uh for Marx basically all the standard form of the typical applications have or typical drivers have their role available here 4 2 0 YUV for too seriously only 1 and isn't any link because that's it's would be doable but it we for what the tricky so we get but as the 2 Alspector ratios and this is of course more interested for TV where you get all the difference a both for web cams last the pixel is always square the 40 feet directly in the square so you can select whatever that has to be there all space going through support and not to come to talk about all space now as my next presentation thank will hear a lot more about called much more probably do you ever want to know I have various training methods there are supported by the driver how many but the ones and its supporters to can even do cropping and composing in a fairly intuitive way but so what made gets normally what of the big 1 size bigger and so instead of running I just capturing from the visual driver and that vitual driver features is given you this so by default is just Bob so you get some of on-screen text with timing and sequence numbers fairly simple if you look at look at the
steps so that was controlling the name they just showed a controls exposed by the driver which means and practice get so you
have uh the typical brightness contrast saturation you and just for fun they actually work that all I admit I was a little bit crazy to do that but it was fun to make and you also see the whole control here controlled by these represent all the possible control types of this great professing replication but you can use this to check whether the application can actually understand all those types of normal drivers they will just have 1 of 2 or 3 types and never all of them so you without use hardware you can never do that but and then the final step again these are controls so they're if a driver but these are all controls controls that affects the way diffusion driver this I exposing itself that is advertising itself to your application so we have this patterns here on the the they go through then we can you can see all the
various cell primary colors you can have checked the gender awards lots of different including the noisy patch on greater and so you can try various inputs among the various patterns and see how it works so this is going on screen displays would you want there actually have movement the I know when you have a static it can be difficult to see and you send it out to somewhere can be difficult to see what you're just seeing the lost frame and everything installed or what is actually still capturing having some movement makes much easier other you can have a border around the picture that allows you to check where you do any clipping somewhere but it's also very useful and come to that later if you have a bill books in or out a letterboxing then the border goes around the active field actually be part and if you want the the letterboxing books the books and then it's good to see that you know putting too much this so square now we can sadly are while at a square my laptop clearly these pixels on not square of that's you know if you are using it in an application you can actually use that to check that you fix all speculation on pixel handling it at the correct correct and quite also you get a circle that but I find a circle is really difficult to measure whether it's pure circle or oval with a square you can just put a ruler on your screen and see OK so many sentences with the that's the heights they it's good us under the visa driver which we take into account is it's generated pixels at about square then this and in if you if you were displayed a procurement square pixels this wouldn't be square anymore it's really the end result of this should be square on know what is clearly missing in this application is a way of testing what the pixel aspect ratio is all my output devices that it's square and if you have a set up like this it clearly actually not sure on would you call it project so I get can give you correct pixel hospital information I know it can be down through the the that where it's actually reality the yeah you get a fix of physical size and you know your resolution so you can calculate to fix the the the the the that and so on if you have usually with LCDs and while laptop screens and stuff like that you get correct information but for projector sadly the delicate my laptop square but what else do we have uh I showed that more later you can actually journal on whether cropping composing was scaling is supported in his driver the doesn't pregnant basically independent features of video hardware so you can get it in all combinations so order to make this useful you can actually say OK this is the the driver says that it's can call but it cannot scale and and all composed you have lots of the lots of options there I think that we move this around a little bit but you can choose to just fill a percentage of the screen I mean this these frames are all generated by the CPU a case of drivers no real lodgement of all generated you have a really big resolution and your CPU is not that powerful you can choose to just generated both X % of frames CPU from going near way too high some interesting things you can drop a certain percentage of the 1st clearly at the get rid of the square so what can replication analytics 10 % of the buffers are dropped are you can download included now but you can emulate use the disconnects of someone just a lot of work so nothing works anymore actually the way it is done in the drive is identical how true you must be devised work i you can inject some errors so you can in beautifully risk and if you before but with a flag saying that the content of this buffer is probably corrupt out this
replication and that is very difficult to do in a real hardware for the most part 1 doesn't do that it's almost correct but some hardware can do that in certain circumstances of that can be next to impossible to we reproduce in reality but you still want to make sure the application can handle this and then I'll bring show flow all of older arrows internal errors that can occur and that again normally almost never happens but this way you can trigger and see the what is going on knowledge make it a little bit more interesting so we also I also added support and it was webcam support so we also have a DVD I let me go on the less annoying but so this is a this is emulating a TV juror it is so powerful form of medieval and you can get a frequency here the degree border so OK I I I admit I have too much time on my hands so if you move to frequency little the out and so the the goal of killer in and as you go a little it's a as you know more signal a it's even again too much time if you make small changes to the frequency you see the button changing slightly well I admit it has no useful property at all but it also simple to current so much the so it's as go back to work particular I i'il funding this what it meant that way that's well so this is a good example also the the effort I put into keeping you see here is the easiest to see with a magnifying so you can see that the the top line or to be precise the top half line has crapping its the people know what it is the widescreen signal so this is I don't know who came up with that stupid idea that not for all of their decided that it would be fun we need signaling whether it's for the 3 or widescreen let's put it in the book calls line just for kicks so if you have a Paul system you don't get it that ntsc is just balanced and then you just captured all frames and then you showed Michael Malone LCD screen quite often it done that we use CDs weekly stuff going on at all so this reviews I she's not look quite 100 % I because it'll real whites consignor like I could do that as well everyone to the so that when the bit too far but is useful to check again this your application if you give it gets an input like get can it handle it what would probably want to do here is just to call of line of black making black or whatever I also yet is different again difficult to see that if it wasn't for a project sort would be square even know if you and if I can what if I repre the but here as traditional for months through tha when doing this right but so sometimes so many features that I get confused and those when it's all speculation right yet again is different which is sold the square changing so this is where and what happens when you showed a picture with where you interpret the pixels of mean square on the you see if I can the the very carefully so this might so now you can see that the square is actually not square anymore so I turn off the compensation for the fact that what I'm receiving from the driver has no square pixels a by diesel fuel free-for-all to will detect that will compensate skill set of the scalar correctly and you use that it looks properly square so this
is an excellent way of again testing replication so the convict of that we
that what are you doing a symplectic but i and finally we have they seem like but so the now that we can the the and if you all the 720 p our body weight 1 thing that I wanted to tell you what
you can see that all these so these formants here and actually although the the frame rates that you see there they are reproduced exactly so again I put a lot of effort so if you have 59 . 9 4 hertz you will actually get 59 . 9 4 hertz I'm not succeed on the way that generated works internally that it really is very precise so if you may get to 1 but that people jitter or 1 1 2 3 0 2 1 defeat jitter but no more than that so over the long term it will be exact but is allowed shows to test differences between 15 and what time for 16 and stuff like that I spent a lot of time and effort into debt and is really and as you can see this goes up to the very elated 48 so if you want to test with well let's this is actually the house the usually most TVs Gulf War will get 1 so for any and this is really of it
is is generated for k pictures that is the really scale bound to than 24 7 1 6 68 but you do get is generating for K and it can do this so at 60 frames per 2nd which I think is fertile pretty amazing from the CPU doing get and that speed I and that you know if you hook up real for case screen and then just uses with 2 you need to know if you're is ideal for prototyping as well you don't have them right yet in the this is replaced check whether your application can handle it it's here our as again I put in a lot of effort to
make this a great way of checking that everything you do this working but this is a driver is also very of configurable so by default you get so I can write inputs and humor and extreme my input you can forget all the inputs and outputs and how many you have I things like so you can actually use this to prototype right where you don't have a hardware yet the last know why and system is going to look like this with so many inputs in so many outputs so you can just configure favored to emulate that so that's again ideal for doing early testing not a coincidence that is doing and
and it can get very confusing if you have further if you want to do things like this with cropping and scaling in proposing and you have an open GL that is doing scaling in proposing whatever again so if you have a complicated test sequence you something really need to think hard about how things work together of I'm running out of time
resources of course we have the API In general frameworks documented here and 1 framework the 3 should be here as well that that currently used the best bet is to use the header pretty good we well documented David driver it went in in kernel 3 points 18 but no you can also get your of course a skeleton driver is available here that's specifically for BCI but is fairly good base for any driver and that's 1 missing of of and that he documentation for mentation expressive effect both text that's goes into excruciating detail about half of all the features that are infected I mean I I have only shown in for these are the most border bits that's probably 6 % of the drivers of the result more than if you want to use it and that's documentation is
quite extensive but questions about this tha the find out yes it's and vivid drivers and porters the group yet the the driver is an internal drive of that's correct I think that it is that it I could you do it is a userspace now actually it doesn't that it doesn't probably not mostly because of all the laws of review may it would be we it's much easier to do it as a driver it's actually a very efficient so for example generated those test patterns it is just a member of a it's the every pattern is equally efficient as every almost and all the off time is spent on making a really good the problem of user space a stressful as much get much more difficult for us to keep the FIFA driver in sync with ladies at the eyes of the you have to deal with the space component and using the above normal driver would the so just having it as as driver because it is actually want to repre sent hardware so it's good that the X exactly the same that you don't have additional we stuff going on or we always had these virtual drivers in the past it's it's actually very useful this whole question there that and you I so what what kind of units of framework test frame of millions of my own i is really all it does is it basically uh it has a few little functions and and it keeps encounters of the number of failures and this you know if this fails and I also if it fills just return I'm not going to try to compensate for it it there should be no failures it ran counter failure done well I just give up thanks and we can go on to the next so sometimes you have early failures that will generate lots of late phase I don't care about that you shouldn't have figured in the 1st place this fixed from top to the bottom and make it work the whatever memory requirement of the FIFA driver found very low actually knows you would expect all 1 thing that will take if you want to use it with 20 before us for for k frames then you will need 20 before so for the memory but you know that speaks for itself that you recession as application developer the driver itself through do its test pattern it's our is just generates the news but 1st that are twice to with of what you want to capture and I think it's good to 8 of those special so it is based on really efficiently so it doesn't need to create 4 frames in memory at all so bottom line is variable but the the the the I have no there are those disorder all those tests that's of which 1 if all
of them yet they you all the the the rest is all generic so defeated the vivid control step that you see that this G given by the the the driver they basically have all to do with how how do you change the behavior and some error injection obviously gets all specific to the FIFA driver normal driver will just show what the hardware does that format if you but there a set this application developer you just have a limited set of Hodgman so you limited to what the contribution and this is almost given everything the all the questions OK for assuring sitting Polish basis because I've been ignoring gets in this presentation normally as a few things about than just sit parts and in 15 minutes we continue with that thank you very much and if a b