From e3a0b57b750d1f9a7befa803b7c00218d924c859 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Tue, 12 Oct 2004 12:29:45 +0000 Subject: [PATCH] ext/gnomevfs/gstgnomevfssrc.c: Some debug. Original commit message from CVS: * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get), (gst_gnomevfssrc_srcpad_query), (gst_gnomevfssrc_srcpad_event): Some debug. * gst/avi/gstavidemux.c: (gst_avi_demux_reset), (gst_avi_demux_handle_src_event), (gst_avi_demux_read_superindex), (gst_avi_demux_read_subindexes), (gst_avi_demux_add_stream), (gst_avi_demux_stream_index), (gst_avi_demux_skip), (gst_avi_demux_sync), (gst_avi_demux_stream_scan), (gst_avi_demux_massage_index), (gst_avi_demux_stream_header): * gst/avi/gstavidemux.h: Support for openDML-2.0 indx/ix## chunks. Support for broken index recovery (where, if part of the index is broken, we will still read the rest of the index and recover the broken part by stream scanning). More broken media support. EOS workarounds. General AVI braindamage headache recovery. Aspirin included. --- ChangeLog | 18 ++++++++++++++++++ ext/gnomevfs/gstgnomevfssrc.c | 16 ++++++++++------ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index d970ef518f..93056936c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2004-10-12 Ronald S. Bultje + + * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get), + (gst_gnomevfssrc_srcpad_query), (gst_gnomevfssrc_srcpad_event): + Some debug. + * gst/avi/gstavidemux.c: (gst_avi_demux_reset), + (gst_avi_demux_handle_src_event), (gst_avi_demux_read_superindex), + (gst_avi_demux_read_subindexes), (gst_avi_demux_add_stream), + (gst_avi_demux_stream_index), (gst_avi_demux_skip), + (gst_avi_demux_sync), (gst_avi_demux_stream_scan), + (gst_avi_demux_massage_index), (gst_avi_demux_stream_header): + * gst/avi/gstavidemux.h: + Support for openDML-2.0 indx/ix## chunks. Support for broken index + recovery (where, if part of the index is broken, we will still read + the rest of the index and recover the broken part by stream + scanning). More broken media support. EOS workarounds. General AVI + braindamage headache recovery. Aspirin included. + 2004-10-11 Ronald S. Bultje * ext/cdparanoia/gstcdparanoia.c: (cdparanoia_open), diff --git a/ext/gnomevfs/gstgnomevfssrc.c b/ext/gnomevfs/gstgnomevfssrc.c index 62b33143fa..70907eae1e 100644 --- a/ext/gnomevfs/gstgnomevfssrc.c +++ b/ext/gnomevfs/gstgnomevfssrc.c @@ -1040,6 +1040,7 @@ gst_gnomevfssrc_get (GstPad * pad) /* deal with EOF state */ if ((src->curoffset >= src->size) && (src->size != 0)) { gst_element_set_eos (GST_ELEMENT (src)); + GST_DEBUG ("Returning EOS"); return GST_DATA (gst_event_new (GST_EVENT_EOS)); } @@ -1063,6 +1064,7 @@ gst_gnomevfssrc_get (GstPad * pad) /* EOS? */ if (readbytes == 0) { gst_buffer_unref (buf); + GST_DEBUG ("Returning EOS"); gst_element_set_eos (GST_ELEMENT (src)); return GST_DATA (gst_event_new (GST_EVENT_EOS)); } @@ -1107,14 +1109,13 @@ gst_gnomevfssrc_get (GstPad * pad) result = gnome_vfs_read (src->handle, GST_BUFFER_DATA (buf), src->bytes_per_read, &readbytes); - GST_DEBUG ("read: %s, readbytes: %" G_GINT64_FORMAT, - gnome_vfs_result_to_string (result), readbytes); + GST_DEBUG ("read: %s, readbytes: %" G_GINT64_FORMAT " @ %" G_GINT64_FORMAT, + gnome_vfs_result_to_string (result), readbytes, src->curoffset); /* deal with EOS */ if (readbytes == 0) { gst_buffer_unref (buf); - + GST_DEBUG ("Returning EOS"); gst_element_set_eos (GST_ELEMENT (src)); - return GST_DATA (gst_event_new (GST_EVENT_EOS)); } @@ -1249,7 +1250,7 @@ gst_gnomevfssrc_srcpad_query (GstPad * pad, GstQueryType type, switch (type) { case GST_QUERY_TOTAL: - if (*format != GST_FORMAT_BYTES) { + if (*format != GST_FORMAT_BYTES || src->size == 0) { return FALSE; } *value = src->size; @@ -1298,6 +1299,8 @@ gst_gnomevfssrc_srcpad_event (GstPad * pad, GstEvent * event) desired_offset = src->curoffset + GST_EVENT_SEEK_OFFSET (event); break; case GST_SEEK_METHOD_END: + if (src->size == 0) + return FALSE; desired_offset = src->size - ABS (GST_EVENT_SEEK_OFFSET (event)); break; default: @@ -1308,7 +1311,8 @@ gst_gnomevfssrc_srcpad_event (GstPad * pad, GstEvent * event) result = gnome_vfs_seek (src->handle, GNOME_VFS_SEEK_START, desired_offset); - GST_DEBUG ("new_seek: %s", gnome_vfs_result_to_string (result)); + GST_DEBUG ("new_seek to %" G_GINT64_FORMAT ": %s", + desired_offset, gnome_vfs_result_to_string (result)); if (result != GNOME_VFS_OK) { gst_event_unref (event);