Public Member Functions

getid3_matroska Class Reference

getID3() by James Heinrich <info@getid3.org> // More...

Public Member Functions

 getid3_matroska (&$fd, &$ThisFileInfo)
 EBML2Int ($EBMLstring)

Detailed Description

getID3() by James Heinrich <info@getid3.org> //

Definition at line 17 of file module.audio-video.matroska.php.


Member Function Documentation

getid3_matroska::EBML2Int ( EBMLstring  ) 

Definition at line 34 of file module.audio-video.matroska.php.

References getid3_lib::BigEndian2Int().

                                       {
                // http://matroska.org/specs/

                // Element ID coded with an UTF-8 like system:
                // 1xxx xxxx                                  - Class A IDs (2^7 -2 possible values) (base 0x8X)
                // 01xx xxxx  xxxx xxxx                       - Class B IDs (2^14-2 possible values) (base 0x4X 0xXX)
                // 001x xxxx  xxxx xxxx  xxxx xxxx            - Class C IDs (2^21-2 possible values) (base 0x2X 0xXX 0xXX)
                // 0001 xxxx  xxxx xxxx  xxxx xxxx  xxxx xxxx - Class D IDs (2^28-2 possible values) (base 0x1X 0xXX 0xXX 0xXX)
                // Values with all x at 0 and 1 are reserved (hence the -2).

                // Data size, in octets, is also coded with an UTF-8 like system :
                // 1xxx xxxx                                                                              - value 0 to  2^7-2
                // 01xx xxxx  xxxx xxxx                                                                   - value 0 to 2^14-2
                // 001x xxxx  xxxx xxxx  xxxx xxxx                                                        - value 0 to 2^21-2
                // 0001 xxxx  xxxx xxxx  xxxx xxxx  xxxx xxxx                                             - value 0 to 2^28-2
                // 0000 1xxx  xxxx xxxx  xxxx xxxx  xxxx xxxx  xxxx xxxx                                  - value 0 to 2^35-2
                // 0000 01xx  xxxx xxxx  xxxx xxxx  xxxx xxxx  xxxx xxxx  xxxx xxxx                       - value 0 to 2^42-2
                // 0000 001x  xxxx xxxx  xxxx xxxx  xxxx xxxx  xxxx xxxx  xxxx xxxx  xxxx xxxx            - value 0 to 2^49-2
                // 0000 0001  xxxx xxxx  xxxx xxxx  xxxx xxxx  xxxx xxxx  xxxx xxxx  xxxx xxxx  xxxx xxxx - value 0 to 2^56-2

                if (0x80 & ord($EBMLstring{0})) {
                        $EBMLstring{0} = chr(ord($EBMLstring{0}) & 0x7F);
                } elseif (0x40 & ord($EBMLstring{0})) {
                        $EBMLstring{0} = chr(ord($EBMLstring{0}) & 0x3F);
                } elseif (0x20 & ord($EBMLstring{0})) {
                        $EBMLstring{0} = chr(ord($EBMLstring{0}) & 0x1F);
                } elseif (0x10 & ord($EBMLstring{0})) {
                        $EBMLstring{0} = chr(ord($EBMLstring{0}) & 0x0F);
                } elseif (0x08 & ord($EBMLstring{0})) {
                        $EBMLstring{0} = chr(ord($EBMLstring{0}) & 0x07);
                } elseif (0x04 & ord($EBMLstring{0})) {
                        $EBMLstring{0} = chr(ord($EBMLstring{0}) & 0x03);
                } elseif (0x02 & ord($EBMLstring{0})) {
                        $EBMLstring{0} = chr(ord($EBMLstring{0}) & 0x01);
                } elseif (0x01 & ord($EBMLstring{0})) {
                        $EBMLstring{0} = chr(ord($EBMLstring{0}) & 0x00);
                } else {
                        return false;
                }
                return getid3_lib::BigEndian2Int($EBMLstring);
        }

Here is the call graph for this function:

getid3_matroska::getid3_matroska ( &$  fd,
&$  ThisFileInfo 
)

Definition at line 20 of file module.audio-video.matroska.php.

                                                       {

                $ThisFileInfo['fileformat'] = 'matroska';

                fseek($fd, $ThisFileInfo['avdataoffset'], SEEK_SET);

                //$ThisFileInfo['matroska']['raw']['a'] = $this->EBML2Int(fread($fd, 4));

                $ThisFileInfo['error'][] = 'Mastroka parsing not enabled in this version of getID3()';
                return false;

        }


The documentation for this class was generated from the following file: