duckstation

duckstation, but archived from the revision just before upstream changed it to a proprietary software project, this version is the libre one
git clone https://git.neptards.moe/u3shit/duckstation.git
Log | Files | Refs | README | LICENSE

hwcontext_mediacodec.h (1988B)


      1 /*
      2  * This file is part of FFmpeg.
      3  *
      4  * FFmpeg is free software; you can redistribute it and/or
      5  * modify it under the terms of the GNU Lesser General Public
      6  * License as published by the Free Software Foundation; either
      7  * version 2.1 of the License, or (at your option) any later version.
      8  *
      9  * FFmpeg is distributed in the hope that it will be useful,
     10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12  * Lesser General Public License for more details.
     13  *
     14  * You should have received a copy of the GNU Lesser General Public
     15  * License along with FFmpeg; if not, write to the Free Software
     16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     17  */
     18 
     19 #ifndef AVUTIL_HWCONTEXT_MEDIACODEC_H
     20 #define AVUTIL_HWCONTEXT_MEDIACODEC_H
     21 
     22 /**
     23  * MediaCodec details.
     24  *
     25  * Allocated as AVHWDeviceContext.hwctx
     26  */
     27 typedef struct AVMediaCodecDeviceContext {
     28     /**
     29      * android/view/Surface handle, to be filled by the user.
     30      *
     31      * This is the default surface used by decoders on this device.
     32      */
     33     void *surface;
     34 
     35     /**
     36      * Pointer to ANativeWindow.
     37      *
     38      * It both surface and native_window is NULL, try to create it
     39      * automatically if create_window is true and OS support
     40      * createPersistentInputSurface.
     41      *
     42      * It can be used as output surface for decoder and input surface for
     43      * encoder.
     44      */
     45     void *native_window;
     46 
     47     /**
     48      * Enable createPersistentInputSurface automatically.
     49      *
     50      * Disabled by default.
     51      *
     52      * It can be enabled by setting this flag directly, or by setting
     53      * AVDictionary of av_hwdevice_ctx_create(), with "create_window" as key.
     54      * The second method is useful for ffmpeg cmdline, e.g., we can enable it
     55      * via:
     56      *   -init_hw_device mediacodec=mediacodec,create_window=1
     57      */
     58     int create_window;
     59 } AVMediaCodecDeviceContext;
     60 
     61 #endif /* AVUTIL_HWCONTEXT_MEDIACODEC_H */