Title: [153912] trunk/Source/WebCore
Revision
153912
Author
[email protected]
Date
2013-08-09 16:09:10 -0700 (Fri, 09 Aug 2013)

Log Message

[Mac] some track language tags are not recognized
https://bugs.webkit.org/show_bug.cgi?id=119643

Reviewed by Dean Jackson.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Always call languageOfPrimaryAudioTrack(),
    a track may have changed so we may have a new language.
(WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack): Call [AVAssetTrack languageCode]
    if [AVAssetTrack extendedLanguageTag] returns NULL in case the media file has an old
    QuickTime language code.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (153911 => 153912)


--- trunk/Source/WebCore/ChangeLog	2013-08-09 23:00:08 UTC (rev 153911)
+++ trunk/Source/WebCore/ChangeLog	2013-08-09 23:09:10 UTC (rev 153912)
@@ -1,3 +1,17 @@
+2013-08-09  Eric Carlson  <[email protected]>
+
+        [Mac] some track language tags are not recognized
+        https://bugs.webkit.org/show_bug.cgi?id=119643
+
+        Reviewed by Dean Jackson.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Always call languageOfPrimaryAudioTrack(),
+            a track may have changed so we may have a new language.
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack): Call [AVAssetTrack languageCode]
+            if [AVAssetTrack extendedLanguageTag] returns NULL in case the media file has an old
+            QuickTime language code.
+
 2013-08-09  Dean Jackson  <[email protected]>
 
         Captions menu needs to reset text-align

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (153911 => 153912)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm	2013-08-09 23:00:08 UTC (rev 153911)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm	2013-08-09 23:09:10 UTC (rev 153912)
@@ -1045,7 +1045,7 @@
 
     sizeChanged();
 
-    if (!primaryAudioTrackLanguage.isNull() && primaryAudioTrackLanguage != languageOfPrimaryAudioTrack())
+    if (primaryAudioTrackLanguage != languageOfPrimaryAudioTrack())
         player()->characteristicChanged();
 }
 
@@ -1497,6 +1497,12 @@
     AVAssetTrack *track = [tracks objectAtIndex:0];
     NSString *language = [track extendedLanguageTag];
 
+    // 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 = [track languageCode];
+
     // Some legacy tracks have "und" as a language, treat that the same as no language at all.
     if (language && ![language isEqualToString:@"und"]) {
         m_languageOfPrimaryAudioTrack = language;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to