diff -r 490d5cc509ed -r cf61fcea0001 wp/wp-includes/ID3/module.audio-video.matroska.php --- a/wp/wp-includes/ID3/module.audio-video.matroska.php Tue Jun 09 11:14:17 2015 +0000 +++ b/wp/wp-includes/ID3/module.audio-video.matroska.php Mon Oct 14 17:39:30 2019 +0200 @@ -234,7 +234,7 @@ try { $this->parseEBML($info); } catch (Exception $e) { - $info['error'][] = 'EBML parser: '.$e->getMessage(); + $this->error('EBML parser: '.$e->getMessage()); } // calculate playtime @@ -330,11 +330,13 @@ break; case 'A_AC3': + case 'A_EAC3': case 'A_DTS': case 'A_MPEG/L3': case 'A_MPEG/L2': case 'A_FLAC': - getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio.'.($track_info['dataformat'] == 'mp2' ? 'mp3' : $track_info['dataformat']).'.php', __FILE__, true); + $module_dataformat = ($track_info['dataformat'] == 'mp2' ? 'mp3' : ($track_info['dataformat'] == 'eac3' ? 'ac3' : $track_info['dataformat'])); + getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio.'.$module_dataformat.'.php', __FILE__, true); if (!isset($info['matroska']['track_data_offsets'][$trackarray['TrackNumber']])) { $this->warning('Unable to parse audio data ['.basename(__FILE__).':'.__LINE__.'] because $info[matroska][track_data_offsets]['.$trackarray['TrackNumber'].'] not set'); @@ -352,7 +354,7 @@ } // analyze - $class = 'getid3_'.($track_info['dataformat'] == 'mp2' ? 'mp3' : $track_info['dataformat']); + $class = 'getid3_'.$module_dataformat; $header_data_key = $track_info['dataformat'][0] == 'm' ? 'mpeg' : $track_info['dataformat']; $getid3_audio = new $class($getid3_temp, __CLASS__); if ($track_info['dataformat'] == 'flac') { @@ -457,6 +459,7 @@ default: $this->warning('Unhandled audio type "'.(isset($trackarray['CodecID']) ? $trackarray['CodecID'] : '').'"'); + break; } $info['audio']['streams'][] = $track_info; @@ -524,6 +527,7 @@ default: $this->unhandledElement('header', __LINE__, $element_data); + break; } unset($element_data['offset'], $element_data['end']); @@ -562,15 +566,20 @@ default: $this->unhandledElement('seekhead.seek', __LINE__, $sub_seek_entry); } + break; } - - if ($seek_entry['target_id'] != EBML_ID_CLUSTER || !self::$hide_clusters) { // collect clusters only if required + if (!isset($seek_entry['target_id'])) { + $this->warning('seek_entry[target_id] unexpectedly not set at '.$seek_entry['offset']); + break; + } + if (($seek_entry['target_id'] != EBML_ID_CLUSTER) || !self::$hide_clusters) { // collect clusters only if required $info['matroska']['seek'][] = $seek_entry; } break; default: $this->unhandledElement('seekhead', __LINE__, $seek_entry); + break; } } break; @@ -653,6 +662,7 @@ default: $this->unhandledElement('track.video', __LINE__, $sub_subelement); + break; } } break; @@ -678,6 +688,7 @@ default: $this->unhandledElement('track.audio', __LINE__, $sub_subelement); + break; } } break; @@ -713,6 +724,7 @@ default: $this->unhandledElement('track.contentencodings.contentencoding.contentcompression', __LINE__, $sub_sub_sub_subelement); + break; } } break; @@ -736,24 +748,28 @@ default: $this->unhandledElement('track.contentencodings.contentencoding.contentcompression', __LINE__, $sub_sub_sub_subelement); + break; } } break; default: $this->unhandledElement('track.contentencodings.contentencoding', __LINE__, $sub_sub_subelement); + break; } } break; default: $this->unhandledElement('track.contentencodings', __LINE__, $sub_subelement); + break; } } break; default: $this->unhandledElement('track', __LINE__, $subelement); + break; } } @@ -762,6 +778,7 @@ default: $this->unhandledElement('tracks', __LINE__, $track_entry); + break; } } break; @@ -825,6 +842,7 @@ default: $this->unhandledElement('info.chaptertranslate', __LINE__, $sub_subelement); + break; } } $info_entry[$subelement['id_name']] = $chaptertranslate_entry; @@ -832,6 +850,7 @@ default: $this->unhandledElement('info', __LINE__, $subelement); + break; } } $info['matroska']['info'][] = $info_entry; @@ -868,6 +887,7 @@ default: $this->unhandledElement('cues.cuepoint.cuetrackpositions', __LINE__, $sub_sub_subelement); + break; } } $cuepoint_entry[$sub_subelement['id_name']][] = $cuetrackpositions_entry; @@ -879,6 +899,7 @@ default: $this->unhandledElement('cues.cuepoint', __LINE__, $sub_subelement); + break; } } $cues_entry[] = $cuepoint_entry; @@ -886,6 +907,7 @@ default: $this->unhandledElement('cues', __LINE__, $subelement); + break; } } $info['matroska']['cues'] = $cues_entry; @@ -927,6 +949,7 @@ default: $this->unhandledElement('tags.tag.targets', __LINE__, $sub_sub_subelement); + break; } } $tag_entry[$sub_subelement['id_name']] = $targets_entry; @@ -938,6 +961,7 @@ default: $this->unhandledElement('tags.tag', __LINE__, $sub_subelement); + break; } } $tags_entry[] = $tag_entry; @@ -945,6 +969,7 @@ default: $this->unhandledElement('tags', __LINE__, $subelement); + break; } } $info['matroska']['tags'] = $tags_entry; @@ -985,6 +1010,7 @@ default: $this->unhandledElement('attachments.attachedfile', __LINE__, $sub_subelement); + break; } } $info['matroska']['attachments'][] = $attachedfile_entry; @@ -992,6 +1018,7 @@ default: $this->unhandledElement('attachments', __LINE__, $subelement); + break; } } break; @@ -1051,6 +1078,7 @@ default: $this->unhandledElement('chapters.editionentry.chapteratom.chaptertrack', __LINE__, $sub_sub_sub_subelement); + break; } } $chapteratom_entry[$sub_sub_subelement['id_name']][] = $chaptertrack_entry; @@ -1070,6 +1098,7 @@ default: $this->unhandledElement('chapters.editionentry.chapteratom.chapterdisplay', __LINE__, $sub_sub_sub_subelement); + break; } } $chapteratom_entry[$sub_sub_subelement['id_name']][] = $chapterdisplay_entry; @@ -1077,6 +1106,7 @@ default: $this->unhandledElement('chapters.editionentry.chapteratom', __LINE__, $sub_sub_subelement); + break; } } $editionentry_entry[$sub_subelement['id_name']][] = $chapteratom_entry; @@ -1084,6 +1114,7 @@ default: $this->unhandledElement('chapters.editionentry', __LINE__, $sub_subelement); + break; } } $info['matroska']['chapters'][] = $editionentry_entry; @@ -1091,6 +1122,7 @@ default: $this->unhandledElement('chapters', __LINE__, $subelement); + break; } } break; @@ -1119,6 +1151,7 @@ default: $this->unhandledElement('cluster.silenttracks', __LINE__, $sub_subelement); + break; } } $cluster_entry[$subelement['id_name']][] = $cluster_silent_tracks; @@ -1149,6 +1182,7 @@ default: $this->unhandledElement('clusters.blockgroup', __LINE__, $sub_subelement); + break; } } $cluster_entry[$subelement['id_name']][] = $cluster_block_group; @@ -1160,6 +1194,7 @@ default: $this->unhandledElement('cluster', __LINE__, $subelement); + break; } $this->current_offset = $subelement['end']; } @@ -1181,12 +1216,14 @@ default: $this->unhandledElement('segment', __LINE__, $element_data); + break; } } break; default: $this->unhandledElement('root', __LINE__, $top_element); + break; } } } @@ -1339,6 +1376,7 @@ default: $this->unhandledElement('tag.simpletag', __LINE__, $element); + break; } } @@ -1490,6 +1528,7 @@ $CodecIDlist['A_AAC'] = 'aac'; $CodecIDlist['A_AAC/MPEG2/LC'] = 'aac'; $CodecIDlist['A_AC3'] = 'ac3'; + $CodecIDlist['A_EAC3'] = 'eac3'; $CodecIDlist['A_DTS'] = 'dts'; $CodecIDlist['A_FLAC'] = 'flac'; $CodecIDlist['A_MPEG/L1'] = 'mp1'; @@ -1748,4 +1787,4 @@ return $info; } -} \ No newline at end of file +}