summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrtogni <rtogni@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-10-10 22:15:01 +0000
committerrtogni <rtogni@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-10-10 22:15:01 +0000
commit25b5b623199ab400c1b24a96ca9f36aa099ae04e (patch)
treeb92c49b0e604cc05488c58722879bab67eca2601
parentd64ad3f1252b9427be02d3bb0915f5a65f2be556 (diff)
downloadmpv-25b5b623199ab400c1b24a96ca9f36aa099ae04e.tar.bz2
mpv-25b5b623199ab400c1b24a96ca9f36aa099ae04e.tar.xz
Allows up to 8 bytes of extradata for cmsg24
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20150 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--libmpcodecs/vd_realvid.c5
-rw-r--r--libmpdemux/demux_real.c4
2 files changed, 5 insertions, 4 deletions
diff --git a/libmpcodecs/vd_realvid.c b/libmpcodecs/vd_realvid.c
index 4c5db1d624..37e68bc4f8 100644
--- a/libmpcodecs/vd_realvid.c
+++ b/libmpcodecs/vd_realvid.c
@@ -253,9 +253,10 @@ static int init(sh_video_t *sh){
// setup rv30 codec (codec sub-type and image dimensions):
if((sh->format<=0x30335652) && (extrahdr[1]>=0x20200002)){
// We could read nonsense data while filling this, but input is big enough so no sig11
- uint32_t cmsg24[8]={sh->disp_w,sh->disp_h,((unsigned char *)extrahdr)[8]*4,((unsigned char *)extrahdr)[9]*4,
+ uint32_t cmsg24[10]={sh->disp_w,sh->disp_h,((unsigned char *)extrahdr)[8]*4,((unsigned char *)extrahdr)[9]*4,
((unsigned char *)extrahdr)[10]*4,((unsigned char *)extrahdr)[11]*4,
- ((unsigned char *)extrahdr)[12]*4,((unsigned char *)extrahdr)[13]*4};
+ ((unsigned char *)extrahdr)[12]*4,((unsigned char *)extrahdr)[13]*4,
+ ((unsigned char *)extrahdr)[14]*4,((unsigned char *)extrahdr)[15]*4};
cmsg_data_t cmsg_data={0x24,1+((extrahdr[0]>>16)&7), &cmsg24[0]};
#ifdef USE_WIN32DLL
diff --git a/libmpdemux/demux_real.c b/libmpdemux/demux_real.c
index 71179eba19..6d57a3fdbc 100644
--- a/libmpdemux/demux_real.c
+++ b/libmpdemux/demux_real.c
@@ -1602,9 +1602,9 @@ static demuxer_t* demux_open_real(demuxer_t* demuxer)
mp_msg(MSGT_DEMUX, MSGL_ERR,"realvid: cmsg24 data too short (size %u)\n", cnt);
} else {
int ii;
- if (cnt > 6) {
+ if (cnt > 8) {
mp_msg(MSGT_DEMUX, MSGL_WARN,"realvid: cmsg24 data too big, please report (size %u)\n", cnt);
- cnt = 6;
+ cnt = 8;
}
for (ii = 0; ii < cnt; ii++)
((unsigned char*)(sh->bih+1))[8+ii]=(unsigned short)stream_read_char(demuxer->stream);