Re: File_Vorbis Latest... [FOLLOWUP]
| From: | Stefan Neufeind | Date: | Wed, 13 Aug 2003 12:17:59 +0000 |
| Subject: | Re: File_Vorbis Latest... [FOLLOWUP] | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-19673@lists.php.net to get a copy of this message | ||
On 13 Aug 2003 at 12:22, David Grant wrote:
> > Using OGG_STREAM_VORBIS etc. internally is a good point. Maybe for
> > decision if that stream is audio or video you could simply make up
> > an array as a property in the class? Like
> >
> > $streamtypes=array(
> > 'audio' => array(OGG_STREAM_VORBIS, OGG_STREAM_SPEEX),
> > 'video' => array(OGG_STREAM_THEORA)
> > );
>
> > Using lowercase internally is really the best solution. I'd suggest
> > to also avoid using spaces (substitute by an underscore) or any
> > other "special characters" (like slashes etc.). Maybe you could make
> > up an additional lookup-table which uses your constants as keys for
> > lookup of the actual names (with upper-lower-class and also maybe
> > with chars like spaces, slashes etc.) if a programmer wants to get
> > the "correct names" for display on his webpages.
>
> I'm thinking back to your original point about each stream type having
> it's own details. Perhaps I should've not been so hasty to reject it.
>
> Perhaps an array in the following format might be an idea:
>
> Array (
> OGG_STREAM_VORBIS => Array (
> 'pattern' => "vorbis",
> 'mime' = "application/ogg",
> 'type' = "audio",
> )
> )
>
> I'll hack something together this evening.
But 'mime'? Are you sure? The stream itself doesn't have a real
"mime"-type - only the container.
> >> > While designing File_Ogg:
> >> > a) be sure to implement some return for "stream-type unknown" b)
> >> > maybe tell the type of a stream (e.g. theora, speex, ...) even
> >> > though you haven't implemented them. This would allow full
> >> > scanning an ogg container without actually being able to retrieve
> >> > streaminfo for every stream.
> >>
> >> a) Shouldn't this throw an error?
> > An error in an array? Hmm ... you could probably return an object of
> > type PEAR_Error, okay - but scanning through an ogg container and
> > finding one (of many) streams that is unknown doesn't necessarily
> > mean that a real "error" occured, does it?
>
> I see. I misunderstood. So you were thinking along the lines of a
> seperate OGG_STREAM_UNKNOWN constant? I thought you meant that the
> user would request an unknown stream, in which case an error should
> definitely be raised.
I just meant that when you scan an ogg-container for streams there
might be one stream (future implementation) you can digest from the
others but which your class doesn't know yet. In this situation an
OGG_STREAM_UNKNOWN would be useful and it should be taken into
consideration at design-time.
But as you proposed: At least if it's possible to digest flac, speex,
theora etc. as well (but not retrieve information from those streams
yet) I'd love to see a way to at least say which of these streams are
in the container.
Stefan