mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
video: make previously added hwdec params mechanism more generic
The mechanism introduced in b135af6842 assumed AVHWFramesContext would
be enough. Apparently it's not - the intended use with Rockchip (not
Rokchip btw.) requires accessing actual frame data in order to access
the AVDRMFrameDescriptor struct.
Just pass the entire mp_image to the new function. This is more
flexible, although it slightly worries me that it will be less reusable
for things which require setting up mp_image_params before any real
frames are processed (such as filters).
This commit is contained in:
@@ -121,11 +121,12 @@ struct mp_image_params;
|
||||
// For now, all entries are strictly optional.
|
||||
struct hwcontext_fns {
|
||||
int av_hwdevice_type;
|
||||
// Set any mp_image_params fields that can not be set in generic code.
|
||||
// (Generic code sets width, height, hw_subfmt, etc., but some very specific
|
||||
// flags or such might require specific code for some hwcontexts.)
|
||||
void (*complete_image_params)(struct AVHWFramesContext *hw_frames,
|
||||
struct mp_image_params *p);
|
||||
// Set any mp_image fields that require hwcontext specific code, such as
|
||||
// fields or flags not present in AVFrame or AVHWFramesContext in a
|
||||
// portable way. This is called directly after img is converted from an
|
||||
// AVFrame, with all other fields already set. img.hwctx will be set, and
|
||||
// use the correct AV_HWDEVICE_TYPE_.
|
||||
void (*complete_image_params)(struct mp_image *img);
|
||||
};
|
||||
|
||||
// The parameter is of type enum AVHWDeviceType (as in int to avoid extensive
|
||||
|
||||
Reference in New Issue
Block a user