Changeset 1149

Show
Ignore:
Timestamp:
09/13/09 19:09:43 (6 months ago)
Author:
astrange
Message:

MKV: Import cover.jpg as iTunes cover art.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/MatroskaImportPrivate.cpp

    r1144 r1149  
    757757        while (attachedFile && attachedFile->GetSize() > 0) { 
    758758                string fileMimeType = GetChild<KaxMimeType>(*attachedFile); 
     759                string fileName = UTFstring(GetChild<KaxFileName>(*attachedFile)).GetUTF8(); 
     760                 
    759761                /* The only attachments handled here are fonts, which currently can be truetype or opentype. 
    760762                   application/x-* is probably not a permanent MIME type, but it is current practice... */ 
     
    767769                                                          kATSFontFormatUnspecified, NULL, kATSOptionFlagsDefault, &container); 
    768770                        } 
     771                } 
     772                 
     773                bool isCoverArt = false, isJPEG; 
     774                 
     775                if (fileName == "cover.jpg") { 
     776                        isCoverArt = isJPEG = true; 
     777                } else if (fileName == "cover.png") { 
     778                        isCoverArt = true; 
     779                        isJPEG = false; 
     780                } 
     781                 
     782                if (isCoverArt) { 
     783                        KaxFileData & fileData = GetChild<KaxFileData>(*attachedFile); 
     784                        FourCharCode key = 'covr'; //iTunes cover art tag 
     785                        QTMetaDataRef movieMetaData; 
     786                        OSStatus err = QTCopyMovieMetaData(theMovie, &movieMetaData); 
     787 
     788                        err = QTMetaDataAddItem(movieMetaData,  
     789                                                          kQTMetaDataStorageFormatiTunes, kQTMetaDataKeyFormatiTunesShortForm,  
     790                                                          (UInt8 *)&key, sizeof(key), 
     791                                                          fileData.GetBuffer(),  
     792                                                          fileData.GetSize(),  
     793                                                          isJPEG ? kQTMetaDataTypeJPEGImage : kQTMetaDataTypePNGImage, NULL); 
     794                        if (err) 
     795                                Codecprintf(NULL, "MKV: Error adding cover art %d\n", err); 
     796                         
     797                        QTMetaDataRelease(movieMetaData); 
    769798                } 
    770799