-
Notifications
You must be signed in to change notification settings - Fork 41
Detect diamonds #909
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
Detect diamonds #909
Changes from 28 commits
7263c9a
f4bce2d
e9e8c77
cabbcfb
a58b363
5a76b10
0be84b9
58c5384
7b5fdad
646898c
30b757e
39030a7
a3c6bdd
9855e8a
f5d6941
acbe87d
f02d57e
2327b24
35cf655
c8b586a
97d15cf
6314803
1f94101
090488a
1d003ba
501aeee
07fcfd1
cc9039d
d364df9
c158ee8
8df71f8
0bff060
2dff094
0db0f3f
b70fa7b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,347 @@ | ||||||||||
| defmodule Membrane.Core.Element.DiamondDetectionController do | ||||||||||
| @moduledoc false | ||||||||||
|
|
||||||||||
| # DESCRIPTION OF THE ALGORITHM OF FINDING DIAMONDS IN THE PIPELINE | ||||||||||
|
|
||||||||||
| # Definitions: | ||||||||||
|
|
||||||||||
| # diamond - directed graph that has at least two distinct elements (sink and source) and | ||||||||||
| # has two vertex-disjoint paths from the source to the sink. | ||||||||||
|
|
||||||||||
| # This algorithm takes the directed graph made by all elements within a single pipeline and | ||||||||||
| # finds some diamond-subgraphs where all the edges (links) work in the :pull mode, | ||||||||||
| # it means in :manual flow control or in :auto flow control if the effective flow control | ||||||||||
| # is set to :pull. | ||||||||||
|
||||||||||
| # it means in :manual flow control or in :auto flow control if the effective flow control | |
| # is set to :pull. | |
| # that is they're either in the :manual flow control or in the :auto flow control and the effective flow control | |
| # is set to :pull. |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| # and let's assume that the MP4 container that is consumed by the MP4 demuxer is unbalanced. | |
| # and let's assume that the MP4 file that is consumed by the MP4 demuxer is unbalanced | |
| # (audio and video streams are not interleaved, for example audio comes first and then video) |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| # but on the other won't, because the MP4 container is unbalanced. Then, if MP4 demuxer | |
| # but on the other won't, because the source MP4 file is unbalanced. Then, if the MP4 demuxer |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why proper searching? :P
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is supposed to be a translation of "właściwe szukanie"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got it, 'proper' is more like 'correct'. The best term I know would be 'actual search', though I'd just go for 'search', since the whole process is called 'detection', not 'search', so there's no other 'search' unless I'm missing something ;)
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| # * if the new spec caused some new diamond to occur, this diamond will contain some of | |
| # * if the new spec created a new diamond, this diamond will contain some of |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like 'proper' is still there, can we make it just 'searching'?
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not a fan of these names :P there's start, start_trigger and trigger, hard to tell the difference. diamond_detection is pretty generic. They should at least correspond to the terms used in the algorithm description (proper search?), ideally be mentioned there
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's describe how the algorithm works