Re: [Crystal-cvs] SF.net SVN: crystal:[39042] CS/branches/soc2011/videodecode
Christian Van Brussel <[email protected]>
| Newsgroups | gmane.comp.graphics.crystalspace.devel |
|---|---|
| Organization | UCL - TELE |
| Message-ID | <1357651768.10472.3.camel@scylla> |
Hi Frank, Thanks for all this feedback, I'll get into this (and thanks too for the inclusion of Assimp in the winlibs btw). On Mon, 2013-01-07 at 19:38 +0100, res wrote: > On 07.01.2013 15:22, [email protected] wrote: > > - Put the decoder-related interfaces into CS::Material. > > CS::Material seems a slightly off choice for video decoding... sure, > technically it decodes video onto a texture, yet the scope for all the > interface seems broader... > Of the existing namespaces, CS::Graphics seems an alternative, but even > that doesn't feel like a real fit. > Perhaps add a new namespace CS::Media? > > > +struct MediaLanguage > > +{ > > + /** > > + * The name of the language > > + */ > > + char* name; > > + char* path; > > Couldn't these be ‘const char*’s? > > > + virtual void GetAudioTarget (csRef<iSndSysStream> &stream) = 0; > > The more common way (in CS) to handle this stuff is a method returning > csPtr<>. > > > + virtual bool GetLanguage (size_t index, MediaLanguage &lang) const = 0; > > + virtual void SetLanguage (const char* identifier) = 0; > > GetLanguage()/SetLanguage() _look_ like a getter/setter for the same > thing, but in fact they aren't. > I recommend renaming at least one of them – e.g. GetLanguage() to > “GetAvailableLanguage()”, or SetLanguage() to “SetActiveLanguage()” or so. > > > + virtual void Create (csString path, csArray<MediaLanguage> languages) = 0; > > Passing csString or csArray<> across plugin boundaries is generally not > a good idea – it opens the door for issues caused by binary layout > mismatches or memory allocator mismatches (typically if you mix release > and debug binaries). > Better: “const char*” for path, and for languages, a const > MediaLanguage* argument and a count index. > > > + virtual void InitializePlayer (csRef<iMediaContainer> media, size_t cacheSize = 1) = 0; > > Typically, csRef<iMediaContainer> typed args can also be specified with > the type iMediaContainer*. (A handful less calls into the > iMediaContainer instance.) > > -f.r. > > ------------------------------------------------------------------------------ > Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, > MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current > with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft > MVPs and experts. SALE $99.99 this month only -- learn more at: > http://p.sf.net/sfu/learnmore_122412 > _______________________________________________ > Crystal-develop mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/crystal-develop ------------------------------------------------------------------------------ Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS and more. Get SQL Server skills now (including 2012) with LearnDevNow - 200+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only - learn more at: http://p.sf.net/sfu/learnmore_122512 _______________________________________________ Crystal-develop mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/crystal-develop