From ded2cc6e39501f249ac16b88f18c1a92e136b95a Mon Sep 17 00:00:00 2001 From: Sebastian Dröge Date: Tue, 20 Nov 2007 13:08:45 +0000 Subject: 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. --- ext/wavpack/gstwavpackstreamreader.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'ext/wavpack/gstwavpackstreamreader.c') 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; } -- cgit