Pidgin vs msn-pecan; bug numbers don’t lie
John Bailey from the Pidgin team decided to post some raw numbers of their bug tracker in which is clear their MSN component is lacking some love. He even goes further into excusing their neglect: “Our time is a precious resource, and in many cases we simply have better things to do”. His post ends up accepting that they need help; IOW MSN is currently under-maintained.
However I think the situation is even worst than that; not only MSN has more bugs open than other protocols; the ones that have been closed haven’t actually been fixed. I took some time to generate some hard numbers and the results are undeniable.
msn-pecan now in Maemo’s extras-testing
Finally I managed to workaround a bug in Maemo’s 1.1 SDK. So now msn-pecan has been promoted to extras-testing.
Please vote up so it can go into extras.
msn-pecan 0.1.0-rc3 ready for testing; featuring direct file transfers
This release is almost completely concentrated on getting direct file transfers to work, and they do, pretty nicely. Not all the types of transfers are supported, but the important ones are, so most probably you wouldn’t have any problems.
Also featuring is a revamped Windows installer that looks much nicer, has uninstall option, and supports portable apps.
Other than that it’s mostly bugfixes.
Why bugzilla sucks for handling patches
Since I started to use email to send patches (thanks to ‘git format-patch’ and ‘git send-email’) I’ve never looked back. Using email to send, review, and merge patches is superior to anything else, including bugzilla, and here I’ll mention the most important reasons.
Setting up QEMU with a NAT
I’ve always had a lot of trouble setting up QEMU so that I’m able to ping from my host to the guest OS, and the documentation out there doesn’t help much. So here are my own instructions, mostly so that I don’t forget them :/
msn-pecan 0.1.0-rc2 ready for testing; now with N900 support
It took longer than expected, but msn-pecan 0.1.0-rc2 is ready
There are
bugfixes all over the place, so everybody should upgrade as soon as possible.
The important ones are: chats work again, several oim improvements, and
directconn now truly enabled.
git send-email tricks
I recently found out a few awesome tricks for git send-email that have made my life much easier, so I decided to share them here
First, git send-email is an essential tool in every git guru’s arsenal, as it’s the preferred way of submitting patches. All you need to do is generate your patches with git format-patch (preferably with a cover letter), and then use git send-email to send those patches inlined in a nicely formatted email thread with your MTA.
But do you know about the different threading formats, address-book queries, or the cc-cmd option? No? Well, let’s get started.
New project: gst-dsp, with beagleboard demo image
It took me a lot more than I expected, but I finally managed to get the beagleboard booting and happy with the latest linux kernel (2.6.32-rc3), DSS2, and dsp-bridge driver.
And then I could run gst-dsp: a native GStreamer plug-in to access Texas Instruments’ DSP algorithms for OMAP3 platforms. Which marks the time for making a public release.
Here’s the video ![]()
The video playback is running on the beagleboard with gst-dsp and gst-omapfb (no X) with TI public DSP binaries; it’s a WVGA (800×480) MPEG-4 video. It’s not running as smoothly as I wanted; it seems the public binaries are a bit buggy, and there’s some problem with the dsp-bridge driver writing directly to the framebuffer, but at least it somewhat works
The video recording is done with an N900, official system (which uses gst-dsp
), and the resulting video is ; 848×480 MPEG-4.
You can find the demo image for the beagleboard, along with instructions, here.
The kernel code is on gitorious; the important tag is v2.6.32-felipec1.
And gst-dsp is hosted on Google Code, although the git repository is actually on github.
The code wasn’t written from scratch, TI’s projects: tiopenmax and libbridge, helped a lot.
And of course many other people made the first release possible (see the shortlog at the end).
Enjoy
Andriy Shevchenko (1):
base: fix a crash on send codec data
Felipe Contreras (180):
Initial commit
Register dsp node
Add README
Fix and update copyrights
Add ALLOCATE_HEAP and ALLOCATE_SN to dsp_bridge
Add handy dsp_send_message
dummy: use dsp_send_message
Rename gstdsp.* to plugin.*
Makefile: cleanup
dummy: trivial clanups
Add log utility
Use log utility
dmm_buffer: size_t improvements
dmm_buffer: always unmap when freeing
dmm_buffer: use getpagesize()
dmm_buffer: alignment improvements
dmm_buffer: add user_data field
Add MPEG-4 video decoder
README: update
mp4vdec: trivial cleanup
mp4vdec: send signal to output_loop
mp4vdec: flush output buffers too
mp4vdec: reset output port
mp4vdec: extra check for null buffer
mp4vdec: use atomic operations for status
mp4vdec: use more atomic operations for status
mp4vdec: send stop signal before
mp4vdec: re-use comm buffers
dmm_buffer: reorganize a bit
dmm_buffer: add dmm_buffer_reserve
dmm_buffer: allow to re-reserve memory
dmm_buffer: allow re-mapping
mp4vdec: trivial cleanup
dmm_buffer: unmap before unreserving
mp4vdec: re-use mappings for output buffers
mp4vdec: convert flush condition to semaphore
Remove cond.h
Rename mp4vdec to vdec
vdec: trivial cleanup
vdec: trivial reorganization
vdec: prepare for multiple algos
vdec: move create_node to dsp_start
vdec: start dsp node after getting the caps
vdec: initial support for H.264
vdec: add Juha to authors list
README: update
vdec: cleanup
vdec: make dsp_thread static
vdec: reorganize a bit
New base class
Add new video encoder
base: handle more commands
base: reorganize got_message a bit
venc: improve jpeg args
venc: send jpeg dynamic params
base: cleanup setup_output_buffers
base: remove unused buffer_count
base: reorganize a bit
base: add use_pad_alloc option
base: free mapped buffers on dsp_stop()
base: be more verbose on get_slot()
README: update
Makefile: check for missing symbols
New utility gstdsp_register()
base: detect dsp errors
base: properly handle dsp errors
base: post error in the bus
base: extra check for status in outout_loop()
base: free events array
base: reinitialize state on NULL->READY
base: use circular buffer for timestamps
base: increase ts_array
base: increase mapping cache
dummy: reorganize map_buffer
dummy: input buffers don't need alignment
dummy: cleanup
dummy: don't map buffers
venc: increase framesize limit for jpeg
base: add gstdsp_post_error()
venc: allocate a buffer when framesize is unaligned
base: decrease wait for events timeout
base: more error messages
base: re-initialize on READY->PAUSED
base: don't panic on wrong status
base: destroy node at the right time
base: catch playback completed message
base: possible memleak fixes
vdec: send codec data for MPEG-4
base: make map cache optional
plugin: set more proper ranks
vdec: add framerate workaround
vdec: remove gstdsp_send_buffer()
base: add create_node() vmethod
base: add parsing facilities
Add h263 parser
parse: update framesize only when unset
Random cleanups
base: add support for stream params
venc: add H.263
venc: use h263 by default
Reorganize encoders
base: send codec data for all the codecs
base: keep trying if parse func fails
base: trivial cleanup
Trivial cleanups
log: don't display info level
log: decrease log level for buffer allocs
log: add pr_test
base: rename array to cache
base: rename 'buffer' to 'comm'
base: event cleanup
base: reorganize a bit
base: assume output buffer is always there
base: remove out_buffer, use port buffer
base: store input buffer
base: trivial cleanup
base: flush ports on stop
base: plug some possible leaks
base: make map_buffer() more conservative
base: trigger semaphore after buffer modifications
base: re-use input buffer
base: add port index field
Add async queue
base: allow multiple buffers
base: allow child elements to configure the ports
vdec: increase the number of buffers to 2
venc: trivial fixes
log: add missing include
base: re-enable queues properly
venc: decrease input buffer size
base: wait for eos
base: possible fix
Initial MPEG-4 video encoder support
gstdspvenc.h: preemptively add H.264 to the list
base: add send_codec_data() helper
vdec: use send_codec_data()
vdec: extra checks
Add skip hack
Revert "venc: forcing mpeg4 I frame each i_frame_interval"
venc: reorganize stream/dynamic params
base: trivial cleanup
base: properly set param virt addr
Add param argument to buffer callbacks
Add buffer argument to buffer callbacks
base: add buffer recv_cb
base: add check for end addr alignment
vdec: fix extra unref for codec-data
base: trivial cleanups
Rename dmm_buffer_flush() to dmm_buffer_clean()
base: fix memory read
dmm_buffer: clean instead of flush
dmm_buffer: add cache 'flush' function back
Use more proper cache functions
base: handle bad node termination
base: make EOS alignment an option
jpegenc: enable eos align
venc: improve integer framerate calculation
venc: fix bitrate calculation
venc: cleanup bitrate calculation
venc: remove jpeg from bitrate calculation
venc: tweak bitrate calculation
venc: trivial cleanups
venc: add 'quality' field
venc: calculate smaller buffer sizes
Fix some static analysis warnings
log: avoid pr_info when gst debugging is off
base: remove use_map_cache
Trivial cleanups
Cleanup type registrations
base: improve some compiler hints
dmm-buffer: check cache flush size
base: properly free node resources
Create custom dsp_node_t
dsp-bridge: store node heap ourselves
dsp-bridge: store node msgbuf ourselves
dsp-bridge: cleanup node_free
base: copy buffers when appropriate
base: remove unnecessary cache flushing
venc: set rate-control to variable
base: post critical error mesages to the bus
Hoseok Chang (1):
venc: tune mp4v parms for better performance
Juha Alanen (5):
vdec: set profile based on the frame size
vdec: improve H.263 args
vdec: initial support for WMV9
venc: set profile correctly for H.263 and MPEG4
venc: disable single scan output for JPEG encoder
Marco Ballesio (8):
vdec: fix srcpad setup
venc: rename mp4venc_stream_params
venc: add mp4venc_out_stream_params
base: use proper buffer length
venc: forcing mpeg4 I frame each i_frame_interval
venc: reordered mp4venc_args initialization
venc: added bitrate computation formula
venc: propagate keyframes properly
Mark Nauwelaerts (2):
base: safer buffer allocation and freeing
base: fix element ref leak
Miguel Verdu (2):
venc: tune MPEG-4 parameters
venc: tune MPEG-4 parameters for quality
René Stadler (3):
base: fix thread leak
base: advance timestamp pointer for empty output buffers
base: don't use DSP flushing
Tim-Philipp Müller (1):
base: unref unused output buffer when skipping output