On 20/02/17 06:31, wm4 wrote:
> On Sun, 19 Feb 2017 18:46:39 +0000
> Mark Thompson <[email protected]> wrote:
>
>> ---
>> doc/APIchanges | 3 +++
>> libavutil/pixdesc.c | 4 ++++
>> libavutil/pixfmt.h | 7 +++++++
>> libavutil/version.h | 2 +-
>> 4 files changed, 15 insertions(+), 1 deletion(-)
>>
>> diff --git a/doc/APIchanges b/doc/APIchanges
>> index 1e84c3803..253454358 100644
>> --- a/doc/APIchanges
>> +++ b/doc/APIchanges
>> @@ -13,6 +13,9 @@ libavutil: 2015-08-28
>>
>> API changes, most recent first:
>>
>> +2017-xx-xx - xxxxxxx - lavu 55.33.0 - pixfmt.h
>> + Add AV_PIX_FMT_OPENCL.
>> +
>> 2017-02-xx - xxxxxxx - lavc - avcodec.h
>> The vdpau hwaccel now works with the AVCodecContext.hw_frames_ctx and
>> AVCodecContext.hw_device_ctx APIs.
>> diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
>> index d69eeea9d..6a2742f11 100644
>> --- a/libavutil/pixdesc.c
>> +++ b/libavutil/pixdesc.c
>> @@ -1759,6 +1759,10 @@ static const AVPixFmtDescriptor
>> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>> .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR |
>> AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
>> },
>> + [AV_PIX_FMT_OPENCL] = {
>> + .name = "opencl",
>> + .flags = AV_PIX_FMT_FLAG_HWACCEL,
>> + },
>
> (I wonder if we have any rules on whether log2_chroma_w/h are supposed
> to be set for hwaccel formats, but it's already inconsistent, so no
> matter.)
Many of them support multiple different sw_formats (OpenCL can support pretty
much any if anyone cares to add them), so I doubt those fields can ever be
meaningful.
>> };
>> #if FF_API_PLUS1_MINUS1
>> FF_ENABLE_DEPRECATION_WARNINGS
>> diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
>> index 41498ccef..ae1e2349b 100644
>> --- a/libavutil/pixfmt.h
>> +++ b/libavutil/pixfmt.h
>> @@ -248,6 +248,13 @@ enum AVPixelFormat {
>> AV_PIX_FMT_GRAY12BE, ///< Y , 12bpp, big-endian
>> AV_PIX_FMT_GRAY12LE, ///< Y , 12bpp, little-endian
>>
>> + /**
>> + * Hardware surfaces used in OpenCL.
>> + * data[i] contain 2D image objects (typed in C as cl_mem, used
>> + * in OpenCL as image2d_t) for each plane of the surface.
>> + */
>> + AV_PIX_FMT_OPENCL,
>
> That's interesting. Normally hwaccel pixfmts have data only in data[3].
> I wonder how AVFrame.bufs is supposed to be set here?
The normal allocation comes up with:
bufs[plane] = reference to the cl_mem object in data[plane]
bufs[num_planes] = reference to the single cl_mem object from which all of the
planes were created
This isn't necessary, though - mapped and user-created frames can work in other
ways.
>> +
>> AV_PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if
>> you want to link with shared libav* because the number of formats might
>> differ between versions
>> };
>>
>> diff --git a/libavutil/version.h b/libavutil/version.h
>> index 5dbc57cc1..0f2b684fa 100644
>> --- a/libavutil/version.h
>> +++ b/libavutil/version.h
>> @@ -54,7 +54,7 @@
>> */
>>
>> #define LIBAVUTIL_VERSION_MAJOR 55
>> -#define LIBAVUTIL_VERSION_MINOR 32
>> +#define LIBAVUTIL_VERSION_MINOR 33
>> #define LIBAVUTIL_VERSION_MICRO 0
>>
>> #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel