mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2025-01-17 22:55:38 +00:00
Updated VideoFFmpegComponent for deprecated functions in FFmpeg 5.1
This commit is contained in:
parent
bfdeb2e004
commit
e7f1a0f36c
|
@ -20,6 +20,13 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
|
|
||||||
|
#if LIBAVUTIL_VERSION_MAJOR >= 57 && LIBAVUTIL_VERSION_MINOR >= 28
|
||||||
|
// FFmpeg 5.1 and above.
|
||||||
|
#define CHANNELS ch_layout.nb_channels
|
||||||
|
#else
|
||||||
|
#define CHANNELS channels
|
||||||
|
#endif
|
||||||
|
|
||||||
VideoFFmpegComponent::VideoFFmpegComponent()
|
VideoFFmpegComponent::VideoFFmpegComponent()
|
||||||
: mRenderer {Renderer::getInstance()}
|
: mRenderer {Renderer::getInstance()}
|
||||||
, mRectangleOffset {0.0f, 0.0f}
|
, mRectangleOffset {0.0f, 0.0f}
|
||||||
|
@ -488,9 +495,18 @@ bool VideoFFmpegComponent::setupAudioFilters()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
char channelLayout[512];
|
std::string channelLayout(128, '\0');
|
||||||
av_get_channel_layout_string(channelLayout, sizeof(channelLayout), mAudioCodecContext->channels,
|
|
||||||
mAudioCodecContext->channel_layout);
|
#if LIBAVUTIL_VERSION_MAJOR >= 57 && LIBAVUTIL_VERSION_MINOR >= 28
|
||||||
|
// FFmpeg 5.1 and above.
|
||||||
|
AVChannelLayout chLayout {};
|
||||||
|
av_channel_layout_from_mask(&chLayout, mAudioCodecContext->ch_layout.u.mask);
|
||||||
|
av_channel_layout_describe(&chLayout, &channelLayout[0], 128);
|
||||||
|
av_channel_layout_uninit(&chLayout);
|
||||||
|
#else
|
||||||
|
av_get_channel_layout_string(&channelLayout[0], sizeof(channelLayout),
|
||||||
|
mAudioCodecContext->CHANNELS, mAudioCodecContext->channel_layout);
|
||||||
|
#endif
|
||||||
|
|
||||||
std::string filterArguments;
|
std::string filterArguments;
|
||||||
filterArguments.append("time_base=")
|
filterArguments.append("time_base=")
|
||||||
|
@ -757,7 +773,7 @@ void VideoFFmpegComponent::getProcessedFrames()
|
||||||
double pts {mAudioFrameResampled->pts * av_q2d(timeBase)};
|
double pts {mAudioFrameResampled->pts * av_q2d(timeBase)};
|
||||||
currFrame.pts = pts;
|
currFrame.pts = pts;
|
||||||
|
|
||||||
int bufferSize {mAudioFrameResampled->nb_samples * mAudioFrameResampled->channels *
|
int bufferSize {mAudioFrameResampled->nb_samples * mAudioFrameResampled->CHANNELS *
|
||||||
av_get_bytes_per_sample(AV_SAMPLE_FMT_FLT)};
|
av_get_bytes_per_sample(AV_SAMPLE_FMT_FLT)};
|
||||||
|
|
||||||
currFrame.resampledData.insert(currFrame.resampledData.begin(),
|
currFrame.resampledData.insert(currFrame.resampledData.begin(),
|
||||||
|
@ -1440,7 +1456,7 @@ void VideoFFmpegComponent::startVideoStream()
|
||||||
// Set some reasonable target queue sizes (buffers).
|
// Set some reasonable target queue sizes (buffers).
|
||||||
mVideoTargetQueueSize = static_cast<int>(av_q2d(mVideoStream->avg_frame_rate) / 2.0l);
|
mVideoTargetQueueSize = static_cast<int>(av_q2d(mVideoStream->avg_frame_rate) / 2.0l);
|
||||||
if (mAudioStreamIndex >= 0)
|
if (mAudioStreamIndex >= 0)
|
||||||
mAudioTargetQueueSize = mAudioStream->codecpar->channels * 15;
|
mAudioTargetQueueSize = mAudioStream->codecpar->CHANNELS * 15;
|
||||||
else
|
else
|
||||||
mAudioTargetQueueSize = 30;
|
mAudioTargetQueueSize = 30;
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#define ES_CORE_COMPONENTS_VIDEO_FFMPEG_COMPONENT_H
|
#define ES_CORE_COMPONENTS_VIDEO_FFMPEG_COMPONENT_H
|
||||||
|
|
||||||
// Audio buffer in seconds.
|
// Audio buffer in seconds.
|
||||||
#define AUDIO_BUFFER 0.1l
|
#define AUDIO_BUFFER 0.1
|
||||||
|
|
||||||
#include "VideoComponent.h"
|
#include "VideoComponent.h"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue