Lines Matching refs:os

100         struct ogg_stream *os = ogg->streams + i;
101 os->buf = av_mallocz(os->bufsize + AV_INPUT_BUFFER_PADDING_SIZE);
102 if (os->buf)
103 memcpy(os->buf, ost->streams[i].buf, os->bufpos);
106 os->new_metadata = NULL;
107 os->new_metadata_size = 0;
164 struct ogg_stream *os = ogg->streams + i;
165 os->bufpos = 0;
166 os->pstart = 0;
167 os->psize = 0;
168 os->granule = -1;
169 os->lastpts = AV_NOPTS_VALUE;
170 os->lastdts = AV_NOPTS_VALUE;
171 os->sync_pos = -1;
172 os->page_pos = 0;
173 os->nsegs = 0;
174 os->segp = 0;
175 os->incomplete = 0;
176 os->got_data = 0;
178 os->lastpts = 0;
180 os->start_trimming = 0;
181 os->end_trimming = 0;
182 av_freep(&os->new_metadata);
183 os->new_metadata_size = 0;
213 struct ogg_stream *os;
229 os = &ogg->streams[0];
230 if (os->codec != codec)
233 os->serial = serial;
234 os->codec = codec;
235 os->serial = serial;
236 os->lastpts = 0;
237 os->lastdts = 0;
238 os->start_trimming = 0;
239 os->end_trimming = 0;
243 os->header = -1;
253 struct ogg_stream *os;
262 if (!(os = av_realloc_array(ogg->streams, ogg->nstreams + 1,
265 ogg->streams = os;
266 os = ogg->streams + idx;
267 memset(os, 0, sizeof(*os));
268 os->serial = serial;
269 os->bufsize = DECODER_BUFFER_SIZE;
270 os->buf = av_malloc(os->bufsize + AV_INPUT_BUFFER_PADDING_SIZE);
271 os->header = -1;
272 os->start_granule = OGG_NOGRANULE_VALUE;
273 if (!os->buf)
279 av_freep(&os->buf);
299 static int buf_realloc(struct ogg_stream *os, int size)
302 if (os->bufsize - os->bufpos < size) {
303 uint8_t *nb = av_realloc(os->buf, 2*os->bufsize + AV_INPUT_BUFFER_PADDING_SIZE);
306 os->buf = nb;
307 os->bufsize *= 2;
317 struct ogg_stream *os;
392 os = ogg->streams + idx;
394 ret = buf_realloc(os, size);
398 readout_buf = os->buf + os->bufpos;
443 os = ogg->streams + idx;
445 ret = buf_realloc(os, size);
451 memcpy(os->buf + os->bufpos, readout_buf, size);
456 os->page_pos = page_pos;
457 os->nsegs = nsegs;
458 os->segp = 0;
459 os->got_data = !(flags & OGG_FLAG_BOS);
460 os->bufpos += size;
461 os->granule = gp;
462 os->flags = flags;
463 memcpy(os->segments, segments, nsegs);
464 memset(os->buf + os->bufpos, 0, AV_INPUT_BUFFER_PADDING_SIZE);
466 if (flags & OGG_FLAG_CONT || os->incomplete) {
467 if (!os->psize) {
471 while (os->segp < os->nsegs) {
472 int seg = os->segments[os->segp++];
473 os->pstart += seg;
477 os->sync_pos = os->page_pos;
480 os->psize = 0;
481 os->sync_pos = os->page_pos;
503 struct ogg_stream *os;
520 os = ogg->streams + idx;
523 idx, os->pstart, os->psize, os->segp, os->nsegs);
525 if (!os->codec) {
526 if (os->header < 0) {
527 os->codec = ogg_find_codec(os->buf, os->bufpos);
528 if (!os->codec) {
530 os->header = 0;
538 segp = os->segp;
539 psize = os->psize;
541 while (os->segp < os->nsegs) {
542 int ss = os->segments[os->segp++];
543 os->psize += ss;
550 if (!complete && os->segp == os->nsegs) {
556 os->incomplete = !!os->psize;
561 if (os->granule == -1)
564 os->page_pos);
567 os->incomplete = 0;
569 if (os->header) {
570 if ((ret = os->codec->header(s, idx)) < 0) {
574 os->header = ret;
575 if (!os->header) {
576 os->segp = segp;
577 os->psize = psize;
587 si->data_offset = os->sync_pos;
598 os->nb_header++;
599 os->pstart += os->psize;
600 os->psize = 0;
603 os->pflags = 0;
604 os->pduration = 0;
605 if (os->codec && os->codec->packet) {
606 if ((ret = os->codec->packet(s, idx)) < 0) {
614 *dstart = os->pstart;
616 *dsize = os->psize;
618 *fpos = os->sync_pos;
619 os->pstart += os->psize;
620 os->psize = 0;
621 if(os->pstart == os->bufpos)
622 os->bufpos = os->pstart = 0;
623 os->sync_pos = os->page_pos;
628 os->page_end = 1;
629 for (i = os->segp; i < os->nsegs; i++)
630 if (os->segments[i] < 255) {
631 os->page_end = 0;
635 if (os->segp == os->nsegs)
741 struct ogg_stream *os = ogg->streams + i;
747 } else if (os->codec && os->nb_header < os->codec->nb_header) {
751 i, os->codec->nb_header, os->nb_header);
755 if (os->start_granule != OGG_NOGRANULE_VALUE)
756 os->lastpts = s->streams[i]->start_time =
757 ogg_gptopts(s, i, os->start_granule, NULL);
771 struct ogg_stream *os = ogg->streams + idx;
777 if (os->lastpts != AV_NOPTS_VALUE) {
778 pts = os->lastpts;
779 os->lastpts = AV_NOPTS_VALUE;
781 if (os->lastdts != AV_NOPTS_VALUE) {
783 *dts = os->lastdts;
784 os->lastdts = AV_NOPTS_VALUE;
786 if (os->page_end) {
787 if (os->granule != -1LL) {
788 if (os->codec && os->codec->granule_is_start)
789 pts = ogg_gptopts(s, idx, os->granule, dts);
791 os->lastpts = ogg_gptopts(s, idx, os->granule, &os->lastdts);
792 os->granule = -1LL;
801 struct ogg_stream *os = ogg->streams + idx;
806 invalid = !!(os->pflags & AV_PKT_FLAG_KEY) != !(os->buf[pstart] & 0x40);
809 invalid = !!(os->pflags & AV_PKT_FLAG_KEY) != !(os->buf[pstart] & 1);
812 os->pflags ^= AV_PKT_FLAG_KEY;
814 (os->pflags & AV_PKT_FLAG_KEY) ? "" : "non-");
822 struct ogg_stream *os;
841 os = ogg->streams + idx;
847 if (os->keyframe_seek && !(os->pflags & AV_PKT_FLAG_KEY))
849 os->keyframe_seek = 0;
856 memcpy(pkt->data, os->buf + pstart, psize);
860 pkt->flags = os->pflags;
861 pkt->duration = os->pduration;
864 if (os->start_trimming || os->end_trimming) {
870 AV_WL32(side_data + 0, os->start_trimming);
871 AV_WL32(side_data + 4, os->end_trimming);
872 os->start_trimming = 0;
873 os->end_trimming = 0;
876 if (os->new_metadata) {
878 os->new_metadata, os->new_metadata_size);
882 os->new_metadata = NULL;
883 os->new_metadata_size = 0;
904 struct ogg_stream *os = ogg->streams + stream_index;
906 if ( (os->flags & OGG_FLAG_EOS)
907 && !(os->flags & OGG_FLAG_BOS)
908 && os->codec == &ff_ogm_video_codec)
912 if (os->pflags & AV_PKT_FLAG_KEY) {
914 } else if (os->keyframe_seek) {
934 struct ogg_stream *os = ogg->streams + stream_index;
946 os->keyframe_seek = 1;
950 os = ogg->streams + stream_index;
952 os->keyframe_seek = 0;