> -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of > Michael Niedermayer > Sent: Friday, February 28, 2020 19:53 > To: FFmpeg development discussions and patches <ffmpeg- > de...@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [PATCH 2/4] avcodec/encode: restructure the > core encoding code > > On Thu, Feb 27, 2020 at 03:02:00PM -0300, James Almer wrote: > > This commit follows the same logic as 061a0c14bb, but for the encode API: > The > > new public encoding API will no longer be a wrapper around the old > deprecated > > one, and the internal API used by the encoders now consists of a single > > receive_packet() callback that pulls frames as required. > > > > Signed-off-by: James Almer <jamr...@gmail.com> > > --- > > libavcodec/avcodec.h | 12 +- > > libavcodec/encode.c | 268 ++++++++++++++++++++++++++++++++------ > ---- > > libavcodec/encode.h | 39 ++++++ > > libavcodec/internal.h | 7 +- > > libavcodec/utils.c | 12 +- > > 5 files changed, 268 insertions(+), 70 deletions(-) > > create mode 100644 libavcodec/encode.h > > this seems to break build here > : > > ffbuild/common.mak:59: recipe for target 'libavcodec/vaapi_encode_vp9.o' > failed > make: *** [libavcodec/vaapi_encode_vp9.o] Error 1 > libavcodec/vaapi_encode_mjpeg.c:562:6: error: ‘AVCodec {aka struct > AVCodec}’ has no member named ‘send_frame’; did you mean ‘long_name’? > .send_frame = &ff_vaapi_encode_send_frame, > ^~~~~~~~~~ > long_name > libavcodec/vaapi_encode_mjpeg.c:562:23: warning: initialization from > incompatible pointer type [-Wincompatible-pointer-types] > .send_frame = &ff_vaapi_encode_send_frame, > ^ > libavcodec/vaapi_encode_mjpeg.c:562:23: note: (near initialization for > ‘ff_mjpeg_vaapi_encoder.encode_sub’) > ffbuild/common.mak:59: recipe for target > 'libavcodec/vaapi_encode_mjpeg.o' failed > make: *** [libavcodec/vaapi_encode_mjpeg.o] Error 1 > libavcodec/vaapi_encode_h265.c:1290:6: error: ‘AVCodec {aka struct > AVCodec}’ has no member named ‘send_frame’; did you mean ‘long_name’? > .send_frame = &ff_vaapi_encode_send_frame, > ^~~~~~~~~~ > long_name > libavcodec/vaapi_encode_h265.c:1290:23: warning: initialization from > incompatible pointer type [-Wincompatible-pointer-types] > .send_frame = &ff_vaapi_encode_send_frame, > ^ > libavcodec/vaapi_encode_h265.c:1290:23: note: (near initialization for > ‘ff_hevc_vaapi_encoder.encode_sub’) > libavcodec/vaapi_encode_mpeg2.c:700:6: error: ‘AVCodec {aka struct > AVCodec}’ has no member named ‘send_frame’; did you mean ‘long_name’? > .send_frame = &ff_vaapi_encode_send_frame, > ^~~~~~~~~~ > long_name > libavcodec/vaapi_encode_mpeg2.c:700:23: warning: initialization from > incompatible pointer type [-Wincompatible-pointer-types] > .send_frame = &ff_vaapi_encode_send_frame, > ^ > libavcodec/vaapi_encode_mpeg2.c:700:23: note: (near initialization for > ‘ff_mpeg2_vaapi_encoder.encode_sub’) > ffbuild/common.mak:59: recipe for target 'libavcodec/vaapi_encode_h265.o' > failed > make: *** [libavcodec/vaapi_encode_h265.o] Error 1 > ffbuild/common.mak:59: recipe for target > 'libavcodec/vaapi_encode_mpeg2.o' failed > make: *** [libavcodec/vaapi_encode_mpeg2.o] Error 1 > libavcodec/vaapi_encode_h264.c:1354:6: error: ‘AVCodec {aka struct > AVCodec}’ has no member named ‘send_frame’; did you mean ‘long_name’? > .send_frame = &ff_vaapi_encode_send_frame, > ^~~~~~~~~~ > long_name > libavcodec/vaapi_encode_h264.c:1354:23: warning: initialization from > incompatible pointer type [-Wincompatible-pointer-types] > .send_frame = &ff_vaapi_encode_send_frame, > ^ > libavcodec/vaapi_encode_h264.c:1354:23: note: (near initialization for > ‘ff_h264_vaapi_encoder.encode_sub’) > ffbuild/common.mak:59: recipe for target 'libavcodec/vaapi_encode_h264.o' > failed > make: *** [libavcodec/vaapi_encode_h264.o] Error 1 > libavcodec/vaapi_encode_vp8.c:255:6: error: ‘AVCodec {aka struct AVCodec}’ > has no member named ‘send_frame’; did you mean ‘long_name’? > .send_frame = &ff_vaapi_encode_send_frame, > ^~~~~~~~~~ > long_name > libavcodec/vaapi_encode_vp8.c:255:23: warning: initialization from > incompatible pointer type [-Wincompatible-pointer-types] > .send_frame = &ff_vaapi_encode_send_frame, > ^ > libavcodec/vaapi_encode_vp8.c:255:23: note: (near initialization for > ‘ff_vp8_vaapi_encoder.encode_sub’) > ffbuild/common.mak:59: recipe for target 'libavcodec/vaapi_encode_vp8.o' > failed > make: *** [libavcodec/vaapi_encode_vp8.o] Error 1
I think that's because vaapi_encode (use send_frame) needs to be transferred into the new API (which removes send_frame) at the same time. See descriptions in [0/4]: PATCH 2/4 can't be applied until all the relevant encoders have been adapted, and said changes squashed into it. This means librav1e, nvenc, amfenc, v4l2_m2m, and vaapi_enc. - Linjie _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".