Merge pull request #1943 from jazztickets/av1

AV1 export support
This commit is contained in:
itsmattkc
2023-02-08 13:03:51 -08:00
committed by GitHub
12 changed files with 246 additions and 22 deletions
+4
View File
@@ -64,6 +64,8 @@ QString ExportCodec::GetCodecName(ExportCodec::Codec c)
return tr("Vorbis");
case kCodecVP9:
return tr("VP9");
case kCodecAV1:
return tr("AV1");
case kCodecSRT:
return tr("SubRip SRT");
case kCodecCount:
@@ -90,6 +92,7 @@ bool ExportCodec::IsCodecAStillImage(ExportCodec::Codec c)
case kCodecOpus:
case kCodecFLAC:
case kCodecVP9:
case kCodecAV1:
case kCodecSRT:
return false;
case kCodecOpenEXR:
@@ -121,6 +124,7 @@ bool ExportCodec::IsCodecLossless(Codec c)
case kCodecVorbis:
case kCodecOpus:
case kCodecVP9:
case kCodecAV1:
case kCodecSRT:
case kCodecOpenEXR:
case kCodecPNG:
+1
View File
@@ -53,6 +53,7 @@ public:
kCodecVorbis,
kCodecFLAC,
kCodecSRT,
kCodecAV1,
kCodecCount
};
+2 -2
View File
@@ -123,7 +123,7 @@ QList<ExportCodec::Codec> ExportFormat::GetVideoCodecs(ExportFormat::Format f)
case kFormatQuickTime:
return {ExportCodec::kCodecH264, ExportCodec::kCodecH264rgb, ExportCodec::kCodecH265, ExportCodec::kCodecProRes, ExportCodec::kCodecCineform};
case kFormatWebM:
return {ExportCodec::kCodecVP9};
return {ExportCodec::kCodecAV1, ExportCodec::kCodecVP9};
case kFormatOgg:
case kFormatWAV:
case kFormatMPEG4Audio:
@@ -152,7 +152,7 @@ QList<ExportCodec::Codec> ExportFormat::GetAudioCodecs(ExportFormat::Format f)
case kFormatQuickTime:
return {ExportCodec::kCodecAAC, ExportCodec::kCodecMP2, ExportCodec::kCodecMP3, ExportCodec::kCodecPCM};
case kFormatWebM:
return {ExportCodec::kCodecAAC, ExportCodec::kCodecMP2, ExportCodec::kCodecMP3, ExportCodec::kCodecPCM, ExportCodec::kCodecVorbis, ExportCodec::kCodecOpus};
return {ExportCodec::kCodecOpus, ExportCodec::kCodecAAC, ExportCodec::kCodecMP2, ExportCodec::kCodecMP3, ExportCodec::kCodecPCM, ExportCodec::kCodecVorbis};
// Audio only formats
case kFormatWAV:
+6
View File
@@ -898,6 +898,12 @@ const AVCodec *FFmpegEncoder::GetEncoder(ExportCodec::Codec c, SampleFormat afor
return avcodec_find_encoder(AV_CODEC_ID_HEVC);
case ExportCodec::kCodecVP9:
return avcodec_find_encoder(AV_CODEC_ID_VP9);
case ExportCodec::kCodecAV1: {
const AVCodec *encoder = avcodec_find_encoder_by_name("libsvtav1");
if(!encoder)
encoder = avcodec_find_encoder(AV_CODEC_ID_AV1);
return encoder;
}
case ExportCodec::kCodecOpenEXR:
return avcodec_find_encoder(AV_CODEC_ID_EXR);
case ExportCodec::kCodecPNG: