Comments (3)
Can I ask for minimal example?
from ffmpeg.autogen.
@Ruslan-B Add this function to your 1st example in VideoStreamDecoder.cs
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate byte* AVClass_item_nameX (void* @ctx); // FFmpeg.Autogen bug
public static string? GetProtocolName(AVIOContext* pb)
{
if (pb == null || pb->av_class == null || pb->av_class->child_next.Pointer == IntPtr.Zero)
return null;
var ChildNext = (AVClass_child_next) Marshal.GetDelegateForFunctionPointer(pb->av_class->child_next.Pointer, typeof(AVClass_child_next));
var child = ChildNext(pb, null);
var cl = *(AVClass **)child;
if (cl == null || cl->item_name.Pointer == IntPtr.Zero)
return null;
var ItemName = (AVClass_item_name) Marshal.GetDelegateForFunctionPointer(cl->item_name.Pointer, typeof(AVClass_item_name));
return ItemName(child);
//return Marshal.PtrToStringUTF8((IntPtr)ItemName(child));
}
And add this line to test it after avformat_open_input in the constructor (line 24)
var proto = GetProtocolName(pFormatContext->pb);
You will notice that it will crash at that line with access violation exit code. Then you switch to AVClass_item_nameX instead of AVClass_item_name and use the commented return instead to get the proper result.
var ItemName = (AVClass_item_nameX) Marshal.GetDelegateForFunctionPointer(cl->item_name.Pointer, typeof(AVClass_item_nameX));
...
return Marshal.PtrToStringUTF8((IntPtr)ItemName(child));
from ffmpeg.autogen.
Got it. Thanks a lot. I'll look into it.
from ffmpeg.autogen.
Related Issues (20)
- is there any good players written in C# using FFmpeg.AutoGen? HOT 8
- FFmpeg.Autogen Error when i run on ubuntu HOT 3
- Use fixed-size buffers instead of custom classes HOT 2
- Recommendations for container deployment HOT 3
- Missing some interfaces? HOT 2
- Access to [AVOption.default_var.str] causes AccessViolationException HOT 11
- FFMpeg.Autogen.dll is failing Strong Name Validation HOT 2
- System.NotSupportedException:“Specified method is not supported.” HOT 2
- can't get filtering_video.c FFmpeg example migrated to FFmpeg.AutoGen HOT 3
- use Intel GPU Decode,Error initializing an MFX session: -3. HOT 2
- use Intel GPU Decode,Error initializing an MFX session: -3 HOT 2
- Add support for ffmpeg 6.1 bindings HOT 2
- Specied method not supported HOT 2
- Any fileds in AVFrame after crop_top/crop_bottom/crop_left/crop_right cannot fill correctly in 32bit system HOT 1
- Strong name validation failed HOT 8
- about DllImport?
- about 7.0 HOT 1
- ffmpeg 7 HOT 3
- Break change in FFmepg.AutoGen version 7.0.0 HOT 9
- It seems `HWDeviceContext` are missing? HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ffmpeg.autogen.