Lines Matching refs:vst
760 RMDemuxContext *rm, RMStream *vst,
810 if((seq & 0x7F) == 1 || vst->curpic_num != pic_num){
815 vst->slices = ((hdr & 0x3F) << 1) + 1;
816 vst->videobufsize = len2 + 8*vst->slices + 1;
817 av_packet_unref(&vst->pkt); //FIXME this should be output.
818 if ((ret = av_new_packet(&vst->pkt, vst->videobufsize)) < 0)
820 vst->videobufpos = 8*vst->slices + 1;
821 vst->cur_slice = 0;
822 vst->curpic_num = pic_num;
823 vst->pktpos = avio_tell(pb);
828 if(++vst->cur_slice > vst->slices) {
829 av_log(s, AV_LOG_ERROR, "cur slice %d, too large\n", vst->cur_slice);
832 if(!vst->pkt.data)
834 AV_WL32(vst->pkt.data - 7 + 8*vst->cur_slice, 1);
835 AV_WL32(vst->pkt.data - 3 + 8*vst->cur_slice, vst->videobufpos - 8*vst->slices - 1);
836 if(vst->videobufpos + len > vst->videobufsize) {
840 if (avio_read(pb, vst->pkt.data + vst->videobufpos, len) != len)
842 vst->videobufpos += len;
845 if (type == 2 || vst->videobufpos == vst->videobufsize) {
846 vst->pkt.data[0] = vst->cur_slice-1;
847 av_packet_move_ref(pkt, &vst->pkt);
848 if(vst->slices != vst->cur_slice) //FIXME find out how to set slices correct from the begin
849 memmove(pkt->data + 1 + 8*vst->cur_slice, pkt->data + 1 + 8*vst->slices,
850 vst->videobufpos - 1 - 8*vst->slices);
851 av_shrink_packet(pkt, vst->videobufpos + 8*(vst->cur_slice - vst->slices));
853 pkt->pos = vst->pktpos;
854 vst->slices = 0;