On Tue, Apr 23, 2019 at 11:29:17AM +0800, Linjie Fu wrote: > Add support for max frame size: > - max_frame_size (bytes) to indicate the allowed max frame size. > - pass_num to indicate number of passes. > - delta_qp to indicate adjust qp value. > > Currently only AVC encoder can support this settings in multiple pass case. > If the frame size exceeds, the encoder will do more pak passes to adjust the > QP value to control the frame size. > > Set Default num_passes to 4 (1~4), set delta_qp[4] = {1, 1, 1, 1}, use > new_qp for encoder if frame size exceeds the limitation: > new_qp = base_qp + delta_qp[0] + delta_qp[1] + ... > > ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -f rawvideo \ > -v verbose -s:v 352x288 -i ./input.yuv -vf format=nv12,hwupload \ > -c:v h264_vaapi -profile:v main -g 30 -bf 3 -max_frame_size 40000 \ > -pass_num 2 -delta_qp 2 -vframes 100 -y ./max_frame_size.h264 > > Signed-off-by: Linjie Fu <linjie...@intel.com> > --- > libavcodec/vaapi_encode.c | 46 ++++++++++++++++++++++++++++++++++ > libavcodec/vaapi_encode.h | 11 ++++++++ > libavcodec/vaapi_encode_h264.c | 15 +++++++++++ > 3 files changed, 72 insertions(+)
fails to build CC libavcodec/vaapi_encode.o In file included from libavcodec/vaapi_encode.c:27:0: libavcodec/vaapi_encode.h:280:9: error: unknown type name ‘VAEncMiscParameterBufferMultiPassFrameSize’ VAEncMiscParameterBufferMultiPassFrameSize mfs; ^ libavcodec/vaapi_encode.c: In function ‘vaapi_encode_init_max_frame_size’: libavcodec/vaapi_encode.c:1660:33: error: ‘VAEncMiscParameterTypeMultiPassFrameSize’ undeclared (first use in this function) ctx->mfs_params.misc.type = VAEncMiscParameterTypeMultiPassFrameSize; ^ libavcodec/vaapi_encode.c:1660:33: note: each undeclared identifier is reported only once for each function it appears in libavcodec/vaapi_encode.c:1661:24: error: request for member ‘type’ in something not a structure or union ctx->mfs_params.mfs.type = VAEncMiscParameterTypeMultiPassFrameSize; ^ libavcodec/vaapi_encode.c:1662:24: error: request for member ‘max_frame_size’ in something not a structure or union ctx->mfs_params.mfs.max_frame_size = max_frame_size; ^ libavcodec/vaapi_encode.c:1663:24: error: request for member ‘num_passes’ in something not a structure or union ctx->mfs_params.mfs.num_passes = num_passes; ^ libavcodec/vaapi_encode.c:1664:24: error: request for member ‘delta_qp’ in something not a structure or union ctx->mfs_params.mfs.delta_qp = delta_qp; ^ make: *** [libavcodec/vaapi_encode.o] Error 1 CC libavcodec/vaapi_encode_h264.o In file included from libavcodec/vaapi_encode_h264.c:36:0: libavcodec/vaapi_encode.h:280:9: error: unknown type name ‘VAEncMiscParameterBufferMultiPassFrameSize’ VAEncMiscParameterBufferMultiPassFrameSize mfs; ^ make: *** [libavcodec/vaapi_encode_h264.o] Error 1 CC libavcodec/vaapi_encode_mpeg2.o In file included from libavcodec/vaapi_encode_mpeg2.c:28:0: libavcodec/vaapi_encode.h:280:9: error: unknown type name ‘VAEncMiscParameterBufferMultiPassFrameSize’ VAEncMiscParameterBufferMultiPassFrameSize mfs; ^ make: *** [libavcodec/vaapi_encode_mpeg2.o] Error 1 make: Target `all' not remade because of errors. [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB I do not agree with what you have to say, but I'll defend to the death your right to say it. -- Voltaire
signature.asc
Description: PGP signature
_______________________________________________ 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".