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

Commit 253dfdb9 authored by Andy McFadden's avatar Andy McFadden
Browse files

Rotate fallback size

If configuring the encoder for display-size recording fails, we drop
back to 720p.  This was done a bit too literally, and didn't look
good in portrait mode.  Rotate the fallback size as needed.

Bug 10826876

Change-Id: Id3130471fc1467afa8bf91d75c9d4a49245253c3
parent 6cc3a994
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -464,12 +464,16 @@ static status_t recordScreen(const char* fileName) {
    err = prepareEncoder(mainDpyInfo.fps, &encoder, &bufferProducer);

    if (err != NO_ERROR && !gSizeSpecified) {
        if (gVideoWidth != kFallbackWidth && gVideoHeight != kFallbackHeight) {
        // fallback is defined for landscape; swap if we're in portrait
        bool needSwap = gVideoWidth < gVideoHeight;
        uint32_t newWidth = needSwap ? kFallbackHeight : kFallbackWidth;
        uint32_t newHeight = needSwap ? kFallbackWidth : kFallbackHeight;
        if (gVideoWidth != newWidth && gVideoHeight != newHeight) {
            ALOGV("Retrying with 720p");
            fprintf(stderr, "WARNING: failed at %dx%d, retrying at 720p\n",
                    gVideoWidth, gVideoHeight);
            gVideoWidth = kFallbackWidth;
            gVideoHeight = kFallbackHeight;
            fprintf(stderr, "WARNING: failed at %dx%d, retrying at %dx%d\n",
                    gVideoWidth, gVideoHeight, newWidth, newHeight);
            gVideoWidth = newWidth;
            gVideoHeight = newHeight;
            err = prepareEncoder(mainDpyInfo.fps, &encoder, &bufferProducer);
        }
    }