Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trying document the pipelines in gstcase{.h,.c} #135

Closed
wants to merge 1 commit into from

Conversation

mithro
Copy link
Member

@mithro mithro commented Jan 15, 2015

@deeprave - Can you take a look at this?

I'm still trying to figure out why there are a lot more gst-cases then we really need?

@mithro
Copy link
Member Author

mithro commented Jan 30, 2015

@deeprave - You mentioned that a bunch of these cases are not needed - can you elaborate further?

@deeprave
Copy link

deeprave commented Feb 3, 2015

@deeprave - You mentioned that a bunch of these cases are not needed - can you elaborate further?

Yes it does seem excessive. IIRC (and I haven't looked at the code for the last couple weeks) only the input sources for audio/video and branch cases were actually useful. The (non-branch) preview one is assigned if comp_a and comb_b were already assigned but I struggled to understand if this could actually happen in practice and whether an error would be more appropriate should this happen rather than blandly assigning it as non-branch/composite preview audio or video. There are also some (at least 1 anyway) gstworker/gstcase instances that are created on startup but never used that make the code look like the gstcase enums are in fact useful, but they are not. Removing these would eliminate code, and the pipelines they used do not even make use of the gstcase pipeline switch.

Sorry, not a lot of time before I start travelling and won't get a lot of coding time anytime soon, but I'll see what I can do in early March if I get bored while on vacation (and I probably will). Should have regular internet access then.

Cheers,
David

@MaZderMind
Copy link

The preview-Branch seems to be used when a third Video-Source is connected which needs to be passed to the UI for preview. I found that while working on #190. When attaching 4 Video-Sources, I get the following signals in the UI:

parameters=(3003, 1, 7)
parameters=(3004, 1, 8)
parameters=(3005, 1, 10)
parameters=(3006, 1, 10)

The fourth Parameter is the GstCaseType that emited the signal, where

  • 7 = GST_CASE_BRANCH_VIDEO_A
  • 8 = GST_CASE_BRANCH_VIDEO_B
  • 10 = GST_CASE_BRANCH_PREVIEW

@deeprave
Copy link

deeprave commented Feb 3, 2015

The preview-Branch seems to be used when a third Video-Source is connected which needs to be passed to the UI for preview. I found that while working on #190 #190. When attaching 4 Video-Sources, I get the following signals in the UI:
parameters=(3003, 1, 7)
parameters=(3004, 1, 8)
parameters=(3005, 1, 10)
parameters=(3006, 1, 10)
The fourth Parameter is the GstCaseType that emited the signal, where

7 = GST_CASE_BRANCH_VIDEO_A
8 = GST_CASE_BRANCH_VIDEO_B
10 = GST_CASE_BRANCH_PREVIEW

I was not referring to the branch preview case, but the non-branch one, IE GST_CASE_PREVIEW.

Cheers,
David

@MaZderMind
Copy link

Oh okay, I missed that one.

@duzy
Copy link

duzy commented Feb 6, 2015

Hi remember that all inputs are actually dynamic, meaning that the source
switching cases with streams are created as new connections are coming. And
before any connection was sending any byte, an initial framework of
pipelines has to be established in order to make things ready to go.

And actually all stream cases were being used, either as previews or as
main composite a/b. Note that when a stream was selected as being a
composite source, it's still being branched to the preview.

Once the input connection was broken, the corresponding cases would be
erased. I remember that there's also a way from the ui to disconnect a
input (might need to be confirmed).

It shouldn't have any running cases being wasted, unless something leaks.
And the design diagram should be well presenting the framework of pipelines
in the code, everything in the diagram could have something matching in the
code. So it should be much easier checking the diagram while reading the
code.

I hope this information would help. I'm sorry I can't check gstswitch list
too often due to the daily busy live. But I hope that I could have more
time to offer help on this in the future when I get back to freelance.

Cheers,
Duzy Chan
On Feb 3, 2015 8:15 PM, "David Nugent" notifications@github.com wrote:

@deeprave - You mentioned that a bunch of these cases are not needed -
can you elaborate further?

Yes it does seem excessive. IIRC (and I haven't looked at the code for the
last couple weeks) only the input sources for audio/video and branch cases
were actually useful. The (non-branch) preview one is assigned if comp_a
and comb_b were already assigned but I struggled to understand if this
could actually happen in practice and whether an error would be more
appropriate should this happen rather than blandly assigning it as
non-branch/composite preview audio or video. There are also some (at least
1 anyway) gstworker/gstcase instances that are created on startup but never
used that make the code look like the gstcase enums are in fact useful, but
they are not. Removing these would eliminate code, and the pipelines they
used do not even make use of the gstcase pipeline switch.

Sorry, not a lot of time before I start travelling and won't get a lot of
coding time anytime soon, but I'll see what I can do in early March if I
get bored while on vacation (and I probably will). Should have regular
internet access then.

Cheers,
David


Reply to this email directly or view it on GitHub
#135 (comment).

@mithro mithro closed this Mar 15, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants