CVS Root: /cvs/gstreamer Module: gst-plugins-base Changes by: wtay Date: Wed Jul 06 2005 08:14:50 PDT Log message: * 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. Modified files: . : ChangeLog ext/theora : theoradec.c gst/audioconvert: gstaudioconvert.c gst/videotestsrc: gstvideotestsrc.c sys/xvimage : xvimagesink.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/ChangeLog.diff?r1=1.1765&r2=1.1766 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/ext/theora/theoradec.c.diff?r1=1.44&r2=1.45 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst/audioconvert/gstaudioconvert.c.diff?r1=1.78&r2=1.79 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst/videotestsrc/gstvideotestsrc.c.diff?r1=1.74&r2=1.75 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/sys/xvimage/xvimagesink.c.diff?r1=1.109&r2=1.110 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-plugins-base/ChangeLog,v retrieving revision 1.1765 retrieving revision 1.1766 diff -u -d -r1.1765 -r1.1766 --- ChangeLog 5 Jul 2005 16:43:00 -0000 1.1765 +++ ChangeLog 6 Jul 2005 15:14:36 -0000 1.1766 @@ -1,3 +1,19 @@ +2005-07-06 Wim Taymans <wi...@fl...> + + * 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. 2005-07-05 Andy Wingo <wi...@po...> * ext/gnomevfs/gstgnomevfssrc.c: Index: theoradec.c RCS file: /cvs/gstreamer/gst-plugins-base/ext/theora/theoradec.c,v retrieving revision 1.44 retrieving revision 1.45 diff -u -d -r1.44 -r1.45 --- theoradec.c 5 Jul 2005 11:08:51 -0000 1.44 +++ theoradec.c 6 Jul 2005 15:14:37 -0000 1.45 @@ -571,13 +571,12 @@ GstCaps *caps; GST_LOCK (pad); - caps = GST_PAD_CAPS (pad); + if (!(caps = GST_PAD_CAPS (pad))) + caps = (GstCaps *) gst_pad_get_pad_template_caps (pad); + caps = gst_caps_ref (caps); GST_UNLOCK (pad); - if (caps) - return gst_caps_ref (caps); - else - return gst_caps_ref ((GstCaps *) gst_pad_get_pad_template_caps (pad)); + return caps; } static gboolean @@ -791,6 +790,16 @@ static GstFlowReturn +theora_dec_push (GstTheoraDec * dec, GstBuffer * buf) +{ + GstFlowReturn result; + result = gst_pad_push (dec->srcpad, buf); + return result; +} +static GstFlowReturn theora_handle_data_packet (GstTheoraDec * dec, ogg_packet * packet, GstClockTime outtime) { @@ -893,7 +902,7 @@ dec->info.fps_numerator; GST_BUFFER_TIMESTAMP (out) = outtime; - result = gst_pad_push (dec->srcpad, out); + result = theora_dec_push (dec, out); return result; Index: gstaudioconvert.c RCS file: /cvs/gstreamer/gst-plugins-base/gst/audioconvert/gstaudioconvert.c,v retrieving revision 1.78 retrieving revision 1.79 diff -u -d -r1.78 -r1.79 --- gstaudioconvert.c 5 Jul 2005 11:08:51 -0000 1.78 +++ gstaudioconvert.c 6 Jul 2005 15:14:37 -0000 1.79 @@ -100,19 +100,18 @@ #define STATIC_CAPS \ GST_STATIC_CAPS ( \ - "audio/x-raw-int, " \ + "audio/x-raw-float, " \ "rate = (int) [ 1, MAX ], " \ "channels = (int) [ 1, 8 ], " \ - "endianness = (int) { LITTLE_ENDIAN, BIG_ENDIAN }, " \ - "width = (int) 8, " \ - "depth = (int) [ 1, 8 ], " \ - "signed = (boolean) { true, false }; " \ + "endianness = (int) BYTE_ORDER, " \ + "width = (int) 32, " \ + "buffer-frames = (int) [ 0, MAX ];" \ "audio/x-raw-int, " \ "endianness = (int) { LITTLE_ENDIAN, BIG_ENDIAN }, " \ - "width = (int) 16, " \ - "depth = (int) [ 1, 16 ], " \ + "depth = (int) [ 1, 32 ], " \ "signed = (boolean) { true, false }; " \ @@ -125,15 +124,16 @@ - "width = (int) 32, " \ - "depth = (int) [ 1, 32 ], " \ + "width = (int) 16, " \ + "depth = (int) [ 1, 16 ], " \ - "audio/x-raw-float, " \ + "audio/x-raw-int, " \ - "endianness = (int) BYTE_ORDER, " \ - "buffer-frames = (int) [ 0, MAX ]" \ + "endianness = (int) { LITTLE_ENDIAN, BIG_ENDIAN }, " \ + "width = (int) 8, " \ + "depth = (int) [ 1, 8 ], " \ + "signed = (boolean) { true, false } " \ ) static GstAudioChannelPosition *supported_positions; Index: gstvideotestsrc.c RCS file: /cvs/gstreamer/gst-plugins-base/gst/videotestsrc/gstvideotestsrc.c,v retrieving revision 1.74 retrieving revision 1.75 diff -u -d -r1.74 -r1.75 --- gstvideotestsrc.c 5 Jul 2005 11:08:54 -0000 1.74 +++ gstvideotestsrc.c 6 Jul 2005 15:14:37 -0000 1.75 @@ -660,7 +660,7 @@ need_pause: { - gst_task_pause (GST_PAD_TASK (pad)); + gst_pad_pause_task (pad); } Index: xvimagesink.c RCS file: /cvs/gstreamer/gst-plugins-base/sys/xvimage/xvimagesink.c,v retrieving revision 1.109 retrieving revision 1.110 diff -u -d -r1.109 -r1.110 --- xvimagesink.c 30 Jun 2005 11:58:40 -0000 1.109 +++ xvimagesink.c 6 Jul 2005 15:14:38 -0000 1.110 @@ -404,12 +404,13 @@ XSync (xvimagesink->xcontext->disp, FALSE); succeeded = TRUE; - g_mutex_unlock (xvimagesink->x_lock); GST_BUFFER_DATA (xvimage) = (guchar *) xvimage->xvimage->data; GST_BUFFER_SIZE (xvimage) = xvimage->size; beach: + g_mutex_unlock (xvimagesink->x_lock); if (!succeeded) { gst_xvimage_buffer_free (xvimage); xvimage = NULL; @@ -1547,6 +1548,7 @@ /* No image available. That's very bad ! */ gst_buffer_unref (buf); + GST_DEBUG ("could not create image"); GST_ELEMENT_ERROR (xvimagesink, CORE, NEGOTIATION, (NULL), ("Failed creating an XvImage in xvimagesink chain function.")); return GST_FLOW_ERROR; |