MythLogBot@irc.freenode.net :: #mythtv

Daily chat history

Current users (87):

aloril, Anduin, beata, Beirdo, clever, coling, Cougar, dagar_, Dave123, Dave123-road, davide_, dekarl, dlblog, eharris, foobum, ghoti, Gibby, gigem_, gregL, hobiga, iamlindoro, ikonia, J-e-f-f-A, jams, jannau, jcarlos, JEDIDIAH__, jpabq, jstenback, knightr, kurre, kwmonroe, laga, mag0o, markk, MythLogBot, poptix, rhpot1991, sailerboy, Snow-Man, sphery, stuartm, sutula, tomimo_, Unhelpful, weta, xris, ybot, zombor, _charly_, brfransen, elvum_, f33dMB, foxbuntu, hads, j-rod|afk, jwhite, mrand, MythBuild, reynaldo, Seeker`, superm1, kc, GreyFoxx, wagnerrp, okolsi, pheld, justinh, MaverickTech, cesman, justpaul, joe_, mikejf, skd5aner, abqjp, kormoc, jarle, andreax1, tris, mosburn, ThisNewGuy, jpabq|, sunkan, purserj_, Guest13169, simonckenyon, anykey__
Wednesday, April 6th, 2011, 00:00 UTC
[00:00:46] Jordack (Jordack!~jordack@69.131.44.221) has quit ()
[00:26:44] kwmonroe (kwmonroe!~kwmonroe@32.97.110.58) has quit (Quit: Ex-Chat)
[00:43:01] jya (jya!~jyavenard@gw2.hydrix.com) has joined #mythtv
[00:43:01] jya (jya!~jyavenard@gw2.hydrix.com) has quit (Changing host)
[00:43:01] jya (jya!~jyavenard@mythtv/developer/jya) has joined #mythtv
[00:47:18] mycoDA (mycoDA!~mycoDA@unaffiliated/mycosys) has quit (Quit: Something smells bad - I'm outta here)
[00:54:52] gigem (gigem!~david@host103.16.intrusion.com) has joined #mythtv
[00:54:52] gigem (gigem!~david@mythtv/developer/gigem) has joined #mythtv
[00:54:52] gigem (gigem!~david@host103.16.intrusion.com) has quit (Changing host)
[00:58:41] davide_ (davide_!~david@mythtv/developer/gigem) has quit (Ping timeout: 240 seconds)
[01:16:38] Gibby (Gibby!~Gibby@204.118.10.244) has quit (Ping timeout: 276 seconds)
[01:16:53] Gibby (Gibby!~Gibby@204.118.10.244) has joined #mythtv
[01:26:33] andreax1 (andreax1!~andreaz@p57B92D44.dip.t-dialin.net) has joined #mythtv
[01:27:35] mike|33 (mike|33!~mike@c-24-21-63-118.hsd1.or.comcast.net) has joined #mythtv
[01:27:41] purserj_ (purserj_!~purserj@hosting.collaborynth.com.au) has joined #mythtv
[01:27:48] jannau_ (jannau_!~janne@chybek.jannau.net) has joined #mythtv
[01:28:20] clever_ (clever_!~clever@142.167.146.131) has joined #mythtv
[01:33:55] mike|2 (mike|2!~mike@c-24-21-63-118.hsd1.or.comcast.net) has quit (Ping timeout: 240 seconds)
[01:33:56] purserj (purserj!~purserj@hosting.collaborynth.com.au) has quit (Ping timeout: 240 seconds)
[01:33:57] jannau (jannau!~janne@chybek.jannau.net) has quit (Ping timeout: 240 seconds)
[01:33:59] clever (clever!~clever@142.167.146.131) has quit (Ping timeout: 240 seconds)
[01:34:00] andreax (andreax!~andreaz@p57B92D44.dip.t-dialin.net) has quit (Ping timeout: 240 seconds)
[01:34:00] knightr (knightr!~knightr@mythtv/developer/knightr) has quit (Ping timeout: 240 seconds)
[01:34:35] knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv
[01:40:45] jya (jya!~jyavenard@mythtv/developer/jya) has quit (Quit: jya)
[01:42:38] zombor (zombor!~zombor_@kohana/developer/zombor) has quit (Remote host closed the connection)
[01:51:00] knightr (knightr!~knightr@mythtv/developer/knightr) has quit (Read error: Connection reset by peer)
[01:51:29] knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv
[01:52:19] mag0o (mag0o!20001@slackhost.lynchmv.com) has quit (Ping timeout: 248 seconds)
[01:52:25] mag0o (mag0o!20001@slackhost.lynchmv.com) has joined #mythtv
[01:55:03] J-e-f-f-A (J-e-f-f-A!~J-e-f-f-A@unaffiliated/j-e-f-f-a) has quit (Quit: Oh No!!!! ;-))
[01:58:44] J-e-f-f-A (J-e-f-f-A!~J-e-f-f-A@unaffiliated/j-e-f-f-a) has joined #mythtv
[02:31:32] jya (jya!~jyavenard@mythtv/developer/jya) has joined #mythtv
[02:37:24] iamlindoro: dblain, I was curious-- mythbackend/services/myth.h has a scriptableMyth class, but content has no equivalent class-- is there a reason the content service isn't scriptable/shouldn't be?
[02:43:17] kwmonroe (kwmonroe!~kwmonroe@cpe-70-113-204-146.austin.res.rr.com) has joined #mythtv
[02:50:11] knightr (knightr!~knightr@mythtv/developer/knightr) has quit (Ping timeout: 252 seconds)
[02:50:35] knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv
[02:55:12] jya (jya!~jyavenard@mythtv/developer/jya) has quit (Read error: Connection reset by peer)
[02:55:13] jya_ (jya_!~jyavenard@gw2.hydrix.com) has joined #mythtv
[02:55:13] jya_ (jya_!~jyavenard@gw2.hydrix.com) has quit (Changing host)
[02:55:13] jya_ (jya_!~jyavenard@mythtv/developer/jya) has joined #mythtv
[03:05:03] elmojo: markk: playing around with the buffers – found something interesting
[03:06:40] elmojo: the problematic video I have seems to have issues with release_avf_buffer when it calls DeLimboFrame – seems like it never finds the frame in the limbo queue
[03:07:26] elmojo: and the HACK in the DeLimboFrame gets invoked continuously
[03:07:56] elmojo: I'm pretty sure that every time DeLimboFrame is called it *should* find the frame – is that your understanding?
[03:12:00] markk: elmojo: I'm not sure – though I wonder whether the comment in that code might be part of the problem
[03:16:12] elmojo: I think it probably is
[03:16:57] elmojo: if we aren't delimboing frames properly then it might explain why we seem to need more buffers to get playback working correctly with VDPAU
[03:22:28] elmojo: stupid question but how can I print a pointer using QString?
[03:23:03] markk: typecast it to something like long long
[03:24:25] elmojo: thanks, that worked – the compiler hint should have clued me in
[03:24:52] elmojo: I'm trying to keep track of the frame pointers getting added and released
[03:25:25] markk: if ffmpeg is holding on to buffers because it never saw a start code for that frame, then we need to ensure we only send packets once a key frame is seen. though if we take a 'clean' source such as blu ray h.264 – we should always start with a key frame ??
[03:27:55] elmojo: we are having problems with clean sources though
[03:33:52] markk: elmojo: and a clean source would probably not be annex B – and the h264 parser works with annex B. see AvFormatDecoder::H264PreProcessPkt
[03:34:51] knightr (knightr!~knightr@mythtv/developer/knightr) has quit (Read error: Connection reset by peer)
[03:35:20] knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv
[03:38:06] elmojo: markk: how in the world does a frame get added to the limbo queue in videobuffers?
[03:39:11] elmojo: when we run get_avf_buffer we call GetNextFreeFrame which adds the frame to the available queue – when we run release_avf_buffer we try to remove a frame from the limbo queue
[03:39:32] elmojo: lemme check the size of the limbo queue during get/release and see if anything is in there
[04:03:36] elmojo: markk: it looks like limbo.size() is always 1 – weird
[04:07:55] ** markk likes the idea of a GetHash method **
[04:08:20] markk: elmojo: is that just for your broken clip?
[04:10:23] elmojo: markk: just playing with the same broken clip
[04:11:06] elmojo: seems like it's putting the frame in the limbo queue but it's being removed immediately by ReleaseFrame
[04:11:40] elmojo: need to find out who's calling ReleaseFrame
[04:13:32] elmojo: markk: tried another clip and same thing... the limbo queue frame gets removed immediately
[04:16:50] elmojo: markk: this code just seems wrong on so many levels
[04:17:08] elmojo: it appears that we are releasing frames before they are fully decoded
[04:17:40] elmojo: or better states – we are releasing frames for processing before they are finished decoding
[04:18:01] markk: elmojo: I'd suggest using the patch I posted the other day and investigate what is happening in the h264 parser...
[04:18:32] markk: (probably not the most helpful comment of the day)
[04:20:50] elmojo: I still don't get the relationship with the h264 parser and the buffers
[04:23:45] markk: elmojo: if that hack comment is relevant, then we are potentially throwing frames/packets at ffmpeg before we've seen a key frame. ffmpeg then holds on to them indefinitely, waiting on the relevant data to 'complete' the frame – which never arrives.
[04:24:19] markk: it ties up with the symptoms – esp. given that everyting else we've tried hasn't worked:)
[04:27:44] elmojo: markk: like I said we are releasing the frames for display before they are fully decoded
[04:28:09] elmojo: it's presents a race condition
[04:28:32] elmojo: when videos take longer to decode frames and need more reference frames the more likely we will see corruption
[04:34:29] Gene425 (Gene425!~textual@173.208.68.59) has joined #mythtv
[04:37:39] markk: elmojo: ok, sorry. I see where you're coming from now. in that case, vanilla trunk is probably not the best place to test. with my patch ( :) ), with vdpau it does a more accurate job of marking frames as used for reference. should be easier to then only release frames to the 'decoded' queue once they have been cleared (I think)
[04:38:51] elmojo: markk: ffmpeg is responsible for calling the release of a buffer when it is finished
[04:40:35] markk: elmojo: I'm probably not helping here. trying to work on 2 different aspects of the code at the same time is a recipe for disaster
[04:47:19] elmojo: markk: no worries, I just decided to dig a little tonight – I'll probably regret it in the morning :)
[04:53:25] markk: elmojo: so presumably the problematic calls is AvFormatDecoder::ProcessVideoFrame line 3006 ?
[04:54:52] elmojo: markk: yes, that's part of the problem for sure
[04:55:08] elmojo: we have a race condition between the player and the decoder
[04:56:25] markk: what happens if you delete that call and use it instead of (or as well as) the delimbo call in the release_buffer method ?
[04:56:26] elmojo: we should allow the decoder to release a frame for displaying but keep the buffer around until it calls release_avf_buffer
[04:56:46] elmojo: that's the key
[04:57:20] elmojo: basically ReleaseFrame shouldn't call limbo.remove
[04:58:21] elmojo: and we shouldn't ever allow a frame to become available again until it's finished decoding AND displaying
[05:00:23] elmojo: markk: I think we need to have separate buffers for decode and display
[05:01:57] elmojo: would that be too expensive to copy a frame that is ready for display (ie. ReleaseNextFrame) to a queue for displaying?
[05:02:25] elmojo: and then just let ffmpeg do a release_avf_buffer to move the buffer from limbo to available
[05:03:43] elmojo: I don't believe that the decoder necessarily releases buffers in display order
[05:04:12] markk: elmojo: I'm not sure you really need separate buffers – just a separate queue?
[05:05:12] markk: part of the confusion with the current code is that frames can be present in multiple gueues
[05:12:04] elmojo: markk: I think it's dangerous to have 2 masters controlling the queues
[05:12:31] elmojo: you've got the decoder creating/destroying buffers and the player using them
[05:12:55] elmojo: maybe it will work ok though
[05:14:25] elmojo: I think maybe we just need to remove the limbo.remove() from ReleaseFrame for sure
[05:15:09] elmojo: and don't allow DeLimboFrame to do limbo.remove if the frame hasn't been displayed yet
[05:16:40] elmojo: wait... which gets me back to my point if the decoder calls release_avf_buffer on a frame before it gets displayed it can be destroyed
[05:17:02] jannau_ is now known as jannau
[05:17:50] elmojo: we avoid this right now by doing limbo.remove in ReleaseFrame which prevents DeLimboFrame from moving the frame to the available queue
[05:18:00] elmojo: markk: does this make sense?
[05:20:23] markk: I think so :)
[05:22:02] elmojo: markk: how about this – we keep a list of released frames by the decoder when release_avf_buffer is called and check everytime DoneDisplayingFrame is ran if any frame that is done displaying, if so remove from all queus and make available
[05:22:46] elmojo: so basically we just track which frames are no longer needed by the decoder and when we are finished with them we then dequeue them
[05:23:13] elmojo: simple enough in theory
[05:23:41] markk: just to be clear – a frame that is still used for reference by the decoder can be displayed. is that right? (I think so)
[05:24:28] elmojo: I believe that is correct
[05:38:18] elmojo: markk: safeEnqueue is dangerous as it only allows a frame to exist in one queue at a time
[05:38:38] elmojo: we need to have frames be present in multiple queues at the same time
[05:46:40] elmojo: markk: where do you set the number of buffers?
[05:46:53] elmojo: (getting late and I'm tired of looking :))
[05:54:48] jya_ (jya_!~jyavenard@mythtv/developer/jya) has quit (Remote host closed the connection)
[05:55:08] jya (jya!~jyavenard@gw2.hydrix.com) has joined #mythtv
[05:55:08] jya (jya!~jyavenard@mythtv/developer/jya) has joined #mythtv
[05:55:08] jya (jya!~jyavenard@gw2.hydrix.com) has quit (Changing host)
[05:59:53] andreax1 (andreax1!~andreaz@p57B92D44.dip.t-dialin.net) has quit (Read error: Connection reset by peer)
[06:00:41] hansmuc (hansmuc!~hansmuc@ppp-188-174-106-134.dynamic.mnet-online.de) has joined #mythtv
[06:01:09] hansmuc (hansmuc!~hansmuc@ppp-188-174-106-134.dynamic.mnet-online.de) has left #mythtv ()
[06:06:04] Gene425 (Gene425!~textual@173.208.68.59) has quit (Quit: Computer has gone to sleep.)
[06:07:53] martin_ (martin_!~quassel@static-88.131.29.2.addr.tdcsong.se) has joined #mythtv
[06:13:46] kwmonroe (kwmonroe!~kwmonroe@cpe-70-113-204-146.austin.res.rr.com) has quit (Read error: Operation timed out)
[06:13:55] jams (jams!~jams@cpe-184-58-217-97.wi.res.rr.com) has quit (Ping timeout: 240 seconds)
[06:14:45] mrand (mrand!~mrand@ubuntu/member/mrand) has quit (Ping timeout: 248 seconds)
[06:14:56] skd5aner (skd5aner!~skd5aner@cpe-069-132-082-180.carolina.res.rr.com) has quit (Ping timeout: 264 seconds)
[06:15:17] JEDIDIAH__ (JEDIDIAH__!~jedi@cpe-76-185-72-21.tx.res.rr.com) has quit (Ping timeout: 248 seconds)
[06:15:18] pheld (pheld!~heldal@cl-5.osl-01.no.sixxs.net) has joined #mythtv
[06:15:18] mrand (mrand!~mrand@ubuntu/member/mrand) has joined #mythtv
[06:15:22] kwmonroe (kwmonroe!~kwmonroe@cpe-70-113-204-146.austin.res.rr.com) has joined #mythtv
[06:15:24] jams (jams!~jams@cpe-184-58-217-97.wi.res.rr.com) has joined #mythtv
[06:15:56] skd5aner (skd5aner!~skd5aner@cpe-069-132-082-180.carolina.res.rr.com) has joined #mythtv
[06:17:08] JEDIDIAH__ (JEDIDIAH__!~jedi@cpe-76-185-72-21.tx.res.rr.com) has joined #mythtv
[06:25:57] jya_ (jya_!~jyavenard@gw2.hydrix.com) has joined #mythtv
[06:25:57] jya_ (jya_!~jyavenard@gw2.hydrix.com) has quit (Changing host)
[06:25:57] jya_ (jya_!~jyavenard@mythtv/developer/jya) has joined #mythtv
[06:29:06] jya_ is now known as jya
[06:29:15] jya (jya!~jyavenard@mythtv/developer/jya) has quit (Client Quit)
[06:34:06] Zombie (Zombie!~masterz@adsl-78-71.lex.bluegrass.net) has joined #mythtv
[06:34:47] Zombie: Can Myth TV use SQLite instead of MySQL?
[06:34:58] wagnerrp: no
[06:36:37] Zombie: What about that embedded MySQL setup that doesn't require a running server
[06:37:05] wagnerrp: it has been considered, but not yet implemented
[06:37:13] wagnerrp: one of those 'distant plans'
[06:40:01] wagnerrp: installing an embedded database into the backend, listening externally would not be difficult at all
[06:40:26] wagnerrp: but the plan is to replace all existing database calls with myth protocol commands
[06:40:32] wagnerrp: which is a huge amount of work
[07:59:21] andreax (andreax!~Andreaz@tmo-101-163.customers.d1-online.com) has joined #mythtv
[08:42:53] andreax1 (andreax1!~Andreaz@tmo-100-40.customers.d1-online.com) has joined #mythtv
[08:43:08] andreax (andreax!~Andreaz@tmo-101-163.customers.d1-online.com) has quit (Ping timeout: 264 seconds)
[08:48:11] andreax (andreax!~Andreaz@tmo-101-216.customers.d1-online.com) has joined #mythtv
[08:50:05] andreax1 (andreax1!~Andreaz@tmo-100-40.customers.d1-online.com) has quit (Ping timeout: 276 seconds)
[08:54:10] andreax1 (andreax1!~Andreaz@tmo-100-124.customers.d1-online.com) has joined #mythtv
[08:54:41] andreax (andreax!~Andreaz@tmo-101-216.customers.d1-online.com) has quit (Ping timeout: 240 seconds)
[09:10:28] andreax1 (andreax1!~Andreaz@tmo-100-124.customers.d1-online.com) has quit (Read error: Connection reset by peer)
[09:17:36] andreax (andreax!~Andreaz@tmo-101-33.customers.d1-online.com) has joined #mythtv
[09:25:45] jamesba (jamesba!~jamesba@gateb.kw.bbc.co.uk) has joined #mythtv
[09:32:31] andreax (andreax!~Andreaz@tmo-101-33.customers.d1-online.com) has quit (Read error: Connection reset by peer)
[09:33:33] andreax (andreax!~Andreaz@tmo-101-33.customers.d1-online.com) has joined #mythtv
[09:38:21] jamesba_ (jamesba_!~jamesba@132.185.140.26) has joined #mythtv
[09:41:09] jamesba (jamesba!~jamesba@gateb.kw.bbc.co.uk) has quit (Ping timeout: 248 seconds)
[09:52:05] jya (jya!~jyavenard@mythtv/developer/jya) has joined #mythtv
[10:02:31] jamesba_ (jamesba_!~jamesba@132.185.140.26) has quit (Quit: Leaving)
[10:03:09] jamesba (jamesba!~jamesba@gateb.kw.bbc.co.uk) has joined #mythtv
[10:05:02] mike|33 (mike|33!~mike@c-24-21-63-118.hsd1.or.comcast.net) has quit (Remote host closed the connection)
[10:05:50] mike (mike!~mike@c-24-21-63-118.hsd1.or.comcast.net) has joined #mythtv
[10:06:16] mike is now known as Guest13169
[10:19:22] andreax1 (andreax1!~Andreaz@tmo-099-187.customers.d1-online.com) has joined #mythtv
[10:20:26] andreax (andreax!~Andreaz@tmo-101-33.customers.d1-online.com) has quit (Ping timeout: 276 seconds)
[10:33:24] andreax1 (andreax1!~Andreaz@tmo-099-187.customers.d1-online.com) has quit (Read error: Connection reset by peer)
[10:45:54] dblain: iamlindoro: The content class doesn't have any methods that return custom classes, only Qt types. It is still scriptable. See comment in myth.h for more details.
[10:50:53] andreax (andreax!~Andreaz@tmo-099-187.customers.d1-online.com) has joined #mythtv
[10:57:18] mycoDA (mycoDA!~mycoDA@221.121.134.96) has joined #mythtv
[10:57:18] mycoDA (mycoDA!~mycoDA@221.121.134.96) has quit (Changing host)
[10:57:18] mycoDA (mycoDA!~mycoDA@unaffiliated/mycosys) has joined #mythtv
[11:20:24] andreax (andreax!~Andreaz@tmo-099-187.customers.d1-online.com) has quit (Read error: Connection reset by peer)
[11:26:59] andreax (andreax!~Andreaz@tmo-098-178.customers.d1-online.com) has joined #mythtv
[11:35:45] andreax1 (andreax1!~Andreaz@tmo-101-209.customers.d1-online.com) has joined #mythtv
[11:36:09] andreax (andreax!~Andreaz@tmo-098-178.customers.d1-online.com) has quit (Read error: Connection reset by peer)
[11:54:08] davide_ (davide_!~david@host103.16.intrusion.com) has joined #mythtv
[11:54:15] davide_ (davide_!~david@host103.16.intrusion.com) has quit (Changing host)
[11:54:15] davide_ (davide_!~david@mythtv/developer/gigem) has joined #mythtv
[12:06:45] andreax (andreax!~Andreaz@tmo-099-147.customers.d1-online.com) has joined #mythtv
[12:10:37] andreax1 (andreax1!~Andreaz@tmo-101-209.customers.d1-online.com) has quit (Ping timeout: 260 seconds)
[12:15:16] simonckenyon (simonckenyon!~simoncken@195.7.61.12) has joined #mythtv
[12:26:35] andreax (andreax!~Andreaz@tmo-099-147.customers.d1-online.com) has quit (Ping timeout: 252 seconds)
[12:34:18] Dave-road (Dave-road!~dave@cpe-66-66-127-3.rochester.res.rr.com) has quit (Quit: Leaving)
[12:34:29] Dave123 (Dave123!~dave@cpe-66-66-127-3.rochester.res.rr.com) has joined #mythtv
[12:45:56] Jordack (Jordack!~jordack@h69-131-44-221.mdsnwi.tisp.static.tds.net) has joined #mythtv
[13:02:53] aram1 (aram1!~aram@157.166.167.129) has joined #mythtv
[13:03:55] aram1 (aram1!~aram@157.166.167.129) has left #mythtv ()
[13:04:02] martin_ (martin_!~quassel@static-88.131.29.2.addr.tdcsong.se) has quit (Remote host closed the connection)
[13:13:30] zombor (zombor!~zombor_@kohana/developer/zombor) has joined #mythtv
[13:16:40] andreax (andreax!~Andreaz@tmo-098-40.customers.d1-online.com) has joined #mythtv
[13:22:03] eharris (eharris!~eharris@99-179-7-82.lightspeed.austtx.sbcglobal.net) has quit (Ping timeout: 260 seconds)
[13:23:38] eharris (eharris!~eharris@99-179-7-82.lightspeed.austtx.sbcglobal.net) has joined #mythtv
[13:44:19] j-rod|afk is now known as j-rod
[13:47:31] cocoa117 (cocoa117!~cocoa117@wk-29-223.guest.rdg.ac.uk) has joined #mythtv
[13:54:53] cocoa117 (cocoa117!~cocoa117@wk-29-223.guest.rdg.ac.uk) has quit (Quit: Leaving)
[14:02:29] dserban (dserban!~dserban@S0106001346beb5f3.ok.shawcable.net) has joined #mythtv
[14:03:32] elmojo: markk: do we directly modify the video buffers for display purposes such as deinterlacing, scaling, etc?
[14:19:46] elmojo: if that's the case then we should prevent any modification to the buffer until the decoder releases it
[14:21:33] markk: elmojo: any software based filtering will modify the buffer – but that should be the very last thing that happens before display.
[14:25:54] elmojo: markk: I think I know how this should work then
[14:28:10] elmojo: we need the following queues – locked, released, decoded, ready and available
[14:28:27] elmojo: locked will contain the list of frame pointers that are in use by the decoder
[14:29:07] elmojo: released will contain a list of frame pointers that have been released by the decoder by not in the ready queue
[14:29:36] elmojo: decoded will contain a list of frame pointers that have been decoded by the decoder but not in the ready queue
[14:30:19] elmojo: ready will contain a list of frame pointers that have been released AND decoded
[14:30:51] elmojo: and available obviously will be the frame pointers that aren't in use by the decoder or the player
[14:31:32] stuarta: how do the frames transition through the states
[14:32:39] elmojo: locked -> released AND decoded -> ready -> available
[14:33:07] stuarta: i'm guessing filtering fits in between released and decoded?
[14:33:30] elmojo: filtering should only happen when the frame is in the ready queue
[14:33:47] stuarta: okay, i'll go back to listening to the experts :)
[14:34:15] markk: elmojo: sorry – what differentiates released and decoded?
[14:34:22] ** stuarta was just about to ask that **
[14:35:42] elmojo: markk: released is when the decoder calls release_avf_buffer and decoded is when we run avcodec_decode_video2
[14:39:48] elmojo: basically a frame can be fully decoded and output by avcodec_decode_video2 but still in use by the decoder
[14:40:18] markk: elmojo: ok – with you now.
[14:40:32] elmojo: our current scheme allows the modification, display and return of the frame with zero regards if it's still in use by the decoder
[14:41:26] elmojo: basically ProcessVideoPacket needs to add the frame to the decoded queue when it gets a picture and then check if any are in the ready queue
[14:42:06] elmojo: and we need logic to build the ready queue by checking the decoded queue (in order) and see if the frame exists in the released queue
[14:45:08] Chutt: or just do a copy if you're futzing with the data
[14:45:23] elmojo: Chutt: was wondering if a copy is too expensive
[14:45:30] Chutt: you won't be able to do that logic as described with some video codecs, as reference frames take a loooong time to go away
[14:45:32] elmojo: it would simplify things dramatically though
[14:45:42] elmojo: good point
[14:46:26] elmojo: would be really clean to have separate decoder buffers and display buffers
[14:46:36] Chutt: it's best to not copy, of course
[14:46:46] Chutt: so if you're not deinterlacing..
[14:49:26] thopiekar (thopiekar!~quassel@p579AD203.dip.t-dialin.net) has joined #mythtv
[14:50:48] elmojo: Chutt: so do you suggest we just make a copy of the decoded frames when they are ready?
[14:50:57] Chutt: naw
[14:51:05] Chutt: i'd say just do it as part of the modification process
[14:51:11] Chutt: ie
[14:51:21] Chutt: if you have a filter that's going to touch data, copy it as part of that
[14:51:54] elmojo: gotcha
[14:54:53] elmojo: maybe best to have the buffer store the original frame and the modified frame so it's easier to track
[14:55:17] stuarta: is there a technical reason for doing so?
[14:57:27] elmojo: "easier to track"
[14:59:40] andreax (andreax!~Andreaz@tmo-098-40.customers.d1-online.com) has quit (Read error: Connection reset by peer)
[15:12:36] abqjp (abqjp!~abqjp@97-119-174-22.albq.qwest.net) has joined #mythtv
[15:14:49] iamlindoro: dblain: That makes sense, thanks for the explanation
[15:22:27] thopiekar (thopiekar!~quassel@p579AD203.dip.t-dialin.net) has quit (Read error: Connection reset by peer)
[15:27:51] thopiekar (thopiekar!~quassel@p579AD203.dip.t-dialin.net) has joined #mythtv
[15:41:37] hobiga (hobiga!~hobiga@173.210.255.195) has quit (Read error: Connection reset by peer)
[15:47:58] hobiga (hobiga!~hobiga@173.210.255.195) has joined #mythtv
[15:52:29] dserban (dserban!~dserban@S0106001346beb5f3.ok.shawcable.net) has quit (Read error: Operation timed out)
[15:57:59] thopiekar (thopiekar!~quassel@p579AD203.dip.t-dialin.net) has quit (Remote host closed the connection)
[16:11:02] hobiga (hobiga!~hobiga@173.210.255.195) has quit (Read error: Connection reset by peer)
[16:17:23] hobiga (hobiga!~hobiga@173.210.255.195) has joined #mythtv
[16:35:34] andreax (andreax!~andreaz@p57B92D44.dip.t-dialin.net) has joined #mythtv
[16:38:24] kormoc is now known as kormoc_afk
[16:40:11] jamesba (jamesba!~jamesba@gateb.kw.bbc.co.uk) has quit (Quit: Leaving)
[16:43:39] Anssi_ (Anssi_!hannulaa@mustatilhi.cs.tut.fi) has joined #mythtv
[16:43:39] Anssi_ (Anssi_!hannulaa@mandriva/developer/anssi) has joined #mythtv
[16:43:39] Anssi_ (Anssi_!hannulaa@mustatilhi.cs.tut.fi) has quit (Changing host)
[16:43:48] Zombie (Zombie!~masterz@adsl-78-71.lex.bluegrass.net) has left #mythtv ("Leaving")
[16:44:35] Anssi (Anssi!hannulaa@mandriva/developer/anssi) has quit (Ping timeout: 276 seconds)
[16:53:52] gigem (gigem!~david@mythtv/developer/gigem) has joined #mythtv
[16:57:41] davide_ (davide_!~david@mythtv/developer/gigem) has quit (Ping timeout: 240 seconds)
[17:21:56] andreax (andreax!~andreaz@p57B92D44.dip.t-dialin.net) has quit (Quit: Leaving.)
[17:46:38] dserban (dserban!~dserban@S0106001346beb5f3.ok.shawcable.net) has joined #mythtv
[17:50:50] j-rod is now known as j-rod|afk
[17:54:26] andreax (andreax!~andreaz@p57B92D44.dip.t-dialin.net) has joined #mythtv
[18:08:46] kormoc_afk is now known as kormoc
[18:09:49] andreax1 (andreax1!~andreaz@p57B944FE.dip.t-dialin.net) has joined #mythtv
[18:10:41] andreax (andreax!~andreaz@p57B92D44.dip.t-dialin.net) has quit (Ping timeout: 240 seconds)
[18:13:14] GreyFoxx: hrm, my freshly updated backends seem to all be very crashy now :)
[18:20:31] natanojl (natanojl!~jonatan@c83-252-237-63.bredband.comhem.se) has joined #mythtv
[18:26:55] knightr (knightr!~knightr@mythtv/developer/knightr) has quit (Read error: Connection reset by peer)
[18:27:25] knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv
[18:44:15] XChatMav (XChatMav!~MaverickT@111.86.233.220.static.exetel.com.au) has quit (Ping timeout: 240 seconds)
[18:59:05] knightr (knightr!~knightr@mythtv/developer/knightr) has quit (Read error: Operation timed out)
[18:59:58] knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv
[19:07:07] knightr (knightr!~knightr@mythtv/developer/knightr) has quit (Ping timeout: 276 seconds)
[19:12:55] knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv
[19:23:16] anykey_ (anykey_!~guedel@46-126-247-133.dynamic.hispeed.ch) has quit (Remote host closed the connection)
[19:40:30] knightr (knightr!~knightr@mythtv/developer/knightr) has quit (Read error: Connection reset by peer)
[19:41:01] knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv
[19:42:42] mosburn (mosburn!~mosburn@67-41-146-194.hlrn.qwest.net) has joined #mythtv
[19:48:31] Jordack (Jordack!~jordack@h69-131-44-221.mdsnwi.tisp.static.tds.net) has quit (Quit: Jeans and a blazer is the mullet of fasion. Party on bottom, business on top.)
[19:51:49] knightr (knightr!~knightr@mythtv/developer/knightr) has quit (Ping timeout: 248 seconds)
[19:56:29] dlblain (dlblain!~dblain@c-76-127-227-175.hsd1.ma.comcast.net) has joined #mythtv
[19:56:41] dlblain (dlblain!~dblain@c-76-127-227-175.hsd1.ma.comcast.net) has quit (Client Quit)
[20:02:39] SteveGoodey (SteveGoodey!~steve@host86-145-235-163.range86-145.btcentralplus.com) has joined #mythtv
[20:03:15] knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv
[20:07:29] natanojl (natanojl!~jonatan@c83-252-237-63.bredband.comhem.se) has quit (Ping timeout: 240 seconds)
[20:12:37] Chutt (Chutt!~ijr@cpe-76-190-194-229.neo.res.rr.com) has quit (Ping timeout: 252 seconds)
[20:16:19] anykey_ (anykey_!~guedel@46-126-247-133.dynamic.hispeed.ch) has joined #mythtv
[20:16:42] SteveGoodey (SteveGoodey!~steve@host86-145-235-163.range86-145.btcentralplus.com) has quit (Read error: Connection reset by peer)
[20:17:36] SteveGoodey (SteveGoodey!~steve@host86-145-235-163.range86-145.btcentralplus.com) has joined #mythtv
[20:25:50] knightr (knightr!~knightr@mythtv/developer/knightr) has quit (Ping timeout: 260 seconds)
[20:32:11] eharris (eharris!~eharris@99-179-7-82.lightspeed.austtx.sbcglobal.net) has quit (Ping timeout: 240 seconds)
[20:34:14] eharris (eharris!~eharris@99-179-7-82.lightspeed.austtx.sbcglobal.net) has joined #mythtv
[20:46:04] zombor (zombor!~zombor_@kohana/developer/zombor) has quit (Remote host closed the connection)
[20:52:13] knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv
[21:07:15] knightr (knightr!~knightr@mythtv/developer/knightr) has quit (Ping timeout: 252 seconds)
[21:22:15] jya (jya!~jyavenard@mythtv/developer/jya) has quit (Quit: jya)
[21:45:31] knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv
[21:49:09] SteveGoodey (SteveGoodey!~steve@host86-145-235-163.range86-145.btcentralplus.com) has quit (Remote host closed the connection)
[22:00:11] davide_ (davide_!~david@mythtv/developer/gigem) has joined #mythtv
[22:04:17] gigem (gigem!~david@mythtv/developer/gigem) has quit (Ping timeout: 258 seconds)
[22:11:02] MaverickTech (MaverickTech!~MaverickT@111.86.233.220.static.exetel.com.au) has joined #mythtv
[22:33:13] dserban (dserban!~dserban@S0106001346beb5f3.ok.shawcable.net) has quit (Ping timeout: 246 seconds)
[22:34:12] elmojo: markk: I fixed the corruption using software decode – vdpau is another animal
[22:52:58] knightr (knightr!~knightr@mythtv/developer/knightr) has quit (Ping timeout: 258 seconds)
[22:53:24] knightr (knightr!~knightr@mythtv/developer/knightr) has joined #mythtv
[22:53:58] clever_ is now known as clever
[23:21:15] dekarl (dekarl!~dekarl@e180143218.adsl.alicedsl.de) has joined #mythtv
[23:21:59] dekarl1 (dekarl1!~dekarl@e180135168.adsl.alicedsl.de) has quit (Ping timeout: 260 seconds)
[23:28:44] markk: elmojo: do you have some code?
[23:43:28] anykey__ (anykey__!~guedel@46-126-247-133.dynamic.hispeed.ch) has joined #mythtv
[23:45:11] anykey_ (anykey_!~guedel@46-126-247-133.dynamic.hispeed.ch) has quit (Ping timeout: 240 seconds)
[23:59:06] zombor (zombor!~zombor_@65.29.235.201) has joined #mythtv
[23:59:13] zombor (zombor!~zombor_@65.29.235.201) has quit (Changing host)
[23:59:13] zombor (zombor!~zombor_@kohana/developer/zombor) has joined #mythtv

IRC Logs collected by BeirdoBot.
Please use the above link to report any bugs.