summaryrefslogtreecommitdiffstats
path: root/ext/wavpack/gstwavpackstreamreader.c
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2007-11-20 13:08:45 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2007-11-20 13:08:45 +0000
commitded2cc6e39501f249ac16b88f18c1a92e136b95a (patch)
treed483394ee5020f2e84336e6996a4603f0494e7cc /ext/wavpack/gstwavpackstreamreader.c
parentdfdc0fa8c9ee0dce74fa4b353209356baea620c8 (diff)
ext/wavpack/: Add support for encoding, parsing and decoding multichannel files with up to 8 channels. This also impr...
Original commit message from CVS: * ext/wavpack/gstwavpackcommon.c: (gst_wavpack_get_default_channel_mask), (gst_wavpack_set_channel_layout), (gst_wavpack_get_default_channel_positions), (gst_wavpack_get_channel_mask_from_positions), (gst_wavpack_set_channel_mapping): * ext/wavpack/gstwavpackcommon.h: * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset), (gst_wavpack_dec_sink_set_caps), (gst_wavpack_dec_chain): * ext/wavpack/gstwavpackdec.h: * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_reset), (gst_wavpack_enc_init), (gst_wavpack_enc_sink_set_caps), (gst_wavpack_enc_set_wp_config), (gst_wavpack_enc_push_block), (gst_wavpack_enc_fix_channel_order), (gst_wavpack_enc_chain), (gst_wavpack_enc_rewrite_first_block), (gst_wavpack_enc_sink_event): * ext/wavpack/gstwavpackenc.h: * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_index_append_entry), (gst_wavpack_parse_reset), (gst_wavpack_parse_scan_to_find_sample), (gst_wavpack_parse_sink_event), (gst_wavpack_parse_create_src_pad), (gst_wavpack_parse_push_buffer), (gst_wavpack_parse_loop): * ext/wavpack/gstwavpackparse.h: Add support for encoding, parsing and decoding multichannel files with up to 8 channels. This also improves the robustness of parsing quite a bit. * ext/wavpack/gstwavpackstreamreader.c: (gst_wavpack_stream_reader_read_bytes), (gst_wavpack_stream_reader_get_pos), (gst_wavpack_stream_reader_set_pos_abs), (gst_wavpack_stream_reader_set_pos_rel), (gst_wavpack_stream_reader_push_back_byte), (gst_wavpack_stream_reader_get_length), (gst_wavpack_stream_reader_can_seek), (gst_wavpack_stream_reader_write_bytes): Improve debugging.
Diffstat (limited to 'ext/wavpack/gstwavpackstreamreader.c')
-rw-r--r--ext/wavpack/gstwavpackstreamreader.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/ext/wavpack/gstwavpackstreamreader.c b/ext/wavpack/gstwavpackstreamreader.c
index 9b6260b8..868f7bfa 100644
--- a/ext/wavpack/gstwavpackstreamreader.c
+++ b/ext/wavpack/gstwavpackstreamreader.c
@@ -35,11 +35,15 @@ gst_wavpack_stream_reader_read_bytes (void *id, void *data, int32_t bcount)
uint32_t left = rid->length - rid->position;
uint32_t to_read = MIN (left, bcount);
+ GST_DEBUG ("Trying to read %d of %d bytes from position %d", bcount,
+ rid->length, rid->position);
+
if (to_read > 0) {
g_memmove (data, rid->buffer + rid->position, to_read);
rid->position += to_read;
return to_read;
} else {
+ GST_WARNING ("Couldn't read %d bytes");
return 0;
}
}
@@ -47,20 +51,23 @@ gst_wavpack_stream_reader_read_bytes (void *id, void *data, int32_t bcount)
static uint32_t
gst_wavpack_stream_reader_get_pos (void *id)
{
+ GST_DEBUG ("Returning position %d", ((read_id *) id)->position);
return ((read_id *) id)->position;
}
static int
gst_wavpack_stream_reader_set_pos_abs (void *id, uint32_t pos)
{
- GST_DEBUG ("should not be called");
+ GST_WARNING ("Should not be called: tried to set absolute position to %d",
+ pos);
return -1;
}
static int
gst_wavpack_stream_reader_set_pos_rel (void *id, int32_t delta, int mode)
{
- GST_DEBUG ("should not be called");
+ GST_WARNING ("Should not be called: tried to set relative position to %d"
+ " with mode %d", delta, mode);
return -1;
}
@@ -69,6 +76,8 @@ gst_wavpack_stream_reader_push_back_byte (void *id, int c)
{
read_id *rid = (read_id *) id;
+ GST_DEBUG ("Pushing back one byte: 0x%x", c);
+
rid->position -= 1;
if (rid->position < 0)
rid->position = 0;
@@ -78,19 +87,22 @@ gst_wavpack_stream_reader_push_back_byte (void *id, int c)
static uint32_t
gst_wavpack_stream_reader_get_length (void *id)
{
+ GST_DEBUG ("Returning length %d", ((read_id *) id)->length);
+
return ((read_id *) id)->length;
}
static int
gst_wavpack_stream_reader_can_seek (void *id)
{
+ GST_DEBUG ("Can't seek");
return FALSE;
}
static int32_t
gst_wavpack_stream_reader_write_bytes (void *id, void *data, int32_t bcount)
{
- GST_DEBUG ("should not be called");
+ GST_WARNING ("Should not be called, tried to write %d bytes", bcount);
return 0;
}