mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-04 06:08:26 +02:00
avcodec/mediacodecenc: check missing Surface
It's an invalid combination of Java MediaCodec with ANativeWindow. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
This commit is contained in:
parent
a63834b236
commit
567633895b
@ -167,6 +167,16 @@ static av_cold int mediacodec_init(AVCodecContext *avctx)
|
||||
av_log(avctx, AV_LOG_ERROR, "Missing hw_device_ctx or hwaccel_context for AV_PIX_FMT_MEDIACODEC\n");
|
||||
goto bailout;
|
||||
}
|
||||
/* Although there is a method ANativeWindow_toSurface() introduced in
|
||||
* API level 26, it's easier and safe to always require a Surface for
|
||||
* Java MediaCodec.
|
||||
*/
|
||||
if (!s->use_ndk_codec && !s->window->surface) {
|
||||
ret = AVERROR(EINVAL);
|
||||
av_log(avctx, AV_LOG_ERROR, "Missing jobject Surface for AV_PIX_FMT_MEDIACODEC. "
|
||||
"Please note that Java MediaCodec doesn't work with ANativeWindow.\n");
|
||||
goto bailout;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < FF_ARRAY_ELEMS(color_formats); i++) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user