Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ffmpeg 6.0 bindings #241

Closed
iamcarbon opened this issue Mar 1, 2023 · 12 comments
Closed

ffmpeg 6.0 bindings #241

iamcarbon opened this issue Mar 1, 2023 · 12 comments

Comments

@iamcarbon
Copy link

It looks like we've got a new build of ffmpeg this week. This is a request, when time allows, to port the new bindings! As usual, many thanks for maintaining this project.

We may also want to consider bringing the minimum .NET framework target from net45 -> net462 to match Microsoft's support policy and target net6.0 directly (instead of .NETStandard 2.0/2.1).

If .NETFramework is ever dropped, this also opens up the possibility of replacing [DllImport] with [LibraryImport] in the future.

@Ruslan-B
Copy link
Owner

Ruslan-B commented Mar 1, 2023

Okay, I'll dig into.

@catester
Copy link

catester commented Mar 2, 2023

I also vote for ffmpeg 6.0 bindings but I don't agree to dropping .NET Standard 2.0 as it is still widely used for libraries. For example legacy .NET Core 3.1 and .NET 5.0 projects cannot reference net6.0 target. Change from net45 -> net462 is ok but nuget package already has net472 target.

If .NETFramework is ever dropped, this also opens up the possibility of replacing [DllImport] with [LibraryImport] in the future.

I guess [LibraryImport] is available only with net7.0+ . This can be supported with #if NET7_0_OR_GREATER statements without dropping .NETFramework.

So my suggestion is we have these targets:

net45/net462 -> can be dropped (or stay if people vote)
net472 -> should stay if net45/net462 is dropped, can be dropped only if netstandard2.0 stays
netstandard2.0 -> should stay (can be referenced from net472, net3.1 and net 5.0)
netstandard2.1 -> should stay (can be referenced from net3.1, net 5.0, net6.0)
net7.0 -> can be added for cutting edge features like [LibraryImport]

If we would like minimal targets in nuget package, I think these targets will be sufficient:

netstandard2.0 -> current .NET Framework users (net472, net48) and legacy .NET Core users (net2.1, net 2.2)
netstandard2.1 -> current .NET users (net3.0, net3.1, net 5.0, net6.0)
net7.0 -> cutting edge .NET users

Note that netstandard2.0 can be referenced from down to net461 (some support DLLs may be copied to bin by VS) but net472 supports it natively.

References:
https://learn.microsoft.com/en-us/dotnet/standard/frameworks
https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-0

@Ruslan-B
Copy link
Owner

Ruslan-B commented Mar 2, 2023

I'll drop only outdated frameworks - they mostly used by China users - might be fragmentation in packages but I'll try to avoid

@miltontaylor-panotek
Copy link

While we wait for V6 bindings, what's involved in releasing a 5.1.2 build?

@Ruslan-B
Copy link
Owner

Ruslan-B commented Mar 7, 2023 via email

@miltontaylor-panotek
Copy link

miltontaylor-panotek commented Mar 7, 2023 via email

@Ruslan-B
Copy link
Owner

@miltontaylor v5.1.2 is available - net v6.0

@miltontaylor-panotek
Copy link

miltontaylor-panotek commented Mar 15, 2023 via email

@Ruslan-B
Copy link
Owner

Appears to be working - testing now - I'll publish packages tomorrow if no issues found.

@adamhewitt627
Copy link

Any update on this?

@Ruslan-B Ruslan-B mentioned this issue Mar 21, 2023
@Ruslan-B
Copy link
Owner

I published packages, basics are working fine

@adamhewitt627
Copy link

Thank you very much, I look forward to getting into it now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants