The width and height in MediaStreamTrack.getSettings are incorrect

I run the following code on iOS Safari:

const stream = await navigator.mediaDevices.getUserMedia({
  video: {
    width: 960,
    height: 540,
  },
});

const { width, height } = stream.getVideoTracks()[0].getSettings();
console.log(`${width} * ${height}`); // 960 * 540

setTimeout(() => {
  const { width, height } = stream.getVideoTracks()[0].getSettings();
  console.log(`setTimeout: ${width} * ${height}`); // setTimeout: 540 * 960
}, 600);

The width and height of width and height of the video track obtained by synchronously are different from those obtained by asynchronously.

This is my test result and userAgent:

Can someone help with this issue?

The width and height in MediaStreamTrack.getSettings are incorrect
 
 
Q