Re: to be effcient or not to be efficient

Artem Baguinski <[email protected]>
Newsgroups gmane.comp.multimedia.media-api
Message-ID <[email protected]>
On Wed, Jan 07, 2004 at 12:54:44PM -0500, Toby Hudon wrote:

> > Could you please fix your mail client to break lines
> > at 65-75 characters ? Thanks.

/me joins the suggestion

> > That's right, it should not have more than a few entry points, but
> > also not more than a few message types. 
> >
> > I think there should be first some use cases written down as there
> > are only some vague ideas what can be done with such an API
> >
> 
> Ok, let's consider doing that then. Let's see, just off the top of my
> head:
> 
> get data, in sequence (playback) 
> get data, random access (seek)

i often need something in between - "get data, in weird sequence". e.g.
backwards or skipping frames in some regular way - for low latency
variable playback speed and direction and time-effects - when effects are
applied not to the content of frames but to their order, including
mixing frames from several sources in time.

not that i want a low level API imlement these sorts of access, but it
should allow me to wrap a demuxer in my code that implements the
specific sequence. 

> write data, in sequence not sure if we'd ever have a non-sequential
> write (encode)
> 
> capabilities reporting messages? Or do we just use try and if fail try
> something else? Note you could just set an internal flag on the first
> success to remember what to do on every subsequent call for the
> remainder of the video so you only have the mutliple call overhead
> once.

if i were to implement it i'd put capabilities in some datastructures
which are getting registered upon initialization. the main api [not
codecs] will provide some iteration through / searching in the central
registry. 

> variants on these for the various data types (frames, subtitles,
> audio)
> 
> We probably want init as a seperate API function, not a message.

i guess i have to reread the thread about messages for i don't really
understand why.

why cant init function for shared library return a pointer to a
vtable with pointers to implemented calls and NULLs for not implemented? 

> That's basicly all VFW has for codecs, it's got like 4 functions to
> just get the info about what's coming, find out if it can compress,
> and setup the codec. Then 99.99% of the calls go to the main compress
> or decompress function.
>  
> I'm probably forgetting some other important things but please help me
> out on it. --

this discussion starts to sound more like what i had in mind when
subscribed ;)

-- 
gr{oe|ee}t{en|ings}
artm
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.