mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-19 20:32:15 +02:00
obs-ffmpeg: Use new side-data FFmpeg 6.1 API
Fixes for using FFmpeg 6.1 due to deprecations. Uses `#if` macros to allow builds for using older versions of FFmpeg. This commit replaces usage of `av_stream_add_side_data(...)` with `av_packet_side_data_add(...)`, as the former was deprecated in favor of the latter. The FFmpeg commit that deprecated `av_stream_add_side_data(...)` is [1]. The FFmpeg commit that introduced `av_packet_side_data_add(...)` is [2]. Note that the deprecation commit is after the new API function. The commit in between [3] appears to be changes that migrates to the usage of the new API function. [1]: avformat/avformat: use the side data from AVStream.codecpar5432d2aaca
[2]: avcodec/packet: add generic side data helpers74279227dd
[3]: avcodec/codec_par: add side data to AVCodecParameters21d7cc6fa9
This commit is contained in:
parent
cd784644f5
commit
758b47d4ed
@ -498,9 +498,17 @@ static void create_video_stream(struct ffmpeg_mux *ffm)
|
||||
av_content_light_metadata_alloc(&content_size);
|
||||
content->MaxCLL = max_luminance;
|
||||
content->MaxFALL = max_luminance;
|
||||
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
|
||||
av_stream_add_side_data(ffm->video_stream,
|
||||
AV_PKT_DATA_CONTENT_LIGHT_LEVEL,
|
||||
(uint8_t *)content, content_size);
|
||||
#else
|
||||
av_packet_side_data_add(
|
||||
&ffm->video_stream->codecpar->coded_side_data,
|
||||
&ffm->video_stream->codecpar->nb_coded_side_data,
|
||||
AV_PKT_DATA_CONTENT_LIGHT_LEVEL, (uint8_t *)content,
|
||||
content_size, 0);
|
||||
#endif
|
||||
|
||||
AVMasteringDisplayMetadata *const mastering =
|
||||
av_mastering_display_metadata_alloc();
|
||||
@ -516,10 +524,18 @@ static void create_video_stream(struct ffmpeg_mux *ffm)
|
||||
mastering->max_luminance = av_make_q(max_luminance, 1);
|
||||
mastering->has_primaries = 1;
|
||||
mastering->has_luminance = 1;
|
||||
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
|
||||
av_stream_add_side_data(ffm->video_stream,
|
||||
AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
|
||||
(uint8_t *)mastering,
|
||||
sizeof(*mastering));
|
||||
#else
|
||||
av_packet_side_data_add(
|
||||
&ffm->video_stream->codecpar->coded_side_data,
|
||||
&ffm->video_stream->codecpar->nb_coded_side_data,
|
||||
AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
|
||||
(uint8_t *)mastering, sizeof(*mastering), 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
if (ffm->output->oformat->flags & AVFMT_GLOBALHEADER)
|
||||
|
@ -168,9 +168,17 @@ static bool create_video_stream(struct ffmpeg_output *stream,
|
||||
av_content_light_metadata_alloc(&content_size);
|
||||
content->MaxCLL = hdr_nominal_peak_level;
|
||||
content->MaxFALL = hdr_nominal_peak_level;
|
||||
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
|
||||
av_stream_add_side_data(data->video,
|
||||
AV_PKT_DATA_CONTENT_LIGHT_LEVEL,
|
||||
(uint8_t *)content, content_size);
|
||||
#else
|
||||
av_packet_side_data_add(
|
||||
&data->video->codecpar->coded_side_data,
|
||||
&data->video->codecpar->nb_coded_side_data,
|
||||
AV_PKT_DATA_CONTENT_LIGHT_LEVEL, (uint8_t *)content,
|
||||
content_size, 0);
|
||||
#endif
|
||||
|
||||
AVMasteringDisplayMetadata *const mastering =
|
||||
av_mastering_display_metadata_alloc();
|
||||
@ -186,10 +194,18 @@ static bool create_video_stream(struct ffmpeg_output *stream,
|
||||
mastering->max_luminance = av_make_q(hdr_nominal_peak_level, 1);
|
||||
mastering->has_primaries = 1;
|
||||
mastering->has_luminance = 1;
|
||||
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
|
||||
av_stream_add_side_data(data->video,
|
||||
AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
|
||||
(uint8_t *)mastering,
|
||||
sizeof(*mastering));
|
||||
#else
|
||||
av_packet_side_data_add(
|
||||
&data->video->codecpar->coded_side_data,
|
||||
&data->video->codecpar->nb_coded_side_data,
|
||||
AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
|
||||
(uint8_t *)mastering, sizeof(*mastering), 0);
|
||||
#endif
|
||||
}
|
||||
context = avcodec_alloc_context3(NULL);
|
||||
context->codec_type = codec->type;
|
||||
|
@ -213,9 +213,17 @@ static bool create_video_stream(struct ffmpeg_data *data)
|
||||
av_content_light_metadata_alloc(&content_size);
|
||||
content->MaxCLL = hdr_nominal_peak_level;
|
||||
content->MaxFALL = hdr_nominal_peak_level;
|
||||
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
|
||||
av_stream_add_side_data(data->video,
|
||||
AV_PKT_DATA_CONTENT_LIGHT_LEVEL,
|
||||
(uint8_t *)content, content_size);
|
||||
#else
|
||||
av_packet_side_data_add(
|
||||
&data->video->codecpar->coded_side_data,
|
||||
&data->video->codecpar->nb_coded_side_data,
|
||||
AV_PKT_DATA_CONTENT_LIGHT_LEVEL, (uint8_t *)content,
|
||||
content_size, 0);
|
||||
#endif
|
||||
|
||||
AVMasteringDisplayMetadata *const mastering =
|
||||
av_mastering_display_metadata_alloc();
|
||||
@ -231,10 +239,18 @@ static bool create_video_stream(struct ffmpeg_data *data)
|
||||
mastering->max_luminance = av_make_q(hdr_nominal_peak_level, 1);
|
||||
mastering->has_primaries = 1;
|
||||
mastering->has_luminance = 1;
|
||||
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
|
||||
av_stream_add_side_data(data->video,
|
||||
AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
|
||||
(uint8_t *)mastering,
|
||||
sizeof(*mastering));
|
||||
#else
|
||||
av_packet_side_data_add(
|
||||
&data->video->codecpar->coded_side_data,
|
||||
&data->video->codecpar->nb_coded_side_data,
|
||||
AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
|
||||
(uint8_t *)mastering, sizeof(*mastering), 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
closest_format = data->config.format;
|
||||
|
Loading…
Reference in New Issue
Block a user