aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/MediaEncoding
diff options
context:
space:
mode:
authorBond-009 <bond.009@outlook.com>2026-05-26 21:00:16 +0200
committerGitHub <noreply@github.com>2026-05-26 21:00:16 +0200
commitb015d2d21930e50f2ed67fbce2e0df56f83567da (patch)
treed9d775cc6f90d610a1350172414b5d27683f05ed /MediaBrowser.Controller/MediaEncoding
parent12c1711dc12924ad238ded22c58665ae4c70074d (diff)
parent69b0b63a950a7a076a682fb81d3a0ff32239c1a0 (diff)
Merge pull request #16913 from nyanmisaka/fix-extradata-in-amd-hevc-vaapi-encoder
Fix inconsistent extradata generated by hevc_vaapi on AMD driver
Diffstat (limited to 'MediaBrowser.Controller/MediaEncoding')
-rw-r--r--MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs8
1 files changed, 6 insertions, 2 deletions
diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
index 8f6e36bce4..8688ea4b6c 100644
--- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
+++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
@@ -2014,11 +2014,15 @@ namespace MediaBrowser.Controller.MediaEncoding
args += keyFrameArg + gopArg;
}
- // global_header produced by AMD HEVC VA-API encoder causes non-playable fMP4 on iOS
+ // The in-band Parameter Sets generated by the AMD HEVC VA-API encoder is inconsistent
+ // with the extradata generated by ffmpeg, causing decoding failures when using hvc1.
if (string.Equals(codec, "hevc_vaapi", StringComparison.OrdinalIgnoreCase)
&& _mediaEncoder.IsVaapiDeviceAmd)
{
- args += " -flags:v -global_header";
+ // Extracting the extradata from the in-band PS to bypass the issue.
+ // This can be removed once the issue is resolved in libva or Mesa.
+ // Transcoding is unavoidable here, so using BSF will not conflict with BSF in remuxing.
+ args += " -flags:v -global_header -bsf:v extract_extradata=remove=0";
}
return args;