summaryrefslogtreecommitdiff
path: root/recordmydesktop/src
AgeCommit message (Collapse)Author
2020-07-11yuv_utils: fixup dirty blocknum() parametersVito Caputo
This needs to maintain dirty blocks in the yuv frame coordinates, not in the captured image's cooridinates. The existing code assumes those are the same in double-buffer mode where the dirty block tracking is applied. But I'm working towards allowing the captured image dimensions to be free from the 16x16 alignment constraints the yuv buffers must conform to for theora. To handle that future, the block coordinates should at least use the (yuv)->y_width, not width_tm. I also added shifting the x,y but in double-buffer mode that shouldn't actually be needed since it'd always be full-shots unless I'm mistaken.
2020-07-11yuv_utils: more cleanups focusing on the macrosVito Caputo
Nothing really changed here, just rearranging some stuff and replacing some divides with shifts.
2020-07-11getzpixmap: remove pointless _XReadPad()Vito Caputo
No idea why rmdGetZPixmapSHM() is doing this, the whole point of shmem is to not have to read the data over the wire. You request the server to do the copy into the shared memory and that's all there is to it. This program is so confused
2020-07-11get_frame: replace XCreateImage++ w/XGetImageVito Caputo
Remove more pointless code
2020-07-11get_frame: remove pointless XInitImage()Vito Caputo
XCreateImage() returns a fully initialized ready-to-use XImage, I have no idea why the author did this.
2020-07-11*: more small whitespace fixupsVito Caputo
nothing functionally changed
2020-07-11get_frame: more cleanupsVito Caputo
nothing functionally changed
2020-07-11*: more random formatting cleanupsVito Caputo
nothing functionally different
2020-07-11load_cache: more formatting cleanupsVito Caputo
nothing functionally changed
2020-07-11cache_frame: more formatting cleanupsVito Caputo
Mostly mindless whitespace fixups but also changed some yuvblocks indexing that seemed brain damaged to just be simpler without actually changing anything functionally
2020-07-11parseargs: fix obvious typo in long form of -yVito Caputo
This explains why I've seen errors using --long arguments consistently even for --x and --y. I had assumed --x and --y weren't supported but it turns out it's just what looks to be a copy and paste error. Man this source has been such a disaster area.
2020-07-11*: more random cleanups mostly formattingVito Caputo
nothing functionally different
2020-07-11getzpixmap: more formatting cleanupsVito Caputo
2020-07-11get_frame: de-macroify CLIPPY_DUMMY_POINTER_AREAVito Caputo
Zero reason for this to be an unreadable macro, make function and try format sanely I didn't really change it other than passing the clip rect instead of brwin
2020-07-11get_frame: demacroify MARK_BUFFER_AREAVito Caputo
Convert macro to function and format retained macro portion
2020-07-11encode_sound_buffer: more unfucking synchronizationVito Caputo
again leaving libjack related stuff for later
2020-07-11cache_audio: more unfucking of synchronizationVito Caputo
leaving the libjack related fixes for later
2020-07-11get_frame: pass rect to rmdMoveCaptureAreaVito Caputo
Just simplifying this function to not need brwin-> everywhere while cleaning up the formatting
2020-07-11*: more random formatting cleanupsVito Caputo
Nothing really changed here, but I suspect the {row,column}_end + 1 conditions in rmdBlocksFromList() are buggy and shouldn't have the +1. Left as-is for now.
2020-07-11*: more random formatting cleanupsVito Caputo
some theora init error checking fixups snuck in there as well
2020-07-11update_image: simplify rmdUpdateImage()Vito Caputo
removing some unnecessary nesting
2020-07-11*: try restore some sanity to YUV macrosVito Caputo
The public macros didn't need to be macros, so they've been turned into functions. All the big ugly YUV macro stuff that can be justified as macros has been moved to rmd_yuv_utils.c where they're privately used. They've also had a first pass at formatting them sanely...
2020-07-11rmd: zero initialize core structsVito Caputo
2020-06-23poll_events: fix and de-macroify CLIP_EVENT_AREAVito Caputo
I don't know why the author was so obsessed with macros where they served to only make impossible to read and maintain, bringing zero benefit. This turned out to have some bugs so I rewrote some of it while converting to a function.
2020-06-23rmd_cache: silence compiler warnings about gzFileVito Caputo
zlib typedefs gzFile to already be a pointer to the struct, so these shouldn't have two pointers on the fp, one comes with the type.
2020-06-23*: more code and synchronization cleanupsVito Caputo
Not going to bother with granular commit messages yet, not til things get reasonably sane
2020-06-23*: first attempt to unfuck thread synchronizationVito Caputo
I'm already regretting this... I don't think the author understood how condition variables work, that signal/broadcast is purely synchronous with blocked waiters - they don't queue a "signaled" state. So all these cond_waits littered everywhere without any explicit stateful condition being watched, if they didn't happen to be sitting in the wait when the signal occurred, that signal event was lost, and blocking would persist until the next one. Even if the wait only *just* missed the arrival due to scheduling, it was a very racy and broken use of condition variables. Not to mention the possibility of spurious wakeups... You *always* need some shared state to use condition variables properly, it's why they include a mutex; to protect the shared state. If you're not writing a while() loop to wait on a condition variable, you're almost certainly doing it wrong. This stuff will continue to evolve as I get around to it.
2020-06-20setbrwindow: yank nbytes out of BRWindow structVito Caputo
This only gets used in one place and isn't even relevant for shmem scenarios where the size in bytes depends on the bytes per row from the server. For now I'm just moving its simple computation to where it's used, as-is. It seems to be doing some 16-byte alignment dance as well which... seems very odd. If the sizes were already getting 16-byte aligned, why do this again? I fully expect to throw the alignment shit out at some point, as this all gets reworked. The way this was done seems completely misguided... the Theora alignment considerations should be handled in the YUV buffer, since the copy needs to be made from the XImage in all cases - shmem and non, to convert to YUV, the YUV buffer should have been sized to accomodate Theora, and the RGB->YUV conversion-copy should pad out the aligned target buffer as needed.
2020-06-20get_frame: simplify rmdBRWinCpyVito Caputo
There's no need to copy all the members of the nested rects, just copy the whole structs.
2020-06-20brwin: s/.rect/.winrect/Vito Caputo
Disambiguate this member name a bit from the other .rect uses, just to make things a bit easier to search for.
2020-06-20*: just some fast and nasty reformattingVito Caputo
If I'm going to actually be modifying this program substantially and possibly maintaining some fork of it, it's gotta be formmatted how I prefer. This is by no means done or perfect, rmd_types.h in particular is quite the mess, I will be revisiting this issue...
2020-06-20get_frame: eliminate pointless pxl_data pointersVito Caputo
Just cleaning up some junk while trying to make sense of this mess
2020-06-18*: fix new theoraVito Caputo
Import of debian/patches/02_fix_new_theora.dpatch
2020-06-18*: update includesVito Caputo
Import of debian/patches/01_update_includes.dpatch
2009-11-08Fix "uint_32_t truncation of cache compression statistics"enselic
Apply patch from Piotr Engelking that fix integer overflow issues for cache statistics. The patch is attached to this bug report: recordmydesktop: uint_32_t truncation of cache compression statistics http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=549263 git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@601 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-03-12Applied patch from Kevin Lo that fixes compilation on FreeBSD byenselic
addressing include and format string issues. git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@599 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-11src/rmd_parseargs.c: Remove 'static' keyword (which belonged to anenselic
incomplete static variable declaration). git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@598 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-11src/rmd_parseargs.c: Remove comment that accidentally was commited.enselic
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@597 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-11src/rmd_parseargs.c: Stop parsing on error and report the error.enselic
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@596 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-11src/rmd_parseargs.c: Fix minor formating issues.enselic
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@595 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-11src/rmd_parseargs.c: Make sure all options have longarg variants asenselic
this makes the --help output look nicer. git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@594 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-11configure.ac: Link with libpopt.enselic
src/rmd_parseargs.c: Port to libpopt. git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@593 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-11src/rmd_get_frame.c: Work around issue with underflow inenselic
rmdBlocksFromList(). I call this a "workaround" because the whole code base needs to stop using unsigned so much IMO. git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@592 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-11src/rmd_types.h: Make ProgArgs::width,height signed as that is whatenselic
they are parsed as. git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@591 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-10src/*.c: Namescape all functions for consistency and general codebaseenselic
sanity (previously only a few rmd functions were namespaced). git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@590 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-10src/rmd_parseargs.c: Remove silent backwards compatibility forenselic
-longoptions in preparation for libpopt migration. git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@589 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-10src/rmd_types.h: Make ProgArgs::jack_port_names a fixed sizeenselic
100-element array. src/rmd_initialize_data.c: Reset ProgArgs::jack_port_names using memset(). src/rmd_parseargs.c: With ProgArgs::jack_port_names as a fixed size array we can read the --use-jack options in a single pass which makes the code more libpopt migration friendly. git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@588 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-08src/rmd_parseargs.c: Put configure-time option dependent stuff inenselic
PrintConfig outside the function as this makes the code a bit nicer to read. git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@586 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2009-01-07src/rmd_parseargs.c: Reformat the Usage:-message and make the codeenselic
structure reflect the outputted message structure. git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@585 f606c939-3180-4ac9-a4b8-4b8779d57d0a
2008-12-13Added missing stdio.h and errno.h headers in anyiovar
files that needed them (could cause compilation failure on some platforms). Also, rearranged the sequence with which include's happen, so that any missing headers will be more likely to show up as copilation errors, in the future. rmd_yuv_utils.[ch] and rmd_block_utils.[ch] have been merged within the former, as they deal with the same subject (converting rgb buffers to yuv ones, with the only difference that rmd_block_utils had the double-buffer convertions while rmd_yuv_utils dealt with the single-buffered ones). Their headers also had the a circular dependency (rmd_yuv_utils.h included rmd_block_utils.h and vice-versa). rmd_math.[ch] was added. This file holds now the rmdRoundf function which is a portable implementation of roundf (which depends on C99). The reasoning behind the addition of these files, is that they might hold more purely mathematical functions, in the future. git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@583 f606c939-3180-4ac9-a4b8-4b8779d57d0a
© All Rights Reserved