Monday, December 24th, 2012, 00:20 UTC | ||
[00:20:57] | faginbagin (faginbagin!~buus@d14-69-120-137.try.wideopenwest.com) has quit (Ping timeout: 265 seconds) | |
[00:26:37] | Technodrome (Technodrome!~asdfrerwe@unaffiliated/technodrome) has joined #mythtv | |
[00:26:59] | Technodrome: | what is the best way to record a hdtv broadcast? |
[00:27:13] | Technodrome: | obviously my dvr's are all DRM'd up |
[00:39:56] | amessina (amessina!~amessina@2001:470:c1dc:7779:d6be:d9ff:fe8d:7c1e) has joined #mythtv | |
[01:16:07] | amessina (amessina!~amessina@2001:470:c1dc:7779:d6be:d9ff:fe8d:7c1e) has quit (Quit: Konversation terminated!) | |
[01:23:03] | stichnot (stichnot!~stichnot@adsl-69-105-239-56.dsl.pltn13.pacbell.net) has joined #mythtv | |
[01:23:03] | stichnot (stichnot!~stichnot@mythtv/developer/stichnot) has joined #mythtv | |
[01:23:03] | stichnot (stichnot!~stichnot@adsl-69-105-239-56.dsl.pltn13.pacbell.net) has quit (Changing host) | |
[01:24:26] | stichnot: | jya_: changing resolution and bitrate wouldn't matter for displaying position/duration and accurate seeking. Is it possible to have changing frame rates? (e.g. if the original source has varying frame rates) |
[01:29:51] | jya_ (jya_!~jyavenard@mythtv/developer/jya) has quit (Quit: jya_) | |
[01:34:24] | jya (jya!~jyavenard@mythtv/developer/jya) has joined #mythtv | |
[01:34:54] | jya (jya!~jyavenard@mythtv/developer/jya) has quit (Client Quit) | |
[01:35:22] | jya (jya!~jyavenard@mythtv/developer/jya) has joined #mythtv | |
[01:36:50] | jya (jya!~jyavenard@mythtv/developer/jya) has quit (Client Quit) | |
[01:39:51] | stichnot (stichnot!~stichnot@mythtv/developer/stichnot) has quit (Ping timeout: 260 seconds) | |
[01:43:57] | kth (kth!~kth@unaffiliated/kth) has quit (Quit: Leaving.) | |
[01:44:39] | stichnot (stichnot!~stichnot@adsl-69-110-145-181.dsl.pltn13.pacbell.net) has joined #mythtv | |
[01:44:40] | stichnot (stichnot!~stichnot@adsl-69-110-145-181.dsl.pltn13.pacbell.net) has quit (Changing host) | |
[01:44:40] | stichnot (stichnot!~stichnot@mythtv/developer/stichnot) has joined #mythtv | |
[01:47:16] | stichnot: | jya: I have a DVD rip (Mary Poppins) where the default audio track is 5.1ch commentary, so I have to manually select the second track, 2ch. When I skip chapters, it reselects the commentary track, and also sometimes messes up the aspect ratio. |
[02:34:43] | wh0dat (wh0dat!~cal@75.119.232.149) has quit (Quit: My damn controlling terminal disappeared!) | |
[03:09:51] | stichnot (stichnot!~stichnot@mythtv/developer/stichnot) has quit (Ping timeout: 265 seconds) | |
[03:15:28] | Sharky-Sleep is now known as Sharky112065 | |
[03:17:04] | jya (jya!~jyavenard@mythtv/developer/jya) has joined #mythtv | |
[03:24:38] | stichnot (stichnot!~stichnot@adsl-68-127-103-144.dsl.pltn13.pacbell.net) has joined #mythtv | |
[03:24:39] | stichnot (stichnot!~stichnot@adsl-68-127-103-144.dsl.pltn13.pacbell.net) has quit (Changing host) | |
[03:24:39] | stichnot (stichnot!~stichnot@mythtv/developer/stichnot) has joined #mythtv | |
[03:30:16] | knightr_ (knightr_!~knightr@69-165-170-178.dsl.teksavvy.com) has quit (Read error: Connection reset by peer) | |
[03:30:31] | knightr (knightr!~knightr@69-165-170-178.dsl.teksavvy.com) has joined #mythtv | |
[03:30:32] | knightr (knightr!~knightr@69-165-170-178.dsl.teksavvy.com) has quit (Changing host) | |
[03:30:33] | knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv | |
[03:40:32] | jya: | stichnot: yes, the frame rate can change… with nasa TV for example, the high-def stream is 25fps; the lower res are 15fps |
[03:44:43] | aloril (aloril!~aloril@dsl-tkubrasgw3-54f97e-153.dhcp.inet.fi) has quit (Ping timeout: 245 seconds) | |
[03:49:26] | aloril (aloril!~aloril@dsl-tkubrasgw3-54f97e-153.dhcp.inet.fi) has joined #mythtv | |
[03:51:29] | faginbagin (faginbagin!~buus@d14-69-120-137.try.wideopenwest.com) has joined #mythtv | |
[03:53:49] | aloril (aloril!~aloril@dsl-tkubrasgw3-54f97e-153.dhcp.inet.fi) has quit (Ping timeout: 252 seconds) | |
[03:54:10] | jya: | all right, taking a new approach trying to find this HDPVR issue, I made a version of myth using stock ffmpeg ; going to make git bisect much easier ... |
[04:03:46] | jheizer_laptop (jheizer_laptop!~jon@c-98-226-220-178.hsd1.il.comcast.net) has joined #mythtv | |
[04:03:59] | stichnot (stichnot!~stichnot@mythtv/developer/stichnot) has quit (Ping timeout: 265 seconds) | |
[04:16:41] | stichnot (stichnot!~stichnot@adsl-69-110-156-169.dsl.pltn13.pacbell.net) has joined #mythtv | |
[04:16:41] | stichnot (stichnot!~stichnot@mythtv/developer/stichnot) has joined #mythtv | |
[04:16:41] | stichnot (stichnot!~stichnot@adsl-69-110-156-169.dsl.pltn13.pacbell.net) has quit (Changing host) | |
[04:25:38] | jya: | stichnot: you may want to check how ffmpeg does it in their code ; they have quite changed the handling on how to deal with video where the content change halfway. |
[04:25:51] | jya: | mplayer is also starting to support those new methods... |
[04:26:21] | jya: | for example now, they never use the width and length, rate in the AVCodec* instead they read the AVFrame field |
[04:38:36] | sraue (sraue!~stephan@xbmc/staff/sraue) has quit (Ping timeout: 264 seconds) | |
[04:44:19] | fetzerch_ (fetzerch_!~quassel@unaffiliated/fetzerch) has joined #mythtv | |
[04:45:04] | wh0dat (wh0dat!~cal@75.119.232.149) has joined #mythtv | |
[04:46:54] | fetzerch (fetzerch!~quassel@unaffiliated/fetzerch) has quit (Ping timeout: 244 seconds) | |
[04:51:20] | sraue_ (sraue_!~stephan@62-47-145-65.adsl.highway.telekom.at) has joined #mythtv | |
[05:18:49] | jheizer_laptop (jheizer_laptop!~jon@c-98-226-220-178.hsd1.il.comcast.net) has quit (Ping timeout: 256 seconds) | |
[05:39:46] | jheizer_laptop (jheizer_laptop!~jon@c-98-226-220-178.hsd1.il.comcast.net) has joined #mythtv | |
[05:49:25] | faginbagin (faginbagin!~buus@d14-69-120-137.try.wideopenwest.com) has quit (Ping timeout: 256 seconds) | |
[05:52:20] | jya (jya!~jyavenard@mythtv/developer/jya) has quit (Read error: Connection reset by peer) | |
[05:52:26] | jya_ (jya_!~jyavenard@mythtv/developer/jya) has joined #mythtv | |
[05:56:05] | faginbagin (faginbagin!~buus@d14-69-120-137.try.wideopenwest.com) has joined #mythtv | |
[05:59:24] | aloril (aloril!~aloril@dsl-tkubrasgw3-54f97e-153.dhcp.inet.fi) has joined #mythtv | |
[06:31:21] | faginbagin (faginbagin!~buus@d14-69-120-137.try.wideopenwest.com) has quit (Ping timeout: 256 seconds) | |
[06:36:09] | faginbagin (faginbagin!~buus@d14-69-120-137.try.wideopenwest.com) has joined #mythtv | |
[06:38:53] | rsiebert (rsiebert!~quassel@g226060200.adsl.alicedsl.de) has joined #mythtv | |
[06:41:52] | rsiebert_ (rsiebert_!~quassel@g225054192.adsl.alicedsl.de) has quit (Ping timeout: 252 seconds) | |
[06:47:47] | jheizer_laptop (jheizer_laptop!~jon@c-98-226-220-178.hsd1.il.comcast.net) has quit (Ping timeout: 256 seconds) | |
[07:34:08] | faginbagin (faginbagin!~buus@d14-69-120-137.try.wideopenwest.com) has quit (Ping timeout: 260 seconds) | |
[08:03:59] | sraue_ is now known as sraue | |
[08:04:11] | sraue (sraue!~stephan@62-47-145-65.adsl.highway.telekom.at) has quit (Changing host) | |
[08:04:11] | sraue (sraue!~stephan@xbmc/staff/sraue) has joined #mythtv | |
[08:24:17] | Technodrome (Technodrome!~asdfrerwe@unaffiliated/technodrome) has left #mythtv () | |
[08:56:01] | amessina (amessina!~amessina@2001:470:c1dc:7779:d6be:d9ff:fe8d:7c1e) has joined #mythtv | |
[09:02:16] | Merlin83b (Merlin83b!~Daniel@2a00:1ee0:3:1337:e9a1:fd98:d0cf:7a69) has joined #mythtv | |
[11:55:05] | dekarl (dekarl!~dekarl@p4FE84487.dip.t-dialin.net) has joined #mythtv | |
[11:56:18] | dekarl1 (dekarl1!~dekarl@p4FE8509D.dip.t-dialin.net) has quit (Ping timeout: 250 seconds) | |
[12:31:27] | IReboot (IReboot!~doug@CPE1caff7df6774-CM00252eac6f40.cpe.net.cable.rogers.com) has quit (Remote host closed the connection) | |
[12:34:22] | IReboot (IReboot!~doug@CPE1caff7df6774-CM00252eac6f40.cpe.net.cable.rogers.com) has joined #mythtv | |
[12:51:41] | stoffel (stoffel!~quassel@pD9E418F5.dip.t-dialin.net) has joined #mythtv | |
[12:55:02] | faginbagin (faginbagin!~buus@d14-69-120-137.try.wideopenwest.com) has joined #mythtv | |
[13:10:32] | stoffel (stoffel!~quassel@pD9E418F5.dip.t-dialin.net) has quit (Ping timeout: 252 seconds) | |
[13:12:58] | jya_ (jya_!~jyavenard@mythtv/developer/jya) has quit (Read error: Connection reset by peer) | |
[13:13:04] | jya (jya!~jyavenard@mythtv/developer/jya) has joined #mythtv | |
[13:13:22] | jya (jya!~jyavenard@mythtv/developer/jya) has quit (Read error: Connection reset by peer) | |
[13:13:41] | jya (jya!~jyavenard@mythtv/developer/jya) has joined #mythtv | |
[13:14:25] | jya (jya!~jyavenard@mythtv/developer/jya) has quit (Read error: Connection reset by peer) | |
[13:14:30] | jya_ (jya_!~jyavenard@mythtv/developer/jya) has joined #mythtv | |
[13:18:02] | Chutt_ (Chutt_!~ijr@cpe-24-29-225-175.neo.res.rr.com) has quit (Read error: Connection reset by peer) | |
[13:36:50] | faginbagin (faginbagin!~buus@d14-69-120-137.try.wideopenwest.com) has quit (Quit: Leaving.) | |
[13:37:05] | faginbagin (faginbagin!~buus@d14-69-120-137.try.wideopenwest.com) has joined #mythtv | |
[13:39:11] | faginbagin (faginbagin!~buus@d14-69-120-137.try.wideopenwest.com) has left #mythtv () | |
[13:39:30] | jya_: | Merry Christmas everyone ... |
[13:41:47] | stichnot: | thanks... a few more hours to go here though... |
[13:47:42] | stichnot: | jya_: Is the HLS encoder used to encode existing myth recordings into HLS chunks, or external HLS sources, or both? |
[13:48:16] | stichnot: | for the latter I mean take external HLS sources and encode them into HLS chunks |
[13:48:18] | jya_: | the HLS encore put back together ts segments, into one continuous TS stream |
[13:48:39] | jya_: | the TS segments could be of different streams... |
[13:48:53] | stichnot: | OK. What recorder class does it use? |
[13:49:35] | jya_: | unfortunately, at this stage, there's no mechanism between the recorder and playback, so there's no way to pass the information that the ts quality has changed, even though that info is available |
[13:49:51] | jya_: | in master I'm not sure anymore, before it was inheriting of iptvrecorder |
[13:51:48] | stichnot: | My fundamental question here is whether the HLS encoder is also generating a seektable (recordedseek or filemarkup), and then how I can compute duration marks and add them to the seektable |
[13:51:57] | jya_: | no it doesn't |
[13:52:03] | jya_: | all it does is pass a ts stream |
[13:52:31] | jya_: | just like iptv recorder, and most recorder from what I've seen |
[13:52:48] | stichnot: | so it would be the player's responsibility to sanely compute display timecode, based on dts/pts values, and deal with discontinuities? |
[13:54:20] | stichnot: | In my code, I've modified DTVRecorder to add the duration map. DTVRecorder is already producing the seektable. IPTVRecorder inherits from DTVRecorder. |
[13:54:44] | stichnot: | so if the HLS encoder is based on IPTVRecorder, maybe I just get that for free. |
[13:55:17] | stichnot: | I also modified mythcommflag to generate the duration map along with the seektable |
[13:56:21] | stichnot: | the main thing left is to update the myth protocol to send real-time duration map updates for in-progress recordings, which may also be relevant for HLS |
[13:57:12] | stichnot: | and of course to fix the train wreck of position/duration display and seeking in mythplayer.cpp and tv_play.cpp |
[13:58:11] | jya_: | stichnot: will that still work with video not having anything store in the database ? lil videos in myth video ? |
[13:58:18] | jya_: | not everything goes through mythcommflag |
[13:59:59] | stichnot: | yes, it basically falls back to the code that's there now |
[14:00:48] | stichnot: | for the really weird preexisting recordings that ffmpeg doesn't properly handle, the user would need to run mythcommflag --rebuild |
[14:01:28] | stichnot: | but I have thousands of existing recordings to test against, as I'm not excited about rebuilding all seektables |
[14:01:31] | jya_: | can't there be a way to automatically detect those? |
[14:02:02] | stichnot: | maybe duration>400 hours? :) |
[14:02:08] | jya_: | yeah things like that |
[14:02:48] | stichnot: | probably, but what should be done then? add a mythcommflag job semi-automatically? |
[14:02:56] | jya_: | or maybe apply a rough rule averaging bitstream, actual file size and duration detected |
[14:03:00] | jya_: | yep |
[14:04:14] | stichnot: | the same mechanism could apply to cutlist editing. If there is no seek table, the user just gets a cryptic "No Seektable" message when they try to edit, without a hint of how to fix it |
[14:06:39] | stichnot: | it's most important to get an accurate frame count. The duration can be approximate, and then everything is interpolated. |
[14:08:25] | stichnot: | then if the file has changing framerates, playback will still be just fine but timecodes and seeking may look a bit funny but will still be consistent |
[14:13:49] | stichnot: | hmm, this duration map calculation in the recorder isn't working so well... a 54-minute recording is showing up in the OSD as 80 minutes |
[14:16:12] | jya_: | stichnot: from what I've seen with ffmpeg, it doesn't matter if the timecode are all over the place. in HLS, I can stream perfectly in it.. At worse it takes longer.. ffmpeg keeps seeking until it find something |
[14:18:48] | stichnot: | yeah, I'm impressed with its resilience (at least in that regard) |
[14:19:50] | jya_: | it does a binary search… bit of a pain to debug.. |
[14:20:07] | jya_: | was trying to find out at some stage why it took several seconds to seek in my HLS stream |
[14:20:30] | jya_: | until I tweaked the URL_Seek implementation, to estimate grossly where it should go |
[14:42:55] | sraue (sraue!~stephan@xbmc/staff/sraue) has quit (Quit: Ex-Chat) | |
[14:44:18] | sraue (sraue!~stephan@xbmc/staff/sraue) has joined #mythtv | |
[15:00:40] | joki (joki!~joki@p54865A78.dip.t-dialin.net) has quit (Read error: Operation timed out) | |
[15:01:46] | joki (joki!~joki@p54863131.dip.t-dialin.net) has joined #mythtv | |
[15:06:35] | stichnot: | there, looks like I fixed the bogus duration problem |
[15:09:59] | Goga777 (Goga777!~Goga777@128-71-160-208.broadband.corbina.ru) has joined #mythtv | |
[15:10:23] | stoffel (stoffel!~quassel@pD9E4211C.dip.t-dialin.net) has joined #mythtv | |
[15:14:37] | stichnot: | jya_: out of curiosity, how does ffmpeg determine frame/packet/etc boundaries when it does its binary search? |
[15:15:08] | jya_: | it starts by doing a seek at the end of the file – 2k |
[15:15:20] | jya_: | that gives him the limit to parse |
[15:17:25] | bas-t (bas-t!~tycho@52484E89.cm-4-1b.dynamic.ziggo.nl) has joined #mythtv | |
[15:17:42] | stichnot: | I mean, given a random file offset, how does it find the start of the packet that contains that file offset? Are all packets aligned at N-byte boundaries? |
[15:19:29] | jya_: | it tries to find the header of a packet first |
[15:19:41] | jya_: | and when you seek, you ask to move to a certain duration |
[15:19:54] | jya_: | it then estimates what position in the file it is (in bytes) |
[15:20:03] | jya_: | then adjust until it finds the right pts |
[15:22:26] | jya_: | good… after 5 hours, i have my first git bisect to compile... |
[15:22:33] | jya_: | 12 more to go :( |
[15:29:45] | stichnot: | so ffmpeg searches byte by byte for a particular sequence and hopes it represents an actual packet header and not a coincidental portion of the packet? |
[15:31:27] | jya_: | that's right. |
[15:31:51] | jya_: | when you implement the URL_Seek (like ring buffer does) |
[15:32:27] | jya_: | so long that you have something consistent , you could point to a place completely different to what ffmpeg is trying to get, and you'll get your proper seek |
[15:32:45] | jya_: | just takes longer |
[15:33:14] | jya_: | it does start with something like estimating from the bitrate where to go in the file in byte |
[15:34:11] | stichnot: | cool, that's pretty nice |
[15:51:50] | stichnot: | boy, the code for dealing with anything to do with duration in an in-progress recording is really broken. I wonder if it ever really worked. This includes not just displaying duration, but seeking relative to the end, limiting forward jumps, IsNearEnd calculation, etc |
[16:08:57] | SteveGoodey (SteveGoodey!~steve@host86-148-172-139.range86-148.btcentralplus.com) has joined #mythtv | |
[16:19:10] | Goga777 (Goga777!~Goga777@128-71-160-208.broadband.corbina.ru) has quit (Quit: Leaving) | |
[16:36:58] | stichnot: | In portable C++, can I rely on (-0.0 < 0.0) to be true? |
[16:37:32] | stichnot: | also (0.0f < 0.0f) |
[16:38:38] | SteveGoodey (SteveGoodey!~steve@host86-148-172-139.range86-148.btcentralplus.com) has quit (Quit: Konversation terminated!) | |
[16:39:37] | SteveGoodey (SteveGoodey!~steve@host86-148-172-139.range86-148.btcentralplus.com) has joined #mythtv | |
[16:43:31] | neufeld_AFK is now known as neufeld | |
[16:43:32] | neufeld: | stichnot: in IEEE 754, -0 and +0 should compare as equal under the comparison operators. For portable code, something like copysign() is probably a better bet. |
[16:45:07] | neufeld: | stichnot: the man page for signbit() says: "The comparison -0.0 < 0.0 is false, ..." |
[16:53:47] | neufeld is now known as neufeld_AFK | |
[16:59:59] | amessina (amessina!~amessina@2001:470:c1dc:7779:d6be:d9ff:fe8d:7c1e) has quit (Quit: Konversation terminated!) | |
[17:03:40] | stichnot: | neufeld: thanks. :( I thought I could use a positive (or +0.0f) number to represent offset in seconds from the beginning of the recording, and a negative number (including -0.0f) to represent offset from the end. |
[17:04:36] | stichnot: | I still could, I suppose, just with a slightly more complex comparison |
[17:11:03] | yoyolala (yoyolala!~yoyolala@unaffiliated/yoyolala) has joined #mythtv | |
[17:12:32] | stoffel (stoffel!~quassel@pD9E4211C.dip.t-dialin.net) has quit (Ping timeout: 252 seconds) | |
[17:12:49] | stichnot: | actually signbit() is exactly the comparison I would want |
[18:10:46] | amessina (amessina!~amessina@2001:470:c1dc:7779:d6be:d9ff:fe8d:7c1e) has joined #mythtv | |
[18:22:12] | tonsofpcs (tonsofpcs!~tonsofpcs@cpe-72-230-192-8.stny.res.rr.com) has quit (Ping timeout: 244 seconds) | |
[18:24:11] | tonsofpcs (tonsofpcs!~tonsofpcs@cpe-72-230-192-8.stny.res.rr.com) has joined #mythtv | |
[18:57:06] | jst_ (jst_!~quassel@2620:101:8003:200:224:e8ff:fe39:34c2) has quit (Ping timeout: 245 seconds) | |
[18:57:20] | jst (jst!~quassel@2620:101:8003:200:224:e8ff:fe39:34c2) has quit (Ping timeout: 260 seconds) | |
[19:00:44] | jst (jst!~quassel@nat/mozilla/x-mvyxzzrtazafkvld) has joined #mythtv | |
[19:01:16] | jst_ (jst_!~quassel@nat/mozilla/x-nvknvbixckdpfqss) has joined #mythtv | |
[19:41:22] | IReboot (IReboot!~doug@CPE1caff7df6774-CM00252eac6f40.cpe.net.cable.rogers.com) has quit (Read error: Connection reset by peer) | |
[21:41:09] | zombor (zombor!~zombor__@65.29.231.135) has joined #mythtv | |
[21:41:09] | zombor (zombor!~zombor__@65.29.231.135) has quit (Changing host) | |
[21:41:09] | zombor (zombor!~zombor__@kohana/developer/zombor) has joined #mythtv | |
[21:46:58] | zombor (zombor!~zombor__@kohana/developer/zombor) has quit (Remote host closed the connection) | |
[22:01:28] | amessina (amessina!~amessina@2001:470:c1dc:7779:d6be:d9ff:fe8d:7c1e) has quit (Quit: Konversation terminated!) | |
[22:19:37] | SteveGoodey (SteveGoodey!~steve@host86-148-172-139.range86-148.btcentralplus.com) has quit (Quit: Konversation terminated!) |
IRC Logs collected by
BeirdoBot.
Please use the above link to report any bugs.