Title: [157982] branches/safari-537.73-branch/Source/WebCore

Diff

Modified: branches/safari-537.73-branch/Source/WebCore/ChangeLog (157981 => 157982)


--- branches/safari-537.73-branch/Source/WebCore/ChangeLog	2013-10-25 01:42:41 UTC (rev 157981)
+++ branches/safari-537.73-branch/Source/WebCore/ChangeLog	2013-10-25 01:44:07 UTC (rev 157982)
@@ -1,5 +1,19 @@
 2013-10-24  Lucas Forschler  <[email protected]>
 
+        Merge r154693
+
+    2013-08-26  Brent Fulgham  <[email protected]>
+
+            [Windows] some track language tags are not recognized
+            https://bugs.webkit.org/show_bug.cgi?id=120335
+
+            Reviewed by Eric Carlson.
+
+            * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Revise implementation
+            to match logic in platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjc.mm
+
+2013-10-24  Lucas Forschler  <[email protected]>
+
         Merge r154681
 
     2013-08-27  Joseph Pecoraro  <[email protected]>

Modified: branches/safari-537.73-branch/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp (157981 => 157982)


--- branches/safari-537.73-branch/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp	2013-10-25 01:42:41 UTC (rev 157981)
+++ branches/safari-537.73-branch/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp	2013-10-25 01:44:07 UTC (rev 157982)
@@ -841,6 +841,8 @@
     if (!avAsset(m_avfWrapper))
         return;
 
+    setDelayCharacteristicsChangedNotification(true);
+
     bool haveCCTrack = false;
     bool hasCaptions = false;
 
@@ -914,8 +916,10 @@
 
     sizeChanged();
 
-    if (!primaryAudioTrackLanguage.isNull() && primaryAudioTrackLanguage != languageOfPrimaryAudioTrack())
+    if (primaryAudioTrackLanguage != languageOfPrimaryAudioTrack())
         player()->characteristicChanged();
+
+    setDelayCharacteristicsChangedNotification(false);
 }
 
 void MediaPlayerPrivateAVFoundationCF::sizeChanged()
@@ -1095,6 +1099,12 @@
     AVCFAssetTrackRef track = (AVCFAssetTrackRef)CFArrayGetValueAtIndex(tracks.get(), 0);
     RetainPtr<CFStringRef> language = adoptCF(AVCFAssetTrackCopyExtendedLanguageTag(track));
 
+    // If the language code is stored as a QuickTime 5-bit packed code there aren't enough bits for a full
+    // RFC 4646 language tag so extendedLanguageTag returns null. In this case languageCode will return the
+    // ISO 639-2/T language code so check it.
+    if (!language)
+        language = adoptCF(AVCFAssetTrackCopyLanguageCode(track));
+
     // Some legacy tracks have "und" as a language, treat that the same as no language at all.
     if (language && CFStringCompare(language.get(), CFSTR("und"), kCFCompareCaseInsensitive) != kCFCompareEqualTo) {
         m_languageOfPrimaryAudioTrack = language.get();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to