Version BAD NETWORK/FIREWALL
lecture: Dissecting HDMI
Developing open, FPGA-based capture hardware for conference & user group recording
Ever wondered what is actually happening when a speaker can't get their laptop to project? While developing the FPGA-based HDMI2USB.tv open hardware for recording conferences, we discovered just how convoluted the HDMI protocol can be. Come hear all the horrible details!
The TimVideos.us group aims to make it easy for anyone to create high quality recordings of conferences and user groups. To achieve this goal we have developed the HDMI2USB.tv project, an FPGA based, fully open (hardware and firmware) solution for capturing HDMI video signals. The solution has been in use since late 2015 and used at numerous conferences such as Linux.conf.au, DebConf and many PyCon conferences around the world.
To be truly FOSS has however meant developing code for doing HDMI receiving and sending. Come hear about all the issues we have run into and the nitty gritty details about how it works (or doesn't!). By the end of the talk you will know more than you ever wanted to about the HDMI protocol!
This talk will cover:
- The HDMI video standard, including
- An overview of the many protocols and standards required.
- A high level description of the low speed protocols needed such as DCD (EDID) and CEC.
- A indepth dive into the high speed TMDS protocol and encoding.
- How to build a HDMI receiver and transmission to run on an FPGA.
- War stories from trying to use the HDMI2USB capture device for recording FOSS conference, including;
- Why your HDMI cable can actually matter.
- Some of the reasons why plugging in a screen doesn't always "just work".
- Doing error correction on a protocol which doesn't have any.
All code and materials and hardware covered in this talk are released under OSI approved licenses.
- HDMI2USB Project
- TimVideos Group
- TimVideos related videos
- TMDS Encoding GitHub Repo
- Mithro's GitHub
- Talk Slides