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

Attachment: 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".

Reply via email to