fabled / bmd-tools

Tools to connect and manage Blackmagic Design video equipment with built-in H.264 encoder
MIT License
37 stars 14 forks source link

Pro Recorder first Test #3

Closed rebotnix closed 10 years ago

rebotnix commented 10 years ago

hi,

i test your bmd-tools with h.264 recorder and when i set HDMI input to 1080p i got the message:

display mode 0x0f) not supported

The whole output looks like this: EP8: 31 bytes: 00 1f 06 01 0c 6d d0 aa 05 02 04 01 02 05 90 02 07 04 02 06 09 09 08 0c 6d d1 d3 00 00 00 00 [26/4 1edb:bd43]: FX2Status: Idle (5) [26/4 1edb:bd43]: MAC address 00:00:00:00:00:00 [26/4 1edb:bd43]: Input Mode, 0x90 (display mode 0x0f) not supported

As far as i can see is that 0x90 seems, 1080p60 and for this mode the display struct seems to be missing,

static struct display_mode *display_modes[DMODE_MAX] ...

So, i think i have to add this display-mode into bmd-streamer.c.

ic struct display_mode *display_modes[DMODE_MAX] = { [DMODE_1920x1080p_60] = &(struct display_mode){ .description = "1080p 60", .width = 1920, .height = 1080, .interlaced = 0, .fps_numerator = 25, .fps_denominator = 1, .fx2_fps = 0x3, .ain_offset = 0x0000, .r1000 = ??????????, .r147x =??????????, .r154x = ??????????}, }, Currently i do not understand yet how to add other display-modes. Can you give me some hints or how i can send you more infos about the pro recorder device?

Atem Studio is working fine, also the firm. extraction works on both.

thx for any help.

fabled commented 10 years ago

On Sat, 29 Mar 2014 16:49:30 -0700 garybruckheimer notifications@github.com wrote:

i test your bmd-tools with h.264 recorder and when i set HDMI input to 1080p i got the message:

Nice. According to my knowledge the h264 pro recorder has MUX that is controlled manually by the driver. That is if there is 'no signal' it keeps jumping between the input types. Thus I think only the default input will corrently work.

display mode 0x0f) not supported

That is a 1080p mode. Sounds that HDMI mode is the default. So I think it should work with modes that I have tuning data for.

So, i think i have to add this display-mode into bmd-streamer.c.

Correct.

Currently i do not understand yet how to add other display-modes. Can you give me some hints or how i can send you more infos about the pro recorder device?

The steps I've done are:

  1. Enabled the '#if 0' block in bmd_fujitsu_write(). Recompile.
  2. Record data using the Windows/MAC official software.
  3. Swap USB connection to bmd-streamer; see what are the old register values set by the windows software.
  4. Construct new display-mode block based on the previous.

I should probably add some LEARNING_MODE switch, and make it print out the C-code blocks for unknown modes - assuming that it was previously used from the official driver.

So yes - I have no idea what some of those register are for - I just copied the init values based on how the windows driver has set them. Some of the register values seem to be irrelevant (even random) in certain modes. But some just need to be set.

Atem Studio is working fine, also the firm. extraction works on both.

Nice.

rebotnix commented 10 years ago

thanks for your fast feedback and help.

i will help to support your app for all BMC devices.

i try to capture the displaymode, i start blackmagic express, capture some frames over hdmi, exit, kill -9 the bmdserver, start bmd_streamer and got this bytes:device connected EP8: 79 bytes: 00 4f 05 0e b2 e2 6f 5d 05 0e b3 2e d9 c5 05 0e b3 7b 44 53 05 0e b3 c7 ae bc 05 0e b4 14 19 49 05 0e b4 60 83 d6 05 0e b4 ac ee 41 05 0e b4 f9 58 ce 06 01 b5 14 f5 64 05 02 04 01 02 05 90 02 07 04 02 06 09 09 08 b5 14 f6 8e 00 00 00 00 [26/4 1edb:bd43]: FX2Status: Idle (5) [26/4 1edb:bd43]: MAC address 00:00:00:00:00:00 [26/4 1edb:bd43]: Input Mode, 0x90 (display mode 0x0f) not supported EP8: 8 bytes: 00 08 05 0e b5 61 59 c1 EP8: 8 bytes: 00 08 05 0e b5 ad c4 5d EP8: 8 bytes: 00 08 05 0e b5 fa 2e d4

i enable also the if (0 block in: static void bmd_fujitsu_write(struct blackmagic_device *bmd, uint32_t reg, uint16_t value) .. so that this code is activated: uint16_t oldvalue = bmd_fujitsu_read(bmd, reg); fprintf(stderr, "%s: fujitsu_write @%06x %04x != %04x\n", bmd->name, reg, value, oldvalue);

 if (value != oldvalue)
     fprintf(stderr, "%s: fujitsu_write @%06x %04x != %04x\n", 

bmd->name, reg, value, oldvalue);

i set then a breakpoint to the static func. but it seems it will never call this function.

only this for your update, i will investigate more time to see how we can implement more display-modes.

when this works, i can use my custrom embedded device to capture the ts stream and do not longer need my macbook or a windows PC :)

thx.

Am 30.03.14 07:24, schrieb Timo Teräs:

On Sat, 29 Mar 2014 16:49:30 -0700 garybruckheimer notifications@github.com wrote:

i test your bmd-tools with h.264 recorder and when i set HDMI input to 1080p i got the message:

Nice. According to my knowledge the h264 pro recorder has MUX that is controlled manually by the driver. That is if there is 'no signal' it keeps jumping between the input types. Thus I think only the default input will corrently work.

display mode 0x0f) not supported

That is a 1080p mode. Sounds that HDMI mode is the default. So I think it should work with modes that I have tuning data for.

So, i think i have to add this display-mode into bmd-streamer.c.

Correct.

Currently i do not understand yet how to add other display-modes. Can you give me some hints or how i can send you more infos about the pro recorder device?

The steps I've done are:

  1. Enabled the '#if 0' block in bmd_fujitsu_write(). Recompile.
  2. Record data using the Windows/MAC official software.
  3. Swap USB connection to bmd-streamer; see what are the old register values set by the windows software.
  4. Construct new display-mode block based on the previous.

I should probably add some LEARNING_MODE switch, and make it print out the C-code blocks for unknown modes - assuming that it was previously used from the official driver.

So yes - I have no idea what some of those register are for - I just copied the init values based on how the windows driver has set them. Some of the register values seem to be irrelevant (even random) in certain modes. But some just need to be set.

Atem Studio is working fine, also the firm. extraction works on both.

Nice.

— Reply to this email directly or view it on GitHub https://github.com/fabled/bmd-tools/issues/3#issuecomment-39018040.

fabled commented 10 years ago

I'm supposedly getting a pro recorder soon. Will fix this issue after that.

rebotnix commented 10 years ago

thanks a lot for letting me know.

gary

Am 15.04.14 20:10, schrieb Timo Teräs:

I'm supposedly getting a pro recorder soon. Will fix this issue after that.

— Reply to this email directly or view it on GitHub https://github.com/fabled/bmd-tools/issues/3#issuecomment-40514793.

coral commented 10 years ago

any update on this?

fabled commented 10 years ago

i got a pro recoder yesterday. planning to look at it tomorrow or early next week.

coral commented 10 years ago

cool, if you need more then one i can prob send you a pro recorder too to test with.

rebotnix commented 10 years ago

i also can try it out if there is a new version...thanks for spending more time on this.

Am 01.05.14 20:28, schrieb coral:

cool, if you need more then one i can prob send you a pro recorder too to test with.

— Reply to this email directly or view it on GitHub https://github.com/fabled/bmd-tools/issues/3#issuecomment-41939754.