Imported Upstream version 6.1
[platform/upstream/ffmpeg.git] / libavutil / hwcontext_mediacodec.h
index 101a980..fc0263c 100644 (file)
@@ -31,6 +31,31 @@ typedef struct AVMediaCodecDeviceContext {
      * This is the default surface used by decoders on this device.
      */
     void *surface;
+
+    /**
+     * Pointer to ANativeWindow.
+     *
+     * It both surface and native_window is NULL, try to create it
+     * automatically if create_window is true and OS support
+     * createPersistentInputSurface.
+     *
+     * It can be used as output surface for decoder and input surface for
+     * encoder.
+     */
+    void *native_window;
+
+    /**
+     * Enable createPersistentInputSurface automatically.
+     *
+     * Disabled by default.
+     *
+     * It can be enabled by setting this flag directly, or by setting
+     * AVDictionary of av_hwdevice_ctx_create(), with "create_window" as key.
+     * The second method is useful for ffmpeg cmdline, e.g., we can enable it
+     * via:
+     *   -init_hw_device mediacodec=mediacodec,create_window=1
+     */
+    int create_window;
 } AVMediaCodecDeviceContext;
 
 #endif /* AVUTIL_HWCONTEXT_MEDIACODEC_H */