lavu: add a way to query hwcontext frame constraints
[libav.git] / libavutil / hwcontext_internal.h
index acc775c..27de1f9 100644 (file)
@@ -48,6 +48,12 @@ typedef struct HWContextType {
     size_t             device_priv_size;
 
     /**
+     * Size of the hardware-specific device configuration.
+     * (Used to query hwframe constraints.)
+     */
+    size_t             device_hwconfig_size;
+
+    /**
      * size of the public frame pool hardware-specific context,
      * i.e. AVHWFramesContext.hwctx
      */
@@ -61,6 +67,10 @@ typedef struct HWContextType {
     int              (*device_init)(AVHWDeviceContext *ctx);
     void             (*device_uninit)(AVHWDeviceContext *ctx);
 
+    int              (*frames_get_constraints)(AVHWDeviceContext *ctx,
+                                               const void *hwconfig,
+                                               AVHWFramesConstraints *constraints);
+
     int              (*frames_init)(AVHWFramesContext *ctx);
     void             (*frames_uninit)(AVHWFramesContext *ctx);
 
@@ -86,4 +96,7 @@ struct AVHWFramesInternal {
     AVBufferPool *pool_internal;
 };
 
+extern const HWContextType ff_hwcontext_type_cuda;
+extern const HWContextType ff_hwcontext_type_vdpau;
+
 #endif /* AVUTIL_HWCONTEXT_INTERNAL_H */