This has a number of different possible effects, depending on the format
and origin of the src and dst frames. On input, src should be a usable
frame with valid buffers and dst should be blank (typically as just created
by av_frame_alloc()). src should have an associated hwframe context, and
dst may optionally have a format and associated hwframe context.
If src was created by mapping a frame from the hwframe context of dst,
then this function undoes the mapping - dst is replaced by a reference to
the frame that src was originally mapped from.
If both src and dst have an associated hwframe context, then this function
attempts to map the src frame from its hardware context to that of dst and
then fill dst with appropriate data to be usable there. This will only be
possible if the hwframe contexts and associated devices are compatible -
given compatible devices, av_hwframe_ctx_create_derived() can be used to
create a hwframe context for dst in which mapping should be possible.
If src has a hwframe context but dst does not, then the src frame is
mapped to normal memory and should thereafter be usable as a normal frame.
If the format is set on dst, then the mapping will attempt to create dst
with that format and fail if it is not possible. If format is unset (is
AV_PIX_FMT_NONE) then dst will be mapped with whatever the most appropriate
format to use is (probably the sw_format of the src hwframe context).
A return value of AVERROR(ENOSYS) indicates that the mapping is not
possible with the given arguments and hwframe setup, while other return
values indicate that it failed somehow.
@param dst Destination frame, to contain the mapping.
@param src Source frame, to be mapped.
@param flags Some combination of AV_HWFRAME_MAP_* flags.
@return Zero on success, negative AVERROR code on failure.
Map a hardware frame.
This has a number of different possible effects, depending on the format and origin of the src and dst frames. On input, src should be a usable frame with valid buffers and dst should be blank (typically as just created by av_frame_alloc()). src should have an associated hwframe context, and dst may optionally have a format and associated hwframe context.
If src was created by mapping a frame from the hwframe context of dst, then this function undoes the mapping - dst is replaced by a reference to the frame that src was originally mapped from.
If both src and dst have an associated hwframe context, then this function attempts to map the src frame from its hardware context to that of dst and then fill dst with appropriate data to be usable there. This will only be possible if the hwframe contexts and associated devices are compatible - given compatible devices, av_hwframe_ctx_create_derived() can be used to create a hwframe context for dst in which mapping should be possible.
If src has a hwframe context but dst does not, then the src frame is mapped to normal memory and should thereafter be usable as a normal frame. If the format is set on dst, then the mapping will attempt to create dst with that format and fail if it is not possible. If format is unset (is AV_PIX_FMT_NONE) then dst will be mapped with whatever the most appropriate format to use is (probably the sw_format of the src hwframe context).
A return value of AVERROR(ENOSYS) indicates that the mapping is not possible with the given arguments and hwframe setup, while other return values indicate that it failed somehow.
@param dst Destination frame, to contain the mapping. @param src Source frame, to be mapped. @param flags Some combination of AV_HWFRAME_MAP_* flags. @return Zero on success, negative AVERROR code on failure.