MPlayer не играет realvideo

Marinavo_0507

Пытаюсь заставить MPlayer-1.0pre4 (только вчера скачал) проигрывать файлы в формате real.
gdb приводит, например, вот к такому (файл libmpdemux/demux_real.c, функция demux_open_real):


case MKTAG('c', 'o', 'o', 'k'):
// realaudio codec plugins - common:
// sh->wf->cbSize = 4+2+24;
stream_skip(demuxer->stream,3); // Skip 3 unknown bytes
if (version==5)
stream_skip(demuxer->stream,1); // Skip 1 additional unknown byte
codecdata_length=stream_read_dword(demuxer->stream);
sh->wf->cbSize = 10+codecdata_length;
sh->wf = realloc(sh->wf, sizeof(WAVEFORMATEX)+10+codecdata_length);
if (sh->wf == NULL) abort;
short*sh->wf+1[0]=sub_packet_size;
short*sh->wf+1[1]=sub_packet_h;
short*sh->wf+1[2]=flavor;
short*sh->wf+1[3]=coded_frame_size;
short*sh->wf+1[4]=codecdata_length;
// stream_read(demuxer->stream, char*sh->wf+1+6, 24); // extras
stream_read(demuxer->stream, char*sh->wf+1+10, codecdata_length); // extras
break;


теперь - sizeof(codecdata_length)==4, и из потока читается какое-то большое число (>2^30).
sizeof(sh->wf->cbSize)==2, то есть самый настоящий integer overflow - функция stream_read
пишет за границу переданного буфера
явно такой код работать не должен
но вот - о чудо! - если собрать с ./configure --enable-debug, то этот же файл проигрывается,
почему, я ещё не понял.
у кого-то MPlayer проигрывает realvideo, и если да, как вы этого добились?

stm2389930stm

просто скомпилил, он и заиграл....

eee1

у меня тоже такой баг с 1.0pre4. с 0.92.1 и 1.0pre3 вроде все ок был (

dgaf

покажи файлик, я посмотрю. расширение не помню.

dgaf

он же, 1.0pre4
Playing endclip.ram .
REAL file format detected.
MPlayer interrupted by signal 11 in module: demux_open

Marinavo_0507

оно
Оставить комментарий
Имя или ник:
Комментарий: