Current Server Time: 21:48 (Central Europe)

#apertus IRC Channel Logs

2019/06/09

Timezone: UTC


00:06
apurvanandan[m]
Hi Bertl , the demo code of ft601 uses 16K * 36bits single port ram, which is much more than what MachXO2 can provide. So I wanted to know what ratio of the ebr sram should I give to ft601 controller.
03:32
Bertl
as little as possible and as much as actually required :)
03:32
Bertl
off to bed now ... have a good one everyone!
03:32
Bertl
changed nick to: Bertl_zZ
05:27
futarisIRCcloud
left the channel
06:27
niemand
joined the channel
06:27
niemand
left the channel
06:27
niemand
joined the channel
06:57
BAndiT1983|away
changed nick to: BAndiT1983
06:59
BAndiT1983
changed nick to: BAndiT1983|away
07:44
supraraj
joined the channel
08:09
BAndiT1983|away
changed nick to: BAndiT1983
08:43
supraraj
hi BAndiT1983
08:43
BAndiT1983
hi
08:46
se6astian|away
changed nick to: se6astian
09:14
supraraj
hi se6astian
09:14
supraraj
how's it going
09:25
supraraj
left the channel
10:11
BAndiT1983
changed nick to: BAndiT1983|away
10:13
Nira|away
changed nick to: Nira
10:48
futarisIRCcloud
joined the channel
10:58
Nira
changed nick to: Nira|away
11:07
Nira|away
changed nick to: Nira
11:20
BAndiT1983|away
changed nick to: BAndiT1983
11:43
Bertl_zZ
changed nick to: Bertl
11:43
Bertl
morning folks!
11:43
apurvanandan[m]
Good morning!
11:44
Bertl
hey, how's it going?
11:45
apurvanandan[m]
Its going good. How are you? :)
11:45
Bertl
fine too thanks!
11:47
apurvanandan[m]
I have been writing the code for ft601 last week and will be ready by tomorrow. Tomorrow I will receive the usb plugin module and test that code. :)
11:47
Bertl
great!
11:47
Bertl
regarding FT601 demo code, what were/are your plans there?
11:49
Bertl
btw, let me know when you have the hardware in your hands (and some spare time) so we can go through it and how to connect everything together
11:49
apurvanandan[m]
Demo code is the code given by ftdichip.com for the ft60x development board for spartan 6. I am taking reference from there and writing for LCMX-2000HC
11:49
apurvanandan[m]
Yes ofcourse (first thing that I will do)
11:50
Bertl
okay, just be aware that those 'demos' are often of low quality (haven't checked this one yet to be honest)
11:50
Bertl
so while they are a good source regarding chip details, they are quite often a bad example for how to code it :)
11:51
apurvanandan[m]
Yes I saw the low quality of the code
11:52
apurvanandan[m]
I am trying reducing the logic, but am keeping the code generic for 245 mode and 600 mode.
11:52
Bertl
makes sense
11:58
BAndiT1983
changed nick to: BAndiT1983|away
12:15
Bertl
wasn't aware that Lattice made 'funny' advertisements for the MachXO2 :)
12:15
Bertl
https://www.youtube.com/watch?v=h_USk-HNgPA
12:22
apurvanandan[m]
Oh my god, how can this be official XD. It makes me say "ooooo" XD
12:24
danieel
wtf i have just seen :P
13:20
Y_G
joined the channel
13:45
Nira
changed nick to: Nira|away
13:48
futarisIRCcloud
left the channel
14:18
Y_G
left the channel
15:38
Bertl
off for now ... bbl
15:38
Bertl
changed nick to: Bertl_oO
15:59
Nira|away
changed nick to: Nira
16:11
dev_
joined the channel
16:13
BAndiT1983|away
changed nick to: BAndiT1983
16:25
dev_
Good Evening BAndiT1983
16:25
BAndiT1983
hi
16:26
dev_
hello, I have added the git patch given by u
16:27
BAndiT1983
has it worked?
16:29
dev_
Yes, It worked , but for some files like M11-1529.VB.mlv , OC crashes by giving segmenatation fault
16:29
dev_
It worked for 5DII_14may14_blfixOFF.MLV
16:29
BAndiT1983
never said that every file works with it, there are multiple reasons, like color depth or so
16:29
dev_
https://www.magiclantern.fm/forum/index.php?topic=11899.0
16:30
dev_
using it from here
16:30
BAndiT1983
i know the file
16:30
BAndiT1983
tested with it, before using the one with cars, because it had more motion
16:31
supraraj
joined the channel
16:31
BAndiT1983
have you understood the principle of the patch?
16:31
dev_
Yes, it is repeating the frames after 7 everytime
16:32
dev_
And we can control frame rate also
16:32
dev_
using Qtimer
16:32
dev_
Good Evening supragya
16:32
BAndiT1983
just a quick and dirty hack
16:32
BAndiT1983
what about QApplication part?
16:32
supraraj
evening you guys
16:33
dev_
No , I will look for it also
16:33
BAndiT1983
EnableRendering was kept by me in the loop, but probably not required, as it was coming from some tests, to see what is blocking the preview
16:34
BAndiT1983
line 91, it's important to understand why it's there, for now at least, later it will be moved to appropriate place
16:35
dev_
qCoreApplication::processEvents(QEventLoop::AllEvents, 100);
16:35
BAndiT1983
yes, this one
16:36
dev_
okay, i will see this
16:36
BAndiT1983
just read what it does, it should be rather clear
16:37
BAndiT1983
https://doc.qt.io/archives/qq/qq27-responsive-guis.html
16:37
dev_
left the channel
16:41
BAndiT1983
ehm, rather short code review it seems
16:41
BAndiT1983
supraraj, i suppose you understand the patch? right?
16:41
supraraj
gimme a sec
16:42
supraraj
dirty patch for sure... indentation patch ;)
16:42
Dev_
joined the channel
16:42
BAndiT1983
clang-format was not added yet, had to reinstall my linux system
16:43
BAndiT1983
just a matter of few settings in qtcreator
16:43
Dev
joined the channel
16:43
Dev_
left the channel
16:43
Dev
changed nick to: Guest70816
16:44
Guest70816
left the channel
16:44
supraraj
??
16:44
dev__
joined the channel
16:45
dev__
internet problems , sorry
16:45
supraraj
what really is changed?? BAndiT1983 ?
16:45
supraraj
seems like whitespace shifts to me that's all
16:45
supraraj
a few things are there apart from that
16:45
BAndiT1983
a little bit, but i've added a very important piece of the puzzle in the presenter loop
16:46
supraraj
dieTime?
16:46
BAndiT1983
for example
16:46
BAndiT1983
this is very important place there, as it allows the actual playback to be done
16:47
supraraj
what was the issue prior? give me some context
16:47
BAndiT1983
frames were not showing up, but loop was running in circles
16:47
BAndiT1983
what can cause such a problem?
16:47
supraraj
ah so you stopping it for 30msec
16:47
BAndiT1983
the answer is in this small loop
16:47
dev__
The frames were not showing
16:47
BAndiT1983
not only, 30ms stop is one thing
16:48
supraraj
idx = 7x3 resetting?
16:48
BAndiT1983
just look at the name of qt manual link above
16:48
BAndiT1983
resetting is also not that important, just done so the loop is endless for testing
16:48
BAndiT1983
check line 91
16:50
supraraj
looks like manual event loop checking
16:50
supraraj
anyway... it's okay for testing
16:50
BAndiT1983
right, it has to be ensured that events of the application are processed, so we have to kick it manually
16:51
BAndiT1983
this part has to be moved to some other place
16:51
dev__
is like delay function or something
16:51
dev__
it*
16:51
BAndiT1983
also there are articles by qt about parallel threads for opengl, to ensure the preview is not blocked or not blocking
16:51
supraraj
hence you added QThread?
16:51
BAndiT1983
it's doing the delay for frame rate partially, but also to give some time for event processing
16:52
BAndiT1983
don't see qthread there yet
16:52
supraraj
i mean are you anticipating it?
16:53
supraraj
nyway QThread is already added in headers... i've to see what is using that
16:53
BAndiT1983
probably, but i haven'T read further what qt suggests to do for responsive GUI and OpenGL
16:53
BAndiT1983
maybe some leftover from previous tests
16:54
supraraj
what's the logic behind idx = (idx == 7*3) ? 0 : idx ?
16:54
dev__
it will loop over those & frames again and agian
16:54
dev__
first *
16:54
supraraj
7 hardcoded frames?
16:54
dev__
7*
16:54
supraraj
oh okay
16:54
dev__
yes
16:55
supraraj
again, only for testing
16:55
BAndiT1983
have just grabbed any number, which was in the range
16:55
dev__
we can add , allocator->GetFrameCount() which gives exact number of frames
16:56
supraraj
i wonder if Bertl_oO sees this patch XD
16:56
BAndiT1983
how?
16:57
supraraj
indentation etc :P
16:57
supraraj
jk
16:57
BAndiT1983
oh, trust me, he feels unsettling vibrations when code is not formatted properly
16:58
dev__
Can we now move to add ring buffer sort of thing for handling large number of frames
16:58
dev__
extending present static allocators
16:58
supraraj
circular queue?
16:59
dev__
yes,
16:59
BAndiT1983
the loop is not clear to me yet
16:59
BAndiT1983
for(int index = 0; index < allocator->GetFrameCount(); index = index + 3)
17:00
BAndiT1983
if you get the frame count, then why is the index increasing by 3?
17:00
dev__
GetFrameCount, gives count of total number of frames
17:00
BAndiT1983
each frame has 3 channels, this is clear, but then GetFrameCount() is returning some awkward number
17:00
supraraj
should be GFC*3
17:00
dev__
yes
17:01
dev__
if number of frames are 15 , then GetFrameCount will return 45
17:01
BAndiT1983
the name is rather misleading then
17:02
supraraj
:( sad nomenclature
17:02
BAndiT1983
method name should clearly reflect what its purpose is
17:02
dev__
it stores data like this (R1 G1 B1)(R2 G2 B2)..
17:02
supraraj
change the name
17:02
dev__
sorry , I will change the name
17:02
supraraj
or return divided by 3 from the GFC()
17:02
supraraj
and explicitly multiply 3 later
17:03
BAndiT1983
it should be multiplied before the loop, otherwise it can happen that calculations take place at every iteration
17:03
BAndiT1983
compilers have become smarter, but it's better to prevent beforehand
17:03
supraraj
does that really happen BAndiT1983 ? i doubt that new compilers are so dumb
17:03
supraraj
oh... you said that :P
17:04
supraraj
dev__: make sure of datatypes as well...
17:04
supraraj
someday we may need long instead of int
17:05
BAndiT1983
check if unsigned is required
17:05
supraraj
also, if not already go for uint rather than int
17:05
BAndiT1983
we don''t have big frame count at the moment, but it should be considered to use uint16_t or similar
17:05
BAndiT1983
this uint* are portable more or less
17:05
supraraj
yes
17:06
supraraj
and when handling pixel data... be sure you know the size of variables
17:06
dev__
When large number of frames occur, then how we will be storing the whole data of MLV file
17:06
supraraj
it's better to deal with uint8_t than int
17:06
supraraj
dev__: circular buffer with indexing
17:06
dev__
as for number we are using a big buffer
17:07
supraraj
we read partially
17:07
BAndiT1983
dev_, you just exchange the frames required in the static allocator, if you can't acquire one big chunk or require more chunks, then you need additional pages of memory
17:07
supraraj
any "big buffer" cannot accomodate the real deal "big data"
17:07
BAndiT1983
create also an array or vector to hold info about the state of a bucket, like occupied or free
17:08
supraraj
think about a DS like this:
17:08
BAndiT1983
there are certain limitations from OSes how much memory you can acquire in a big block
17:09
supraraj
struct oneFrame { bool used; uint8_t frameno; uint8_t* framedata; } <--- something like that
17:09
supraraj
have a circular buffer of these components
17:09
supraraj
it's more of bookkeeping work
17:10
BAndiT1983
supraraj, i would go for a class which is presenting a movie clip and it has a slim vector of frames, which point to the data in allocator
17:10
supraraj
well, i was presenting barebones
17:10
dev__
why do we need to keep state of particular frame
17:10
BAndiT1983
but allocator contains the data about its buckets, which are occupied or free or even can be freed
17:10
supraraj
implementations do differ
17:10
BAndiT1983
it's important to split responsibilities
17:11
BAndiT1983
dev__, if the frame was already presented and the playback continues, it can be replaced by new data, so we need to know which data is obsolete
17:11
supraraj
BAndiT1983: makes sense - that way we can have methods inside which load frames/ discard etc etc
17:12
supraraj
BAndiT1983: generally that would be an LRU but a circular Q should do
17:12
BAndiT1983
LRU?
17:12
BAndiT1983
ah, looked it up
17:12
supraraj
least recently used
17:13
supraraj
but since playback is not really using random access
17:13
supraraj
LRU can be replaced with circularQ
17:13
BAndiT1983
yes, but it's not a problem to check data in circular manner, so we don't have to go forth and back and just grab next one, at the end it wraps and starts from the beginning
17:13
BAndiT1983
maybe it would spare some time
17:14
BAndiT1983
more important is to keep track of the cells/buckets and their state
17:14
supraraj
bookkeeping as i said
17:14
supraraj
heading off to cook dinner
17:14
supraraj
already 10:45
17:14
BAndiT1983
suggestion: create enum with free, occupied and old and use a vector for now to keep track
17:15
BAndiT1983
later we can replace enum with struct/class, if we need more infos of cell state
17:15
BAndiT1983
supraraj, no problem, have fun, am here if something is up
17:15
BAndiT1983
email is also checked regularly
17:15
supraraj
enums are better... I Love those macros :) state = BKT_USED;
17:16
supraraj
state = BKT_FREE;
17:16
BAndiT1983
will track the progress of the task actively, but won't work on it, to not intercept too much, instead i will check on apertus wiki, as we had some cleanup tasks there
17:16
BAndiT1983
yeah, trying to avoid C, as it makes stuff more difficult and many collisions can occur
17:16
BAndiT1983
so C++11 has proper enums
17:17
supraraj
XD
17:17
supraraj
okay
17:18
dev__
https://trello.com/invite/b/wORIfJVz/a53a0e468e315ab48e230e9eb4b5b1f9/gsoc-work
17:18
dev__
I will be using trello now
17:18
dev__
it will good
17:19
BAndiT1983
dev__, please name the board properly, like GSoC2019: OC frame server or similar, so it's easier to find in the list of the boards on my trello front page
17:20
dev__
oKay
17:21
BAndiT1983
very good, now it looks properly and can be found easier, as there are multiple gsoc boards
17:22
dev__
Yeah ,
17:22
dev__
I will try to make methods for static allocator and try to test it
17:22
BAndiT1983
just created first comment
17:23
BAndiT1983
please also write down the goals and sub-goals in your gdoc file
17:24
BAndiT1983
don't know if gdocs has proper diagram module, like plantuml or yed, but they would be better for diagrams, as both can order things properly
17:24
BAndiT1983
if you find some other tool, e.g. text to diagram, then just give a note
17:24
dev__
I use Gdocs for making diagram
17:25
dev__
I think , it is nice
17:25
BAndiT1983
but manually? or does it have automatic layout?
17:25
dev__
yes, it has layout
17:26
BAndiT1983
ok, then go with it first, as long as the diagram has not grown further
17:27
dev__
yes!
17:27
BAndiT1983
hm, lines are not moving with the object, so not much automation there, usually if you use yed and move the object you connect, the lines follow automatically, also while auto layouting
17:28
BAndiT1983
ah, the lines are connected somewhere else, but still not my favourite tool for diagrams, just saying
17:28
dev__
I was trying Plant uml today but that looks typical
17:28
dev__
That's why , i used gdocs to create the diagram
17:29
BAndiT1983
there are a couple of tools which translate text to diagrams, plantuml is common, also using it at work, it looks dated, but if you need complex relations in diagrams, then it helps a lot
17:29
BAndiT1983
also using yEd very often
17:30
BAndiT1983
as long as you can create sufficient diagrams use gdocs module, but it's rather basic, in my opinion
17:31
dev__
okay
17:33
BAndiT1983
dev__, have you bookmarked the qt manual url from above?
17:34
dev__
Yes, just saw that
17:34
dev__
Actually i logged out that moment
17:34
BAndiT1983
i know, that's why i've asked
17:35
dev__
Which pending events is it refering while describing about Qapllication::ProcessEvent
17:36
BAndiT1983
any
17:36
BAndiT1983
imagine it like a tree, someone fires an event and it bubbles through to all subscribers
17:36
BAndiT1983
and it can happen from any direction
17:38
dev__
yes, reading about Qevent , it is making sense
17:42
dev__
thanks for your time BAndiT1983 , I will try to extend allocators so we can use them for playback now
17:42
dev__
I will update you soon
17:43
BAndiT1983
just ask if you need infos
17:43
dev__
Yes BAndiT1983 , I will
17:43
dev__
Thank you , Good Night!
17:43
BAndiT1983
good night
17:44
dev__
left the channel
17:53
supraraj
left the channel
18:11
Bertl_oO
changed nick to: Bertl
19:37
Nira
changed nick to: Nira|away
19:44
Nira|away
changed nick to: Nira
20:51
se6astian
changed nick to: se6astian|away
21:01
niemand
left the channel
21:03
BAndiT1983
changed nick to: BAndiT1983|away
21:47
apurvanandan[m]
Hey Bertl, I am removing the whole data loopback code segment. It will reduce the resource usage greatly.
21:48
apurvanandan[m]
I will write only data streaming mode.
22:01
Bertl
good
22:28
Y_G
joined the channel
22:50
Y_G
left the channel
22:50
Y_|G
joined the channel
22:50
Y_|G
left the channel
23:25
Spirit532
left the channel
23:26
Spirit532
joined the channel