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

Commit a75e9fb4 authored by Andreas Huber's avatar Andreas Huber
Browse files

Fix for random audio output failures, properly dup() the file descriptor in...

Fix for random audio output failures, properly dup() the file descriptor in IMediaPlayer::setDataSource to assume ownership as the caller will otherwise close it.
parent dae04ca7
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -40,11 +40,13 @@ status_t StagefrightPlayer::setDataSource(const char *url) {
    return err;
}

// Warning: The filedescriptor passed into this method will only be valid until
// the method returns, if you want to keep it, dup it!
status_t StagefrightPlayer::setDataSource(int fd, int64_t offset, int64_t length) {
    LOGV("setDataSource(%d, %lld, %lld)", fd, offset, length);

    reset();
    mPlayer = new MediaPlayerImpl(fd, offset, length);
    mPlayer = new MediaPlayerImpl(dup(fd), offset, length);

    status_t err = mPlayer->initCheck();
    if (err != OK) {