Home | History | Annotate | Download | only in libvpx

Lines Matching refs:glob

488 void Ebml_Write(EbmlGlobal *glob, const void *buffer_in, unsigned long len)
490 if(fwrite(buffer_in, 1, len, glob->stream));
494 void Ebml_Serialize(EbmlGlobal *glob, const void *buffer_in, unsigned long len)
499 Ebml_Write(glob, q--, 1);
506 static void Ebml_SerializeUnsigned32(EbmlGlobal *glob, unsigned long class_id, uint64_t ui)
509 Ebml_WriteID(glob, class_id);
510 Ebml_Serialize(glob, &sizeSerialized, 1);
511 Ebml_Serialize(glob, &ui, 4);
516 Ebml_StartSubElement(EbmlGlobal *glob, EbmlLoc *ebmlLoc,
523 Ebml_WriteID(glob, class_id);
524 *ebmlLoc = ftello(glob->stream);
525 Ebml_Serialize(glob, &unknownLen, 8);
529 Ebml_EndSubElement(EbmlGlobal *glob, EbmlLoc *ebmlLoc)
535 pos = ftello(glob->stream);
542 fseeko(glob->stream, *ebmlLoc, SEEK_SET);
543 Ebml_Serialize(glob, &size, 8);
546 fseeko(glob->stream, pos, SEEK_SET);
607 write_webm_file_header(EbmlGlobal *glob,
613 Ebml_StartSubElement(glob, &start, EBML);
614 Ebml_SerializeUnsigned(glob, EBMLVersion, 1);
615 Ebml_SerializeUnsigned(glob, EBMLReadVersion, 1); //EBML Read Version
616 Ebml_SerializeUnsigned(glob, EBMLMaxIDLength, 4); //EBML Max ID Length
617 Ebml_SerializeUnsigned(glob, EBMLMaxSizeLength, 8); //EBML Max Size Length
618 Ebml_SerializeString(glob, DocType, "webm"); //Doc Type
619 Ebml_SerializeUnsigned(glob, DocTypeVersion, 2); //Doc Type Version
620 Ebml_SerializeUnsigned(glob, DocTypeReadVersion, 2); //Doc Type Read Version
621 Ebml_EndSubElement(glob, &start);
624 Ebml_StartSubElement(glob, &glob->startSegment, Segment); //segment
625 glob->position_reference = ftello(glob->stream);
626 glob->framerate = *fps;
627 write_webm_seek_info(glob
631 glob->track_pos = ftello(glob->stream);
632 Ebml_StartSubElement(glob, &trackStart, Tracks);
638 Ebml_StartSubElement(glob, &start, TrackEntry);
639 Ebml_SerializeUnsigned(glob, TrackNumber, trackNumber);
640 glob->track_id_pos = ftello(glob->stream);
641 Ebml_SerializeUnsigned32(glob, TrackUID, trackID);
642 Ebml_SerializeUnsigned(glob, TrackType, 1); //video is always 1
643 Ebml_SerializeString(glob, CodecID, "V_VP8");
650 Ebml_StartSubElement(glob, &videoStart, Video);
651 Ebml_SerializeUnsigned(glob, PixelWidth, pixelWidth);
652 Ebml_SerializeUnsigned(glob, PixelHeight, pixelHeight);
653 Ebml_SerializeFloat(glob, FrameRate, frameRate);
654 Ebml_EndSubElement(glob, &videoStart); //Video
656 Ebml_EndSubElement(glob, &start); //Track Entry
658 Ebml_EndSubElement(glob, &trackStart);
666 write_webm_block(EbmlGlobal *glob,
680 if(pts_ms <= glob->last_pts_ms)
681 pts_ms = glob->last_pts_ms + 1;
682 glob->last_pts_ms = pts_ms;
685 if(pts_ms - glob->cluster_timecode > SHRT_MAX)
688 block_timecode = pts_ms - glob->cluster_timecode;
693 if(glob->cluster_open)
694 Ebml_EndSubElement(glob, &glob->startCluster);
698 glob->cluster_open = 1;
699 glob->cluster_timecode = pts_ms;
700 glob->cluster_pos = ftello(glob->stream);
701 Ebml_StartSubElement(glob, &glob->startCluster, Cluster); //cluster
702 Ebml_SerializeUnsigned(glob, Timecode, glob->cluster_timecode);
709 new_cue_list = realloc(glob->cue_list,
710 (glob->cues+1) * sizeof(struct cue_entry));
712 glob->cue_list = new_cue_list;
719 cue = &glob->cue_list[glob->cues];
720 cue->time = glob->cluster_timecode;
721 cue->loc = glob->cluster_pos;
722 glob->cues++;
727 Ebml_WriteID(glob, SimpleBlock);
731 Ebml_Serialize(glob, &block_length, 4);
735 Ebml_Write(glob, &track_number, 1);
737 Ebml_Serialize(glob, &block_timecode, 2);
744 Ebml_Write(glob, &flags, 1);
746 Ebml_Write(glob, pkt->data.frame.buf, pkt->data.frame.sz);
751 write_webm_file_footer(EbmlGlobal *glob, long hash)
754 if(glob->cluster_open)
755 Ebml_EndSubElement(glob, &glob->startCluster);
761 glob->cue_pos = ftello(glob->stream);
762 Ebml_StartSubElement(glob, &start, Cues);
763 for(i=0; i<glob->cues; i++)
765 struct cue_entry *cue = &glob->cue_list[i];
768 Ebml_StartSubElement(glob, &start, CuePoint);
772 Ebml_SerializeUnsigned(glob, CueTime, cue->time);
774 Ebml_StartSubElement(glob, &start, CueTrackPositions);
775 Ebml_SerializeUnsigned(glob, CueTrack, 1);
776 Ebml_SerializeUnsigned64(glob, CueClusterPosition,
777 cue->loc - glob->position_reference);
778 //Ebml_SerializeUnsigned(glob, CueBlockNumber, cue->blockNumber);
779 Ebml_EndSubElement(glob, &start);
781 Ebml_EndSubElement(glob, &start);
783 Ebml_EndSubElement(glob, &start);
786 Ebml_EndSubElement(glob, &glob->startSegment);
789 write_webm_seek_info(glob);
792 fseeko(glob->stream, glob->track_id_pos, SEEK_SET);
793 Ebml_SerializeUnsigned32(glob, TrackUID, glob->debug ? 0xDEADBEEF : hash);
795 fseeko(glob->stream, 0, SEEK_END);