summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Stembridge <jstembridge@users.sourceforge.net>2003-07-18 23:37:38 +0000
committerJames Stembridge <jstembridge@users.sourceforge.net>2003-07-18 23:37:38 +0000
commitd6808675993fe4b01b7bd7b083cad9c2a43eba22 (patch)
treee445c6c0583e5502f5322f9fcdb61d1f79358515
parent3eb65c758be362b8a69c78a671888680358ddbd6 (diff)
downloadxine-lib-d6808675993fe4b01b7bd7b083cad9c2a43eba22.tar.gz
xine-lib-d6808675993fe4b01b7bd7b083cad9c2a43eba22.tar.bz2
use type specific data from headers in custom message - fixes playback of several RV20 and RV30 files
CVS patchset: 5177 CVS date: 2003/07/18 23:37:38
-rw-r--r--src/libreal/xine_decoder.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/libreal/xine_decoder.c b/src/libreal/xine_decoder.c
index 072f701ec..661b50e44 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.43 2003/07/16 21:57:42 jstembridge Exp $
+ * $Id: xine_decoder.c,v 1.44 2003/07/18 23:37:38 jstembridge Exp $
*
* thin layer to use real binary-only codecs in xine
*
@@ -228,13 +228,20 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
cmsg24[0]=this->width;
cmsg24[1]=this->height;
- cmsg24[2]=this->width;
- cmsg24[3]=this->height;
- cmsg24[4]=0x00b0; /* FIXME: what does this value mean? */
- cmsg24[5]=0x0090; /* FIXME: what does this value mean? */
- cmsg24[6]=this->width;
- cmsg24[7]=this->height;
-
+ switch(buf->content[3]) {
+ case 0x28:
+ cmsg24[7]=4*buf->content[39];
+ cmsg24[6]=4*buf->content[38];
+ case 0x26:
+ cmsg24[5]=4*buf->content[37];
+ cmsg24[4]=4*buf->content[36];
+ case 0x24:
+ cmsg24[3]=4*buf->content[35];
+ cmsg24[2]=4*buf->content[34];
+ break;
+ default:
+ printf("libreal: error, unrecognised custom message data\n");
+ }
cmsg_data[0]=0x24;
cmsg_data[1]=1+((init_data.subformat>>16)&7);