diff options
author | Anton Khirnov <anton@khirnov.net> | 2013-11-02 22:06:36 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2013-11-23 11:55:43 +0100 |
commit | 07fd0a22192805d56c635eb294dc26b0a54ae325 (patch) | |
tree | 1ee9675c6b69f5cde5e44bbb31a9d5856894cbe0 /avconv.h | |
parent | d4df02131b5522a99a4e6035368484e809706ed5 (diff) | |
download | ffmpeg-07fd0a22192805d56c635eb294dc26b0a54ae325.tar.gz |
avconv: add infrastructure for using hwaccels
Diffstat (limited to 'avconv.h')
-rw-r--r-- | avconv.h | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -48,6 +48,18 @@ #define VSYNC_CFR 1 #define VSYNC_VFR 2 +enum HWAccelID { + HWACCEL_NONE = 0, + HWACCEL_AUTO, +}; + +typedef struct HWAccel { + const char *name; + int (*init)(AVCodecContext *s); + enum HWAccelID id; + enum AVPixelFormat pix_fmt; +} HWAccel; + /* select an input stream for an output stream */ typedef struct StreamMap { int disabled; /* 1 is this mapping is disabled by a negative map */ @@ -94,6 +106,10 @@ typedef struct OptionsContext { int nb_ts_scale; SpecifierOpt *dump_attachment; int nb_dump_attachment; + SpecifierOpt *hwaccels; + int nb_hwaccels; + SpecifierOpt *hwaccel_devices; + int nb_hwaccel_devices; /* output options */ StreamMap *stream_maps; @@ -230,6 +246,19 @@ typedef struct InputStream { * currently video and audio only */ InputFilter **filters; int nb_filters; + + /* hwaccel options */ + enum HWAccelID hwaccel_id; + char *hwaccel_device; + + /* hwaccel context */ + enum HWAccelID active_hwaccel_id; + void *hwaccel_ctx; + void (*hwaccel_uninit)(AVCodecContext *s); + int (*hwaccel_get_buffer)(AVCodecContext *s, AVFrame *frame, int flags); + int (*hwaccel_retrieve_data)(AVCodecContext *s, AVFrame *frame); + enum AVPixelFormat hwaccel_pix_fmt; + enum AVPixelFormat hwaccel_retrieved_pix_fmt; } InputStream; typedef struct InputFile { @@ -355,6 +384,8 @@ extern const AVIOInterruptCB int_cb; extern const OptionDef options[]; +extern const HWAccel hwaccels[]; + void reset_options(OptionsContext *o); void show_usage(void); |