From 88feee33f235ca9e5f491bd6f2170c20cda2865a Mon Sep 17 00:00:00 2001 From: Anssi Hannula Date: Mon, 8 Oct 2007 22:15:12 +0100 Subject: add lib64/real into the real codec paths I managed to miss one from my earlier patch, though I could've sworn I checked this. Add (prefix)/lib64/real into the real codec path list. It is encountered in the 64bit PLF Mandriva real-codecs package. --- src/libreal/real_common.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libreal/real_common.c b/src/libreal/real_common.c index 82a947e7c..371ffd246 100644 --- a/src/libreal/real_common.c +++ b/src/libreal/real_common.c @@ -89,6 +89,7 @@ void _x_real_codecs_init(xine_t *const xine) { /* The priority is for the first found */ try_real_subpath("lib/win32") else try_real_subpath("lib/codecs") + else try_real_subpath("lib64/real") else try_real_subpath("lib/real") else try_real_subpath("lib/RealPlayer10GOLD/codecs") else try_real_subpath("lib64/RealPlayer10/codecs") -- cgit v1.2.3 From a4f4129d17c57318b07f14c4ed2c2478eba3b348 Mon Sep 17 00:00:00 2001 From: Matt Messier Date: Wed, 10 Oct 2007 19:37:17 -0400 Subject: Stop a really irritating fprintf() that really should not be. (transplanted from 2b2f2adc8a1e0a05d89354ff259f7b2a331aa071) --HG-- extra : transplant_source : %2B/%2A%DC%8A%1E%0A%05%D8%93T%FF%25%9F%7B%2A3%1A%A0q --- src/demuxers/demux_matroska.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/demuxers/demux_matroska.c b/src/demuxers/demux_matroska.c index 502d1d620..64ac83a03 100644 --- a/src/demuxers/demux_matroska.c +++ b/src/demuxers/demux_matroska.c @@ -1863,7 +1863,7 @@ static int parse_block (demux_matroska_t *this, uint64_t block_size, gap = flags & 1; lacing = (flags >> 1) & 0x3; - fprintf(stderr, "lacing: %x\n", lacing); +/*fprintf(stderr, "lacing: %x\n", lacing);*/ if (!find_track_by_id(this, (int)track_num, &track)) { xprintf(this->stream->xine, XINE_VERBOSITY_LOG, -- cgit v1.2.3 From c02cc0a84e52e4d6c281650c170fed970b6e734b Mon Sep 17 00:00:00 2001 From: Claudio Ciccani Date: Thu, 18 Oct 2007 22:43:42 +0100 Subject: fix issue with non-seekable stream in demux_flv --- src/demuxers/demux_flv.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/demuxers/demux_flv.c b/src/demuxers/demux_flv.c index 598f7d95e..e607745ed 100644 --- a/src/demuxers/demux_flv.c +++ b/src/demuxers/demux_flv.c @@ -183,10 +183,7 @@ static int open_flv_file(demux_flv_t *this) { this->start = _X_BE_32(&buffer[5]); this->size = this->input->get_length(this->input); - if (INPUT_IS_SEEKABLE(this->input)) - this->input->seek(this->input, this->start, SEEK_SET); - else if (this->start > 9) - this->input->seek(this->input, this->start-9, SEEK_CUR); + this->input->seek(this->input, this->start, SEEK_SET); lprintf(" qualified FLV file, repositioned @ offset 0x%" PRIxMAX "\n", (intmax_t)this->start); @@ -340,7 +337,7 @@ static void parse_flv_script(demux_flv_t *this, int size) { free(buf); } -static int read_flv_packet(demux_flv_t *this) { +static int read_flv_packet(demux_flv_t *this, int preview) { fifo_buffer_t *fifo = NULL; buf_element_t *buf = NULL; unsigned char buffer[12]; @@ -487,7 +484,9 @@ static int read_flv_packet(demux_flv_t *this) { buf = fifo->buffer_pool_alloc(fifo); buf->type = buf_type; buf->pts = (int64_t) pts * 90; - check_newpts(this, buf->pts, (tag_type == FLV_TAG_TYPE_VIDEO)); + + if (!preview) + check_newpts(this, buf->pts, (tag_type == FLV_TAG_TYPE_VIDEO)); buf->extra_info->input_time = pts; if (this->input->get_length(this->input)) { @@ -502,6 +501,8 @@ static int read_flv_packet(demux_flv_t *this) { remaining_bytes -= buf->size; buf->decoder_flags = buf_flags; + if (preview) + buf->decoder_flags |= BUF_FLAG_PREVIEW; if (!remaining_bytes) buf->decoder_flags |= BUF_FLAG_FRAME_END; @@ -609,7 +610,7 @@ static void seek_flv_file(demux_flv_t *this, int seek_pts) { static int demux_flv_send_chunk(demux_plugin_t *this_gen) { demux_flv_t *this = (demux_flv_t *) this_gen; - return read_flv_packet(this); + return read_flv_packet(this, 0); } static void demux_flv_send_headers(demux_plugin_t *this_gen) { @@ -632,7 +633,7 @@ static void demux_flv_send_headers(demux_plugin_t *this_gen) { /* find first audio/video packets and send headers */ for (i = 0; i < 20; i++) { - if (read_flv_packet(this) != DEMUX_OK) + if (read_flv_packet(this, 1) != DEMUX_OK) break; if (((this->flags & FLV_FLAG_HAS_VIDEO) && this->got_video) && ((this->flags & FLV_FLAG_HAS_AUDIO) && this->got_audio)) { -- cgit v1.2.3 From 7ad3be0f19eeac9a3f98ba3f44f64d7b07796574 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Thu, 18 Oct 2007 23:05:10 +0100 Subject: Changelog entry for the flv fix. --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 493d85193..b02a70b6e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,7 @@ xine-lib (1.1.9) (unreleased) * Add UI option to configure FFmpeg's video decoder thread count. * Improve syncing of audio and video in the presence of bad frames. * Improve handling of invalid or unknown frame sizes. + * Fixed handling of streamed Flash videos (broken in 1.1.5). xine-lib (1.1.8) * Send a channel-changed event to the frontend when receiving the SYNC -- cgit v1.2.3