After looking to the code I think that HEVCSEI should be be rewritten to
something like:
typedef struct H265RawSEIPayload {
uint32_t payload_type;
uint32_t payload_size;
union {
HEVCSEIPictureHash picture_hash;
HEVCSEIFramePacking frame_packing;
HEVCSEIDisplayOrientation display_orientation;
HEVCSEIPictureTiming picture_timing;
HEVCSEIA53Caption a53_caption;
HEVCSEIMasteringDisplay mastering_display;
HEVCSEIContentLight content_light;
int active_seq_parameter_set_id;
HEVCSEIAlternativeTransfer alternative_transfer;
} payload;
} H265RawSEIPayload;
typedef struct H265RawSEI {
H265RawNALUnitHeader nal_unit_header;
H265RawSEIPayload payload[HEVC_MAX_SEI_PAYLOADS];
uint8_t payload_count;
} H265RawSEI;
In the decode stage, the above structs should be initialized at:
static int decode_nal_sei_message(GetBitContext *gb, void *logctx,
HEVCSEI *s,
const HEVCParamSets *ps, int
nal_unit_type)
{
int payload_type = 0;
int payload_size = 0;
int byte = 0xFF;
av_log(logctx, AV_LOG_DEBUG, "Decoding SEI\n");
while (byte == 0xFF) {
if (get_bits_left(gb) < 16 || payload_type > INT_MAX - 255)
return AVERROR_INVALIDDATA;
byte = get_bits(gb, 8);
*payload_type += byte;*
}
byte = 0xFF;
while (byte == 0xFF) {
if (get_bits_left(gb) < 8 + 8LL*payload_size)
return AVERROR_INVALIDDATA;
byte = get_bits(gb, 8);
*payload_size += byte;*
}
My two cents.... the HEVC code is incomplete.
lyncher
On 26-07-2018 19:46, [email protected] wrote:
Hi,
In H264 there's a H264RawSEI type that allows creating new SEI
messages to be added to the video stream.
I was checking if it was possible to add new SEI messages to HEVC
video stream but I'm not able to find the equivalent object. There's
HEVCSEI type that has all the possible messages defined, but it would
be needed a type that has:
payload_type
payload_size
payload
What is the recommended approach to add new SEI messages to a HEVC
video stream?
Does current libavcodec supports encoding SEI messages to the HEVC
video stream?
Thanks
lyncher
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user