[FFmpeg-devel] [PATCH, v3 RFC 2/2] lavc/vaapi_decode: find exact va_profile for HEVC_REXT

Fu, Linjie linjie.fu at intel.com
Tue Apr 9 05:25:33 EEST 2019


> -----Original Message-----
> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf
> Of James Almer
> Sent: Monday, April 8, 2019 21:56
> To: ffmpeg-devel at ffmpeg.org
> Subject: Re: [FFmpeg-devel] [PATCH, v3 RFC 2/2] lavc/vaapi_decode: find
> exact va_profile for HEVC_REXT
> 
> On 4/7/2019 11:02 PM, Fu, Linjie wrote:
> >> -----Original Message-----
> >> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On
> Behalf
> >> Of Michael Niedermayer
> >> Sent: Friday, April 5, 2019 00:52
> >> To: FFmpeg development discussions and patches <ffmpeg-
> >> devel at ffmpeg.org>
> >> Subject: Re: [FFmpeg-devel] [PATCH, v3 RFC 2/2] lavc/vaapi_decode: find
> >> exact va_profile for HEVC_REXT
> >>
> >> On Thu, Apr 04, 2019 at 04:10:35PM +0800, Linjie Fu wrote:
> >>> Use the profile constraint flags to determine the exact va_profile for
> >>> HEVC_REXT.
> >>>
> >>> Directly cast PTLCommon to H265RawProfileTierLevel, and use
> >> ff_h265_get_profile
> >>> to get the exact profile.
> >>>
> >>> Signed-off-by: Linjie Fu <linjie.fu at intel.com>
> >>> ---
> >>> [v2]: use constraint flags to determine the exact profile, expose the
> >>> codec-specific stuff at the beginning.
> >>> [v3]: move the VA version check to fix the compile issue.
> >>> [RFC]: is it acceptable to cast PTLCommon to H265RawProfileTierLevel for
> >>> convenience? The members in PTLCommon should be strictly matched
> in
> >>> H265RawProfileTierLevel.
> >>>
> >>>  libavcodec/vaapi_decode.c | 73
> +++++++++++++++++++++++++++++++--
> >> ------
> >>>  1 file changed, 58 insertions(+), 15 deletions(-)
> >>
> >> breaks build with shared libs:
> >>
> >> libavcodec/libavcodec.so: undefined reference to `ff_h265_get_profile'
> >> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
> >> make: *** [ffmpeg_g] Error 1
> >> make: *** Waiting for unfinished jobs....
> >> libavcodec/libavcodec.so: undefined reference to `ff_h265_get_profile'
> >> libavcodec/libavcodec.so: undefined reference to `ff_h265_get_profile'
> >> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
> >> make: *** [ffplay_g] Error 1
> >> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
> >> make: *** [ffprobe_g] Error 1
> >>
> >>
> >
> > Hi Michael,
> >
> > Thanks for the build check and compile error messages.
> > Actually, I also did the compile check locally and through pre-patch system.
> >
> > We do shared libs compile with gcc and latest libva and msdk master deps,
> and it passes the check.
> > It seems this error occurs with clang.
> >
> >  Could you provide some details on how to reproduce it? (e.g. compiler,
> distro, deps, flags, etc.).
> >
> > Thus we can add into the system to refine the pre-patch check and have
> this clang compile issue fixed?
> >
> > Thanks,
> > Linjie
> 
> You need to add h265_profile_level.o to the build objects related to
> this module in libavcodec/Makefile. It's currently only being built for
> the hevc vaapi encoder, so if that's disabled, linking will fail.
> 
> It's most likely not an issue with shared builds. I'm guessing Michael's
> environment for that build had the hevc vaapi encoder disabled.

Yes, that's the problem and thanks for the comments.
I disabled hevc_vaapi encoder and reproduced this build issue.

With h265_profile_level.o added to the build objects of vaapi_decode,
this issue can be fixed.

Thanks,
Linjie


More information about the ffmpeg-devel mailing list