Changeset 1014

Show
Ignore:
Timestamp:
01/19/09 08:53:27 (1 year ago)
Author:
gbooker
Message:

Apple seems determined to make the Apple TV suck more and more. Now it can no longer passthrough properly framed AC3 data. What's next, breaking all third-party codecs?
Now we no longer use the 'ac-3' fourcc as Apple seems to be incapable of adhering to their own documentation.

Files:

Legend:

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

    r989 r1014  
    986986                switch ((*desc)->dataFormat) { 
    987987                        case kAudioFormatAC3: 
    988                                 replaceSoundDesc = parse_ac3_bitstream(&asbd, &acl, block.GetBuffer(0).Buffer(), block.GetFrameSize(0), true); 
     988                                replaceSoundDesc = parse_ac3_bitstream(&asbd, &acl, block.GetBuffer(0).Buffer(), block.GetFrameSize(0)); 
    989989                                break; 
    990990                } 
  • trunk/bitstream_info.c

    r1008 r1014  
    8282 * @param buffer Pointer to the buffer data to scan 
    8383 * @param buff_size Size of the buffer 
    84  * @param wellFramed YES if the container is well frame, NO otherwise.  AVI is NO! 
    8584 * @return 1 if successfull, 0 otherwise 
    8685 */ 
    8786 
    88 int parse_ac3_bitstream(AudioStreamBasicDescription *asbd, AudioChannelLayout *acl, uint8_t *buffer, int buff_size, bool wellFramed
     87int parse_ac3_bitstream(AudioStreamBasicDescription *asbd, AudioChannelLayout *acl, uint8_t *buffer, int buff_size
    8988{ 
    9089        int offset = ac3_synchronize(buffer, buff_size); 
     
    142141        memset(asbd, 0, sizeof(AudioStreamBasicDescription)); 
    143142        asbd->mSampleRate = sample_rate >> shift; 
    144         if(wellFramed && offset == 0 && buff_size == framesize) 
    145                 asbd->mFormatID = kAudioFormatAC3; 
    146         else 
    147                 asbd->mFormatID = kAudioFormatAC3MS; 
     143        asbd->mFormatID = kAudioFormatAC3MS; 
    148144        asbd->mChannelsPerFrame = nfchans_tbl[acmod] + lfe; 
    149145         
  • trunk/bitstream_info.h

    r1008 r1014  
    1515#endif 
    1616 
    17 int parse_ac3_bitstream(AudioStreamBasicDescription *asbd, AudioChannelLayout *acl, uint8_t *buffer, int buff_size, bool wellFramed); 
     17int parse_ac3_bitstream(AudioStreamBasicDescription *asbd, AudioChannelLayout *acl, uint8_t *buffer, int buff_size); 
    1818 
    1919typedef struct FFusionParserContext 
  • trunk/ff_private.c

    r1007 r1014  
    292292                        QTMetaDataRelease(trackMetaData); 
    293293                } 
    294                 if(parse_ac3_bitstream(&asbd, &acl, firstFrame->data, firstFrame->size, false)) 
     294                if(parse_ac3_bitstream(&asbd, &acl, firstFrame->data, firstFrame->size)) 
    295295                { 
    296296                        useDefault = 0;