function getMetadata( $image, $path ) { $metadata = array( 'version' => self::METADATA_VERSION ); if ( !class_exists( 'File_Ogg' ) ) { require( 'File/Ogg.php' ); } try { $f = new File_Ogg( $path ); $streams = array(); foreach ( $f->listStreams() as $streamIDs ) { foreach ( $streamIDs as $streamID ) { $stream = $f->getStream( $streamID ); $streams[$streamID] = array( 'serial' => $stream->getSerial(), 'group' => $stream->getGroup(), 'type' => $stream->getType(), 'vendor' => $stream->getVendor(), 'length' => $stream->getLength(), 'size' => $stream->getSize(), 'header' => $stream->getHeader(), 'comments' => $stream->getComments() ); } } $metadata['streams'] = $streams; $metadata['length'] = $f->getLength(); // Get the offset of the file (in cases where the file is a segment copy) $metadata['offset'] = $f->getStartOffset(); } catch ( PEAR_Exception $e ) { // File not found, invalid stream, etc. $metadata['error'] = array( 'message' => $e->getMessage(), 'code' => $e->getCode() ); } return serialize( $metadata ); }