Re: NUBIE API design.
"Toby Hudon" <[email protected]>
| Newsgroups | gmane.comp.multimedia.media-api |
|---|---|
| Message-ID | <[email protected]> |
> EBML might be better since it can handle all data types fine. > I was thinking that too. I originally would have gone with just general structs but I got feedback saying this causes issues with other languages and architechure endianness and stuff. > This is a nice and simple way to handle this type of problem. The > alternative is forcing everything to publish what all it supports and have > the connections automatically determine what to use. This can potentially > create problems with longer chains if the automatically chosen format isn't > supported further down. > Long chains are definately an issue, but I mean what do you need 20+ filters in a row for? I dont think it'll be pushing it. Also you can lower the overhead on this by detecting which method works by setting variables in your local object. That is, every time you try a different result set a flag to a different value. Then next time you try to process the message check the flag to see if you've already decided to use RGB instead of UYVY so it only calls once. Not hard. > > 'nuff said. The API passes messages to the master, and then it determines > what to do. DirectShow is the greatest blackbox of media. Half the time > you don't really know what its doing or why. > Yes, and I dislike that. I also dislike being forced to do things with no option to do it the "hard" way if I choose. > I think that most of the comments that I've seen so far have been about > passing the video frames. IE, if you have to pass the same video frame 5 > times, that is a lot of memory bandwidth. If you are working with > 1920x1080x32bpp @24p, then you have almost 1.6 Gigabytes per second just on > video frames. Any copying of the video buffer that you have to do at this > point is going to stretch the limits of many computers. > Yes but I was assuming to pass the data structs by reference anyway. What would be the point in constantly copying them if you already know the data's there for read/write at some other object anyway? That means there's no actual data bandwidth, just pointers moving around. It should have no impact on the amount of frame data travelling through the system. -- ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm