Lines Matching full:iter
820 int fragment_num, WebPIterator* const iter) {
831 iter->frame_num = first_frame->frame_num_;
832 iter->num_frames = dmux->num_frames_;
833 iter->fragment_num = fragment_num;
834 iter->num_fragments = num_fragments;
835 iter->x_offset = fragment->x_offset_;
836 iter->y_offset = fragment->y_offset_;
837 iter->width = fragment->width_;
838 iter->height = fragment->height_;
839 iter->has_alpha = fragment->has_alpha_;
840 iter->duration = fragment->duration_;
841 iter->dispose_method = fragment->dispose_method_;
842 iter->blend_method = fragment->blend_method_;
843 iter->complete = fragment->complete_;
844 iter->fragment.bytes = payload;
845 iter->fragment.size = payload_size;
850 static int SetFrame(int frame_num, WebPIterator* const iter) {
852 const WebPDemuxer* const dmux = (WebPDemuxer*)iter->private_;
860 return SynthesizeFrame(dmux, frame, 1, iter);
863 int WebPDemuxGetFrame(const WebPDemuxer* dmux, int frame, WebPIterator* iter) {
864 if (iter == NULL) return 0;
866 memset(iter, 0, sizeof(*iter));
867 iter->private_ = (void*)dmux;
868 return SetFrame(frame, iter);
871 int WebPDemuxNextFrame(WebPIterator* iter) {
872 if (iter == NULL) return 0;
873 return SetFrame(iter->frame_num + 1, iter);
876 int WebPDemuxPrevFrame(WebPIterator* iter) {
877 if (iter == NULL) return 0;
878 if (iter->frame_num <= 1) return 0;
879 return SetFrame(iter->frame_num - 1, iter);
882 int WebPDemuxSelectFragment(WebPIterator* iter, int fragment_num) {
883 if (iter != NULL && iter->private_ != NULL && fragment_num > 0) {
884 const WebPDemuxer* const dmux = (WebPDemuxer*)iter->private_;
885 const Frame* const frame = GetFrame(dmux, iter->frame_num);
888 return SynthesizeFrame(dmux, frame, fragment_num, iter);
893 void WebPDemuxReleaseIterator(WebPIterator* iter) {
894 (void)iter;
925 WebPChunkIterator* const iter) {
926 const WebPDemuxer* const dmux = (WebPDemuxer*)iter->private_;
937 iter->chunk.bytes = mem_buf + chunk->data_.offset_ + CHUNK_HEADER_SIZE;
938 iter->chunk.size = chunk->data_.size_ - CHUNK_HEADER_SIZE;
939 iter->num_chunks = count;
940 iter->chunk_num = chunk_num;
948 WebPChunkIterator* iter) {
949 if (iter == NULL) return 0;
951 memset(iter, 0, sizeof(*iter));
952 iter->private_ = (void*)dmux;
953 return SetChunk(fourcc, chunk_num, iter);
956 int WebPDemuxNextChunk(WebPChunkIterator* iter) {
957 if (iter != NULL) {
959 (const char*)iter->chunk.bytes - CHUNK_HEADER_SIZE;
960 return SetChunk(fourcc, iter->chunk_num + 1, iter);
965 int WebPDemuxPrevChunk(WebPChunkIterator* iter) {
966 if (iter != NULL && iter->chunk_num > 1) {
968 (const char*)iter->chunk.bytes - CHUNK_HEADER_SIZE;
969 return SetChunk(fourcc, iter->chunk_num - 1, iter);
974 void WebPDemuxReleaseChunkIterator(WebPChunkIterator* iter) {
975 (void)iter;