Tuesday, 2015-12-08

*** tpb has joined #timvideos00:00
*** Bertl_oO is now known as Bertl00:29
mithroshenki: I think you have cut off the error there00:45
mithroshenki: Timing: Completed - 82 errors found.01:28
shenkimithro: why did i get different results to travis?01:31
mithroshenki: I can't see the errors, so I can't see why it is different?01:32
shenkimithro: okay. which log file do we want? i've closed the tab so i don't have the console history01:33
mithroshenki: a couple of pages above that output would be useful01:35
mithroshenki: as well, ISE gets confused sometimes01:39
shenkiok, i'll rebuild01:42
shenkimithro: should i delete anything before rebuilding?01:42
mithroshenki: no need01:42
shenkiok01:42
shenkiand this is what i want to type?01:42
shenkimake BOARD=atlys TARGET=hdmi2usb PROG=openocd gateware01:42
mithrono01:47
mithroyou shouldn't need anything more than "make gateware" all the others are defaults01:47
shenkik01:49
shenkimithro: it worked this time :/02:27
shenkimithro: thanks for your help ")02:27
shenki:)02:27
mithroshenki: good to see you trying things :P02:28
*** sb0 has quit IRC02:31
*** Bertl is now known as Bertl_zZ02:46
*** sb0 has joined #timvideos03:08
*** travis-ci has joined #timvideos03:09
travis-ci[mithro/HDMI2USB-misoc-firmware/master#55] (480cd42): The build passed. (https://travis-ci.org/mithro/HDMI2USB-misoc-firmware/builds/95486254)03:09
*** travis-ci has left #timvideos03:09
*** sb0_ has joined #timvideos03:49
*** sb0 has quit IRC03:49
*** sb0_ has quit IRC04:48
shenkimithro: thanks :) now that i've got a hdmi2usb and a hdmi2eth build, i will test it tonight05:18
shenkii want to demo the hdmi2eth to a friend05:18
shenkimithro: can you help me with a c++ question?05:18
shenkimithro: you were going on about const expressions the other day05:18
*** sb0 has joined #timvideos06:24
mithroshenki: I'm around know if you still need that C++ help09:00
*** sb0 has quit IRC09:03
*** sb0 has joined #timvideos09:08
shenkimithro: i have this snippet of code09:20
shenkistatic Target* const MASTER_PROCESSOR_CHIP_TARGET_SENTINEL09:20
shenki    = (sizeof(void*) == 4) ?09:20
shenki        reinterpret_cast<TARGETING::Target* const>(0xFFFFFFFF)09:20
shenki      : reinterpret_cast<TARGETING::Target* const>(0xFFFFFFFFFFFFFFFFULL);09:20
shenkiit's in a header09:20
shenkiand i want it to be a compile time constant09:20
shenkigcc warns me that it's unused, which i thought it wasn't supposed to do for static const things09:20
shenki(i didn't write the code. im trying to build it using a newer compiler)09:20
mithroshenki: what C++ version are you compiling with?09:25
*** se6astian|away is now known as se6astian09:27
mithroshenki: that expression isn't a valid const expression in older C++ versions IIRC09:55
mithroshenki: Until C++11 things you think should be constant expressions are not10:05
*** rohitksingh has joined #timvideos10:06
shenkimithro: im not sure which version. let me examine the flags10:13
shenkimithro: you suspect that if i do -std=c++11 it might work?10:13
mithroshenki: It'll be closer to working :)10:13
shenkiheh ok10:13
mithrohttp://en.cppreference.com/w/cpp/language/constant_expression10:14
tpbTitle: Constant expressions - cppreference.com (at en.cppreference.com)10:14
shenkimithro: the warning im getting is relating to an unused var10:17
shenkimithro: i thought i wanted to fix it by making the whole the const10:17
shenkicoz normally in c++ you can have a static variable instead of doing #define?10:17
mithroshenki: btw is the pointer const or is it pointing to something that is const, or both?10:19
mithrocan you past the whole error10:20
mithro?10:20
shenkiit should be both10:21
shenkiit's not in the code as it currently exists10:22
mithroI think you need more const in there :P10:23
shenkiyeah,  that might be the issue10:23
shenkithen all of the call sites blow up :/10:23
shenkibut yeah, i think the issue is a long standing bug10:23
shenkiand gcc 4.9 has a bug where it doesn't produce any unused warning for it10:23
shenkiIn file included from mdiafwd.H:34:0,10:25
shenki                 from mdiamba.C:30:10:25
shenki../../../../src/include/usr/targeting/common/targetservice.H:137:22: error: ‘TARGETING::MASTER_PROCESSOR_CHIP_TARGET_SENTINEL’ defined but not used [-Werror=unused-variable]10:25
shenki static Target* const MASTER_PROCESSOR_CHIP_TARGET_SENTINEL10:25
shenki                      ^10:25
shenkicc1plus: all warnings being treated as errors10:25
mithroshenki: and you sure you are using it somewhere?10:27
shenkiwell, yes and no. it's a header, so sometimes it's used and sometimes it's not10:27
shenkidepends on the c++ file10:28
shenkibut C++ is not supposed to warn about stuff that's static const, right?10:28
mithroshenki: I don't see why it wouldn't?10:29
shenki$ g++ -Wall -O2 -c a.cc10:29
shenki$ echo $?10:30
shenki010:30
shenki$ cat a.cc10:30
shenkistatic const int a = 10;10:30
shenkicoz c++ developers use static const instead of #defines10:30
shenkii dunno. perhaps im all confused10:31
mithroshenki: but if you never use your #define anywhere?10:31
mithrobtw you shouldn't be putting that initializer in the header file10:31
shenkiok. why's that?10:32
shenki(i need ammo to tell the peeps who wrote it why they are wrong)10:32
mithroshenki: it's equivalent to putting a function body in the header10:32
shenkionly if it's not const, right?10:33
shenkistatic char const b = 1 ? 'a' : 'b';10:34
shenkithat line doesn't emit a warning10:34
shenkistatic char* const b = 1 ? reinterpret_cast<char* const>('a') : reinterpret_cast<char* const>('b');10:35
shenkineither does that10:35
shenkibut if i change the 1 to sizeof(void *) it does warn10:35
shenkiso that means that sizeof(void *) is not constant?10:35
shenkiwhich is bullshit, the compiler should know that at compile time10:36
mithroI think the compiler doesn't see "sizeof(void*)" as a valid constexpr10:47
mithroso it ends up actually allocating the value10:48
shenkiyeah10:54
shenkii agree10:54
shenkii proposed they use __SIZEOF_POINTER__, a builtin define that gcc provides10:54
mithroshenki: if you look at a objdump of the output elf file, you'll see it10:54
shenkigood idea10:55
mithrowhat does "sizeof(void const*)" ? or actually = "sizeof(TARGETTING::Target* const)" do?10:55
*** Bertl_zZ is now known as Bertl10:56
mithroshenki: IE its weird to do the sizeof to a different thing you are reinterp casting from?10:57
shenkiit's a sentinel value10:58
shenkiso they're trying to make a pointer whos vlaue is -110:58
shenkiie, all 1s10:58
shenki0xFFF....etc10:58
shenkithe sizeof is to find out of a pointer should be 64 1s, or 32 1s10:58
mithroshenki: sure - I understand that10:59
shenkiright10:59
shenkiyou're saying why not sizeof(Target *) ?10:59
mithro8:16 PM <+shenki>     = (sizeof(void*) == 4) ? reinterpret_cast<TARGETING::Target* const>(0xFFFFFFFF) : reinterpret_cast<TARGETING::Target* const>(0xFFFFFFFFFFFFFFFFULL);10:59
shenkii guess it's a pointer, it doesn't matter what type of pointer you sizeof10:59
mithro= (AAAA == 4) ? reinterpret_cast<AAAA>(0xFFFFFFFF) : reinterpret_cast<AAAA>(0xFFFFFFFFFFFFFFFFULL);11:00
mithroLogically, all the AAAA should be the same I think11:01
shenkiyeah. that's good style11:03
shenkibut sizeof(<anything> *) will always be the same value11:03
shenkiso functionally there's no difference11:04
shenkiit could do sizeof(int *) for all it matters11:04
shenkithis code is just silly11:09
shenkii give up11:09
mithroshenki: depends on your architecture :P - on sdcc a sizeof(int*) != sizeof(int*) depending on which memory the int* is in11:16
*** sb0 has quit IRC11:29
*** Bertl is now known as Bertl_oO11:48
shenkiheh, okay12:03
*** springermac_ has joined #timvideos12:09
shenkimithro: got the firmware loaded onto my atlys12:09
*** springermac has quit IRC12:10
mithroshenki: great, didn't we do that while I was at your place?12:15
shenkiyeah. but now ive done it by myself12:26
shenkiim trying to work out how the ethernet works. it looks like there's nothing on the lm32 for it12:27
mithroshenki: yeah, I don't know very much about it12:32
shenkiok12:35
shenkimithro: what's our max res/framerate on usb these days?12:36
mithroshenki: I'd start with seeing if the link light comes up / pinging it / etc12:36
mithroshenki: 720p3012:36
shenkiyeah, i get the link light12:39
shenkiokay, thanks12:39
mithroshenki: you should actually be able to set it up so that you can tftp boot the lm32 firmware12:53
shenkimithro: i did see that. i'm poking around13:08
shenkithe ip is the same range as my home network13:08
shenkineed to rebuild the gateware with a diff ip range13:08
_florent_hi shenki13:33
_florent_hdmi2eth is just sending the compressed jpeg frames over udp13:33
_florent_if you capture it, and find the jpeg header in it, you are able to get your13:33
_florent_video13:33
_florent_I implemented a skeleton for RTP, but things are still missing13:34
_florent_you can use that to capture the stream and reconstrut the frames of the video:13:36
_florent_https://github.com/timvideos/HDMI2USB-misoc-firmware/blob/master/test/hdmi2ethernet/test_capture.py13:36
tpbTitle: HDMI2USB-misoc-firmware/test_capture.py at master · timvideos/HDMI2USB-misoc-firmware · GitHub (at github.com)13:36
_florent_it will capture 10MB of data and then create the frames13:37
CarlFK_florent_:  neat.14:59
*** sb0 has joined #timvideos15:13
*** sb0 has quit IRC15:16
*** sb0_ has joined #timvideos15:16
*** sb0_ has quit IRC16:36
*** Bertl_oO is now known as Bertl18:05
mithroHey, CarlFK21:39
CarlFKmithro: hey!21:39
CarlFKmithro: I need a name for the stream that comes from the projector feed21:40
mithroCarlFK: you were working on making veyepar be able to do combining two videos?21:40
CarlFKmaybe projector feed21:40
CarlFKheh, I am replying to that ticket rigt now21:40
CarlFKthe simple answer is no21:40
mithroI think having projector in the name is probably good21:41
CarlFKk21:41
mithroCarlFK: complex answer? And what ticket?21:41
CarlFKI did make a few tweeks to make it easier to deal with combining21:42
CarlFKI just did do 50 node conf talks that were 2 sets of files that needed to be combined21:42
CarlFKryan's trello for lca video21:43
CarlFKhttps://trello.com/c/y91qIWpJ/25-veyepar-ensure-it-can-workflow-mix-together-2-seperate-opsis-recordings-into-a-single-video21:43
mithroTrello goes from spamming me like 10 thousand messages and then nothing21:44
CarlFKlol21:46
CarlFKbrb21:46
mithroCarlFK: do you think you can do what xfxf says pretty easily?21:46
CarlFKback21:49
CarlFKkinda, but currently it's a low priority21:50
CarlFKhaving just did 50 talks.. I got a little insight...21:50
CarlFKthe live mixing solves all sorts of problems that I didn't even know where problems21:51
CarlFKthat no amount of veyepar hacking can solve21:51
mithroYes, I totally agree21:51
mithroOut of interest, what are the problems you ran into?21:52
CarlFKso given I have a few 100 hours between now and lca, getting live mixing is way on top21:52
CarlFKnumber 1-10 (this one alone  gets all these slots cuz it is so critical... :p)21:52
CarlFKaccurate clocks21:52
CarlFKa second off is fine.21:53
CarlFKmuch more than that and you are having to fiddle21:53
mithroOkay, you can assume in our setup the clocks are within milliseconds of each other21:53
CarlFKfor some reason, one node talk the projector stream "had issues" and I got 12 files for 30 min21:54
CarlFKno clue what was going on , this was the school's room21:55
CarlFKbut I suspect if a person was more involved, it would not have been as broken21:55
mithroYou already deal with multiple files per "recording" right? IE people being cut happy?21:55
CarlFK(lost about 30 sec of content each break21:55
CarlFKyesh, cuts are fine21:55
mithroCan you deal with the two  recordings starting at different times? (Assuming the timestamps in the file names are accurate?)21:57
CarlFKlive mixing lets the producer (person) get a feel for the presenters behavior21:57
CarlFKstarting at different  times - "yes"21:57
mithroYeah, live mixing ++++ :-)21:57
CarlFKquotec because...21:57
CarlFKquotes21:57
CarlFKthe way I did 50 was like this:21:57
CarlFKpull up talk 1 in veyepar (just like normal)21:58
CarlFKlook at talk id (like 10123)21:58
CarlFKrun script: ./mk_mlt.sh 1012321:58
CarlFKwhoops, skipped a step21:59
CarlFKfigure out h:m:s the talk started21:59
CarlFKput that into veyepar21:59
CarlFKclick [x]apply next to the presenter stream files21:59
CarlFK(this is all pretty normal veyepar usage)22:00
CarlFK(back to non normal deal with 2nd set of files)22:00
CarlFKrun script: ./mk_mlt.sh 1012322:00
CarlFKfire up Shotcut NLE (yes... doom)22:00
CarlFK ./mk_mlt.sh 10123 -> creates foo_talk_title.mlt.   pass that to Shotcut:  ./sc.sh foo_talk_title .mlt22:01
CarlFKthat will have the presenter stream files all loaded up and ready to encode, with P-n-P applied22:02
CarlFKthe Projecotor stream files will be in the "list of assets" but not used yet22:02
CarlFKfor most of them, it was a matter or looking at the first or 2nd on that list, drag it onto the time line, save, exit,22:03
CarlFKSet Veyepar to Encode, hit Save.22:03
CarlFKonto the next one.22:03
CarlFK"starting at different times"  got addressed because the "list of assets" includes "default start time" offset into the file22:03
CarlFKso when it gets dropped onto the time line, it jsut works22:04
mithroHow much work is it to make that shotcut bit? It should just be a slightly more complicated mlt file, right?22:05
mithroS/shotcut bit/shotcut bit automated/22:06
CarlFKcurrently there isn't support 2 files that happen at the same time22:07
mithroBe back in 1-2 hours22:07
CarlFKclick [x]apply next to the presenter stream files22:08
CarlFKk22:08
mithro8:59 a.m. <+CarlFK> the Projecotor stream files will be in the "list of assets" but not used yet <--- how does that work then?22:09
CarlFKmithro: drag it onto the time line22:09
CarlFKwhich puts it at the same start time as the presenter stream, and the PiP is expecting it to be there22:10
CarlFK"time line" = what gets encoded22:10
*** se6astian is now known as se6astian|away22:14
mithroCarlFK: kinda back now22:57
mithroJust walking to work22:57
mithroCarlFK: but how does the stream file end up in the list of assets to drag?22:58
CarlFKmithro: veyepar's "here are files that might be part of this talk" - room and start/end times22:59
*** rohitksingh has quit IRC23:00
CarlFKmithro: if we are two weeks from LCA and it looks like we need this to be more automated, then it might be worth considering23:01
CarlFKbut it's code I really don't want anyone to write23:01
CarlFKmithro: did you ever get an assessment of how vocto's first talk went?23:03
shenki_florent_: i was tcpdumping, and nothing was coming in on my ethernet interface23:07
mithroshenki: did you get ping working at all?23:16
shenkino23:16
shenkithere were no packets being received by the interface23:17
mithroBut you had link?23:17
shenkiyes23:17
mithroAre you connected directly? IE no switch, right?23:17
shenkicorrect, direct connection23:18
*** Bertl is now known as Bertl_oO23:19
CarlFKwhat does "had link" mean?23:20
tumbleweedkernel / ethtool reported link, I'd guess23:22
CarlFKah right, linux on one side23:23
mithroThe little link light is glowing green23:32
CarlFKAtlys, powerd up, nothing else. pluged in to laptop:23:32
CarlFK[  270.365627] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None23:32
CarlFK[  270.365806] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready23:32
mithroshenki: I'm pretty sure Florent last had it working on the Opsis, so he may have broken the Atlys board23:32
CarlFKlink lights on both sides23:33
mithro_florent_: also broke his Atlys board by putting 12V into it23:33
mithroshenki: might be worth checking the Ethernet target which doesn't have HDMI too23:34
mithroI'm unsure if ping should work or not23:38
shenkii doubt ping would be working23:40
shenkiit would just be spitting out udp packets on the port that it's configured for23:40
mithroshenki: https://github.com/enjoy-digital/liteeth/blob/master/liteeth/core/icmp.py23:55
tpbTitle: liteeth/icmp.py at master · enjoy-digital/liteeth · GitHub (at github.com)23:55
mithroActually, I lie - It looks like there is only a HDMI2Eth target for the Atlys23:57

Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!