Parse format can be called multiple times, e.g., when resolution changed. If getInt32 fails, optional member variables will retain their previously set values without modification. This can be a big problem for new resolution with old crop info. This patch reset optional fields to zero when getInt32 failed.
Unified · Split
| @@ -537,6 +537,8 @@ static int mediacodec_wrap_sw_buffer(AVCodecContext *avctx, · 536 unmodified lines | ||
| 537 | 537 | av_log(avctx, AV_LOG_ERROR, "Could not get %s from format %s\n", key, format); \ |
| 538 | 538 | ret = AVERROR_EXTERNAL; \ |
| 539 | 539 | goto fail; \ |
| 540 | + } else { \ | |
| 541 | + (name) = 0; \ | |
| 540 | 542 | } \ |
| 541 | 543 | } while (0) \ |
| 542 | 544 | |