OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
732 const AtomicString& trackType, | 732 const AtomicString& trackType, |
733 const AtomicString& byteStreamTrackID) const { | 733 const AtomicString& byteStreamTrackID) const { |
734 // This is a helper for implementation of default track label and default | 734 // This is a helper for implementation of default track label and default |
735 // track language algorithms. | 735 // track language algorithms. |
736 // defaultTrackLabel spec: | 736 // defaultTrackLabel spec: |
737 // https://w3c.github.io/media-source/#sourcebuffer-default-track-label | 737 // https://w3c.github.io/media-source/#sourcebuffer-default-track-label |
738 // defaultTrackLanguage spec: | 738 // defaultTrackLanguage spec: |
739 // https://w3c.github.io/media-source/#sourcebuffer-default-track-language | 739 // https://w3c.github.io/media-source/#sourcebuffer-default-track-language |
740 | 740 |
741 // 1. If trackDefaults contains a TrackDefault object with a type attribute | 741 // 1. If trackDefaults contains a TrackDefault object with a type attribute |
742 // equal to type and a byteStreamTrackID attribute equal to byteStreamTrack
ID, | 742 // equal to type and a byteStreamTrackID attribute equal to |
743 // then return the value of the label/language attribute on this matching | 743 // byteStreamTrackID, then return the value of the label/language attribute |
744 // object and abort these steps. | 744 // on this matching object and abort these steps. |
745 // 2. If trackDefaults contains a TrackDefault object with a type attribute | 745 // 2. If trackDefaults contains a TrackDefault object with a type attribute |
746 // equal to type and a byteStreamTrackID attribute equal to an empty | 746 // equal to type and a byteStreamTrackID attribute equal to an empty |
747 // string, then return the value of the label/language attribute on this | 747 // string, then return the value of the label/language attribute on this |
748 // matching object and abort these steps. | 748 // matching object and abort these steps. |
749 // 3. Return an empty string to the caller | 749 // 3. Return an empty string to the caller |
750 const TrackDefault* trackDefaultWithEmptyBytestreamId = nullptr; | 750 const TrackDefault* trackDefaultWithEmptyBytestreamId = nullptr; |
751 for (unsigned i = 0; i < m_trackDefaults->length(); ++i) { | 751 for (unsigned i = 0; i < m_trackDefaults->length(); ++i) { |
752 const TrackDefault* trackDefault = m_trackDefaults->item(i); | 752 const TrackDefault* trackDefault = m_trackDefaults->item(i); |
753 if (trackDefault->type() != trackType) | 753 if (trackDefault->type() != trackType) |
754 continue; | 754 continue; |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
930 WebString language = trackInfo.language; | 930 WebString language = trackInfo.language; |
931 // 5.2.3 If audio language equals an empty string or the 'und' BCP 47 | 931 // 5.2.3 If audio language equals an empty string or the 'und' BCP 47 |
932 // value, then run the default track language algorithm with | 932 // value, then run the default track language algorithm with |
933 // byteStreamTrackID set to audio byte stream track ID and type set | 933 // byteStreamTrackID set to audio byte stream track ID and type set |
934 // to "audio" and assign the value returned by the algorithm to | 934 // to "audio" and assign the value returned by the algorithm to |
935 // audio language. | 935 // audio language. |
936 if (language.isEmpty() || language == "und") | 936 if (language.isEmpty() || language == "und") |
937 language = defaultTrackLanguage(TrackDefault::audioKeyword(), | 937 language = defaultTrackLanguage(TrackDefault::audioKeyword(), |
938 byteStreamTrackID); | 938 byteStreamTrackID); |
939 // 5.2.4 Let audio label be a label specified in the initialization | 939 // 5.2.4 Let audio label be a label specified in the initialization |
940 // segment for this track or an empty string if no label info is pre
sent. | 940 // segment for this track or an empty string if no label info is |
| 941 // present. |
941 WebString label = trackInfo.label; | 942 WebString label = trackInfo.label; |
942 // 5.3.5 If audio label equals an empty string, then run the default track | 943 // 5.3.5 If audio label equals an empty string, then run the default track |
943 // label algorithm with byteStreamTrackID set to audio byte stream | 944 // label algorithm with byteStreamTrackID set to audio byte stream |
944 // track ID and type set to "audio" and assign the value returned by | 945 // track ID and type set to "audio" and assign the value returned by |
945 // the algorithm to audio label. | 946 // the algorithm to audio label. |
946 if (label.isEmpty()) | 947 if (label.isEmpty()) |
947 label = | 948 label = |
948 defaultTrackLabel(TrackDefault::audioKeyword(), byteStreamTrackID); | 949 defaultTrackLabel(TrackDefault::audioKeyword(), byteStreamTrackID); |
949 // 5.2.6 Let audio kinds be an array of kind strings specified in the | 950 // 5.2.6 Let audio kinds be an array of kind strings specified in the |
950 // initialization segment for this track or an empty array if no | 951 // initialization segment for this track or an empty array if no |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
990 WebString language = trackInfo.language; | 991 WebString language = trackInfo.language; |
991 // 5.3.3 If video language equals an empty string or the 'und' BCP 47 | 992 // 5.3.3 If video language equals an empty string or the 'und' BCP 47 |
992 // value, then run the default track language algorithm with | 993 // value, then run the default track language algorithm with |
993 // byteStreamTrackID set to video byte stream track ID and type set | 994 // byteStreamTrackID set to video byte stream track ID and type set |
994 // to "video" and assign the value returned by the algorithm to | 995 // to "video" and assign the value returned by the algorithm to |
995 // video language. | 996 // video language. |
996 if (language.isEmpty() || language == "und") | 997 if (language.isEmpty() || language == "und") |
997 language = defaultTrackLanguage(TrackDefault::videoKeyword(), | 998 language = defaultTrackLanguage(TrackDefault::videoKeyword(), |
998 byteStreamTrackID); | 999 byteStreamTrackID); |
999 // 5.3.4 Let video label be a label specified in the initialization | 1000 // 5.3.4 Let video label be a label specified in the initialization |
1000 // segment for this track or an empty string if no label info is pre
sent. | 1001 // segment for this track or an empty string if no label info is |
| 1002 // present. |
1001 WebString label = trackInfo.label; | 1003 WebString label = trackInfo.label; |
1002 // 5.3.5 If video label equals an empty string, then run the default track | 1004 // 5.3.5 If video label equals an empty string, then run the default track |
1003 // label algorithm with byteStreamTrackID set to video byte stream | 1005 // label algorithm with byteStreamTrackID set to video byte stream |
1004 // track ID and type set to "video" and assign the value returned by | 1006 // track ID and type set to "video" and assign the value returned by |
1005 // the algorithm to video label. | 1007 // the algorithm to video label. |
1006 if (label.isEmpty()) | 1008 if (label.isEmpty()) |
1007 label = | 1009 label = |
1008 defaultTrackLabel(TrackDefault::videoKeyword(), byteStreamTrackID); | 1010 defaultTrackLabel(TrackDefault::videoKeyword(), byteStreamTrackID); |
1009 // 5.3.6 Let video kinds be an array of kind strings specified in the | 1011 // 5.3.6 Let video kinds be an array of kind strings specified in the |
1010 // initialization segment for this track or an empty array if no | 1012 // initialization segment for this track or an empty array if no |
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1484 visitor->trace(m_removeAsyncPartRunner); | 1486 visitor->trace(m_removeAsyncPartRunner); |
1485 visitor->trace(m_appendStreamAsyncPartRunner); | 1487 visitor->trace(m_appendStreamAsyncPartRunner); |
1486 visitor->trace(m_stream); | 1488 visitor->trace(m_stream); |
1487 visitor->trace(m_audioTracks); | 1489 visitor->trace(m_audioTracks); |
1488 visitor->trace(m_videoTracks); | 1490 visitor->trace(m_videoTracks); |
1489 EventTargetWithInlineData::trace(visitor); | 1491 EventTargetWithInlineData::trace(visitor); |
1490 ActiveDOMObject::trace(visitor); | 1492 ActiveDOMObject::trace(visitor); |
1491 } | 1493 } |
1492 | 1494 |
1493 } // namespace blink | 1495 } // namespace blink |
OLD | NEW |