@@ -787,13 +787,12 @@ shaka.media.MediaSourceEngine = class {
787
787
* @param {?shaka.media.SegmentReference } reference The segment reference
788
788
* we are appending, or null for init segments
789
789
* @param {!string } mimeType
790
- * @param {!number } timestampOffset
791
- * @return {?number }
790
+ * @return {{timestamp: ?number, metadata: !Array.<shaka.extern.ID3Metadata>} }
792
791
* @private
793
792
*/
794
- getTimestampAndDispatchMetadata_ ( contentType , data , reference , mimeType ,
795
- timestampOffset ) {
793
+ getTimestampAndDispatchMetadata_ ( contentType , data , reference , mimeType ) {
796
794
let timestamp = null ;
795
+ let metadata = [ ] ;
797
796
798
797
const uint8ArrayData = shaka . util . BufferUtils . toUint8 ( data ) ;
799
798
if ( shaka . util . MimeUtils . RAW_FORMATS . includes ( mimeType ) ) {
@@ -807,15 +806,15 @@ shaka.media.MediaSourceEngine = class {
807
806
timestamp = Math . round ( metadataTimestamp . data ) / 1000 ;
808
807
}
809
808
/** @private {shaka.extern.ID3Metadata} */
810
- const metadata = {
809
+ const id3Metadata = {
811
810
cueTime : reference . startTime ,
812
811
data : uint8ArrayData ,
813
812
frames : frames ,
814
813
dts : reference . startTime ,
815
814
pts : reference . startTime ,
816
815
} ;
817
816
this . playerInterface_ . onMetadata (
818
- [ metadata ] , /* offset= */ 0 , reference . endTime ) ;
817
+ [ id3Metadata ] , /* offset= */ 0 , reference . endTime ) ;
819
818
}
820
819
} else if ( mimeType . includes ( '/mp4' ) &&
821
820
reference && reference . timestampOffset == 0 &&
@@ -855,13 +854,9 @@ shaka.media.MediaSourceEngine = class {
855
854
if ( startTime != null ) {
856
855
timestamp = startTime ;
857
856
}
858
- const metadata = tsParser . getMetadata ( ) ;
859
- if ( metadata . length ) {
860
- this . playerInterface_ . onMetadata ( metadata , timestampOffset ,
861
- reference ? reference . endTime : null ) ;
862
- }
857
+ metadata = tsParser . getMetadata ( ) ;
863
858
}
864
- return timestamp ;
859
+ return { timestamp, metadata } ;
865
860
}
866
861
867
862
/**
@@ -925,8 +920,8 @@ shaka.media.MediaSourceEngine = class {
925
920
mimeType = this . transmuxers_ [ contentType ] . getOriginalMimeType ( ) ;
926
921
}
927
922
if ( reference ) {
928
- const timestamp = this . getTimestampAndDispatchMetadata_ (
929
- contentType , data , reference , mimeType , timestampOffset ) ;
923
+ const { timestamp, metadata } = this . getTimestampAndDispatchMetadata_ (
924
+ contentType , data , reference , mimeType ) ;
930
925
if ( timestamp != null ) {
931
926
if ( this . firstVideoTimestamp_ == null &&
932
927
contentType == ContentType . VIDEO ) {
@@ -988,6 +983,10 @@ shaka.media.MediaSourceEngine = class {
988
983
this . textSequenceModeOffset_ . resolve ( timestampOffset ) ;
989
984
}
990
985
}
986
+ if ( metadata . length ) {
987
+ this . playerInterface_ . onMetadata ( metadata , timestampOffset ,
988
+ reference ? reference . endTime : null ) ;
989
+ }
991
990
}
992
991
if ( hasClosedCaptions && contentType == ContentType . VIDEO ) {
993
992
if ( ! this . textEngine_ ) {
0 commit comments