2020-11-11 Meeting Recap
Hello CV! Iโll be making quick written recaps of our meetings, after work-sessions, unless I feel nothing significant was really done. If you ever need to refer to anything we discussed, you can do so here.
The Old Architecture
I briefly went through a description of the old CV Architecture, which you can also see on Confluence. If youโre reading this, remember three things.
The current CV system has a DeckLinkCapture.cpp class that handles calling the DeckLink SDK for functions (start stream, grab frame etc.). The DeckLinkImport.cpp class calls DeckLinkCapture for this functionality.
We do not need to copy the implementation or architecture exactly, in fact at this point, we need to toy around to find what works. Donโt worry about the implementation, worry about the behaviour.
We need to reimplement four capabilities first.
Start video stream
End video stream
Grab frame
Display video stream.
For now, implement the above functions using openCVโs videocapture class. Once I figure out a way to pipe gstreamer input to openCV, weโll just send it to the videocapture API. Read on for more details.
The Tasks
Going forward, I have assigned 3/5 tasks to people on the team roster. Tasks are still available on a first-come-first-serve basis.
(Assigned: Aryan). Reimplement start stream functionality
(Assigned: Justin). Reimplement stop stream functionality.
(Assigned: Kailash): Reimplement grab frame functionality.
(Tentative: Shrinjay. Iโll need some help!) Find a way to pipe video input from gstreamer to openCV in Python.
Display video stream.
GIFT-Grab Sucks!
Weโve come to the conclusion that even with linux, GIFT-Grab is a hassle, so weโll go with plan B, and pipe video stream from gstreamer to opencv. The architecture will look something like this.
For anyone assigned a task, just work on writing your code in python for the videocapture api for openCV. (https://docs.opencv.org/3.4/d8/dfe/classcv_1_1VideoCapture.html#ae38c2a053d39d6b20c9c649e08ff0146). Then weโll handle the video stream stuff with gstreamer.
I essentially ripped this from the following references. Let's use them to build this. https://gstreamer.freedesktop.org/documentation/decklink/decklinkvideosink.html?gi-language=cThis guy did the same thing we want to do.
This guy says it should work:
Conclusion
Thatโs all for this week folks! Glad we made this progress. Going forward, weโll be assigning tasks as such, and youโll be responsible for completing them. Iโll be happy to assist at any time, reach me on Slack. As we continue building code, weโll be able to structure our classes and functions better. For now, just focus on writing code that gets the job done, ideally wrapped in a function. Looking forward to finally getting some video input!
ย