diff options
author | Martin Herkt <lachs0r@srsfckn.biz> | 2016-06-25 02:25:44 +0200 |
---|---|---|
committer | Martin Herkt <lachs0r@srsfckn.biz> | 2016-06-25 02:25:44 +0200 |
commit | ad56f2c46ac6deec86870ec10f2a11a644df07d4 (patch) | |
tree | 89f2d90c5586560911e67c872b530c77f151168d /common/encode_lavc.h | |
parent | 0536841647ef7931bffb4386d8ffbb5b2b568e8a (diff) | |
parent | 393bb2a565dc1e27812e1dd20747814892f80da2 (diff) | |
download | mpv-ad56f2c46ac6deec86870ec10f2a11a644df07d4.tar.bz2 mpv-ad56f2c46ac6deec86870ec10f2a11a644df07d4.tar.xz |
Merge branch 'master' into release/current
Diffstat (limited to 'common/encode_lavc.h')
-rw-r--r-- | common/encode_lavc.h | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/common/encode_lavc.h b/common/encode_lavc.h index 0ab922f788..7bfe4e4a8f 100644 --- a/common/encode_lavc.h +++ b/common/encode_lavc.h @@ -46,8 +46,14 @@ struct encode_lavc_context { float vo_fps; - // these are processed from the options + // FFmpeg contexts. AVFormatContext *avc; + AVStream *vst; + AVStream *ast; + AVCodecContext *vcc; + AVCodecContext *acc; + + // these are processed from the options AVRational timebase; AVCodec *vc; AVCodec *ac; @@ -88,26 +94,31 @@ struct encode_lavc_context { }; // interface for vo/ao drivers -AVStream *encode_lavc_alloc_stream(struct encode_lavc_context *ctx, enum AVMediaType mt); -void encode_lavc_write_stats(struct encode_lavc_context *ctx, AVStream *stream); -int encode_lavc_write_frame(struct encode_lavc_context *ctx, AVPacket *packet); +int encode_lavc_alloc_stream(struct encode_lavc_context *ctx, + enum AVMediaType mt, AVStream **stream_out, + AVCodecContext **codec_out); +void encode_lavc_write_stats(struct encode_lavc_context *ctx, + AVCodecContext *stream); +int encode_lavc_write_frame(struct encode_lavc_context *ctx, AVStream *stream, + AVPacket *packet); int encode_lavc_supports_pixfmt(struct encode_lavc_context *ctx, enum AVPixelFormat format); -AVCodec *encode_lavc_get_codec(struct encode_lavc_context *ctx, AVStream *stream); -int encode_lavc_open_codec(struct encode_lavc_context *ctx, AVStream *stream); +int encode_lavc_open_codec(struct encode_lavc_context *ctx, + AVCodecContext *codec); int encode_lavc_available(struct encode_lavc_context *ctx); int encode_lavc_timesyncfailed(struct encode_lavc_context *ctx); int encode_lavc_start(struct encode_lavc_context *ctx); // returns 1 on success int encode_lavc_oformat_flags(struct encode_lavc_context *ctx); -double encode_lavc_getoffset(struct encode_lavc_context *ctx, AVStream *stream); +double encode_lavc_getoffset(struct encode_lavc_context *ctx, + AVCodecContext *codec); void encode_lavc_fail(struct encode_lavc_context *ctx, const char *format, ...); // report failure of encoding bool encode_lavc_set_csp(struct encode_lavc_context *ctx, - AVStream *stream, enum mp_csp csp); + AVCodecContext *codec, enum mp_csp csp); bool encode_lavc_set_csp_levels(struct encode_lavc_context *ctx, - AVStream *stream, enum mp_csp_levels lev); + AVCodecContext *codec, enum mp_csp_levels lev); enum mp_csp encode_lavc_get_csp(struct encode_lavc_context *ctx, - AVStream *stream); + AVCodecContext *codec); enum mp_csp_levels encode_lavc_get_csp_levels(struct encode_lavc_context *ctx, - AVStream *stream); + AVCodecContext *codec); #endif |