diff options
author | Mark Thompson <sw@jkqxz.net> | 2016-05-18 10:19:07 +0100 |
---|---|---|
committer | Mark Thompson <sw@jkqxz.net> | 2016-06-09 21:15:39 +0100 |
commit | 02fa1ad9266f9b1ea11565ac2f93f45853e351e8 (patch) | |
tree | a4f17be0bcf0deb0c9f144a3828a0a072c33c938 /libavcodec | |
parent | 48e2967cd50c2e1a2a539fd697d20ead2c5c4cc8 (diff) | |
download | ffmpeg-02fa1ad9266f9b1ea11565ac2f93f45853e351e8.tar.gz |
vaapi_h264: Add source version identifier as unregistered SEI
Contains the libavcodec version, the VAAPI version and the libva
driver vendor string.
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/vaapi_encode_h264.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c index d991469b43..a2889806f9 100644 --- a/libavcodec/vaapi_encode_h264.c +++ b/libavcodec/vaapi_encode_h264.c @@ -606,6 +606,30 @@ static void vaapi_encode_h264_write_pic_timing(PutBitContext *pbc, } } +static void vaapi_encode_h264_write_identifier(PutBitContext *pbc, + VAAPIEncodeContext *ctx, + VAAPIEncodePicture *pic) +{ + const char *lavc = LIBAVCODEC_IDENT; + const char *vaapi = VA_VERSION_S; + const char *driver = vaQueryVendorString(ctx->hwctx->display); + char tmp[256]; + int i; + + // Random (version 4) ISO 11578 UUID. + uint8_t uuid[16] = { + 0x59, 0x94, 0x8b, 0x28, 0x11, 0xec, 0x45, 0xaf, + 0x96, 0x75, 0x19, 0xd4, 0x1f, 0xea, 0xa9, 0x4d, + }; + + for (i = 0; i < 16; i++) + u(8, uuid[i], uuid_iso_iec_11578); + + snprintf(tmp, sizeof(tmp), "%s / VAAPI %s / %s", lavc, vaapi, driver); + for (i = 0; i < sizeof(tmp) && tmp[i]; i++) + u(8, tmp[i], user_data_payload_byte); +} + static void vaapi_encode_h264_write_sei(PutBitContext *pbc, VAAPIEncodeContext *ctx, VAAPIEncodePicture *pic) @@ -633,6 +657,11 @@ static void vaapi_encode_h264_write_sei(PutBitContext *pbc, continue; write_payload = &vaapi_encode_h264_write_pic_timing; break; + case SEI_TYPE_USER_DATA_UNREGISTERED: + if (pic->encode_order != 0) + continue; + write_payload = &vaapi_encode_h264_write_identifier; + break; default: continue; } |