Current Server Time: 16:35 (Central Europe)

#apertus IRC Channel Logs

2019/06/09

Timezone: UTC


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