Changeset 741

Show
Ignore:
Timestamp:
11/16/07 10:41:46 (11 months ago)
Author:
gbooker
Message:

Work around Apple's code which seems to intentially make all AC-3 audio into stereo only (rdar: 5594478)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/perian-1.1/CAPublicUtility/CAStreamBasicDescription.cpp

    r219 r741  
    5050        #include <Endian.h> 
    5151#endif 
     52 
     53#import "CodecIDs.h" 
    5254 
    5355const AudioStreamBasicDescription       CAStreamBasicDescription::sEmpty = { 0.0, 0, 0, 0, 0, 0, 0, 0, 0 }; 
     
    272274                 
    273275                case kAudioFormatAC3: 
     276                case kAudioFormatAC3MS: 
    274277                        strcpy(outName, "AC-3"); 
    275278                        break; 
  • branches/perian-1.1/MatroskaCodecIDs.cpp

    r739 r741  
    720720                                 
    721721                        case kAudioFormatAC3: 
     722                        case kAudioFormatAC3MS: 
    722723                                acl = ac3ChannelLayouts[channelIndex]; 
    723724                                break; 
     
    753754        { kAudioFormatMPEGLayer2, 0x50 }, 
    754755        { kAudioFormatMPEGLayer3, 0x55 }, 
    755         { kAudioFormatAC3, 0x2000 }, 
     756        { kAudioFormatAC3MS, 0x2000 }, 
    756757        { kAudioFormatDTS, 0x2001 }, 
    757758        { kAudioFormatMPEG4AAC, 0xff }, 
     
    795796        { kAudioFormatMPEGLayer2, "A_MPEG/L2" }, 
    796797        { kAudioFormatMPEGLayer3, "A_MPEG/L3" }, 
    797         { kAudioFormatAC3, "A_AC3" }, 
     798        { kAudioFormatAC3MS, "A_AC3" }, 
    798799        { kAudioFormatAC3MS, "A_AC3" }, 
    799800        // anything special for these two? 
    800         { kAudioFormatAC3, "A_AC3/BSID9" }, 
    801         { kAudioFormatAC3, "A_AC3/BSID10" }, 
     801        { kAudioFormatAC3MS, "A_AC3/BSID9" }, 
     802        { kAudioFormatAC3MS, "A_AC3/BSID10" }, 
    802803        { kAudioFormatXiphVorbis, "A_VORBIS" }, 
    803804        { kAudioFormatXiphFLAC, "A_FLAC" }, 
  • branches/perian-1.1/MatroskaImportPrivate.cpp

    r714 r741  
    968968        switch ((*desc)->dataFormat) { 
    969969                case kAudioFormatAC3: 
     970                case kAudioFormatAC3MS: 
    970971                        replaceSoundDesc = parse_ac3_bitstream(&asbd, &acl, block.GetBuffer(0).Buffer(), block.GetFrameSize(0)); 
    971972                        break; 
  • branches/perian-1.1/bitstream_info.c

    r719 r741  
    1212#include <AudioToolbox/AudioToolbox.h> 
    1313#include <QuickTime/QuickTime.h> 
     14#include "CodecIDs.h" 
    1415 
    1516#import "ac3tab.h" 
     
    128129        memset(asbd, 0, sizeof(AudioStreamBasicDescription)); 
    129130        asbd->mSampleRate = sample_rate >> shift; 
    130         asbd->mFormatID = kAudioFormatAC3
     131        asbd->mFormatID = kAudioFormatAC3MS
    131132        asbd->mFramesPerPacket = 1; 
    132133        asbd->mChannelsPerFrame = nfchans_tbl[acmod] + lfe; 
  • branches/perian-1.1/ff_private.c

    r716 r741  
    320320                        break; 
    321321                case CODEC_ID_AC3: 
    322                         asbd->mFormatID = kAudioFormatAC3
     322                        asbd->mFormatID = kAudioFormatAC3MS
    323323                        map->vbr = 1; 
    324324                        break;