Changeset 51901 for trunk/src/wp-includes/ID3/module.audio.ogg.php
- Timestamp:
- 10/10/2021 01:15:16 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/ID3/module.audio.ogg.php
r51900 r51901 530 530 public function ParseOggPageHeader() { 531 531 // http://xiph.org/ogg/vorbis/doc/framing.html 532 $oggheader = array();533 532 $oggheader['page_start_offset'] = $this->ftell(); // where we started from in the file 534 533 … … 682 681 $VorbisCommentPage++; 683 682 684 if ($oggpageinfo = $this->ParseOggPageHeader()) { 685 $info['ogg']['pageheader'][$oggpageinfo['page_seqno']] = $oggpageinfo; 686 687 // First, save what we haven't read yet 688 $AsYetUnusedData = substr($commentdata, $commentdataoffset); 689 690 // Then take that data off the end 691 $commentdata = substr($commentdata, 0, $commentdataoffset); 692 693 // Add [headerlength] bytes of dummy data for the Ogg Page Header, just to keep absolute offsets correct 694 $commentdata .= str_repeat("\x00", 27 + $info['ogg']['pageheader'][$oggpageinfo['page_seqno']]['page_segments']); 695 $commentdataoffset += (27 + $info['ogg']['pageheader'][$oggpageinfo['page_seqno']]['page_segments']); 696 697 // Finally, stick the unused data back on the end 698 $commentdata .= $AsYetUnusedData; 699 700 //$commentdata .= $this->fread($info['ogg']['pageheader'][$oggpageinfo['page_seqno']]['page_length']); 701 if (!isset($info['ogg']['pageheader'][$VorbisCommentPage])) { 702 $this->warning('undefined Vorbis Comment page "'.$VorbisCommentPage.'" at offset '.$this->ftell()); 703 break; 704 } 705 $readlength = self::OggPageSegmentLength($info['ogg']['pageheader'][$VorbisCommentPage], 1); 706 if ($readlength <= 0) { 707 $this->warning('invalid length Vorbis Comment page "'.$VorbisCommentPage.'" at offset '.$this->ftell()); 708 break; 709 } 710 $commentdata .= $this->fread($readlength); 711 712 //$filebaseoffset += $oggpageinfo['header_end_offset'] - $oggpageinfo['page_start_offset']; 713 } else { 714 $this->warning('failed to ParseOggPageHeader() at offset '.$this->ftell()); 683 $oggpageinfo = $this->ParseOggPageHeader(); 684 $info['ogg']['pageheader'][$oggpageinfo['page_seqno']] = $oggpageinfo; 685 686 // First, save what we haven't read yet 687 $AsYetUnusedData = substr($commentdata, $commentdataoffset); 688 689 // Then take that data off the end 690 $commentdata = substr($commentdata, 0, $commentdataoffset); 691 692 // Add [headerlength] bytes of dummy data for the Ogg Page Header, just to keep absolute offsets correct 693 $commentdata .= str_repeat("\x00", 27 + $info['ogg']['pageheader'][$oggpageinfo['page_seqno']]['page_segments']); 694 $commentdataoffset += (27 + $info['ogg']['pageheader'][$oggpageinfo['page_seqno']]['page_segments']); 695 696 // Finally, stick the unused data back on the end 697 $commentdata .= $AsYetUnusedData; 698 699 //$commentdata .= $this->fread($info['ogg']['pageheader'][$oggpageinfo['page_seqno']]['page_length']); 700 if (!isset($info['ogg']['pageheader'][$VorbisCommentPage])) { 701 $this->warning('undefined Vorbis Comment page "'.$VorbisCommentPage.'" at offset '.$this->ftell()); 715 702 break; 716 703 } 704 $readlength = self::OggPageSegmentLength($info['ogg']['pageheader'][$VorbisCommentPage], 1); 705 if ($readlength <= 0) { 706 $this->warning('invalid length Vorbis Comment page "'.$VorbisCommentPage.'" at offset '.$this->ftell()); 707 break; 708 } 709 $commentdata .= $this->fread($readlength); 710 711 //$filebaseoffset += $oggpageinfo['header_end_offset'] - $oggpageinfo['page_start_offset']; 717 712 } 718 713 $ThisFileInfo_ogg_comments_raw[$i]['offset'] = $commentdataoffset;
Note: See TracChangeset
for help on using the changeset viewer.