diff options
author | Michael Niedermayer | 2013-11-23 14:26:27 +0100 |
---|---|---|
committer | Michael Niedermayer | 2013-11-23 14:31:15 +0100 |
commit | 62e10c375968d9cbbe2a0bc321e00eef52d32917 (patch) | |
tree | 8c8a3a4b025d3cf54abb44a3ab988c58c2c9e615 /ffmpeg.h | |
parent | 94194bdcd7bfc2137ccd13e5c149567b9a917f4f (diff) | |
parent | 07fd0a22192805d56c635eb294dc26b0a54ae325 (diff) |
Merge commit '07fd0a22192805d56c635eb294dc26b0a54ae325'
* commit '07fd0a22192805d56c635eb294dc26b0a54ae325':
avconv: add infrastructure for using hwaccels
Conflicts:
ffmpeg.c
ffmpeg.h
ffmpeg_filter.c
ffmpeg_opt.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'ffmpeg.h')
-rw-r--r-- | ffmpeg.h | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -56,6 +56,18 @@ #define MAX_STREAMS 1024 /* arbitrary sanity check value */ +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 */ @@ -100,6 +112,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; @@ -275,6 +291,19 @@ typedef struct InputStream { int nb_filters; int reinit_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 { @@ -431,6 +460,8 @@ extern float max_error_rate; extern const AVIOInterruptCB int_cb; extern const OptionDef options[]; +extern const HWAccel hwaccels[]; + void term_init(void); void term_exit(void); |