INTERACT FORUM

Windows => Television => Topic started by: Yaobing on October 04, 2024, 09:52:11 am

Title: Blackmagic Design devices - how do we support them better
Post by: Yaobing on October 04, 2024, 09:52:11 am
Users have requested that we support HDR tone mapping, and Hendrik said it was great if we can do it.

We support these devices using DirectShow, as WDM devices.  Blackmagic Design does not support HDR tone mapping in DirectShow directly, a user mentioned that someone used a "back-door" method to pass the HDR tone mapping to video renderer. I thought we might be able to do that too, as we use JRVR.

On the other hand, the company provides an SDK so we can use that too.  That means we redo part of our code and use the SDK functions instead of Microsoft functions.

Either way, I have not gained enough understanding to proceed further.

jmone said he could document current status of MC's support of such devices, what's working, and what's not.  So I create this thread for everyone to chime in.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Hendrik on October 04, 2024, 10:06:31 am
For HDR, all you really need from the device is some metadata if the source is HDR or not, thats the bare minimum. Additionally, there might be some static HDR metadata that could be useful (brightness etc), but if its not present it would still work ok-ish.
If we can somehow obtain this, I can tell you how to format it to send it to JRVR.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 04, 2024, 05:16:55 pm
MC Exposes 2 different "Devices" with my BMD UltraStudio 4K Mini:
- Decklink Video Capture, and
- Blackmagic WDM Capture

I have both added in the TV Section.  I "think" the Backmagic WDM Capture is the most recent as looking at the exposed option in the pins, it goes up to 4K, where the Decklink only goes up to 2K.

Let me know what you would like me to test.  eg, I can do short recordings if that helps, but what signal(s) do you want me to feed it?  I normally attach a Video Camera (that could output SDR, HLG, Raw) over HDMI or attach a MC Library Server client (and do SDR / HDR).
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 05, 2024, 07:23:47 pm
Did some testing feeding the BMD a UHD HDR Signal (from a MC Library Server Client). 
- I don't think there is any colour space metadata being sent.  I say this is even with capturing the stream in Resolve it does not tag it's recordings either (you have to manually assign the colour space Gamut and Gamma) to the clip.
- For some reason it is only showing it as an 8-Bit even if sending 10-Bit (in Resolve it can be captured in 10-Bit)
- Watching live playback is smooth (even though JRVR is reporting tons of empty queue counts)
- Recording in MC is not usable (guessing it is trying to stuff Uncompressed Video into the JTV Container without any on the fly compression), so you get maybe 1fps.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 05, 2024, 07:26:10 pm
Here is the filter graph info:

Code: [Select]
Filter Graph Info (TV graph):

    Filter 'JRiver Audio Renderer'
        CLSID: {A4002F8E-510F-442C-8AD3-F9C7B23FB394}
        Host:
        Input Pin 'In'
            Connected to pin 'Output1' of filter 'Blackmagic WDM Capture C7A65834542C631B'
            Major type MEDIATYPE_Audio  Sub type MEDIASUBTYPE_PCM, Format type FORMAT_WaveFormatEx

    Filter 'JRVR'
        CLSID: {555E6803-14EF-4946-8646-B6EF9E9121E2}
        Host:
        Input Pin ''
            Connected to pin 'XForm Out' of filter 'AVIDecompressor'
            Major type MEDIATYPE_Video  Sub type MEDIASUBTYPE_RGB32, Format type FORMAT_VideoInfo

    Filter 'AVIDecompressor'
        CLSID: {CF49D4E0-1115-11CE-B03A-0020AF0BA770}
        Host: c:\windows\system32\quartz.dll
        Input Pin 'XForm In'
            Connected to pin 'Output0' of filter 'Blackmagic WDM Capture C7A65834542C631B'
            Major type MEDIATYPE_Video  Sub type Unknown GUID Name: {43594448-0000-0010-8000-00AA00389B71}, Format type FORMAT_VideoInfo
        Output Pin 'XForm Out'
            Connected to pin '' of filter 'JRVR'
            Major type MEDIATYPE_Video  Sub type MEDIASUBTYPE_RGB32, Format type FORMAT_VideoInfo

    Filter 'Blackmagic WDM Capture C7A65834542C631B'
        CLSID: {17CCA71B-ECD7-11D0-B908-00A0C9223196}
        Host: c:\windows\system32\ksproxy.ax
        Output Pin 'Output0'
            Connected to pin 'XForm In' of filter 'AVIDecompressor'
            Major type MEDIATYPE_Video  Sub type Unknown GUID Name: {43594448-0000-0010-8000-00AA00389B71}, Format type FORMAT_VideoInfo
        Output Pin 'Output1'
            Connected to pin 'In' of filter 'JRiver Audio Renderer'
            Major type MEDIATYPE_Audio  Sub type MEDIASUBTYPE_PCM, Format type FORMAT_WaveFormatEx
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 05, 2024, 07:31:05 pm
I think there are only two things that would make it "work" correctly as it stands:
- Colour Space:  Let the user in the TV HW Setup page select the colour space for the device (HDR / SDR)... or even let them create two (one for SDR, one for HDR).
- Encoding: Add a new HW accelerated encoding feature for recording.

Apart from that, the current setup using WDM Capture Device works well.  The above two features would also be good for any sort of live HDMI feed.

Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 05, 2024, 07:56:14 pm
It would also be good to add in the JRVR Info Box under Input what the FPS is.  I can confirm that the JTV recording was correct (23.98 fps) for this BD capture.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on October 08, 2024, 11:19:47 am
Thanks Nathan!

Yes, video capture is done without any on-the-fly video compression, because we don't have a video compression filter.  The video compressor created by Matt more than 20 years ago was good for SD analog TV, but not for HD video, not to mention the 4k or higher videos.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 08, 2024, 04:57:02 pm
You don't really want to play with uncompressed video :), the bitrates are insane.... but we already have avcodec as part of MC's plugins.

I did a quick test and the following worked fine in capturing a live UHD stream from the WDM filter (with the correct frame rate automatically) that then plays just fine in MC.

Code: [Select]
ffmpeg -f dshow -i video="Blackmagic WDM Capture":audio="Line In (Blackmagic UltraStudio 4K Mini Audio)" out.mp4
It would need some tweaking for Format, Bitrate, Buffering and setting the colour space tagging etc, but it works simply enough.  I don't know if you can build it all in one graph, or if you would need to kick off the capture / compression in one thread, and the playback in another.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 08, 2024, 05:05:52 pm
When I look at the options for the WDM filter using:

Code: [Select]
ffmpeg -f dshow -list_options true -i video="Blackmagic WDM Capture":audio="Line In (Blackmagic UltraStudio 4K Mini Audio)"
...it looks like there is nothing to set in the way of frame rate or resolution for the Video side (it matches what the Ultrastudio is being feed) but you can specify the Audio capture (though I got the 2ch by default anyway).

Code: [Select]
[dshow @ 0000021b1d3fd040] DirectShow video device options (from video devices)
[dshow @ 0000021b1d3fd040]  Pin "Output0" (alternative pin name "0")
[dshow @ 0000021b1d3fd040]   pixel_format=uyvy422  min s=3840x2160 fps=50 max s=3840x2160 fps=50
[dshow @ 0000021b1d3fd040]   vcodec=v210  min s=3840x2160 fps=50 max s=3840x2160 fps=50
[dshow @ 0000021b1d3fd040]  Pin "Output1" (alternative pin name "1")
[dshow @ 0000021b1d3fd040] DirectShow audio only device options (from audio devices)
[dshow @ 0000021b1d3fd040]  Pin "Capture" (alternative pin name "Capture")
[dshow @ 0000021b1d3fd040]   min ch=1 bits=8 rate= 11025 max ch=2 bits=16 rate= 44100
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on October 11, 2024, 01:27:39 pm
Quote
ffmpeg -f dshow -i video="Blackmagic WDM Capture":audio="Line In (Blackmagic UltraStudio 4K Mini Audio)" out.mp4

So FFMPEG is handling the capture filter's output internally and convert to desired output.  It appears that we can not take advantage of that in our current system because we are not controlling the output.

We will have to create something new for this.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 11, 2024, 04:30:20 pm
Pretty much.  It is just an example of what could be done to record the uncompressed HDMI feed to a std rendered H264(or H265, AV1 file) in real time that then use would be used for normal playback / time shifting.  You can also specify encoding settings like resolution, bitrate etc etc.  There are also flags for taging the file with Colour Space info (BT709, BT2020 etc). 

It would be worth chatting to Hendrik, as for all I know this can all be done using the existing avcodec plugin that does the on the fly video transcoding used for streaming to client devices. 
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on October 12, 2024, 09:50:16 am
One approach would be to create a video compression filter, using the available library, like the reverse of LAV Video Decoder.

Another is to abandon the current Microsoft approach, and use Blackmagic API directly.  They use the COM too, but just not DirectShow.  Not sure if this is going to be easier than creating a stand alone compression filter, as we still need to deal with what to do with the video output we get from the device.

Creating a filter would seem better from the point of being able to use it with other video capture devices that we also support.

Hendrik, any thoughts?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 12, 2024, 04:03:47 pm
I agree.  It could then be used with any device. 

FWIW, these are a range of these BMD devices (both PCI-E cards and thunderbolt connected boxes) and most of them don't have an on-board Video Encoder, so even with the API you would need to still encode the video somehow.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on October 24, 2024, 10:47:04 am
In build 37, just out on beta board, I added this:

 Changed: Added some exploratory logging on Blackmagic DeckLink video capture devices.

Please run the device and provide me a log file.

The relevant log lines contain this: "BlackmagicWDMCapture::ExploreDecklinkAPI"
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 24, 2024, 04:10:55 pm
Tried running it a few times on the "Blackmagic WDM Capture" but MC now just crashes (see log).  I'll rollback and see if it still works with the older version of MC.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 24, 2024, 04:13:50 pm
Yup it is only Build 37 that crashes.  Build 36 is fine.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 24, 2024, 04:19:27 pm
...and the crash happens immediately after the new "BlackmagicWDMCapture::ExploreDecklinkAPI" call.

0008847: 13328: TV: BlackmagicWDMCapture::ExploreDecklinkAPI: Start
0008867: 13328: TV: BlackmagicWDMCapture::ExploreDecklinkAPI: decklink device: UltraStudio 4K Mini, model UltraStudio 4K Mini
0008867: 13328: General: TopLevelExceptionFilter: Unhandled exception -- program crashing
0008867: 13328: General: TopLevelExceptionFilter: Message: 514, wParam: 0, lParam: 121701199
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on October 24, 2024, 11:14:44 pm
Is "UltraStudio 4K Mini" the device you tried  to use in MC?  Exactly the same?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 24, 2024, 11:52:34 pm
I'm not sure I understand the question fully. 

I've setup the device in in MC prior to Build 37 in the devices section of TV and it works just fine, but that profile crashes on Build 37.  I'll try setting it up again in Build 37.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 24, 2024, 11:57:47 pm
I just tried to do the setup again in Build 37 and that makes MC crash as well.

FWIW - Here is the DirectShow Filter into again from Build 36

Filter Graph Info (TV graph):

    Filter 'JRiver Audio Renderer'
        CLSID: {A4002F8E-510F-442C-8AD3-F9C7B23FB394}
        Host:
        Input Pin 'In'
            Connected to pin 'Output1' of filter 'Blackmagic WDM Capture C7A65834542C631B'
            Major type MEDIATYPE_Audio  Sub type MEDIASUBTYPE_PCM, Format type FORMAT_WaveFormatEx

    Filter 'JRVR'
        CLSID: {555E6803-14EF-4946-8646-B6EF9E9121E2}
        Host:
        Input Pin ''
            Connected to pin 'XForm Out' of filter 'AVIDecompressor'
            Major type MEDIATYPE_Video  Sub type MEDIASUBTYPE_RGB32, Format type FORMAT_VideoInfo

    Filter 'AVIDecompressor'
        CLSID: {CF49D4E0-1115-11CE-B03A-0020AF0BA770}
        Host: c:\windows\system32\quartz.dll
        Input Pin 'XForm In'
            Connected to pin 'Output0' of filter 'Blackmagic WDM Capture C7A65834542C631B'
            Major type MEDIATYPE_Video  Sub type Unknown GUID Name: {43594448-0000-0010-8000-00AA00389B71}, Format type FORMAT_VideoInfo
        Output Pin 'XForm Out'
            Connected to pin '' of filter 'JRVR'
            Major type MEDIATYPE_Video  Sub type MEDIASUBTYPE_RGB32, Format type FORMAT_VideoInfo

    Filter 'Blackmagic WDM Capture C7A65834542C631B'
        CLSID: {17CCA71B-ECD7-11D0-B908-00A0C9223196}
        Host: c:\windows\system32\ksproxy.ax
        Output Pin 'Output0'
            Connected to pin 'XForm In' of filter 'AVIDecompressor'
            Major type MEDIATYPE_Video  Sub type Unknown GUID Name: {43594448-0000-0010-8000-00AA00389B71}, Format type FORMAT_VideoInfo
        Output Pin 'Output1'
            Connected to pin 'In' of filter 'JRiver Audio Renderer'
            Major type MEDIATYPE_Audio  Sub type MEDIASUBTYPE_PCM, Format type FORMAT_WaveFormatEx
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 25, 2024, 12:01:22 am
Here is the log of it working in Build 36
Title: Re: Blackmagic Design devices - how do we support them better
Post by: JimH on October 25, 2024, 01:56:20 am
I'm not sure I understand the question fully. 

I've setup the device in in MC prior to Build 37 in the devices section of TV and it works just fine, but that profile crashes on Build 37.  I'll try setting it up again in Build 37.
Identical name?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 25, 2024, 05:20:10 am
Sure, but I'm not sure what string and in what area to compare too?  All I know is that the profile I'd set up in that worked now crashes MC Build 37 and I can't setup a new one in MC37 as it too crashes.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on October 25, 2024, 09:32:27 am
Thanks, you answered my question.

In DirectShow, MC picks up this device: "Blackmagic WDM Capture" which is so generic.

In Blackmagic DeckLink API, this device showed up before the crash: " UltraStudio 4K Mini".  There is no match.

That is a problem, as we can not identify the device in an easy way.  That, however, should not be the cause of the crash, which I am still trying to figure out.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on October 25, 2024, 12:27:56 pm
Figured out why it crashed.  I emailed you an updated DLL.  It should prevent crashing.  It will not give us any other info because we are not able to have matching devices names.

Emailing failed for some reason.  Here is the file:


Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 25, 2024, 03:36:03 pm
Crashing is fixed :)  Log attached of it playing the device.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 25, 2024, 03:42:20 pm
You may be able to do what you want over dshow anyway?  Had a look at the options that are exposed (using ffmpeg).

I'm using these devices (that work in MC now):

[dshow @ 000001e92068cf00] DirectShow video devices (some may be both video and audio devices)
[dshow @ 000001e92068cf00]  "Blackmagic WDM Capture"
[dshow @ 000001e92068cf00]     Alternative name "@device_pnp_\\?\decklink#avstream#9&1d8ec6ee&0&0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\decklinkcapture1"
[dshow @ 000001e92068cf00] DirectShow audio devices
[dshow @ 000001e92068cf00]  "Line In (Blackmagic UltraStudio 4K Mini Audio)"
[dshow @ 000001e92068cf00]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{D1D418E7-A7DA-47EB-8662-28E939E16C24}"

But don't use these ones as MC does not seem to get a feed (just a blank screen)
[dshow @ 000001e92068cf00]  "Decklink Video Capture"
[dshow @ 000001e92068cf00]     Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{44A8B5C7-13B6-4211-BD40-35B629D9E6DF}"
[dshow @ 000001e92068cf00]  "Decklink Audio Capture"
[dshow @ 000001e92068cf00]     Alternative name "@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\{AAA22F7E-5AA0-49D9-8C8D-B52B1AA92EB7}"


Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 25, 2024, 03:45:50 pm
...and this is what I see for the cobo that works now in MC:

ffmpeg -f dshow -list_options true -i video="Blackmagic WDM Capture":audio="Line In (Blackmagic UltraStudio 4K Mini Audio)"
[dshow @ 000002cae903cfc0] DirectShow video device options (from video devices)
[dshow @ 000002cae903cfc0]  Pin "Output0" (alternative pin name "0")
[dshow @ 000002cae903cfc0]   pixel_format=uyvy422  min s=3840x2160 fps=50 max s=3840x2160 fps=50
[dshow @ 000002cae903cfc0]   vcodec=v210  min s=3840x2160 fps=50 max s=3840x2160 fps=50
[dshow @ 000002cae903cfc0]  Pin "Output1" (alternative pin name "1")
[dshow @ 000002cae903cfc0] DirectShow audio only device options (from audio devices)
[dshow @ 000002cae903cfc0]  Pin "Capture" (alternative pin name "Capture")
[dshow @ 000002cae903cfc0]   min ch=1 bits=8 rate= 11025 max ch=2 bits=16 rate= 44100
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 25, 2024, 03:50:17 pm
...and here is the loooong list of options for the generic "Decklink" one (that do not work in MC currently).

Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on October 31, 2024, 11:40:42 am
I am still not able to make a name match (or model) between the API name and the DirectShow name.  So I created a DLL to use the first device enumerated by the API for the purpose of exploring its capabilities.



Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 31, 2024, 02:38:53 pm
:) - This seems to work.  Here is the log file that shows not only the device enumeration but also Playback of the two exposed BM "devices" from the UltraStudioMini4K (same as before):
- Blackmagic WDM Capture : Works as usual - shows the image & sound
- Decklink Video Capture : Black Screen

Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on October 31, 2024, 02:41:25 pm
You are still going to need some encoding filter to make timeshifting / recording possible.  Most of these BMD devices (except some of the higher end models) do not have an onboard HW encoder. 
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 01, 2024, 01:35:00 pm
Playback of the two exposed BM "devices" from the UltraStudioMini4K (same as before):
- Decklink Video Capture : Black Screen

This is because I never put code in to explicitly support this device. That means it will load up generic code, instead of Blackmagic specific code. Now this is added.



Please test the updated DLL.  I also refined some of the exploratory logging entries.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 01, 2024, 04:03:36 pm
Here you go, same test as before will a log.  Similar results.

I did get the Decklink Video Capture to move past "Starting TV" on one occasion (did not get a log) and not sure how as I could not repeat it.  On that occasion, I got audio but a black video that was reported as something like 576i (I think), rather than the UHD it was being sent. 
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 04, 2024, 12:05:38 pm
Thanks.

DeckLink Video Capture filter could not be rendered, according to the log.  I am still trying to determine why, but there is nothing else that got logged.

Have you used GraphEdit or GraphEditPlus before?  If so and if you still have it on your computer, can you try it? For this device, you need to add two filters, "DeckLink Video Capture" and "DeckLink Audio Capture".  Both filters expose an output pin called "Capture".  See if you can render from these pins in GraphEdit.  The video capture filter also has two other output pins, and I don't know what they are for.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 04, 2024, 06:27:03 pm
Ahhh, the "good 'ol days" of graphstudio!  Had a good play:

- Decklink:  EDIT: See later posts, it can be made to work!  I could only get Audio to work.  Always a blackscreen.  Tried both 1080p and UHD as I notice in the (see pic) DS options there is no ability to pick anything above 2K.  I know that everything has to be set to the same format (Input Device, UltraStudio, and Renderer) or it fails....

- BMD WDM:  This one just works, and you don't have to set anything on the UltraStudio or in the WDM drivers (infact there is no options at all), it will put it into the correct mode each time the graph is created (eg UHD or 1080p) based on the incomming signal.  It's also one filter for both Video and Audio capture.  Nice.

Can you explain what the issue is of using the BMD WDM filters over the Decklink ones?  The WDM ones "just work" already and seems to be the one for "consumption" rather than the Decklink ones that are more for studio work.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 04, 2024, 06:36:39 pm
...and you don't have to worry about the other two pins which are:
- VANC (Vertical Ancillary data) : Additional meta data embedded into the SDI stream for specific broadcast and cinema camera setups (you can ignore)
- TimeCode : Used to match a multi camera setup to avoid drift from different clocks in each (you can ignore)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 04, 2024, 07:10:25 pm
Got "Decklink" working at 1080p, with the following settings:
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 04, 2024, 07:36:50 pm
Still no luck getting Decklink to work in MC even at 1080p.  I think the issue is, even if I manually set the Desklink Filter, it seems to always revert back to the default (see pic) once playback is attempted.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 04, 2024, 08:27:57 pm
That graph looks simple enough. I figured out (sort of) why it is not playing in MC.

Code: [Select]
0034766: 42708: TV: CMainTVManager::PlayDefaultChannel: Start
0034766: 42708: TV: CMainTVManager::PlayDefaultChannel: Finish (0 ms)

I would expect logging lines between the two lines above, but none was found. That means the graph-building is skipped entirely. The only explanation would be that the device exposes an interface that led MC to treat it as an "external device" - "The IAMExtDevice interface controls an external device, such as a DV camera or video tape recoder [sic](VTR)." per Microsoft.

That is a bit surprising. The DLL below should confirm whether that is the case. We had code to deal with DV camcorders, but it was about twenty years ago. Right now I am not sure if it still works, but the code (or part of it) is there. I may have to make a special case not to treat "DeckLink Video Capture" as an external device.



Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 05, 2024, 04:02:31 am
I can't download that new DLL, I get a 404 - File not found.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: JimH on November 05, 2024, 05:36:12 am
Try this one:


It had a double JR.  I'm just guessing this is the right one.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 05, 2024, 09:27:33 am
Sorry, my bad. Link fixed.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 05, 2024, 12:17:15 pm
This DLL forces Blackmagic devices not to be an "External Device":


Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 05, 2024, 03:12:23 pm
Nice work, getting there.  The playback graph seems to get built

The log should show in order:
- 1 x BMD WDB Play: Works as usual, got both video and sound
- 2 x Decklink Plays: Works, but the input video format is not set correctly and reverts to 525i @ 59.94 and not the 1080p/50p signal I was feeding it.  I do get the playback window but the video is blank as a result.  Sound works fine.  I tried setting it in the DS Filter's pop up but it does not "stick" between sessions, and changing it once the graph is setup does not work. 

Looking at the Decklink API doco, I think you can check what the input signal is and set the device accordingly before building the graph?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 06, 2024, 09:18:33 am
Thanks.

It is odd that the format resets to SD video.  The graph dump shows that SD format was used for connection.  I will try setting the format.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 06, 2024, 02:00:08 pm
Looking at the Decklink API doco, I think you can check what the input signal is and set the device accordingly before building the graph?

The IDeckLinkInput interface has methods to iterate through all supported display modes, but I can not find a method that tells me which format it is currently using.  Maybe it expects the apps to set it.

For now I will just see if I can set the capture filter's output format to 1080p/50p, for you to test.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 06, 2024, 02:49:13 pm
- I know that in Davinci Resolve I have to manually set the exact resolution and frame rate or capture will fail
- The BMD WDM filter auto adjust to the input resolution and frame rate.

BlackMagic have a forum for App Developers you can ask questions with at - https://forum.blackmagicdesign.com/viewforum.php?f=12

There are references in the Decklink API Doco to these calls:

Automatic Mode Detection
 The automatic mode detection feature will notify an application when a property of the video input signal changes. This feature is supported on certain DeckLink devices. For an example of using automatic mode detection, please refer the AutomaticModeDetection sample in the DeckLink SDK.

 To use this feature please refer to the following steps:
 — Call IDeckLinkProfileAttributes::GetFlag with the BMDDeckLinkSupportsInputFormatDetection flag to check that the DeckLink hardware supports the automatic format detection feature.
— Create a callback class that subclasses from IDeckLinkInputCallback and implements all of its methods. The IDeckLinkInputCallback::VideoInputFormatChanged method will be called when a change in the property of the video signal has been detected.
 — Install a callback by calling IDeckLinkInput::SetCallback and referencing an instance of your callback class.
 — Call IDeckLinkInput::EnableVideoInput with an initial video mode and pixel format and set the bmdVideoInputEnableFormatDetection flag.
 — Call IDeckLinkInput::EnableAudioInput.
 — Call IDeckLinkInput::StartStreams to begin capture.

 While the input streams are running:
If a change in a property of the input video signal is detected then IDeckLinkInputCallback::VideoInputFormatChanged will be called in your callback object with the new video properties provided in the parameters.
If the video mode or pixel format has changed, then the following sequence could be used to restart capture with the new settings: IDeckLinkInput::PauseStreams Call IDeckLinkInput::EnableVideoInput with the detected video mode and pixel format.IDeckLinkInput::FlushStreams IDeckLinkInput::StartStreams
 — Call IDeckLinkInput::StopStreams to stop capture.
 — Call IDeckLinkInput::DisableVideoInput
 — Call IDeckLinkInput::DisableAudioInput
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 06, 2024, 03:23:13 pm
This is also these resources - https://www.blackmagicdesign.com/developer/products/capture-and-playback/sdk-and-software

Towards the bottom of this page is a "Introduction to Video Capture and Playback" button that gives you some code samples including one called "DeckLinkInputDevices.cs"  that seems to have what you may need.  I've attached this one.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 06, 2024, 03:27:41 pm
Thanks.  I read the text you quoted, and did not pay much attention because it requires having the device start streaming, then detect changes in a callback.  I was looking for a way of getting the current/default format before the device starts.

I tried setting it in the DS Filter's pop up but it does not "stick" between sessions, and changing it once the graph is setup does not work. 

Did you try to get this through right-click menu while the video is playing in MC?  That will not stick.  To get the format saved, you need to run "Configure Device".  This is accessed through right-clicking Television tree branch, and selecting the device from the list, and clicking "Configure..." button.  Once the dialog window pops up, go to Advanced section and double-click "Video Capture pin"
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 06, 2024, 04:06:05 pm
Yeah, neither method works and it always reverts.

I can make the change on the Video Capture Pin (under the TV Configure Device) just fine, but it seems to revert to the default as soon as I leave MC's "Configure Device" dialogue.

I'm only guessing on the various calls and hope the sample code sheds some light.  Otherwise, I'd suggest just posting over on the BMD's Dev Forum.  It's a bit like Interact and has both users and BM staff that respond pretty well to most questions.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 07, 2024, 09:16:56 am
Can you find this registry key?

Code: [Select]
HKEY_CURRENT_USER\SOFTWARE\JRiver\Media Center 33\TV Settings\<device id>\MediaType
where <device id> should look similar to this for your device:

@device:sw:{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{44A8B5C7-13B6-4211-BD40-35B629D9E6DF}

except that some characters are replaced with '_'.

That location is where we save the format after you run the configuration tool.  If it is there, but we still get the wrong value, it means the device reverts before we even have a chance to save.

I will see if I can get it going using another method.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 01:50:05 pm
I'm not sure if it matters but the device path is "JRiver" not "JRiver"

Code: [Select]
Computer\HKEY_CURRENT_USER\Software\JRiver\Media Center 33\TV Settings\@device:sw:{860BB310-5D01-11D0-BD3B-00A0C911CE86}_{44A8B5C7-13B6-4211-BD40-35B629D9E6DF}
Attached is the registry settings for this device (note: It looks pretty identical to the other devices).

Update: I can make the change on the Video Capture Pin (under the TV Configure Device) just fine, and it stays set while I'm in the "Configure Device" dialogue (eg I can go back into the pin and see it is still set), but it seems to revert to the default as soon as I leave MC's "Configure Device" dialogue.

Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 07, 2024, 02:39:01 pm
I meant for you to look for the MediaType sub key.

In any case, I found a line of code that is too restrictive, which might have led to skipping the saving of info to the registry.


Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 02:43:04 pm
I'll give it a try in a sec, but FYI - there is no MediaType sub key at all for the Decklink entries, but there is one for the WDM ones.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 02:52:25 pm
No change in the behavour (setting, playback etc).

No "MediaType" sub key was added to the registry either.

Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 02:54:39 pm
Do you want me to try copying the MediaType sub key from the BMD WDM over to the Decklink?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 07, 2024, 02:56:13 pm
Please post a log.  Look for "CAnalogTVDevice::DisplayVideoCapturePinPropPages" entries in the log file.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 07, 2024, 03:05:23 pm
I'm not sure if it matters but the device path is "JRiver" not "JRiver"


We kept the old name in registry settings.  So J and R separated by a period and a space  is correct for registry paths.  (and J and R separated by just a space is correct for program installation folder name.)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 03:06:07 pm
Post of log of doing what?
- Trying to set the Pin,
- Starting Playback

PS - I copied the MediaType subkey from the WDM to the Decklink.  It certianly changed the input details in JRVR, but still a black screen.  The video pin was then showing as blank (so it was not set to something it had in it's list).
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 03:10:28 pm
Got it working!

That copied MediaType puts the Decklink into UHD@50fps mode, and when I feed it that signal it now plays just like the WDM version.

Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 07, 2024, 03:12:09 pm
Post of log of doing what?
- Trying to set the Pin,
- Starting Playback

PS - I copied the MediaType subkey from the WDM to the Decklink.  It certianly changed the input details in JRVR, but still a black screen.  The video pin was then showing as blank (so it was not set to something it had in it's list).

Log of trying to set format on Pin property page.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 07, 2024, 03:14:38 pm
let's back step a little.  Delete the MediaType subkey and try running the property page and setting the video format.  Then post a log.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 03:15:01 pm
This is the registry with the copied WDM MediaType that works with UHD Output.

It is interesting you can set this format (and it works), but there are no UHD options listed in the drop down for the Video Pin (only up to 2K).

I'll grab the log trying to set the pin next.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 03:15:23 pm
let's back step a little.  Delete the MediaType subkey and try running the property page and setting the video format.  Then post a log.

One sec.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 03:17:25 pm
Here it is.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 07, 2024, 03:24:45 pm
I can not find any entries with "DisplayVideoCapturePinPropPages".  Did you use Configure dialog to set the properties?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 03:30:40 pm
This are my steps:

- "Television" (on the left main window)
- "TV Options..." button (main window)
- "... Manage Devices.." link
- Select "Decklink Video Capture" entry in the "Manage Television Devices" Dialg
- Press "Configure" button
- Double click on "Video Capture Filter..."
- From the "Properties" Window of slected a Video Format in the Drop Down --> Press Apply  --> Press OK
- Then OK / OK /OK to get back to the Main MC UI.


Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 03:31:12 pm
Is this the correct sequence?  If so I'll try again and grab another log.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 07, 2024, 03:39:08 pm
Almost correct.

"Video Capture Filter..." should have been "Video Capture Pin..."
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 03:42:11 pm
I see the following.

Unless, I need to delete and reset up the Device (it was added some time ago when we first looked at this)?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 03:44:45 pm
The WDM Version says "Video Capture Pin..."
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 07, 2024, 03:52:46 pm
I see.  They don't have a  property page for that.  Hmm, the video output pin settings are expected to come from there  :(

I will think of something tomorrow.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 03:54:50 pm
Thanks - I'm around :)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 07, 2024, 04:03:32 pm
Thanks.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 07, 2024, 04:13:29 pm
I see.  They don't have a  property page for that.  Hmm, the video output pin settings are expected to come from there  :(

I will think of something tomorrow.

...and it supports more than is what is exposed on that Filter Dialog anyway.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 08, 2024, 01:18:19 pm
I did two things today:

1. Do not use any hard-coded format, if we have not already saved a format in the registry.  I don't remember why we needed the hard-coded format, maybe for some devices.  Now I disallow that for Blackmagic devices.

2. Save video format after user configured "Video Capture Filter..." when "Video Capture pin..." does not exist.  I am guessing this devices uses the "Capture Filter" property pages, instead of a separate "Capture pin" property page.

To test the ideas, first wipe out the "MediaType" subkey from the registry, and try playing the device and see if it works.  It it works, it means the previously hard-coded format is not supported and that is the reason for it not working.  This tests the change #1 above. Hope it works.

Regardless of whether the above test succeeds, run Configure on the device and double-click "Video Capture Filter..." to bring up the capture filter property page.  Make any changes you like, and click Apply/OK.

Send a log.


Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 08, 2024, 02:15:25 pm
First test is just to pick and set some format on the filter (1080/50p 4:2:2 as there is no UHK option exposed).  This seems to work... I've attached the:
- Log
- The MediaType Registry settings that got created.

Next to test playback.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 08, 2024, 02:22:55 pm
...and here is the log with MC correctly setting the Ultrastudio to 1080p50 and then playing the 1080p stream (with audio) that I was feeding it.

Nice work.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 08, 2024, 02:24:10 pm
As expected - I also tried sending a UHD stream and this "played" but with a black screen (as the UltraStudio was in 1080p mode). 
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 08, 2024, 03:08:00 pm
To test the ideas, first wipe out the "MediaType" subkey from the registry, and try playing the device and see if it works.  It it works, it means the previously hard-coded format is not supported and that is the reason for it not working.  This tests the change #1 above. Hope it works.

Here is the log for this test.  It did not work in that:
- Nothing was created in the Registry
- Ultra Studio was set to the default 525i
- It played with a blank screen

Log attached
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 08, 2024, 03:15:42 pm
Also testing the following to see if it helps (it does not):
- Play the WDM : Changed the Ultra Studio to 1080p mode and playback was correct in MC, then Stop and:
- Play the Decklink : Changed the Ultra Studio back to 525i and the input was not correct and a black screen in MC (with sound).
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 08, 2024, 06:51:44 pm
It appears that the device, when we do not set the video format, defaults to 720x486x16 bit '0x59565955'.  We have to set the format (i.e. via Video Capture Filter configuration), in order to play.  Well, as least we now know how to set it.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 08, 2024, 07:03:03 pm
As expected - I also tried sending a UHD stream and this "played" but with a black screen (as the UltraStudio was in 1080p mode).

So you have to configure the device each time a stream with a different resolution is sent?  And the device does not let you set it to UHD.  They need to update this device driver.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 08, 2024, 11:08:54 pm
It appears that the device, when we do not set the video format, defaults to 720x486x16 bit '0x59565955'.  We have to set the format (i.e. via Video Capture Filter configuration), in order to play.  Well, as least we now know how to set it.

Correct, but you can also set it programmatically.

So you have to configure the device each time a stream with a different resolution is sent?  And the device does not let you set it to UHD.  They need to update this device driver.

- Correct,
- Half Correct:  There Filter's UI does not expose any UHD options, but you can set it programmatically to UHD (as I by copying the MediaType registry)
- Not sure:  I think the Decklink driver is expecting to be programatically controlled (and not via the Filter's UI)

---------------------------------------------------------

I'm confused on what we are trying to achieve with these BlackMagic devices and the two different filters that are exposed, seem to offer different things:

Isn't their WDM filter the "auto everything" driver as?
- Requires nothing to be set,
- Auto configures the UltraStudio to match in incoming signal format,
- Passes through the video and audio to MC just fine.

Vs

The Decklink filter which seems to need you to programmatically control it as:
- Nothing is automatic,
- Setting it via the Filter does keep it between sessions, but you have to manually change it manually for different input specs
- Not all the capabilities are exposed in the filter's UI but it does support everything (as we can see in the log and in my manual testing).

I guess the bit I do not understand, and my Q's would be:
1) What is wrong with just using the WDM driver?
2) What is the advantage of getting the Decklink driver working?
3) Aren't you still going to need an encoding filter to get a useable H264/H265/AV1 file (or ffmpeg/avcodec or even some way of getting the WDM or the Decklink driver to trigger that with the GPU.... if that is even possible... no idea)?

Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 09, 2024, 12:19:25 am
Having a play using ffmpeg's dshow capture and encoding to MP4 (AVC in this example), I can confirm that both methods can capture a UHD input signal:

Decklink Filters:  You needed to set the Video Size/Framerate (or else it "defaults" and you get a black video).
   ffmpeg -f dshow -video_size 3840x2160 -framerate 50 -rtbufsize 702000k -i video="Decklink Video Capture":audio="Decklink Audio Capture" out.mp4

WDM Filters: You don't need to set anything.
   ffmpeg -f dshow -rtbufsize 702000k -i video="Blackmagic WDM Capture":audio="Line In (Blackmagic UltraStudio 4K Mini Audio)" out.mp4

Apart from that, the rest is the same.

Note: If I was to use ffmpeg for real use I'd be setting a bunch of flags as part of the encoding for quality etc.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 11, 2024, 11:17:41 am
Thank you Nathan.

With your help we now have the following changes in the next build:

1. Changed: For video capturing (on Windows, using DirectShow), if the device does not offer "Video Capture Pin" property page, MC will save video output format data upon user exiting from "Video Capture Filter" property page. This solves the issue of MC never saving the output format that the user set on the property page.
2. Fixed: DirectShow device "DeckLink Video Capture" from Blackmagic Design did not work.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 11, 2024, 11:34:16 am
Good question regarding WDM filter vs. DeckLink filter.  Indeed it appears that the latter requires the app to do more setup.

What I will do is to create a dialog window that will list all input lines (if the device has multiple) and input formats for users to choose from, and then with the chosen input format, list all compatible output formats for the users to choose from.  Only after the users make such selections the device can work. So the dialog window might pop up every time the device is loaded (with the option to turn it off) and it will also be available on the configuration window.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 11, 2024, 01:56:27 pm
Sounds good.  It may be worth adding a "remember" or "make default".

I'll be very interested in see how the "output" format works.  So far, all I've seen is it passes through the input.  My unit certainly does not have any inbuit HW encoding capability, unless it just uses the PC's existing encoding capabilities (CPU/nvidia etc).  Will you also be asking the user to set the Colour Space (709/HLG/PQ)?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 12, 2024, 09:12:53 am
Sounds good.  It may be worth adding a "remember" or "make default".

Yes, I will let the settings persist, and let users to choose whether to run settings every time.

Quote
I'll be very interested in see how the "output" format works.  So far, all I've seen is it passes through the input.  My unit certainly does not have any inbuit HW encoding capability, unless it just uses the PC's existing encoding capabilities (CPU/nvidia etc).
This is not clear to me either.  By reading their documentation, I get the impression that you set input format for recording, and output format for viewing.  Since the DirectShow filters only expose "Capture" pin, not "Preview" pin, only the input format is used? 

Quote
Will you also be asking the user to set the Colour Space (709/HLG/PQ)?

I am still in the process of understanding what is possible.  I will add it if I figure out how. :)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 12, 2024, 02:13:24 pm
Tested the changes to date rolled into v40.  Works as expected! :) 

I'll also do some digging on the other questions and report back.

Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 12, 2024, 02:14:58 pm
I found this in their FAQ on "How to output HDR Metadata"

Before attempting to capture or output HDR Metadata, a DeckLink API application should verify support for this feature, by querying the BMDDeckLinkSupportsHDRMetadata [1] attribute via the IDeckLinkAttributes [2] interface:

IDeckLinkAttributes *deckLinkAttributes = NULL;
if (deckLink->QueryInterface(IID_IDeckLinkAttributes, (void **)&deckLinkAttributes) != S_OK) {
    printf("Could not get the IDeckLinkAttributes interface\n");
    deckLinkAttributes = NULL;
    goto bail;
}

bool supportsHDR = false;
if (deckLinkAttributes->GetFlag(BMDDeckLinkSupportsHDRMetadata, &supportsHDR) == S_OK && supportsHDR) {
    // HDR is supported.
}
The IDeckLinkVideoFrameMetadataExtensions [3] interface provides methods to query metadata associated with a video frame, the presence of HDR metadata may be determined by checking the frame flags[4] for the presence of the bmdFrameContainsHDRMetadata [5] flag.

"2.7.63 Frame Metadata ID" enumerates the metadata items which may be queried via the IDeckLinkVideoFrameMetadataExtensions interface. The available HDR metadata includes the RGB primaries, whitepoint, EOTF, etc.

In order to output HDR metadata, the application will need to provide a class that implements both IDeckLinkVideoFrame [6] and IDeckLinkVideoFrameMetadataExtensions (in a similar way as 3D support requires an application to implement IDeckLinkVideoFrame3DExtensions, as demonstrated in the SignalGenerator SDK sample).

The custom video frame type should indicate the presence of HDR metadata by ensuring the IDeckLinkVideoFrame::GetFlags() [7] implementation returns bmdFrameContainsHDRMetadata, and implement IUnknown::QueryInterface() [8] for IDeckLinkVideoFrameMetadataExtensions.

This video frame class which implements the IDeckLinkVideoFrameMetadataExtensions interface may implement additional methods to set the HDR metadata fields as needed by the upper layers of the application.

When scheduling instances of the custom IDeckLinkVideoFrame for playback, the DeckLink API will query the frame flags to determine if the bmdFrameContainsHDRMetadata flag is set, and if so, retrieve the IDeckLinkVideoFrameMetadataExtensions implementation (via IUnknown::QueryInterface()). Assuming IUnknown::QueryInterface() is successful, IDeckLinkVideoFrameMetadataExtensions::Get*() will be called by the DeckLink API to retrieve the HDR metadata for output.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 12, 2024, 02:25:44 pm
Found this older quote from a Blackmagic Design staff member.  As I suspected (though some of their models do have a HW encoder).

Quote
The DeckLinkAPI provides interfaces for the capture of uncompressed video and audio. It does not provide interfaces for capture to container formats such as .mp4.

You should consider using Media Express for capture or other 3rd party implementations such as FFmpeg to achieve this.

Edit - and this newer post:

Quote
The H265TestEncoder SDK sample provides code example for products that support capture with native H.265 hardware encoding in addition to uncompressed capture. The UltraStudio 4K Extreme will work with this sample, but not the DeckLink 8K Pro which supports only uncompressed capture.

Most BMD capture device don't have onboard HW encoding (and the ones that do only support H265)

Quote
In order to use H.264, your application will need to integrate code to interface the DeckLink SDK with an H.264 codec. You may find FileCapture/FilePlayback SDK samples useful as a reference.

He references the FileCapture/FilePlayback SDK samples which may be worth checking out (you can download the DesckLink SDK) from here - https://www.blackmagicdesign.com/developer/products/capture-and-playback/sdk-and-software
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 13, 2024, 08:56:33 am
Thanks.

I installed the SDK a while back.  The HDR stuff was logged in the previous log files:

Quote
0266890: 40448: TV: BlackmagicWDMCapture::ExploreDecklinkAPI: BMDDeckLinkSupportsHDRMetadata is 1
0266890: 40448: TV: BlackmagicWDMCapture::ExploreDecklinkAPI: BMDDeckLinkSupportedDynamicRange is 1610612736 (HDRStaticPQ, HDRStaticHLG)
0266890: 40448: TV: BlackmagicWDMCapture::ExploreDecklinkAPI: Found IDeckLinkHDMIInputEDID interface
0266890: 40448: TV: BlackmagicWDMCapture::ExploreDecklinkAPI: bmdDeckLinkHDMIInputEDIDDynamicRange is 536870912 (HDRStaticPQ)
0266890: 40448: TV: BlackmagicWDMCapture::ExploreDecklinkAPI: Found IDeckLinkStatus interface
0266890: 40448: TV: BlackmagicWDMCapture::ExploreDecklinkAPI: bmdDeckLinkStatusDetectedVideoInputDynamicRange is 0 (SDR)

The interface that I have not tried is IDeckLinkVideoFrame for per-frame metadata. That seems to require us to move away from DirectShow entirely. Considering possible Mac and Linux support, moving away from DirectShow may be the good choice for these devices.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 13, 2024, 02:02:36 pm
Quote
bmdDeckLinkStatusDetectedVideoInputDynamicRange is 0 (SDR)
Sorry - missed this part (which was correct for the feed I was sending it).  I can test HLG / PQ if you want.

I also agree, that if you want to be cross platform then the Decklink API is the way to go.  Otherwise the existing work down is fine for Windows and achieves the same thing. 

What are your thoughts on the encoder?


Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on November 13, 2024, 02:38:01 pm
I had one Q on this topic, hope it's ok to ask here as it's related to what you're doing (won't interrupt again with mention of another device)

can you state exactly what MC needs to see/use a capture card in terms of what it looks for in a directshow filter & how it puts the pins together into an output stream? in addition, in order to drive JRVR into HDR mode, what does it need? we know that https://github.com/defl/directshow_metadata_injector_filter/blob/main/cpp/directshow_metadata_injector_filter/lavfilters_side_data.h doesn't work as is so what else is required?

(context = I'm writing a filter for my own use that wraps the magewell sdk (https://www.magewell.com/sdk) into an implementation of directshow CSource & which can extract multichannel LPCM so it would be nice if I could get this working in MC too)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 14, 2024, 02:44:33 pm
MC loads a WDM capture filter and associated filters and render the output pins.  The filters are loaded via Windows WDM device list, of category CLSID_VideoInputDeviceCategory.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on November 14, 2024, 03:22:41 pm
ok great, thanks. Does it support driver HDR metadata into JRVR yet or is this what you're working on as part of supporting the blackmagic devices?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 14, 2024, 04:47:14 pm
We are working on HDR metadata.  It is still not clear how we are approaching it.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on November 18, 2024, 02:27:38 pm
OK, will be great if it can be done in an open manner that lets a user provided filter give the info required to drive it
Title: Re: Blackmagic Design devices - how do we support them better
Post by: JimH on November 18, 2024, 04:37:42 pm
Matt,
I think you know that we don't intend for JRVR to be used by other applications.  I hope you understand.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on November 18, 2024, 04:46:06 pm
You misunderstand as it's not another application

I'm talking about a directshow capture filter to use as channel within MC television. I can already use the microsoft provided one for the card but that only supports stereo audio and doesn't expose the colourspace in a way that lets a renderer understand it, you have to use the api provided by the card manufacturer to do all that. Hence write one and then be able to use MC to fully access the card capabilities.

Put simply, it's exactly what Yaobing is doing for the blackmagic cards (which I don't use because they have limited support for the resolution/frame rate output by my cable box. I can't imagine why you'd want to restrict support to a particular card but obviously it's your software so that's your choice.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on November 21, 2024, 03:19:41 pm
We are working on HDR metadata.  It is still not clear how we are approaching it.
regardless of whether you make it public api or not, I'm curious what are the downsides of the method of packing data into IMediaSideData (https://github.com/Nevcairiel/LAVFilters/blob/81c5676cb99d0acfb1457b8165a0becf5601cae3/include/IMediaSideData.h) are? it seems commonly used and pretty straightforward
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on November 23, 2024, 04:00:36 am
FWIW I have my filter functional now and it seems to at least play in MC & I can see that JRVR is tonemapping without changing settings when fed with appropriate data so not sure you need to do anything other than simply integrate their API as a capture filter?

I haven't tackled attempting to handle changing format yet, e.g. my cable box (a virgin 360 aka LG horizon) will switch from sdr to hdr when I go from normal tv to something like apple+, atm I just plan to use its function to overlay an image as OSD to say "restart playback" but would JRVR cope with this? e.g. does it support https://learn.microsoft.com/en-us/windows/win32/directshow/dynamic-format-changes ?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Hendrik on November 23, 2024, 04:31:23 am
JRVR is fine with dynamic format changes, if you need to change the allocator due to frame size or format changes, you may need to flush though (so all frames are returned to the allocator). Feel free to refer to LAV Videos format change logic https://github.com/Nevcairiel/LAVFilters/blob/master/decoder/LAVVideo/LAVVideo.cpp#L1500-L1589
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on November 23, 2024, 05:50:07 am
thanks for the link, will try to adapt/copy
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 24, 2024, 12:08:09 am
I still think an encoder is going to be needed if you want to pause, record etc.  That uncompressed video stream bitrate is too high to write out to disc effectively and the resultant file is full of dropped frames.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 27, 2024, 11:25:07 am
What you are saying is that the hard disk is the limiting factor here.  A compressor and a decompressor shift load to CPU. That is what I thought too, as time-shifting writes many files to disk and then reads them back for displaying.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on November 27, 2024, 11:40:58 am
Regarding HDR metadata, I posted the following a few days ago:

BMDDeckLinkSupportsHDRMetadata is 1
BMDDeckLinkSupportedDynamicRange is 1610612736 (HDRStaticPQ, HDRStaticHLG)
Found IDeckLinkHDMIInputEDID interface
bmdDeckLinkHDMIInputEDIDDynamicRange is 536870912 (HDRStaticPQ)
Found IDeckLinkStatus interface
bmdDeckLinkStatusDetectedVideoInputDynamicRange is 0 (SDR)


These are the static info that I found from API, and the result was for jmone's device. What I did not know was whether we need to deal with metadata for each frame. As far as I know, the WDM capture filter does not carry the metadata, so how do we pass the metadata? I suppose we need to synchronize the video frames that go to the renderer via DirectShow filters with what we find with the API?  That is why I thought a complete re-writing of the system (not using their WDM capture filter, like mattkhan is doing) is necessay?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on November 27, 2024, 11:56:02 am
It is transmitted per frame though clearly it changes rarely so I guess you could write a transform filter to sit on top of the provided capture filter (though in my experience, dealing with the media type and the filter negotiation is where all the work actually is, capturing the frame is simple in comparison)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on November 27, 2024, 01:38:38 pm
What you are saying is that the hard disk is the limiting factor here.  A compressor and a decompressor shift load to CPU. That is what I thought too, as time-shifting writes many files to disk and then reads them back for displaying.

Kinda.  We are capturing uncompressed Video (RGB) and the data rates (see table) will be in many cases well over 10 Gbps Vs playing "normal" compressed Video (HEVC, AVC, MPEG, AV1 compressed files, discs, streams) which is normally well under 1 Gbps.  These uncompressed data rates:
- Can be too large to write out to a file in real time (eg dropped frames)
- Are too large to then be later played over a std 1Gbps network connection
- Takes up far too much disc space

My suggestion would be to write the uncompressed video stream via an encoder to a file (say MP4 using HEVC, AVC, whatever) and then play that as with any other "normal" compressed video file. 
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 01, 2024, 07:09:59 am
Hello.

Are you talking about DeckLink Mini Recorder 4K or DeckLink Quad HDMI Recorder ? Both ? Another BM product, in this case which one ?

Thanks.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on December 01, 2024, 02:09:23 pm
I was testing with an UltraStudio 4K Mini, but it should work with any of their Capture cards/boxes that supports their SDK.  Keep in mind that each devices has their own HW config and limitations, such as:
- DeckLink Mini Recorder 4K - Max is UHD @ 30fps
- UltraStudio 4K Mini - needs a thunderbolt connector
etc

Note: None of these devices "allow capture from copy protected HDMI sources". 

Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 01, 2024, 11:36:17 pm
I was testing with an UltraStudio 4K Mini, but it should work with any of their Capture cards/boxes that supports their SDK.  Keep in mind that each devices has their own HW config and limitations, such as:
- DeckLink Mini Recorder 4K - Max is UHD @ 30fps
- UltraStudio 4K Mini - needs a thunderbolt connector
etc

Note: None of these devices "allow capture from copy protected HDMI sources".

Thank you  :)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 02, 2024, 06:55:10 am
Hello

I m about to buy a Blackmagic DeckLink Quad HDMI Recorder. My understanding is it might work or not, but would  jriver team be ready to integrate this capture board in jriver knowing that I can provide my feedback to help the development ? If yes I m ready to take the risk to buy it.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 02, 2024, 08:38:21 am
We are indeed working on improving the support of Blackmagic Design devices, including the device you are considering buying.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 02, 2024, 08:44:19 am
It is transmitted per frame though clearly it changes rarely so I guess you could write a transform filter to sit on top of the provided capture filter (though in my experience, dealing with the media type and the filter negotiation is where all the work actually is, capturing the frame is simple in comparison)

So, if the metadata changes at a random moment, we just pass the new data to the renderer.  Does the renderer need to know which video frame this is for, or starting with which frame? That was what I meant by "synchronization".
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on December 02, 2024, 08:54:50 am
If you were to implement this as a transform filter then you would see each frame and would update as and when it changes (and then have to renegotiate the media type with the renderer). Hendrik already confirmed it but I can see jrvr and madvr both support this on the fly changing of media type without issues.

As long as their API exposes this info without needing to read the entire frame then it seems doable to me (but as noted actually reading the frame is easy so might be simpler just to write your own source filter instead)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 03, 2024, 06:16:16 am
We are indeed working on improving the support of Blackmagic Design devices, including the device you are considering buying.

Hello, Thanks. I have ordered a Blackmagic DeckLink Quad HDMI Recorder. I’m willing to help if it makes any sense for jriver development, I will tell you once I’m ready.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 03, 2024, 12:20:13 pm
Thanks.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on December 03, 2024, 01:52:05 pm
fwiw anyone who wants same functionality using a magewell pro card can refer to https://yabb.jriver.com/interact/index.php/topic,140134.0.html
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 03, 2024, 03:25:27 pm
Nathan,

Please test this JRTelevision DLL (https://files.jriver-cdn.com/mediacenter/test/JRTelevision 2024-12-03.rar).

This is about setting video format before playing.  You are going to get a pop-up dialog when starting up the device.  I will move it to Configuration window later, after we confirm it works.

You get two combo boxes. The first one lets you choose a connection method, i.e. HDMI, Component, Composite, etc.  The second one lets you choose display mode - a combination of pixel format (YUV, RGB etc.) and display (HD, 4k, progressive or not).

I only implemented the following pixel formats:

"8BitYUV"
"10BitYUV"
"8BitARGB"
"8BitBGRA"
"10BitRGB"

Selecting anything else likely will not work.

Known issue: the dialog window hides behind the main window after a second or so. You have to Alt-Tab it back. So in the end it probably will only appear on the Configure window.

Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on December 03, 2024, 08:58:08 pm
Thanks Yaobing.  Had a play, and kinda weird and I've attached a log that should how
- 1st Play: Using the BMD filter.  The pop up boxs came up (which they should not as this one is all automatic and does not need manual config).  You can select anything, then after OK, the UltraStudio changes to the correct format and I get Video and Audio just fine.  On stop, it leaves the UltraStudio in that format.
- 2nd Play: Using the Decklink Driver.  No matter what resolution I selected, the UltraStudio is put into 1080p mode.  This of course only gives me an image if I'm sending 1080p and a black screen if I'm sending UHD.

PS - Windows freaked about the RAR file.  Claimed it was a "severe" threat! :)  Seems I lived.

Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 04, 2024, 09:24:24 am
Thanks Yaobing.  Had a play, and kinda weird and I've attached a log that should how
- 1st Play: Using the BMD filter.  The pop up boxs came up (which they should not as this one is all automatic and does not need manual config).  You can select anything, then after OK, the UltraStudio changes to the correct format and I get Video and Audio just fine.  On stop, it leaves the UltraStudio in that format.
I will refine it so it will not be done for WDM devices.

Quote
- 2nd Play: Using the Decklink Driver.  No matter what resolution I selected, the UltraStudio is put into 1080p mode.  This of course only gives me an image if I'm sending 1080p and a black screen if I'm sending UHD.

I hoped this would work.  Will look at the logs.
Quote
PS - Windows freaked about the RAR file.  Claimed it was a "severe" threat! :)  Seems I lived.

Sorry about that. I will use ZIP next time.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on December 04, 2024, 03:17:11 pm
NP on the compressed file.

Good news is that it does look like it is showing all the supported options of the UltraStudio and you are successfully setting the Ultrastudio to change to a particular format.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jsmith967 on December 05, 2024, 10:41:49 am
We are indeed working on improving the support of Blackmagic Design devices, including the device you are considering buying.

I too can help with development as I have a Decklink 4K Recorder mini
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 05, 2024, 10:55:51 am
- 2nd Play: Using the Decklink Driver.  No matter what resolution I selected, the UltraStudio is put into 1080p mode.  This of course only gives me an image if I'm sending 1080p and a black screen if I'm sending UHD.

It turns out that the format was not set, because of a bug. Please try this new DLL. (https://files.jriver-cdn.com/mediacenter/test/JRTelevision2024-12-05.zip)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on December 05, 2024, 02:07:59 pm
 ;D - It Works!  Well done.  Let me know if
- you want a log
- test yet on SDR (709) vs HDR (HLG, PQ)
- etc

Thanks
Nathan

Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on December 05, 2024, 11:36:58 pm
I too can help with development as I have a Decklink 4K Recorder mini

You should be able to add this as a Device under Television --> TV Options --> Manage Devices and they will be (if it is the same as what I see)
- Blackmagic WDM Driver : This "just works" but only under Windows.  If you have a signal going into your Decklink then "play" this channel you should see and hear it in MC just fine.
- Decklink Video : This is an API driven approach that should work regardless of platform, but requires the user to select what the stream is.  This is the bit that Yaobing is working on at present.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 06, 2024, 09:37:10 am
;D - It Works!  Well done.  Let me know if
- you want a log
- test yet on SDR (709) vs HDR (HLG, PQ)
- etc

Thanks
Nathan

Thanks Nathan.
Right now, HDR is not involved. You can just try setting format to different ones and see if they all work (those I listed a few days ago, YUV and RGB types). Yes please provide a log.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on December 06, 2024, 02:46:40 pm
Here are a couple of Logs:

UHD (2160/50p) : This offered me the choice of
- 8BitYUV : Works
- 10BitYUV : Not expected to work as it is not on your list.  Result is a black screen, and the UltraStudio is put into 1080p50 mode.

FHD (1920/50p) : This gave me all of your support formats plus a few more
- They all worked and I played them in this order in the log. 8 YUV, 8 ARGB, 8 BGRA, 10 RGB ... and then for "fun" 12 RGB (and even this one worked...but I've got the feeling it just did not switch any mode but it was hard to tell). 

Also, in the JRVR it always showed that the Input was always 8-Bit RGB regardless of what I used above.

FWIW - As usual it also reports with unknown colour space info and still can't see in the OSD what the input FPS.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 11, 2024, 12:11:22 am
Hello.

I have installed a Blackmagic DeckLink Quad HDMI Recorder in my Windows 10pro PC computer.
I do my tests with a device allowing to output up to 4k hdr with LPCM stereo/multichannel or 5.1 bitstream
I get smooth video capture from BM software but it does not work for audio and there is no setting available.

In JRiver 33.0.47:
With Blackmagic WDM Driver:
-4k23 8 bits 444 is ok but I think there is an issue 16/235 vs 0/255
-I could not get audio working whatever the format set at the source

With Decklink Video driver:
-limited to 1080p, I could get 1080p23 10 bits 444 working and I think there is an issue 16/235 vs 0/255
-I could get audio working with stereo format but with a big sync lip issue.

How can I help you guys for improving all of this ?

Thanks.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on December 11, 2024, 02:40:00 pm
:)  Welcome and good timing (as I'm going to be away for a bit soon)!

Yaobing is the one developing it, and I've just been testing using my BMD UltraStudio 4K Mini and feeding it from a cinema camera. 

If you want to test the latest work Yaobing has done, then you will need to copy the DLL from Yaobing's post (5 above) into the MC install directory (say C:\Program Files\J River\Media Center 33), then do testing and provide some logs.  You will find in the MC logs what your device reports as being supported.... but these logs can get big quickly.

The logs would be useful for Yaobing to find out why you are not getting any audio on the WDM Driver (which just works for me but I've really only tested 2ch PCM).  That said, the focus so far has been getting the Video side working with the Decklink API. 
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 11, 2024, 11:30:04 pm
Hello.

I’m happy for helping. I live in France, time is GMT+1, so don’t be surprised if my answer seems delayed. I should able to provide my feedback in few hours about the dll above. First I need to understand how I can set jriver for creating a log file.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 12, 2024, 09:45:36 am
Hello,

Many things to report but without log file for the moment.

I’m still not able to get audio with BM WDM driver. If I go to audio pin I can get audio during les than 1s when I click on Ok button for leaving the Window audio pin configuration.

Now the cool thing with decklink video driver :

With a 1080p23 10bRGB I can get a smooth video and LPCM 2.0.
JRVR needs to have renderer queue deactivated otherwise there is a big issue for audio syncing and video rendering is not smooth.
Anyway, I had to increase the audio sync at 1500ms instead of 200ms that I use when watching a movie from my NAS server.
LPCM 2.0 is well played in 7.2 and audio goes to my VST plugin dirac as usual.
Finally, there is no issue with video level, it was my 3dlut which was not applied due to conditions not met for selecting the good profile, it’s now solved.

Otherwise I have tested the DLL, and I was only able to get 1080p23 10bits RGB working.

I think there is a lot of work to do both with video and audio.

Tell me how I could help. Thanks
Title: Re: Blackmagic Design devices - how do we support them better
Post by: JimH on December 12, 2024, 09:56:48 am
Does WDM audio work with a web browser?  It may not be set up correctly.  If not, please read the wiki topic again.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 12, 2024, 10:29:54 am
Does WDM audio work with a web browser?  It may not be set up correctly.  If not, please read the wiki topic again.

Hello. Sorry but I don’t understand. How can I connect my HDMI capture device to a web browser ?

Edit : if you speak about this wiki page https://wiki.jriver.com/index.php/WDM_Driver
Yes it works fine.
Does it mean that I need to use JR wdm audio renderer as active renderer in Windows for testing the wdm driver of my hdmi capture device ?

Edit 2 : I think the answer is yes. The JRiver architecture is quite new for me I need to learn, I will retest in 3 hours
Title: Re: Blackmagic Design devices - how do we support them better
Post by: JimH on December 12, 2024, 10:38:44 am
WDM, as I meant it, is our driver, not from another source.  What are you referring to when you say WDM?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 12, 2024, 10:47:11 am
WDM, as I meant it, is our driver, not from another source.  What are you referring to when you say WDM?

I’m referring to the WDM driver from Blackmagic. When I select my hdmi capture card through TV section in JRiver, I have 2 possibilities either to use blackmagic wdm video/audio capture or decklink video/audio capture.

So, when I’m referring to WDM in this thread it is about the blackmagic driver.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 12, 2024, 11:20:06 am
Sorry for being slow lately. I got bogged down with a different issue for the last few days.

Indeed, JRiver's WDM audio driver is not involved here. We are talking about Blackmagic WDM Capture device for video capturing.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 12, 2024, 03:36:48 pm
With decklink video capture:

1080p23 capture works when I select 10BitRGB through DLL, LPCM 2.0 works fine
2160p23 capture works when I select 8BitYUV through DLL, LPCm 2.0 does not work, it is noisy.
I cannot test LPCM 5.1, the device upstream the capture card is not able to provide it.

Would it be possible to allow audio bitstream by sending the audio captured to the appropriate decoder ?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 13, 2024, 10:28:12 am
Here are a couple of Logs:

UHD (2160/50p) : This offered me the choice of
- 8BitYUV : Works
- 10BitYUV : Not expected to work as it is not on your list.  Result is a black screen, and the UltraStudio is put into 1080p50 mode.

FHD (1920/50p) : This gave me all of your support formats plus a few more
- They all worked and I played them in this order in the log. 8 YUV, 8 ARGB, 8 BGRA, 10 RGB ... and then for "fun" 12 RGB (and even this one worked...but I've got the feeling it just did not switch any mode but it was hard to tell). 

It turns out, only 8bitYUV worked. All other formats failed at setting the filter's video pin format. The pin continued to output 8bitYUV, giving you an illusion that it worked.

Not sure what the issue was. It could be that I wrote the media type structure incorrectly. There is a minor issue with the way I specified the media type (forgetting to initialzed the structure so the target rectangle had some random numbers. It does not seem to be the cause as the 8bitYUV worked. I will post a modifed DLL for you to test.

The second possibility is that the format is already set and the DeckLink Video Capture filter would not allow change after it is loaded. That is a bit of strange though.

Quote
Also, in the JRVR it always showed that the Input was always 8-Bit RGB regardless of what I used above.

This is because there is an AVIDecompressor filter involved. It converted the YUV format to RGB.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 13, 2024, 10:36:55 am
With decklink video capture:

1080p23 capture works when I select 10BitRGB through DLL, LPCM 2.0 works fine
2160p23 capture works when I select 8BitYUV through DLL, LPCm 2.0 does not work, it is noisy.
I cannot test LPCM 5.1, the device upstream the capture card is not able to provide it.

Would it be possible to allow audio bitstream by sending the audio captured to the appropriate decoder ?

Audio is decoded with LAV Audio Decoder, which handles almost any format.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 13, 2024, 10:46:27 am
Audio is decoded with LAV Audio Decoder, which handles almost any format.

Yes I know but I don’t see LAV audio decoder involved when I look at the filter list reachable through right click with the mouse. If I remember well the list is :
JR audio renderer (in grey color)
JR video rendere (in grey color)
AVI decompressor (in grey color but I’m not sure for the exact name)
Decklink audio capture (in black color)
Decklink video capture (in black color)

This list is different than the one I can see when I play a movie (rip blu-ray in mkv for example) from my NAS and in general LAV audio décoder is there.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on December 13, 2024, 12:52:22 pm
Why do you need to choose a format as opposed to use whatever format is being sent by the source?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 13, 2024, 01:02:21 pm
Why do you need to choose a format as opposed to use whatever format is being sent by the source?

My request is to make the support by JRiver of BM device better as this thread is claiming. Today we know LPCM 2.0 works, I’m trying to find a way for sending LPCM 5.1 and I know my source can send 5.1 bitstream natively.

For bitstream I believe the captured audio needs to be sent to LAV decoder but I can be wrong.

I’m just here to try helping but I think I have not well understood the purpose of this thread.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on December 13, 2024, 01:13:19 pm
my Q was to yaobing really as I gathered the current implementation lets you choose the format, my Q is why would the user want to choose oppose to just read whatever is on the stream and then display it based on whatever your output settings say
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on December 13, 2024, 02:29:08 pm
Not wanting to put words in Yaobing's mouth but BlackMagic offer two different options with their capture cards:
- WDM Windows Direct Show Filter:  All automatic (or it should be).  Nothing to set (and nothing can be set).  This has been working for a while now.  Being Direct Show it will only work on Windows.
- Decklink API:  They also have a full API that works on any platform.  This is the part that Yaobing has been working on.  Yaobing has so far got the code so MC will query the BlackMagic device to see what video formats it supports (as various devices have different capabilities) and a way of then letting the user selecting the format. 

There is still a whole bunch to do.
- Look at the Audio side on what formats are supported, selectable etc
- Encoding the RGB output so it can be recorded etc without dropping frames (as most of these devices don't have a HW Encoder Option)
- Working out stuff like why alext77 is not getting audio with WDM
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on December 13, 2024, 02:30:45 pm
My question is why would you want something other than what the source provides?

Ie you have some source device, it will.have it's own configuration that controls what it outputs. Why would you want the capture to do anything other than pass that through to MC which deals with anything required to fit the output format?

It's all I did with the magewell SDK so just wondering what I am missing, if anything.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on December 13, 2024, 03:11:29 pm
You don't.  In fact it will not work if it is mismatched (you will only get a black screen).  So, if you are using the SDK method, you have to set it to match.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 13, 2024, 04:11:37 pm
Hello guys.

Tomorrow I should get an hdmi device allowing to force its output in a given resolution (let say 2160p23) and it should be also able to send LPCM up to 7.1. This should make my tests easier.

I know how to copy paste the directshow filter graph and start a log file.

It’s 23:00 in France, bye bye.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 13, 2024, 04:23:48 pm
My question is why would you want something other than what the source provides?

Ie you have some source device, it will.have it's own configuration that controls what it outputs. Why would you want the capture to do anything other than pass that through to MC which deals with anything required to fit the output format?

It's all I did with the magewell SDK so just wondering what I am missing, if anything.

The source usually is configurable. With "Blackmagic WDM Capture" device, the user can run the filter property page and set the format. But with "DeckLink Video Capture", as Nathan discovered, the property page does not offer all formats.

I was thinking the same thing when I started, but I can not wrap my head around it when their API offers a list of possible formats, but does not tell which format the source sends. Or I did not find the right API function?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 13, 2024, 04:34:55 pm
Please try this new DLL. (https://files.jriver-cdn.com/mediacenter/test/JRTelevision2024-12-13.zip)

Nathan, for you there is not much change, as I only made sure I initialized the structure. So don't be surprised that it does not make any difference.

The dll should be used with the latest beta.

alext77, you can download and install this version first, before you copy the DLL:

MediaCenter For test (https://files.jriver-cdn.com/mediacenter/test/MediaCenter330051-x64.exe)

I added some code to insert LAV Audio Decoder during graph building.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on December 13, 2024, 04:50:35 pm
Fwiw I decide that based on a few values coming in on the signal

https://github.com/3ll3d00d/mwcapture/blob/main/mwcapture/mwcapture.cpp#L1098

I guess this same info is mostly found somewhere in BMDDeckLinkStatusID by the looks of it
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on December 13, 2024, 07:13:23 pm
Nathan, for you there is not much change, as I only made sure I initialized the structure. So don't be surprised that it does not make any difference.

Did a quick test. Seemed the same.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 14, 2024, 07:23:55 am
Please try this new DLL. (https://files.jriver-cdn.com/mediacenter/test/JRTelevision2024-12-13.zip)

Nathan, for you there is not much change, as I only made sure I initialized the structure. So don't be surprised that it does not make any difference.

The dll should be used with the latest beta.

alext77, you can download and install this version first, before you copy the DLL:

MediaCenter For test (https://files.jriver-cdn.com/mediacenter/test/MediaCenter330051-x64.exe)

I added some code to insert LAV Audio Decoder during graph building.

Hello,

Yaobing, have you received my private message ?

Installation of MC 51 is done but I still cannot see LAV audio decoder in the directshow filters :

below the copy/paste :

Filter Graph Info (TV graph):

    Filter 'JRiver Audio Renderer'
        CLSID: {A4002F8E-510F-442C-8AD3-F9C7B23FB394}
        Host:
        Input Pin 'In'
            Connected to pin 'Capture' of filter 'Decklink Audio Capture'
            Major type MEDIATYPE_Audio  Sub type MEDIASUBTYPE_PCM, Format type FORMAT_WaveFormatEx

    Filter 'JRVR'
        CLSID: {555E6803-14EF-4946-8646-B6EF9E9121E2}
        Host:
        Input Pin ''
            Connected to pin 'XForm Out' of filter 'AVIDecompressor'
            Major type MEDIATYPE_Video  Sub type MEDIASUBTYPE_RGB32, Format type FORMAT_VideoInfo

    Filter 'Decklink Audio Capture'
        CLSID: {AAA22F7E-5AA0-49D9-8C8D-B52B1AA92EB7}
        Host: c:\program files\blackmagic design\blackmagic desktop video\decklink64.dll
        Output Pin 'Capture'
            Connected to pin 'In' of filter 'JRiver Audio Renderer'
            Major type MEDIATYPE_Audio  Sub type MEDIASUBTYPE_PCM, Format type FORMAT_WaveFormatEx

    Filter 'AVIDecompressor'
        CLSID: {CF49D4E0-1115-11CE-B03A-0020AF0BA770}
        Host: c:\windows\system32\quartz.dll
        Input Pin 'XForm In'
            Connected to pin 'Capture' of filter 'Decklink Video Capture AFF3E920987F1D8D'
            Major type MEDIATYPE_Video  Sub type Unknown GUID Name: {43594448-0000-0010-8000-00AA00389B71}, Format type FORMAT_VideoInfo
        Output Pin 'XForm Out'
            Connected to pin '' of filter 'JRVR'
            Major type MEDIATYPE_Video  Sub type MEDIASUBTYPE_RGB32, Format type FORMAT_VideoInfo

    Filter 'Decklink Video Capture AFF3E920987F1D8D'
        CLSID: {44A8B5C7-13B6-4211-BD40-35B629D9E6DF}
        Host: c:\program files\blackmagic design\blackmagic desktop video\decklink64.dll
        Output Pin 'Capture'
            Connected to pin 'XForm In' of filter 'AVIDecompressor'
            Major type MEDIATYPE_Video  Sub type Unknown GUID Name: {43594448-0000-0010-8000-00AA00389B71}, Format type FORMAT_VideoInfo
        Output Pin '~VANC'
        Output Pin '~Timecode'
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 14, 2024, 09:19:44 am
Some news :

My source can send 2160p23 HDR, I can check it with my VERTEX that I have installed in between my source and the blackmagic board. I can see the metadata sent to the board. The issue is JR video renderer don’t see the meta data.

About audio : my source can send LPCM up to 7.1 but JR audio renderer can see only 2 channels. With LPCM 2.0 it is consistent but with moré Channel I can hear only the side or the rear channels.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 14, 2024, 09:38:04 am
Some news :

My source can send 2160p23 HDR, I can check it with my VERTEX that I have installed in between my source and the blackmagic board. I can see the metadata sent to the board. The issue is JR video renderer don’t see the meta data.

About audio : my source can send LPCM up to 7.1 but JR audio renderer can see only 2 channels. With LPCM 2.0 it is consistent but with moré Channel I can hear only the side or the rear channels.

Did you copy the JRTelevision.dll over after you installed the new version of MC?

You can email me a log if you prefer. yaobing at jriver
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 14, 2024, 09:43:33 am
Yes I did. I will send you an email.

Have you reveived my private message ?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 14, 2024, 10:26:57 am
Did you copy the JRTelevision.dll over after you installed the new version of MC?

You can email me a log if you prefer. yaobing at jriver

Log sent by email. (alex_xxxxx at yahoo fr, check your spam)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 14, 2024, 10:55:35 am
Yes I got your PM.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 15, 2024, 02:14:18 pm
Hello

If you want me to test anything, I’m ready :)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 16, 2024, 10:59:58 am
Hello

If you want me to test anything, I’m ready :)

I received the log by email.

The log shows that the audio was PCM. That is why LAV Audio decoder filter was not involved. I believe LAV decoder filters are designed to connect to only compressed media formats, not uncompressed ones.

Here is the sequence of what went on:

1. We try connecting LAV. It failed to connect because the audio is PCM.
2. We try connecting without an intermediate filter (from the capture filter to the renderer directly). That succeeded.

The video format is 'HDYC' which is not in our code. So somehow the filter's output already got that.

We are currently not messing with the audio output pin yet, so whatever format configured at the audio output pin must be the default, which would be plain PCM.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on December 16, 2024, 12:20:14 pm
Are you sending pcm or compressed?

Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 16, 2024, 01:18:51 pm
Hello.

The source sends LPCM multichannel or stereo but it can send DD 5.1 as well, I tested LPCM 2.0 and DD 5.1 and LAV audio decoder was not in the filter list in both cases, I will redo the test later on with a log file.

Thanks.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on December 18, 2024, 01:39:04 pm
Hello.

The source sends LPCM multichannel or stereo but it can send DD 5.1 as well, I tested LPCM 2.0 and DD 5.1 and LAV audio decoder was not in the filter list in both cases, I will redo the test later on with a log file.

Thanks.

After you try this and produce a log, I would like you to try the following too:

Go to TV Options, select your Blackmagic device and click Configure button.

In Advanced section, there is a list of DirectShow property pages. Look for "Audio Capture Pin...", "Video Capture Pin...", and "Video Capture Filter...". You may or may not have all of them. If you find "Audio Capture Pin...", double click it to bring up the property page.  If you don't find it, try "Video Capture Filter...". On the property page, do you see anything that allows you to select an audio format? If so, what are the choices?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on December 19, 2024, 01:37:00 am
After you try this and produce a log, I would like you to try the following too:

Go to TV Options, select your Blackmagic device and click Configure button.

In Advanced section, there is a list of DirectShow property pages. Look for "Audio Capture Pin...", "Video Capture Pin...", and "Video Capture Filter...". You may or may not have all of them. If you find "Audio Capture Pin...", double click it to bring up the property page.  If you don't find it, try "Video Capture Filter...". On the property page, do you see anything that allows you to select an audio format? If so, what are the choices?

Hello, I will do/check in few days. Thanks for your support.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: alext77 on January 11, 2025, 01:34:17 pm
Hello everyone.

I’m still there and motivated for testing my black magic device. I was sick during almost a month, next week I should be able to play with JRiver again.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on January 15, 2025, 10:41:54 am
Hello everyone.

I’m still there and motivated for testing my black magic device. I was sick during almost a month, next week I should be able to play with JRiver again.

I am sorry about your illness. Hope you have recovered well. Welcome back!

Currently I don't have anything to test. I will let you know when I make some changes. Thanks.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jsmith967 on January 15, 2025, 04:16:09 pm
I'm also ready to test anything to move this project forward.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on January 16, 2025, 02:01:52 am
am I right in thinking that these devices/cards only support 48kHz audio? the specs and sdk manual would say this is true but would be good to know for sure
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on January 16, 2025, 09:11:55 am
I don't know.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: claw on January 16, 2025, 11:01:59 am
A year and a half ago, I was somewhat active in this thread...

https://yabb.jriver.com/interact/index.php/topic,131791.0.html

At that time, I used the WDM device and was trying to get HDR10 metadata applied since the DeckLink cards do not pass metadata.   I configured this metadata filter but it was only called for disk media playback and not for live input.

https://github.com/defl/directshow_metadata_injector_filter

That was when I halted my testing.

Has direction changed to use the Decklink device instead of WDM?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on January 17, 2025, 02:05:11 am
I realised recently that no capture card (that I can find) reliably supports 192kHz audio, they either support it but have implementation issues (magewell pro) or simply do not support it (everything else). Given this it must mean you're reliant on the source device to decode and produce LPCM audio or can only support AC3 (which seems unrealistic given how widespread eac3 is) hence I was wondering what source devices people are intending to use with this setup?
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jsmith967 on January 17, 2025, 07:56:18 am
I think the typical use case for this capturing feature is for the capturing HTPC to render only the video, not decode the audio too. As is the case with VideoProcessor w/ MadVR that many users want to replace with JRiver w/ JRVR, the capture device only processes the video and the audio goes to the AVR for decoding and processing. So for my setup, for example:

Streamer > AVR > HTPC Capture card > Display

The most desirable outcome sought here is Dynamic Tone Mapping (and secondarily scaling) for streaming sources. I am only interested in JRVR capturing 4K HDR and rendering using JRVR.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on January 17, 2025, 12:57:06 pm
Yeah I know people do that but I am interested in the pure htpc solution, I have no interest in needing to spend storm or trinnov money just to get enough channels and (barely enough) dsp capability
Title: Re: Blackmagic Design devices - how do we support them better
Post by: claw on January 17, 2025, 09:42:19 pm
I realised recently that no capture card (that I can find) reliably supports 192kHz audio, they either support it but have implementation issues (magewell pro) or simply do not support it (everything else). Given this it must mean you're reliant on the source device to decode and produce LPCM audio or can only support AC3 (which seems unrealistic given how widespread eac3 is) hence I was wondering what source devices people are intending to use with this setup?

I too don't care about audio capabilities.  I have an Atmos sound system that the AVR feeds.  I won't give up Atmos for LPCM or less.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on January 18, 2025, 02:43:03 am
just to be clear, I know people want a videoprocessor replacement, I don't and my Q is not to those people. My Q is addressed to the people, if any exist, who also want audio put through here.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mastermind on January 18, 2025, 04:52:35 am
I'm one of them. Ready to test!
Title: Re: Blackmagic Design devices - how do we support them better
Post by: OverTheAir on January 18, 2025, 01:09:24 pm
just to be clear, I know people want a videoprocessor replacement, I don't and my Q is not to those people. My Q is addressed to the people, if any exist, who also want audio put through here.
It might be helpful for your purposes and enable more qualified responses from others, if you outlined more about potential use cases for audio through these cards, including potential limitations, so responders would know whether it would fit their anticipated requirements. A 100 people saying they want something, only to turn into zero because of other limitations probably wouldn't help you.
 
To illustrate with my example. Your earlier post suggested a pure HTPC solution with Storm/Trinnov channel counts and greater processing. If such a solution also had a robust way to decode Atmos (i.e. not relying on getting access to Dolby Reference Player unless Dolby changes its position on this) then I would be interested in such a solution and hence would want audio through the card. I ran a pure HTPC solution with soundcard direct to a power amp for decade with no AVR needed for up to 5.1 playback of Blu-ray, music, and recorded over the air TV, so I'm not a stranger to this solution. However, what caused me to get an AVR was a desire for Atmos, so if that wasn't also part of the HTPC solution then I wouldn't be interested in audio through the card.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on January 18, 2025, 02:22:11 pm
there's no known card that supports 192kHz audio reliably (the magewell supports it but, in my system at least, it can't do it reliably, have a ticket open with them to see if it's something they reproduce) so you have to route audio via an AVR if the source doesn't decode (as all modern codecs bitstream at 192kHz) hence I'm just curious what source devices people are using that happily decode everything to 48kHz multichannel lpcm

Title: Re: Blackmagic Design devices - how do we support them better
Post by: claw on January 18, 2025, 03:59:26 pm
With an Apple TV 4K, if you set Audio Format to Auto and Dolby Atmos to OFF, it will output 24 bit 48kHz LPCM.  Depending on the content, it can be from 2 channel up to 7.1 channel LPCM.   Apple TV does not support anything higher than 48kHz.

Video and Audio format reported by HDfury VRROOM while playing a Netflix Atmos title:

VIDEO TX0:
4K59.941 593MHz 422 BT2020 12b HDR

AUDIO OUT:
L-PCM 48kHz 7.1ch 24bit
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on February 04, 2025, 09:03:35 am
I have now got something on HDR metadata which I hope will work.

Please test this:

The new DLL (http://The new DLL) that should work with the latest MC (33.0.63)

Keep in mind:

1. Non-time-shifting only for now. So run in non-time-shifting mode.
2. You can try both "Blackmagic WDM Capture" and "DeckLink Video Capture" devices.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on February 05, 2025, 03:36:37 am
I fed the BD UltraStudio a UHD HDR signal and used the WDM Capture Filter:
- The Image and Audio capture worked but it was not in HDR (all washed out)
- JRVR reported the colour space as "Unkown" as usual.
- I still get that config box you have to click "OK" in for the capture to commence (it is not needed with the WDM Capture driver)

I've attached the log, so hopfully it shows something...
 
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on February 05, 2025, 02:17:37 pm
- I still get that config box you have to click "OK" in for the capture to commence (it is not needed with the WDM Capture driver)

My latest code was not reflected in the log you sent. Did you actually use the DLL?

Anyway, I get another one here:

Link removed due to crash (http://Link removed due to crash)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on February 05, 2025, 02:29:52 pm
Mmmm, I may have sent the wrong log by mistake as I was having MC crashing issues (so was swapping the new DLL with the stock back and forward).  Anyway, just tried the newest DLL and here is the log file with the crash.

**Log Deleted**
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on February 05, 2025, 06:24:30 pm
The crash was caused by me forgetting to set a proper value for Frames Per Second  :(
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on February 05, 2025, 06:41:58 pm
No probs!
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on February 06, 2025, 11:14:55 am
Let's try again:

Fixed crash in DLL (https://files.jriver-cdn.com/mediacenter/test/JRTelevision2025-02-06.zip)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on February 06, 2025, 02:30:24 pm
Crash is fixed!  ... though,
- Picture is now upside down (see pic)
- No HDR

I've attached the log, just want to make sure it is the "correct dll" as I see Windows Defender scanning the file when I save it the MC folder.

Thanks
Nathan


FWIW - I also get the "no tuner is available" though a reboot fixed it.


Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on February 06, 2025, 02:40:36 pm
Reminds me of discovering https://github.com/3ll3d00d/mwcapture/blob/main/mwcapture/mwcapture.cpp#L1492 when I tested with my pc as a source rather than a stb :)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on February 06, 2025, 04:08:18 pm
Well it's a first for us on this one! :)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on February 06, 2025, 04:10:24 pm
...and thanks, Yaboing for getting rid of that selection box!

It still would be great to have the JRVR show the FPS in the "Input" part of the OSD.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on February 07, 2025, 11:58:54 am
new DLL (https://files.jriver-cdn.com/mediacenter/test/JRTelevision2025-02-07.zip)

Hopefully this will do something for HDR.

Regarding the upside-down video, I might have specified the media type wrong. I will need to figure out something else.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on February 07, 2025, 02:55:46 pm
Here is the latest log and pic:
- No change on HDR
- The good news on the Upside-down, is it is it goes away if I do a Pause/Play on the receiving end (see pic)
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on February 10, 2025, 10:19:57 am
Here is the latest log and pic:
- No change on HDR
- The good news on the Upside-down, is it is it goes away if I do a Pause/Play on the receiving end (see pic)

I use the DeckLink API and set up a callback interface. But the log does not catch any callback event saying "video package arrived". Thus no HDR event either.

I will do some more investigation. I will not be able to do much today as I will start a vacation tomorrow. If I don't post today, I will not post anything until near the end of the month.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on February 10, 2025, 02:21:16 pm
No probs!  Have a good Holiday!
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on February 11, 2025, 07:54:03 am
Thanks!
Title: Re: Blackmagic Design devices - how do we support them better
Post by: nuhi on February 17, 2025, 07:39:53 am
After you try this and produce a log, I would like you to try the following too:

Go to TV Options, select your Blackmagic device and click Configure button.

In Advanced section, there is a list of DirectShow property pages. Look for "Audio Capture Pin...", "Video Capture Pin...", and "Video Capture Filter...". You may or may not have all of them. If you find "Audio Capture Pin...", double click it to bring up the property page.  If you don't find it, try "Video Capture Filter...". On the property page, do you see anything that allows you to select an audio format? If so, what are the choices?
I have 2 bugs to report, one which blocks me from using MediaCenter with Decklink.

The filter option Window you described cannot change channels, only allows for OK/Apply if 2 channel selected, but if I select the needed 8, window stays open even if OK is pressed.
Official API term to capture all audio channels for DeckLink is "EmbeddedAllChannels", if that helps.

And the second one is not a deal breaker, but is a bit annoying.
Each time it initiates the interface, it reasks the input option for the capture card.

Screenshots of both cases attached, let me know if you need anything.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: mattkhan on February 17, 2025, 12:33:35 pm
The filter option Window you described cannot change channels, only allows for OK/Apply if 2 channel selected, but if I select the needed 8, window stays open even if OK is pressed.
Official API term to capture all audio channels for DeckLink is "EmbeddedAllChannels", if that helps.
I can't find that term in the SDK docs, where do you get that info from? google suggests that term is something to do with https://www.vmix.com/
Title: Re: Blackmagic Design devices - how do we support them better
Post by: nuhi on February 17, 2025, 01:01:19 pm
I can't find that term in the SDK docs, where do you get that info from? google suggests that term is something to do with https://www.vmix.com/
You are correct, I mixed it up, I am currently playing it with vmix and only that option gives all channels.
Not that you need it, but here is the DeckLink SDK manual:
https://documents.blackmagicdesign.com/UserManuals/DeckLinkSDKManual.pdf?_v=1734595211000

vmix doesn't have flexibility of Rendering and filters, that is why I would like to go back to MediaCenter.
Good news is that 2 channels it captures are L/R, not a downmix, which means others are just offset to it.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on February 20, 2025, 11:43:45 pm
Also, make sure you are using Yaobing's latest DLL for this.  You will need to manually copy it into your MC Program directory (eg C:\Program Files\J River\Media Center 33).

new DLL (https://files.jriver-cdn.com/mediacenter/test/JRTelevision2025-02-07.zip)

Hopefully this will do something for HDR.

Regarding the upside-down video, I might have specified the media type wrong. I will need to figure out something else.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on February 28, 2025, 10:48:17 am
I have 2 bugs to report, one which blocks me from using MediaCenter with Decklink.

The filter option Window you described cannot change channels, only allows for OK/Apply if 2 channel selected, but if I select the needed 8, window stays open even if OK is pressed.
Official API term to capture all audio channels for DeckLink is "EmbeddedAllChannels", if that helps.

It looks like you brought up the audio configuration dialog by double-clicking an item in Advanced section. Those property pages are provided by the manifacturerer, so we have no control over them.

I will figure out a way to replace those property pages with our own dialog windows. When that is done, hopefully we will have no issue setting up 8 channel audion. Stay tuned.

Quote
And the second one is not a deal breaker, but is a bit annoying.
Each time it initiates the interface, it reasks the input option for the capture card.

Screenshots of both cases attached, let me know if you need anything.

That will eventually be moved to the configuration dialog window. Right now I am still exploring the DeckLink API.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on February 28, 2025, 10:51:04 am
Please test this new DLL (https://files.jriver-cdn.com/mediacenter/test/JRTelevision2025-02-27.zip) and give me a log file. Please note this DLL will not provide any new behavior. I just added a few more logging lines that were missing.

Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on March 03, 2025, 02:09:42 am
Here you go!  Hope you had a good holiday.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on March 04, 2025, 01:43:56 pm
Please test this new JRTelevision DLL (https://files.jriver-cdn.com/mediacenter/test/JRTelevision2025-03-04.zip) and give me a log file.

Thanks.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on March 05, 2025, 03:06:01 am
Similar results, except that the image is now a blank screen instead of upside down till you do a Pause / Play.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: Yaobing on March 05, 2025, 06:37:36 pm
Similar results, except that the image is now a blank screen instead of upside down till you do a Pause / Play.

I try to set capture filter's output pin format according to the current format reported by the device. In this latest test, the format was "4K2160p60, 8BitYUV", while two days ago it was "4K2160p2398, 10BitRGB". In both cases the attempts failed. In both cases the capture filter output video pin ended up with some unknown formats.

Also, the attempt to start stream using DeckLink API failed, possibly because the DirectShow filter already started the device, and in retrospect, the device can not be controlled separately. That would explain why I am not seeing any "package arrived" notifications. So maybe it is time to abandon this approach and try getting the streams without using DirectShow.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on March 05, 2025, 07:36:28 pm
It may be a lot quicker if you had (buy,rent,borrow?) one of these devices for dev/test?  Who know, BMD may loan you one for testing.  I'd lend you mine, but Oz is a long way from the US.  You would need a PC with Thunderbolt 3 for the standalone unit, or PCI-E slots for a card.

Plus you would not be reliant on me (I'll be away for a few days now).
Title: Re: Blackmagic Design devices - how do we support them better
Post by: claw on March 08, 2025, 06:31:53 pm
I tried today with
DeckLink 4K Mini Recorder
Blackmagic Desktop Video 14.4.1
JRiver 33.0.71 configured to JRVR
Television configured for BM WDM Capture
TV DLL from March 3
Windows 10
RTX-3080 Ti

Source is Apple TV 4K sending 4K23 BT2020 12-bit HDR10

I get a black screen. If I click the black screen with the mouse, it returns Paused.  A picture then appears but stutters horribly.

If I change JRiver options to use MadVR or Standard, I get a smooth picture.  But BT2020 input is converted to BT709 output and no HDR, which could be expected since HDR10 metadata is not forwarded from the DeckLink.

Log file attached.
Title: Re: Blackmagic Design devices - how do we support them better
Post by: jmone on March 10, 2025, 01:17:37 am
I'm back but will be away again in a few days.  I forgot to mention, that you could see different formats in the logs as I've tried a few different bits of HW and at different refresh rates etc (though all HDR).