Original commit message from CVS:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
(gst_xvimagesink_get_xv_support), (gst_xvimagesink_xcontext_get),
(gst_xvimagesink_get_format_from_caps), (gst_xvimagesink_setcaps),
(gst_xvimagesink_show_frame), (gst_xvimagesink_buffer_alloc):
Improve the errors produced on bad output, including some human
readable description strings.
Handle RGB Xv formats properly by transforming them into our
big-endian caps description.
Use gst_caps_truncate to ensure that we never try and choose a
non-fixed caps in buffer_alloc.
Handle the case where the XServer has a different idea about the size
required for a particular frame and gives us too small a memory
allocation.
Use -1 to indicate 'no image format', because 0 is a valid XServer
image format number.
Put RGB Xv formats at the end of the caps, so that we always prefer
YUV format frames.
Iterate the available Xv Encodings to determine the maximum width and
height, and then return that in our caps.
Original commit message from CVS:
* gst/videoscale/gstvideoscale.c: (gst_video_scale_fixate_caps):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps):
Use the gstutil scaling function to preserve 64 bits while calculating
output width and height from the display-aspect-ratio. (A continuation
of #341542)
Original commit message from CVS:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_clear),
(gst_xvimagesink_buffer_alloc):
* sys/xvimage/xvimagesink.h:
When performing buffer allocations, remember the caps and image format
we return so that if the same caps are asked for next time we can
return them immediately without doing any caps intersections.
Original commit message from CVS:
* gst/videoscale/gstvideoscale.c: (gst_video_scale_fixate_caps):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps):
Fix the build.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_get_type):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_type):
Register special buffer types along with the objects so
that they are not registered at runtime from N different
streaming threads since they are not threadsafe.
Original commit message from CVS:
2006-03-20 Julien MOUTTE <julien@moutte.net>
* sys/xvimage/xvimagesink.c:
(gst_xvimagesink_get_format_from_caps): Fix a memleak reported
by Jan Schmidt.
Original commit message from CVS:
2006-03-05 Julien MOUTTE <julien@moutte.net>
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
(gst_xvimagesink_show_frame), (gst_xvimagesink_buffer_alloc):
Check that the xvimage we are creating has a correct size before returning it. (#314897)
Original commit message from CVS:
* sys/ximage/Makefile.am:
* sys/xvimage/Makefile.am:
Add some _CFLAGS and _LIBS that seem to be missing
and/or required for Cygwin (see #317048).
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
(gst_ximagesink_ximage_new), (gst_ximagesink_ximage_destroy):
* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
(gst_xvimagesink_check_xshm_calls), (gst_xvimagesink_xvimage_new):
Set shared memory segments to be deleted as soon as we have attached,
that way they get cleaned up automatically if we crash.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls):
Fix up the XShm call testing so that we catch errors, and don't
cause new ones by attempting to detach from a segment we failed
to attach to. Fixes#312439.
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (gst_alsasink_finalise),
(gst_alsasink_class_init):
Free the device name string.
* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init),
(gst_ogg_mux_request_new_pad), (gst_ogg_mux_release_pad),
(gst_ogg_mux_handle_src_event), (gst_ogg_mux_clear_collectpads):
Don't remove a pad from the collectpads structure until it
is released - it's a request pad, and may receive data again
if the element gets moved back to PLAYING state.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
Ensure we turn on double buffering on the Xv port, and
set the colour key to something dark and mysterious that
isn't black.
Original commit message from CVS:
2006-01-26 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c:
(gst_ximagesink_calculate_pixel_aspect_ratio):
* sys/xvimage/xvimagesink.c:
(gst_xvimagesink_calculate_pixel_aspect_ratio): Handle some
more cases of pixel aspect ratio.
Original commit message from CVS:
2006-01-22 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy):
* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
(gst_xvimagesink_buffer_alloc): Playbin keeps some ref to some
frames. We might get a frame destroyed after changing state to
NULL, adding a safety check on xcontext.
Original commit message from CVS:
2006-01-21 Julien MOUTTE <julien@moutte.net>
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_buffer_alloc):
I think one day i'll completely undestand how caps negotiation
is supposed to work. This refactoring handles buffer_alloc
called with caps we can't handle. We definitely don't want a
set_caps with those caps, so we define and allocate a buffer
we would like to receive.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
(gst_ximagesink_ximage_new), (gst_ximagesink_ximage_put),
(gst_ximagesink_buffer_alloc):
* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_finalize),
(gst_xvimagesink_xvimage_put), (gst_xvimagesink_show_frame),
(gst_xvimagesink_buffer_alloc):
move all regularly occurring messages to GST_LOG level
add some more object logs
Original commit message from CVS:
2005-12-11 Julien MOUTTE <julien@moutte.net>
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state):
Fixed a leak of the current image reference when cleaning up.
Thanks to Arwed von Merkatz (alley_cat) for pointing it out.
Original commit message from CVS:
2005-11-28 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_put),
(gst_ximagesink_setcaps):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put),
(gst_xvimagesink_setcaps): Fixed a tricky bug. When caps
renegotiation
happens (only visible on ximagesink but bug is in xv too)
set_caps was
destroying the internal x[v]image used to memcpy non locally
alloced
buffers so that it got renewed on next _chain. The issue is that
_expose will try to put that image as it reffed it in _put.
Using gst_buffer_unref instead of destroy fixes it !
Original commit message from CVS:
* gst-libs/gst/video/Makefile.am:
compile in copied-over videofilter into the video library
* gst-libs/gst/video/videosink.h:
rename the header to gstvideosink.h since it's a base GstObject class
* sys/ximage/ximagesink.h:
* sys/xvimage/xvimagesink.h:
use the new header
Original commit message from CVS:
2005-11-28 Julien MOUTTE <julien@moutte.net>
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put):
Use calculated video geometry from _setcaps instead of buffer
caps to respect pixel aspect ratio. (fixes#322388)
Original commit message from CVS:
2005-11-28 Julien MOUTTE <julien@moutte.net>
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new):
Refuse to create an XvImage if we can't find the format.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_setcaps):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps):
Call gst_x_overlay_prepare_xwindow_id() to give applications
a final chance to set their own xwindow id before the video
sink creates its own window.
Original commit message from CVS:
2005-11-22 Julien MOUTTE <julien@moutte.net>
* sys/xvimage/xvimagesink.c:
(gst_xvimagesink_navigation_send_event): Handle navigation
events correcly with borders if applicable.
Original commit message from CVS:
* gst-libs/gst/interfaces/xoverlay.c: (gst_x_overlay_base_init),
(gst_x_overlay_got_xwindow_id), (gst_x_overlay_prepare_xwindow_id):
* gst-libs/gst/interfaces/xoverlay.h:
Remove everything having to do with the desired size; add
gst_x_overlay_prepare_xwindow_id() function; remove the
'have-xwindow-id' signal and make gst_x_overlay_got_xwindow_id()
post a message on the bus instead (#321816).
* sys/ximage/ximagesink.c: (gst_ximagesink_xoverlay_init):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps),
(gst_xvimagesink_xoverlay_init):
Remove desired size stuff (#321816).
Original commit message from CVS:
2005-11-14 Julien MOUTTE <julien@moutte.net>
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_new):
Discovered how to take away flickering while resizing the
window. Please don't put that in ximagesink, refactoring in
progress.
Original commit message from CVS:
* sys/xvimage/xvimagesink.c:
(gst_xvimagesink_navigation_send_event):
Check whether peer pad exists before sending navigation events
to it.
Original commit message from CVS:
2005-10-24 Julien MOUTTE <julien@moutte.net>
* gst-libs/gst/video/video.h:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
And
here comes my change on caps for framerate and geometry range.
We are now accepting 1 to MAXINT for width and height, and from
0.0 to MAXDOUBLE for framerate. That allows duration less png
frames
to be blended correctly in videomixer.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximage_buffer_init),
(gst_ximagesink_check_xshm_calls), (gst_ximagesink_xcontext_get):
* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_init),
(gst_xvimagesink_check_xshm_calls):
Fix compilation when XShm is not available.
Original commit message from CVS:
* configure.ac:
In the output at the end, don't show the first plugin on the same
line as "Core plug-ins, always built:".
Indent the output as for other plugin categories
* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_create):
#define that can be used to not use peer buffer_alloc functions for
test purposes.
* sys/ximage/ximagesink.c: (gst_ximage_buffer_init),
(gst_ximage_buffer_get_type), (gst_ximagesink_ximage_new),
(gst_ximagesink_show_frame):
* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_init),
(gst_xvimage_buffer_get_type), (gst_xvimagesink_setcaps),
(gst_xvimagesink_show_frame):
Error case handling fixes. gst-launch fakesrc ! x[v]imagesink now
fails gracefully instead of XError aborting or deadlocking.
Original commit message from CVS:
make GST_PLUGIN_LDFLAGS only be flags; GST_LIBS should be
added manually to each Makefile.am so we are sure it goes
*last* and doesn't add -L flags before linking in libs of our
own, like, say, internal .la libs, that then accidentally pick
up the installed copy.
Original commit message from CVS:
2005-07-13 Andy Wingo <wingo@pobox.com>
* sys/xvimage/xvimagesink.c (gst_xvimage_buffer_destroy)
(gst_xvimagesink_xvimage_new): Ref the xvimagesink while the
buffer points to it.
(gst_xvimagesink_check_xshm_calls): Don't use our xvimage buffer,
rather just doing X calls ourselves. Also fixes a memleak.
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_dec_src_getcaps),
(theora_dec_push), (theora_handle_data_packet):
Prepare for better timestamp fix later.
* gst/audioconvert/gstaudioconvert.c:
List most accurate caps first
* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_loop):
Use proper pad task function.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
(gst_xvimagesink_show_frame):
Fix deadlock when alloc failed.
Original commit message from CVS:
Plugin port to 0.9, ogg/theora playback should work in the seek
example now.
Removed old examples.
Removed old oggvorbisenc, renamed rawvorbisenc to vorbisenc as
explained in 0.9 TODO doc.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_chain),
(gst_ximagesink_send_pending_navigation),
(gst_ximagesink_navigation_send_event), (gst_ximagesink_finalize),
(gst_ximagesink_init):
* sys/ximage/ximagesink.h:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain),
(gst_xvimagesink_send_pending_navigation),
(gst_xvimagesink_navigation_send_event),
(gst_xvimagesink_finalize), (gst_xvimagesink_init):
* sys/xvimage/xvimagesink.h:
Use a mutex protected list to marshal navigation
events into the stream thread from whichever thread
sends them.
Original commit message from CVS:
2005-02-11 Julien MOUTTE <julien@moutte.net>
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put),
(gst_xvimagesink_sink_link), (gst_xvimagesink_change_state),
(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
(gst_xvimagesink_buffer_alloc), (gst_xvimagesink_set_xwindow_id),
(gst_xvimagesink_expose), (gst_xvimagesink_set_property),
(gst_xvimagesink_finalize), (gst_xvimagesink_init): Protect interface
methods from chain and negotiation and vice versa (Fixes#166142).
Fix a possible bug of images in the buffer pool being discarded because
we are looking at the wrong geometry.
* sys/xvimage/xvimagesink.h: Add stream_lock.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_change_state):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_clear),
(gst_xvimagesink_change_state):
Clear window on PAUSED->READY instead of READY->PAUSED. Stop
Xv video (and thereby regenerate Xv colourkey) in clear() so
that PLAY -> READY -> PLAY works (fixes#162504).
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_navigation_send_event):
* sys/xvimage/xvimagesink.c:
(gst_xvimagesink_navigation_send_event):
Check for pad availability before sending event.
Original commit message from CVS:
* gst/games/gstpuzzle.c: (gst_puzzle_base_init):
make RGB endianness work correctly
(gst_puzzle_show), (gst_puzzle_swap), (gst_puzzle_move):
refactor and fix race with initial shuffling
(nav_event_handler):
allow using the mouse to puzzle
(draw_puzzle):
insist on tiles having width and height as multiples of 4 to get
clean YUV image handling
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
(gst_xvimagesink_handle_xevents), (gst_xvimagesink_buffer_alloc):
s/DEBUG/LOG/ for common messages
(gst_xvimagesink_navigation_send_event):
fix mouse event translation to not include screen PAR
* sys/ximage/ximagesink.c: (gst_ximagesink_navigation_send_event):
fix mouse event translation to actually work
Original commit message from CVS:
2004-11-08 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_clear),
(gst_ximagesink_finalize):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_clear),
(gst_xvimagesink_finalize): Some more cleanups, leaks fixed and checks.
Original commit message from CVS:
2004-10-08 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_sink_link),
(gst_ximagesink_set_xwindow_id), (gst_ximagesink_init):
* sys/ximage/ximagesink.h:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link),
(gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_init):
* sys/xvimage/xvimagesink.h: Reverting Ronald's changes as the issue is
not coming from those elements. Moreover these elements should not keep
the xid they have been given when in NULL state.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_sink_link),
(gst_ximagesink_set_xwindow_id), (gst_ximagesink_init):
* sys/ximage/ximagesink.h:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link),
(gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_init):
* sys/xvimage/xvimagesink.h:
Actually only create a new toplevel window if we're not gonna
embed it right after.
Original commit message from CVS:
* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_getcaps):
Correct caps negotiation
* gst/volume/gstvolume.c: (volume_chain_float),
(volume_chain_int16):
Modify debug output to be little more informative
* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
(gst_xvimagesink_xvimage_destroy):
Add XSync calls after detaching from the shared memory segment to
avoid a crash.
Original commit message from CVS:
* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_base_init): Only allow
sane framerates.
* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get): same
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support): same
* testsuite/gst-lint: Test for G_GUINT64_FORMAT usage near gettext.
Original commit message from CVS:
2004-07-27 Julien MOUTTE <julien@moutte.net>
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
(gst_xvimagesink_xvimage_new): Some fixes to image size calculation.
Original commit message from CVS:
2004-07-27 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate): When
the atom is not available we have to unlock the mutex. Fixes#148023
Original commit message from CVS:
2004-07-21 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
(gst_ximagesink_renegotiate_size), (gst_ximagesink_sink_link),
(gst_ximagesink_chain), (gst_ximagesink_set_xwindow_id): Optimize
images creation for both elements. We don't create the image on caps
nego or renego, we just destroy the internal one if present if it does
not match the needs. The chain function takes care of creating a new
image when needed.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
(gst_xvimagesink_xwindow_decorate), (gst_xvimagesink_sink_link),
(gst_xvimagesink_chain), (gst_xvimagesink_buffer_alloc),
(gst_xvimagesink_set_xwindow_id): Additionally xvimage now contains
the image format information. The buffer pool checks for the context
image format and discard images with different formats.
* sys/xvimage/xvimagesink.h: Adding im_format in the xvimage structure.
Original commit message from CVS:
2004-07-16 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xerror),
(gst_ximagesink_check_xshm_calls), (gst_ximagesink_ximage_new),
(gst_ximagesink_ximage_destroy), (gst_ximagesink_sink_link),
(gst_ximagesink_chain), (gst_ximagesink_buffer_free),
(gst_ximagesink_buffer_alloc):
* sys/ximage/ximagesink.h:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy),
(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
(gst_xvimagesink_buffer_alloc):
* sys/xvimage/xvimagesink.h: Getting the 2 video sinks synchronized
again. Using internal data pointer of the x(v)image to store image's
data to be coherent with the buffer alloc mechanism. Investigated the
image destruction code to be sure that everything gets freed correctly.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
FPS seems to be 0.0 to MAX everywhere else.
Original commit message from CVS:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy):
fix for non-shm xv. Original patch by Tim Ringenbach (fixes#147248)
Original commit message from CVS:
* sys/oss/gstosssink.c:
* sys/oss/gstosssrc.c:
advertise correct template caps - we indeed do non-native endianness
and 8bit audio has no endianness
* sys/ximage/ximagesink.c: (gst_ximagesink_getcaps):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_getcaps):
avoid (wrong) duplications in getcaps function and return
template caps
Original commit message from CVS:
2004-06-27 Julien Moutte <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate),
(gst_ximagesink_xwindow_new):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate),
(gst_xvimagesink_xwindow_new): I prefer locking the mutex in the
function directly. We might want to call it from somewhere else one day.
Original commit message from CVS:
2004-06-27 Julien Moutte <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate),
(gst_ximagesink_xwindow_new):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate),
(gst_xvimagesink_xwindow_new): Trying to fix the random behaviour of
window decorations.
Original commit message from CVS:
* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_get_formats),
(gst_dvdec_src_convert), (gst_dvdec_sink_convert):
Fix format conversion and position querying.
* gst/debug/progressreport.c: (gst_progressreport_report):
Don't output a bogus total value that we didn't query.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
Always set XV_AUTOPAINT_COLORKEY to true. Fixes xvimagesink showing
only a blank window after xine has been used.