Tuesday, November 21st, 2017, 00:00 UTC | ||
[00:00:00] | amessina (amessina!~amessina@unaffiliated/amessina) has quit (Quit: Konversation terminated!) | |
[00:11:24] | MythBuild: | build #464 of master-ubuntu-testing-64bit is complete: Success [3build successful] Build details are at http://code.mythtv.org/buildbot/builders/mast . . . t/builds/464 |
[00:26:30] | peterbennett (peterbennett!~Peter@mythtv/developer/peterbennett) has joined #mythtv | |
[00:28:08] | peterbennett: | hampton: It seems that the clang::fallthrough is designed to prevent a compiler warning but instead is creating one. maybe there is a compile option missing. I get that warning everywhere it is used. |
[00:28:44] | hampton: | What compiler? I haven't seen that with gcc or clang on x86_64. |
[00:28:54] | peterbennett: | gcc |
[00:29:05] | hampton: | on arm? |
[00:30:32] | peterbennett: | Not sure let me do a quick test again |
[00:31:56] | peterbennett: | On x86_64 |
[00:32:24] | peterbennett: | I just added a space in to mythcontext.cpp and ran a make |
[00:32:35] | hampton: | that's odd. what version of gcc? |
[00:32:48] | peterbennett: | I get 6 of those warnings |
[00:33:01] | hampton: | and what os? maybe I can recreate it here. |
[00:33:24] | peterbennett: | gcc (Ubuntu 5.4.0–6ubuntu1~16.04.4) 5.4.0 20160609 |
[00:33:40] | peterbennett: | It is Ubuntu 16.04 Xenial |
[00:33:54] | peterbennett: | I think also on arm |
[00:34:07] | peterbennett: | Maybe it does not like the square brackets |
[00:35:11] | peterbennett: | I am just going to check on arm |
[00:35:18] | hampton: | might be a difference between gcc 5.4 and later? I just compiled on Ubuntu 17.10 and didn't see them, but then I was looking for something completely different. |
[00:35:36] | hampton: | I'll check 17.10 now and see if I see them. |
[00:36:10] | peterbennett: | Yes I have them on arm as well |
[00:36:41] | peterbennett: | arm is using a much more recent gcc |
[00:36:43] | peterbennett: | gcc (Raspbian 6.3.0–18+rpi1) 6.3.0 20170516 |
[00:38:02] | peterbennett: | So you don't see those at all? Strange .. |
[00:38:04] | hampton: | I didn't see them on Ubuntu 17.10. I have gcc 7.2.0 there and gcc 7.2.1 on my fedora system. |
[00:39:01] | peterbennett: | I don't know what that message means "attributes at the beginning of statement are ignored" |
[00:39:26] | peterbennett: | The tick for the error location is at the first square bracket |
[00:40:28] | hampton: | Right. The two square brackets indicate an attribute (same as __attribute, I think) and its complaining about the attribute. |
[00:40:54] | hampton: | Not sure about the "beginning of statement" part of the warning. |
[00:41:49] | peterbennett: | I am not familiar with clang or with attributes |
[00:46:27] | dekarl1 (dekarl1!~dekarl@mythtv/developer/dekarl) has joined #mythtv | |
[00:46:28] | hampton: | Clang is a "competing" compiler to gcc. I know some projects at work switched to it because it had some support that gcc lacked, but I think gcc is back to feature parity with clang. Attributes are compiler hints, like "this function will never return so you can do optimization that you wouldn't normally do", or "this data structure needs to be aligned on a 32 byte boundary". |
[00:47:37] | dekarl (dekarl!~dekarl@mythtv/developer/dekarl) has quit (Ping timeout: 250 seconds) | |
[00:47:54] | peterbennett: | Richard Stallman says clang is evil |
[00:48:10] | hampton: | I'll install ubunto 16.04 in a VM and see what I can figure out here. May take me a while as I'll have to compile everything with gcc5.4, gcc7, and clang so that I can find an incantation that works for all three. |
[00:48:31] | hampton: | he says lots of things are evil :-) |
[00:49:50] | peterbennett: | So I guess that [[clang::fallthrough]] is an attribute |
[00:50:04] | hampton: | I started testing with clang because it found additional problems that gcc missed. I don't normally use it on an everyday basis. |
[00:50:18] | peterbennett: | I can try some tests so you don't have to do that |
[00:50:49] | peterbennett: | What about taking off the semicolon or adding something behind ? |
[00:51:21] | hampton: | Yes. Essentially its "fallthrough" in the "clang" namespace which is what clang needed to recognize it. gcc7 seems to match on *fallthrough* so doesn't care that the "clang::" is present. |
[00:52:15] | hampton: | It may be that gcc5/6 is refusing to recognize the attribute because of the "clang::" part. If that's the case it That will |
[00:52:30] | peterbennett: | If I remove the semicolon from after the [[clang::fallthrough]]; the warning goes away |
[00:52:31] | hampton: | ... the case it will make it hard to fix. |
[00:52:47] | hampton: | That's interesting. |
[00:53:06] | ** hampton wonders why he put the semicolon there ** | |
[00:53:25] | hampton: | Let me try that with gcc7... |
[00:53:31] | peterbennett: | Maybe the attribute [[clang::fallthrough]] is in front of the statement ";" and that is why there is a warning. |
[00:54:17] | peterbennett: | Perhaps it thinks there is another statement coming before the next case, which would obvioulsy make the fallthrough incorrect |
[00:54:43] | hampton: | That's very possible, but I think I put in the semicolon because someone complained. I have to test to see if it was gcc7 or clang. |
[00:56:05] | peterbennett: | I took all the semicolons off in that source file and now the 6 warnings are gone. |
[00:57:24] | hampton: | I took them off and gcc7 started complaining. :-( |
[00:58:17] | peterbennett: | What is its complaint? |
[00:58:33] | hampton: | mythcontext.cpp:885:30: warning: this statement may fall through [-Wimplicit-fallthrough= |
[00:59:04] | peterbennett: | Even if I comment the entire line I do not get any warning that it may fall through |
[01:00:25] | hampton: | Must be a change in gcc7. |
[01:01:00] | peterbennett: | I suppose you could define macros that are different for different compiler versions ... or else just leave it and accept that the warnings will go away when everybody gets to gcc 7 |
[01:02:03] | peterbennett: | Evidently gcc 5 does not check for fallthrough anyway |
[01:02:10] | hampton: | I'm ok with that, but then I'm not the one seeing the warnings. :-) |
[01:03:10] | peterbennett: | Fine with me now that I understand what is going on. |
[01:03:21] | peterbennett: | Gotta go now, goodnight |
[01:03:22] | hampton: | If they're bothering you I can try to come up with a macro that handles the compiler differences. Whether it works will depend on whether macros are processed before attributes. |
[01:03:25] | hampton: | Goodnight. |
[01:03:39] | peterbennett (peterbennett!~Peter@mythtv/developer/peterbennett) has quit (Quit: Leaving.) | |
[03:41:59] | peper03 (peper03!~peper03@mythtv/developer/peper03) has quit (Ping timeout: 255 seconds) | |
[03:43:37] | Roklobster (Roklobster!~Dirkka@119-18-8-177.cust.aussiebb.net) has quit (Quit: Leaving) | |
[03:47:02] | peper03 (peper03!~peper03@mythtv/developer/peper03) has joined #mythtv | |
[05:08:22] | hampton (hampton!~dhampton@pool-68-134-224-167.bltmmd.fios.verizon.net) has quit (Remote host closed the connection) | |
[05:16:47] | dblain (dblain!~dblain@mythtv/developer/dblain) has quit (Read error: Connection reset by peer) | |
[05:17:03] | dblain (dblain!~dblain@mythtv/developer/dblain) has joined #mythtv | |
[05:33:39] | hampton (hampton!~dhampton@pool-68-134-224-167.bltmmd.fios.verizon.net) has joined #mythtv | |
[06:22:46] | Guest10049 (Guest10049!~dblain@c-73-100-248-159.hsd1.ma.comcast.net) has joined #mythtv | |
[06:23:01] | dblain (dblain!~dblain@mythtv/developer/dblain) has quit (Read error: Network is unreachable) | |
[06:59:15] | Tobbe5178 (Tobbe5178!~asdf@2001:2002:51eb:d24e:4436:f7e3:877b:5447) has joined #mythtv | |
[07:33:22] | sdrik (sdrik!~sdrik@sdrik.gabriello.fr) has quit (Remote host closed the connection) | |
[07:51:23] | SteveGoodey (SteveGoodey!~steve@host81-158-52-80.range81-158.btcentralplus.com) has joined #mythtv | |
[08:01:09] | sdrik (sdrik!~sdrik@sdrik.gabriello.fr) has joined #mythtv | |
[08:43:12] | stuarta: | enyc: price for the thing i was putting together = £0 :) |
[08:50:22] | willcooke (willcooke!~willcooke@host-92-6-129-43.as43234.net) has joined #mythtv | |
[08:50:22] | willcooke (willcooke!~willcooke@host-92-6-129-43.as43234.net) has quit (Changing host) | |
[08:50:22] | willcooke (willcooke!~willcooke@ubuntu/member/willcooke) has joined #mythtv | |
[09:08:27] | Merlin83b (Merlin83b!~Daniel@office.34sp.com) has joined #mythtv | |
[09:10:39] | jheizer_ (jheizer_!~jheizer@2601:246:8200:70ab:c999:fd9f:78d7:c367) has quit (Read error: Connection reset by peer) | |
[09:10:59] | jheizer_ (jheizer_!~jheizer@2601:246:8200:70ab:b8bb:d87a:a5ee:446f) has joined #mythtv | |
[09:39:15] | enyc: | stuarta: =) |
[09:39:37] | enyc: | stuarta: lots of things are like that, pthe problem is who is going to bother doing it and all that |
[13:32:57] | davic (davic!~davic@unaffiliated/davic) has quit (Remote host closed the connection) | |
[13:45:43] | davic (davic!~davic@unaffiliated/davic) has joined #mythtv | |
[13:45:46] | davic (davic!~davic@unaffiliated/davic) has quit (Remote host closed the connection) | |
[13:46:29] | davic (davic!~davic@unaffiliated/davic) has joined #mythtv | |
[13:51:35] | davic (davic!~davic@unaffiliated/davic) has quit (Quit: ZNC - http://znc.in) | |
[13:52:50] | davic (davic!~davic@unaffiliated/davic) has joined #mythtv | |
[14:00:17] | stuarta: | sigh, builds take forever on a slow cpu with an empty ccache |
[14:25:10] | stuarta: | \o/ 2hr – 0.291s |
[15:35:52] | jpabq (jpabq!~quassel@67-0-251-151.albq.qwest.net) has quit (Ping timeout: 240 seconds) | |
[15:36:35] | jpabq (jpabq!~quassel@67-0-251-151.albq.qwest.net) has joined #mythtv | |
[15:39:44] | enyc (enyc!~enyc@2001:8b0:c1:2::22) has quit (Ping timeout: 255 seconds) | |
[15:45:54] | enyc (enyc!~enyc@muddle.enyc.org.uk) has joined #mythtv | |
[16:08:41] | peterbennett (peterbennett!~peter@2601:183:100:764c:d151:ea8b:a42:3941) has joined #mythtv | |
[16:11:23] | ** stuarta waves to peterbennett ** | |
[16:11:48] | peterbennett: | stuarta: Hi There :) |
[16:13:01] | stuarta: | i've tried #13176 on a couple of systems now, and don't see any regressions. it also seems to improve things on my underpowered cpu system |
[16:13:01] | ** MythLogBot http://code.mythtv.org/trac/ticket/13176 ** | |
[16:13:17] | stuarta: | not an exhaustive sample mind, but it does seem to work |
[16:14:20] | peterbennett: | I find no problems with it either, I have not managed to find any video streams that break it the way his samples do. |
[16:14:36] | stuarta: | the stuff he's fixing is extremely edge case |
[16:15:02] | stuarta: | i have a sneaky suspicion it may fix the odd report we have of things not working right |
[16:15:22] | stuarta: | none of which we've ever been able to reproduce |
[16:15:49] | peterbennett: | Time to redesign the player – we keep adding adjustments, flags and other things to fix odd cases, it is very messy and seems to have some incorrec assumptions as a basis. |
[16:15:51] | stuarta: | so we have been lucky to find someone who can a) reproduce it b) understand what the code is doing c) write a sensible patch |
[16:16:21] | stuarta: | yes definitely. we need to start with the ffmpeg api |
[16:16:41] | stuarta: | 95% of the build warnings are from using deprecated ffmpeg api's |
[16:17:19] | peterbennett: | There are some parts that try to synchronize video to the audio and other places try to synchronize audio to video |
[16:17:43] | stuarta: | ugh, not to mention the whole output pipeline is a mess |
[16:17:58] | stuarta: | with bolted on additions for the various hardware assists available |
[16:18:16] | stuarta: | and in-efficient / partly implemented support |
[16:18:28] | stuarta: | eg. no hardware based de-interlacing using vaapi |
[16:19:17] | jheizer_: | stuarta, not to interrupt, but did your nvidia card end up working? If not do you have a need for one? I've got some laying around. |
[16:19:35] | stuarta: | i think the focus should be on how we hook up hardware support to the maximum, and fallback if and only if we don't have support |
[16:19:49] | jheizer_ is now known as jheizer | |
[16:20:02] | stuarta: | jheizer: yes, one of the guys at work had an "old" one which was still far newer than the card i had |
[16:20:24] | stuarta: | jheizer: already built and tested master on it, with the patch from the ticket above |
[16:20:29] | stuarta: | it's building fixes/29 now |
[16:20:49] | jheizer: | ah ok, I wasn't sure from your follow up comment of it actually worked or not. |
[16:21:06] | stuarta: | oh the card worked, it was the ubuntu installer that crapped out |
[16:21:22] | jheizer: | Not that I know if US->UK shipping would have been cost worth it anyway |
[16:21:28] | stuarta: | doubt it |
[16:22:45] | jheizer: | peterbennett, you're US right? If you need one or have a use I can throw it your way. |
[16:22:57] | jheizer: | I might not be very useful overall, but I do have piles of old junk. haha |
[16:24:34] | jheizer: | atom all in one boxes ended up kicking out these fanned cards |
[16:24:40] | jheizer: | back when |
[16:30:41] | peterbennett: | jheizer: What sort of card is it? |
[16:31:27] | peterbennett: | jheizer: I have only low-end nvidia cards. |
[16:32:18] | jheizer: | Got a few, but yeah mostly low end older |
[16:32:25] | jheizer: | IIRC a 240, 430, and a 560? maybe |
[16:32:51] | jheizer: | 560 was iffy when removed I think |
[16:33:01] | jheizer: | the other 2 "use" to be good myth cards |
[16:33:54] | peterbennett: | I have only 210's, the $20 version. |
[16:34:03] | peterbennett: | Works ok for me |
[16:34:54] | stuarta: | i inherited a "GeForce GTX 650 Ti" which is actually a pretty beefy card. dual width and all |
[16:35:10] | jheizer: | 240 was the cheapest way to get 2x advanced deinterlacing I think |
[16:35:36] | hampton: | I'm looking to clean up some of the ffmpeg warnings in peripheral code, but I don't want to get anywhere near the video pipeline. |
[16:36:00] | stuarta: | hampton: dunno that there are many that aren't related to the video pipeline |
[16:36:45] | hampton: | Mytharchive does some stuff generating snapshots, and there's something in mythmusic that was trivial to fix. |
[16:36:54] | stuarta: | :) |
[16:37:45] | hampton: | Also the codec -> codecpar changes are trivial, and would eliminate some of the warnings. The won't do anything about the way ffmpeg redesigned their encoding/decoding api. |
[16:38:08] | stuarta: | yeah, they are |
[16:42:00] | peterbennett: | Trouble with redesigning the player is that MythTV playback has so many features |
[16:42:24] | peterbennett: | rather overwhelming |
[16:43:11] | stuarta: | start simple is my theory |
[16:44:56] | stuarta: | tbh, the stuff i'm thinking of is the video pipeline, with 2 main parts |
[16:45:03] | stuarta: | 1) ffmpeg api for decoding |
[16:45:09] | stuarta: | 2) output stage |
[16:45:32] | stuarta: | i "think" that quite a few of the features live in between those 2 |
[16:46:01] | stuarta: | ie. we take the frames and do stuff with them |
[16:46:42] | stuarta: | time stretch is stuffing video frames in faster whilst performing audio compenstation to maintain the pitch |
[16:47:06] | ** stuarta suspects he's oversimplified a *lot* ** | |
[16:47:40] | peterbennett: | Need to investigate the timing. Current code assumes a fixed framerate and then wings it with weird adjustments when it changes |
[16:48:25] | stuarta: | europe is 25 fps, vs 30 fps for US |
[16:48:42] | peterbennett: | Raspberry pi has some hardware features we do not use like the ability to tunnel directly from decoder to render |
[16:48:59] | stuarta: | that's the sort of thing i want to be able to leverage |
[16:49:32] | stuarta: | i'm sure it must be possible to do something similar with vdpau/vaapi |
[16:50:00] | peterbennett: | but framerate can change withing a recording |
[16:50:15] | hampton: | ffmpeg hasn't rewritten their test code for the new video pipeline. :-( |
[16:50:29] | stuarta: | everything can change within a recording |
[16:50:41] | peterbennett: | I think that sometimes the movie is 25 fps and the commercials 30 fps |
[16:50:55] | peterbennett: | we also have 720p at 60 fps |
[16:50:56] | stuarta: | progressive vs interlaced changes it too |
[16:53:23] | peterbennett: | raspberry pi omx has a timer component. |
[16:54:15] | peterbennett: | When omx player gets audio out of sync it slows or speeeds video by slowing or speeding the timer |
[16:54:36] | peterbennett: | MythTV adjust by dropping frames or doubling the interval |
[16:55:37] | stuarta: | which is hardly good control systems theory |
[16:56:42] | peterbennett: | I am not sure how it all fits in with synchronizing with the video refresh |
[16:57:35] | stuarta: | wonder if it flips buffers earlier |
[16:58:18] | peterbennett: | I don't understand in detail how that timer mechanism works. |
[17:13:35] | stuarta: | there is much to be understood |
[17:19:18] | peterbennett (peterbennett!~peter@2601:183:100:764c:d151:ea8b:a42:3941) has quit (Quit: Leaving.) | |
[17:50:36] | Merlin83b (Merlin83b!~Daniel@office.34sp.com) has quit (Quit: Leaving) | |
[18:40:34] | willcooke (willcooke!~willcooke@ubuntu/member/willcooke) has quit (Quit: Do your hobbies) | |
[18:52:15] | peper03 (peper03!~peper03@mythtv/developer/peper03) has quit (Ping timeout: 248 seconds) | |
[18:58:20] | peper03 (peper03!~peper03@mythtv/developer/peper03) has joined #mythtv | |
[19:50:22] | Roklobster (Roklobster!~Dirkka@119-18-8-177.cust.aussiebb.net) has joined #mythtv | |
[20:56:01] | jpharvey_ (jpharvey_!~jpharvey@2.31.163.187) has joined #mythtv | |
[20:56:18] | jpharvey_ (jpharvey_!~jpharvey@2.31.163.187) has quit (Remote host closed the connection) | |
[20:56:18] | jpharvey (jpharvey!~jpharvey@2.31.163.187) has quit (Remote host closed the connection) | |
[20:59:09] | gigem: | Does anyone know how to generate a call tree of our code? Can doxygen do it? |
[20:59:43] | jpabq (jpabq!~quassel@67-0-251-151.albq.qwest.net) has quit (Ping timeout: 248 seconds) | |
[21:00:15] | jpabq (jpabq!~quassel@67-0-251-151.albq.qwest.net) has joined #mythtv | |
[21:01:33] | jpharvey (jpharvey!~jpharvey@2.31.163.187) has joined #mythtv | |
[21:03:38] | gigem: | stuarta, peterbennett: This is probably very naive and sacrilegious, but is there anyway we could leverage the a/v support from some other project unless and until someone can pick that up? Or would switching to the newer ffmpeg API take care of most of that? |
[21:07:44] | jpharvey_ (jpharvey_!~jpharvey@2.31.163.187) has joined #mythtv | |
[21:09:06] | markspieth: | gigem: I was thinking libvlc |
[21:18:16] | gigem: | markspieth: I'm not experienced with any of the possibilities. That's why I said it's naive. I do know, however, that there's probably a lot of wheels being reinvented among ffmpeg, kodi, vlc, mpv, mplayer, etc. and maybe we could use one of them. |
[21:20:49] | gigem: | markspieth: BTW, I've been playing with my Nvidia Shield for a week and a half now and I really, really, really like it. I think it would make an excellent MythTV frontend when/if we support Android's native A/V (MediaCodec, I think). |
[21:52:32] | markspieth: | gigem: that would ake it sustantially different from the existing implementation. I was thinking just IO implemented and use the rest so its actually the same as the linux implementation. There are already frontends around. My key driver is timestretch. If it cant do that I wouldnt use it. |
[21:53:48] | markspieth: | libvlc already supports all platforms for AV out including android. not sure of the impacts in the UI side of course |
[21:59:53] | SteveGoodey (SteveGoodey!~steve@host81-158-52-80.range81-158.btcentralplus.com) has quit (Quit: Konversation terminated!) | |
[22:05:58] | dblain (dblain!~dblain@c-73-100-248-159.hsd1.ma.comcast.net) has joined #mythtv | |
[22:05:59] | dblain (dblain!~dblain@mythtv/developer/dblain) has joined #mythtv | |
[22:05:59] | dblain (dblain!~dblain@c-73-100-248-159.hsd1.ma.comcast.net) has quit (Changing host) | |
[22:07:21] | Guest10049 (Guest10049!~dblain@c-73-100-248-159.hsd1.ma.comcast.net) has quit (Ping timeout: 240 seconds) | |
[22:18:46] | gigem: | markspieth: I don't understand what you mean by "that would ake it sustantially different from the existing implementation." Yes, timestretch is a must for me too. I believe all the major players now support it (kodi, mpv , vlc, and probably others), so that shouldn't be an issue. As I recall, our use of Qt and it's event loop, does create some issues. I think that was mainly with archaic output like Xv. |
[22:18:49] | gigem: | If we dropped Xv, it might not be an issue. |
[23:07:09] | jheizer (jheizer!~jheizer@2601:246:8200:70ab:b8bb:d87a:a5ee:446f) has quit (Read error: Connection reset by peer) | |
[23:07:14] | jheizer_ (jheizer_!~jheizer@2601:246:8200:70ab:8907:4523:125b:d589) has joined #mythtv | |
[23:13:38] | markspieth (markspieth!~markspiet@CPE-124-188-72-98.facz1.ken.bigpond.net.au) has quit (Ping timeout: 248 seconds) | |
[23:32:46] | Roklobster (Roklobster!~Dirkka@119-18-8-177.cust.aussiebb.net) has quit (Ping timeout: 264 seconds) |
IRC Logs collected by
BeirdoBot.
Please use the above link to report any bugs.