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

Commit 71d4ecb1 authored by James Dong's avatar James Dong Committed by Android (Google) Code Review
Browse files

Merge "64-bit file size/offset support for media framework"

parents 9db9a291 b1262a8b
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -45,6 +45,7 @@ protected:


private:
private:
    FILE *mFile;
    FILE *mFile;
    int   mFd;
    status_t mInitCheck;
    status_t mInitCheck;
    sp<MediaSource> mSource;
    sp<MediaSource> mSource;
    bool mStarted;
    bool mStarted;
+3 −3
Original line number Original line Diff line number Diff line
@@ -48,13 +48,13 @@ public:


    virtual status_t initCheck() const = 0;
    virtual status_t initCheck() const = 0;


    virtual ssize_t readAt(off_t offset, void *data, size_t size) = 0;
    virtual ssize_t readAt(off64_t offset, void *data, size_t size) = 0;


    // Convenience methods:
    // Convenience methods:
    bool getUInt16(off_t offset, uint16_t *x);
    bool getUInt16(off64_t offset, uint16_t *x);


    // May return ERROR_UNSUPPORTED.
    // May return ERROR_UNSUPPORTED.
    virtual status_t getSize(off_t *size);
    virtual status_t getSize(off64_t *size);


    virtual uint32_t flags() {
    virtual uint32_t flags() {
        return 0;
        return 0;
+3 −3
Original line number Original line Diff line number Diff line
@@ -34,9 +34,9 @@ public:


    virtual status_t initCheck() const;
    virtual status_t initCheck() const;


    virtual ssize_t readAt(off_t offset, void *data, size_t size);
    virtual ssize_t readAt(off64_t offset, void *data, size_t size);


    virtual status_t getSize(off_t *size);
    virtual status_t getSize(off64_t *size);


    virtual DecryptHandle* DrmInitialization(DrmManagerClient *client);
    virtual DecryptHandle* DrmInitialization(DrmManagerClient *client);


@@ -59,7 +59,7 @@ private:
    int64_t mDrmBufSize;
    int64_t mDrmBufSize;
    unsigned char *mDrmBuf;
    unsigned char *mDrmBuf;


    ssize_t readAtDRM(off_t offset, void *data, size_t size);
    ssize_t readAtDRM(off64_t offset, void *data, size_t size);


    FileSource(const FileSource &);
    FileSource(const FileSource &);
    FileSource &operator=(const FileSource &);
    FileSource &operator=(const FileSource &);
+2 −2
Original line number Original line Diff line number Diff line
@@ -42,9 +42,9 @@ private:
    sp<DataSource> mSource;
    sp<DataSource> mSource;
    MediaBufferGroup *mGroup;
    MediaBufferGroup *mGroup;
    bool mStarted;
    bool mStarted;
    off_t mSize;
    off64_t mSize;
    int32_t mWidth, mHeight;
    int32_t mWidth, mHeight;
    off_t mOffset;
    off64_t mOffset;


    status_t parseJPEG();
    status_t parseJPEG();


+8 −7
Original line number Original line Diff line number Diff line
@@ -62,19 +62,20 @@ private:
    class Track;
    class Track;


    FILE *mFile;
    FILE *mFile;
    int  mFd;
    bool mUse4ByteNalLength;
    bool mUse4ByteNalLength;
    bool mUse32BitOffset;
    bool mUse32BitOffset;
    bool mIsFileSizeLimitExplicitlyRequested;
    bool mIsFileSizeLimitExplicitlyRequested;
    bool mPaused;
    bool mPaused;
    bool mStarted;
    bool mStarted;
    off_t mOffset;
    off64_t mOffset;
    off_t mMdatOffset;
    off_t mMdatOffset;
    uint8_t *mMoovBoxBuffer;
    uint8_t *mMoovBoxBuffer;
    off_t mMoovBoxBufferOffset;
    off64_t mMoovBoxBufferOffset;
    bool  mWriteMoovBoxToMemory;
    bool  mWriteMoovBoxToMemory;
    off_t mFreeBoxOffset;
    off64_t mFreeBoxOffset;
    bool mStreamableFile;
    bool mStreamableFile;
    off_t mEstimatedMoovBoxSize;
    off64_t mEstimatedMoovBoxSize;
    uint32_t mInterleaveDurationUs;
    uint32_t mInterleaveDurationUs;
    int32_t mTimeScale;
    int32_t mTimeScale;
    int64_t mStartTimestampUs;
    int64_t mStartTimestampUs;
@@ -83,7 +84,7 @@ private:


    List<Track *> mTracks;
    List<Track *> mTracks;


    List<off_t> mBoxes;
    List<off64_t> mBoxes;


    void setStartTimestampUs(int64_t timeUs);
    void setStartTimestampUs(int64_t timeUs);
    int64_t getStartTimestampUs();  // Not const
    int64_t getStartTimestampUs();  // Not const
@@ -145,8 +146,8 @@ private:
    void unlock();
    void unlock();


    // Acquire lock before calling these methods
    // Acquire lock before calling these methods
    off_t addSample_l(MediaBuffer *buffer);
    off64_t addSample_l(MediaBuffer *buffer);
    off_t addLengthPrefixedSample_l(MediaBuffer *buffer);
    off64_t addLengthPrefixedSample_l(MediaBuffer *buffer);


    inline size_t write(const void *ptr, size_t size, size_t nmemb, FILE* stream);
    inline size_t write(const void *ptr, size_t size, size_t nmemb, FILE* stream);
    bool exceedsFileSizeLimit();
    bool exceedsFileSizeLimit();
Loading