Age | Commit message (Collapse) | Author |
|
some theora init error checking fixups snuck in there as well
|
|
removing some unnecessary nesting
|
|
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...
|
|
|
|
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.
|
|
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.
|
|
Not going to bother with granular commit messages yet, not til
things get reasonably sane
|
|
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.
|
|
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.
|
|
There's no need to copy all the members of the nested rects,
just copy the whole structs.
|
|
Disambiguate this member name a bit from the other .rect uses, just
to make things a bit easier to search for.
|
|
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...
|
|
Just cleaning up some junk while trying to make sense of this mess
|
|
Import of debian/patches/02_fix_new_theora.dpatch
|
|
Import of debian/patches/01_update_includes.dpatch
|
|
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@602 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
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
|
|
decorations when compiz is running.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@600 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
addressing include and format string issues.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@599 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
incomplete static variable declaration).
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@598 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@597 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@596 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@595 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
this makes the --help output look nicer.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@594 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
src/rmd_parseargs.c: Port to libpopt.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@593 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
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
|
|
they are parsed as.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@591 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
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
|
|
-longoptions in preparation for libpopt migration.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@589 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
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
|
|
action-if-found.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@587 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
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
|
|
structure reflect the outputted message structure.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@585 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@584 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
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
|
|
for 0.3.8 release ([qt/gtk]-recordMyDesktop)
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@581 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
src/rmd_init_encoder.c, src/rmd_poll_events.c, src/rmd_rectinsert.c,
src/rmd_rectinsert.h, src/rmd_rescue.c, src/rmd_setbrwindow.c,
src/rmd_specsfile.c, src/rmd_types.h, src/rmd_update_image.c,
src/test-rectinsert-data.c, src/test-rectinsert-types.h, src/test-rectinsert.c:
Replaced the custom WGeometry struct-type with the Xlib-provided XRectangle type.
Since XRectangle has unsigned width and height, any places in the code where
-1 was used in these members of WGeometry to denote invalid rects, where changed
to 0 ( zero width or height rects are also considered invalid, wherever met).
Also, the following variable renames happened : wgeom => xrect, rgeom => rrect,
geom => rect and so on. Some other minor changes in this commit are all related
to this type change and also the fact that WGeometry had members of type int,
while XRectangle is comprised of short members.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@580 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
in EXTRA_DIST of src/Makefile.am since they were removed by mistake.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@579 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
All license headers have been changed to reflect this change and COPYING.gpl3 has been added with
the full text of the license. Also, the previous record/pause/stop icons and their source svg's
have been removed and replaced with equivalents from the Oxygen project, provided under the
GNU-LGPL version 3 (or later). COPYING.lgpl3 and COPYING.icons have been added to provide
the neccessary information. Makefile.am and src/Makefile.am have been modified to reflect
this change in the project files. Version changed in configure.ac, to 0.3.8-cvs
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@578 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
to match these of recordMyDesktop 0.3.8
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@577 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
to match these of recordMyDesktop 0.3.8
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@576 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
Changed Automake requirement to 1.9 and made some minor changes to accomodate the
removal of the m4 macros, as per rev #573
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@575 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@574 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
py-compile-destdir common.mk python.mk pychecker.mk
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@573 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
Changed Automake requirement to 1.9 and made some minor changes to accomodate the
removal of the m4 macros, as per rev #570
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@572 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@571 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
py-compile-destdir common.mk python.mk pychecker.mk
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@570 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
configure.ac, doc/recordmydesktop.1, src/rmd.c, src/rmd_cache_audio.c, src/rmd_encode_sound_buffer.c,
src/rmd_initialize_data.c, src/rmd_jack.c, src/rmd_jack.h, src/rmd_parseargs.c, src/rmd_threads.c, src/rmd_types.h:
Changed the way Jack support is offered, from dlopening at runtime to normal
linking at compilation.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@569 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
Added rmdWMIsCompositing method which is used to determine if the window manager
is compositing and thus if it will be recorded in --full-shots mode.
This method replaces the name check that was previously used, but rmdWMCheck
hasn't been removed as it is also a proper method of identifying compliance
with the freedesktop.org standards, which is a neccessary step before
determining whether a window manager is compositing.
This method is still not perfect as non-3d compositing WM's will trigger
full-shots, without neccessarily needing it, but the only penalty for
this mistake will be increased CPU usage while previously, non-identification
of compositing WM as such could lead in distorted/unusable videos (e.g.
KWin when used in 3d compositing mode).
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@568 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|
|
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@567 f606c939-3180-4ac9-a4b8-4b8779d57d0a
|