Lines Matching refs:thp
65 ThpDemuxContext *thp = s->priv_data;
74 thp->version = avio_rb32(pb);
79 thp->fps = av_d2q(av_int2float(avio_rb32(pb)), INT_MAX);
80 if (thp->fps.den <= 0 || thp->fps.num < 0)
82 thp->framecnt = avio_rb32(pb);
83 thp->first_framesz = avio_rb32(pb);
89 thp->compoff = avio_rb32(pb);
91 thp->first_frame = avio_rb32(pb);
92 thp->last_frame = avio_rb32(pb);
94 thp->next_framesz = thp->first_framesz;
95 thp->next_frame = thp->first_frame;
98 avio_seek (pb, thp->compoff, SEEK_SET);
99 thp->compcount = avio_rb32(pb);
101 if (thp->compcount > FF_ARRAY_ELEMS(thp->components))
105 avio_read(pb, thp->components, 16);
107 for (i = 0; i < thp->compcount; i++) {
108 if (thp->components[i] == 0) {
109 if (thp->vst)
119 avpriv_set_pts_info(st, 64, thp->fps.den, thp->fps.num);
125 st->codecpar->sample_rate = av_q2d(thp->fps);
127 st->duration = thp->framecnt;
128 thp->vst = st;
129 thp->video_stream_index = st->index;
131 if (thp->version == 0x11000)
133 } else if (thp->components[i] == 1) {
134 if (thp->has_audio != 0)
151 thp->audio_stream_index = st->index;
152 thp->has_audio = 1;
156 if (!thp->vst)
165 ThpDemuxContext *thp = s->priv_data;
170 if (thp->audiosize == 0) {
172 if (thp->frame >= thp->framecnt)
175 avio_seek(pb, thp->next_frame, SEEK_SET);
178 thp->next_frame += FFMAX(thp->next_framesz, 1);
179 thp->next_framesz = avio_rb32(pb);
186 if (thp->has_audio)
187 thp->audiosize = avio_rb32(pb); /* Audio size. */
189 thp->frame++;
198 pkt->stream_index = thp->video_stream_index;
200 ret = av_get_packet(pb, pkt, thp->audiosize);
203 if (ret != thp->audiosize) {
207 pkt->stream_index = thp->audio_stream_index;
208 if (thp->audiosize >= 8)
211 thp->audiosize = 0;
212 thp->frame++;
219 .name = "thp",