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 Diff line number Diff line
@@ -45,6 +45,7 @@ protected:

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

    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:
    bool getUInt16(off_t offset, uint16_t *x);
    bool getUInt16(off64_t offset, uint16_t *x);

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

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

    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);

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

    status_t parseJPEG();

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

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

    List<Track *> mTracks;

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

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

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

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