[FFmpeg-devel] [PATCH 4/6] Support encoding of Active Format Description (AFD) in libx264
Derek Buitenhuis
derek.buitenhuis at gmail.com
Fri Nov 17 02:20:34 EET 2017
On 11/16/2017 6:34 PM, Devin Heitmueller wrote:
> + /* Active Format Description */
> + if (x4->afd) {
> + void *sei_data;
> + size_t sei_size;
> +
> + ret = ff_alloc_afd_sei(frame, 0, &sei_data, &sei_size);
> + if (ret < 0) {
> + av_log(ctx, AV_LOG_ERROR, "Not enough memory for AFD, skipping\n");
> + } else if (sei_data) {
In an OOM situation, we always fail hard.
> + x4->pic.extra_sei.payloads = av_realloc(x4->pic.extra_sei.payloads,
> + sizeof(x4->pic.extra_sei.payloads[0]) * (num_payloads + 1));
> + if (x4->pic.extra_sei.payloads == NULL) {
> + av_log(ctx, AV_LOG_ERROR, "Not enough memory for AFD, skipping\n");
This will leak the original x4->pic.extra_sei.payloads on failure, won't it?
Also, as above, we should fail hard here.
> + /* country code (SCTE 128-1 Sec 8.1.1) */
> + sei_data[0] = 181;
> + sei_data[1] = 0;
> + sei_data[2] = 49;
> +
> + /* country code (SCTE 128-1 Sec 8.1.2) */
> + AV_WL32(sei_data + 3, MKTAG('D', 'T', 'G', '1'));
> +
> + /* country code (SCTE 128-1 Sec 8.2.5) */
> + sei_data[7] = 0x41;
> + sei_data[8] = 0xf0 | side_data->data[0];
I assume these values are supposed to always be the same? Excuse my unfamiliarity
with SCTE-128 - country codes sounds like something you wouldn't want to hardcode.
- Derek
More information about the ffmpeg-devel
mailing list