Add V4L2M2M support using SDL renderer
Note: This requires FFmpeg master to work, since it depends on:
d61cf1b1eb
This commit is contained in:
parent
afe6cfc383
commit
5aed8f928a
1 changed files with 33 additions and 12 deletions
|
|
@ -543,20 +543,41 @@ bool FFmpegVideoDecoder::initialize(PDECODER_PARAMETERS params)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_DRM
|
#ifdef HAVE_DRM
|
||||||
// RKMPP is a hardware accelerated decoder that outputs DRI PRIME buffers
|
{
|
||||||
AVCodec* rkmppDecoder;
|
// RKMPP is a hardware accelerated decoder that outputs DRI PRIME buffers
|
||||||
|
AVCodec* rkmppDecoder;
|
||||||
|
|
||||||
if (params->videoFormat & VIDEO_FORMAT_MASK_H264) {
|
if (params->videoFormat & VIDEO_FORMAT_MASK_H264) {
|
||||||
rkmppDecoder = avcodec_find_decoder_by_name("h264_rkmpp");
|
rkmppDecoder = avcodec_find_decoder_by_name("h264_rkmpp");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
rkmppDecoder = avcodec_find_decoder_by_name("hevc_rkmpp");
|
rkmppDecoder = avcodec_find_decoder_by_name("hevc_rkmpp");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rkmppDecoder != nullptr &&
|
if (rkmppDecoder != nullptr &&
|
||||||
tryInitializeRenderer(rkmppDecoder, params, nullptr,
|
tryInitializeRenderer(rkmppDecoder, params, nullptr,
|
||||||
[]() -> IFFmpegRenderer* { return new DrmRenderer(); })) {
|
[]() -> IFFmpegRenderer* { return new DrmRenderer(); })) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef Q_OS_LINUX
|
||||||
|
{
|
||||||
|
AVCodec* v4l2Decoder;
|
||||||
|
|
||||||
|
if (params->videoFormat & VIDEO_FORMAT_MASK_H264) {
|
||||||
|
v4l2Decoder = avcodec_find_decoder_by_name("h264_v4l2m2m");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
v4l2Decoder = avcodec_find_decoder_by_name("hevc_v4l2m2m");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (v4l2Decoder != nullptr &&
|
||||||
|
tryInitializeRenderer(v4l2Decoder, params, nullptr,
|
||||||
|
[]() -> IFFmpegRenderer* { return new SdlRenderer(); })) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue