Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3c378c08 authored by Andreas Huber's avatar Andreas Huber Committed by Android Git Automerger
Browse files

am b16cf676: am 6d35d4c2: Merge change Ib16e5543 into eclair-mr2

Merge commit 'b16cf676bd3304bc0c5da4210d689f4e680219b1'

* commit 'b16cf676bd3304bc0c5da4210d689f4e680219b1':
  Fix the mp3 audio extractor that would occasionally return an invalid frame directly after a seek.
parents 29bc4602 366455da
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -33,6 +33,10 @@

namespace android {

// Everything must match except for
// protection, bitrate, padding, private bits and mode extension.
static const uint32_t kMask = 0xfffe0ccf;

static bool get_mp3_frame_size(
        uint32_t header, size_t *frame_size,
        int *out_sampling_rate = NULL, int *out_channels = NULL,
@@ -199,10 +203,6 @@ static bool Resync(
        }
    }

    // Everything must match except for
    // protection, bitrate, padding, private bits and mode extension.
    const uint32_t kMask = 0xfffe0ccf;

    const size_t kMaxFrameSize = 4096;
    uint8_t *buffer = new uint8_t[kMaxFrameSize];

@@ -490,7 +490,8 @@ status_t MP3Source::read(

        uint32_t header = U32_AT((const uint8_t *)buffer->data());

        if (get_mp3_frame_size(header, &frame_size)) {
        if ((header & kMask) == (mFixedHeader & kMask)
            && get_mp3_frame_size(header, &frame_size)) {
            break;
        }