diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-12-27 12:41:10 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-12-27 12:41:10 +0100 |
commit | d16079abf473b51be7686d20f8014bb48a095722 (patch) | |
tree | 1f9ac5e0111d5eaddd886fb9866abf5e30bd59c7 | |
parent | 57089084ba7ece20889b8196f68ad9b08e8db8ba (diff) | |
parent | 57b6704ecd0f56d6a3092e448687cfd837bb0ac1 (diff) | |
download | ffmpeg-d16079abf473b51be7686d20f8014bb48a095722.tar.gz |
Merge commit '57b6704ecd0f56d6a3092e448687cfd837bb0ac1'
* commit '57b6704ecd0f56d6a3092e448687cfd837bb0ac1':
avcodec: add AVCodecContext.sw_pix_fmt
Conflicts:
doc/APIchanges
libavcodec/avcodec.h
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | doc/APIchanges | 3 | ||||
-rw-r--r-- | libavcodec/avcodec.h | 7 | ||||
-rw-r--r-- | libavcodec/utils.c | 15 | ||||
-rw-r--r-- | libavcodec/version.h | 2 |
4 files changed, 22 insertions, 5 deletions
diff --git a/doc/APIchanges b/doc/APIchanges index 5b0e1e5824..caa05d13b8 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,9 @@ libavutil: 2014-08-09 API changes, most recent first: +201x-xx-xx - xxxxxxx - lavc 56.8.0 - avcodec.h + Add AVCodecContext.sw_pix_fmt. + 2014-12-04 - xxxxxxx - lavc 56.14.100 - dv_profile.h Add av_dv_codec_profile2(). diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 4b6b00cd02..527824601e 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3005,6 +3005,13 @@ typedef struct AVCodecContext { AVRational framerate; /** + * Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx. + * - encoding: unused. + * - decoding: Set by libavcodec before calling get_format() + */ + enum AVPixelFormat sw_pix_fmt; + + /** * Timebase in which pkt_dts/pts and AVPacket.dts/pts are. * Code outside libavcodec should access this field using: * av_codec_{get,set}_pkt_timebase(avctx) diff --git a/libavcodec/utils.c b/libavcodec/utils.c index f6d99ab3dd..1ec5caed82 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -890,10 +890,13 @@ static int get_buffer_internal(AVCodecContext *avctx, AVFrame *frame, int flags) if ((ret = ff_init_buffer_info(avctx, frame)) < 0) return ret; - if (hwaccel && hwaccel->alloc_frame) { - ret = hwaccel->alloc_frame(avctx, frame); - goto end; - } + if (hwaccel) { + if (hwaccel->alloc_frame) { + ret = hwaccel->alloc_frame(avctx, frame); + goto end; + } + } else + avctx->sw_pix_fmt = avctx->pix_fmt; #if FF_API_GET_BUFFER FF_DISABLE_DEPRECATION_WARNINGS @@ -1196,6 +1199,10 @@ int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt) while (fmt[n] != AV_PIX_FMT_NONE) ++n; + av_assert0(n >= 1); + avctx->sw_pix_fmt = fmt[n - 1]; + av_assert2(!is_hwaccel_pix_fmt(avctx->sw_pix_fmt)); + choices = av_malloc_array(n + 1, sizeof(*choices)); if (!choices) return AV_PIX_FMT_NONE; diff --git a/libavcodec/version.h b/libavcodec/version.h index 3124fb537b..d85a2542c7 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "libavutil/version.h" #define LIBAVCODEC_VERSION_MAJOR 56 -#define LIBAVCODEC_VERSION_MINOR 16 +#define LIBAVCODEC_VERSION_MINOR 17 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ |