summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libreal/xine_decoder.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libreal/xine_decoder.c b/src/libreal/xine_decoder.c
index bdf261d17..eb981ba74 100644
--- a/src/libreal/xine_decoder.c
+++ b/src/libreal/xine_decoder.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: xine_decoder.c,v 1.39 2003/06/03 15:44:31 jstembridge Exp $
+ * $Id: xine_decoder.c,v 1.40 2003/07/09 22:09:10 jstembridge Exp $
*
* thin layer to use real binary-only codecs in xine
*
@@ -79,6 +79,8 @@ typedef struct realdec_decoder_s {
int num_chunks;
uint32_t chunk_tab[CHUNK_TAB_SIZE];
+ uint8_t chunk_id;
+
/* keep track of timestamps, estimate framerate */
uint64_t pts;
int num_frames;
@@ -458,6 +460,8 @@ static void realdec_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
this->chunk_tab[1] = 0;
this->num_chunks = 1;
+ this->chunk_id = buf->content[0];
+
if (buf->pts)
this->pts = buf->pts;
else
@@ -471,7 +475,8 @@ static void realdec_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
this->num_chunks);
#endif
- if (((buf->content[0] & 0x20) == 0) || (buf->type != BUF_VIDEO_RV30)) {
+ if (((buf->type != BUF_VIDEO_RV30) && (buf->type != BUF_VIDEO_RV40)) ||
+ (buf->content[0] == this->chunk_id)) {
memcpy (this->chunk_buffer+this->chunk_buffer_size, buf->content, buf->size);