int mve_play_next_chunk (MVESTREAM *movie) { unsigned char major, minor; unsigned char *data; int len; // loop over segments major = mvefile_get_next_segmentMajor (movie->movie); while (major != 0xff) { // check whether to handle the tSegment if (major < 32 && movie->handlers[major] != NULL) { minor = mvefile_get_next_segmentMinor (movie->movie); len = mvefile_get_next_segment_size (movie->movie); data = mvefile_get_next_segment (movie->movie); if (!movie->handlers[major] (major, minor, data, len, movie->context)) return 0; } // advance to next tSegment mvefile_advance_segment (movie->movie); major = mvefile_get_next_segmentMajor (movie->movie); } if (!mvefile_fetch_next_chunk (movie->movie)) return 0; // return status return 1; }
/* * play next chunk */ int mve_play_next_chunk(MVESTREAM *movie) { /* loop over segments */ auto major = mvefile_get_next_segment_major(movie->movie.get()); while (major != 0xff) { /* check whether to handle the segment */ if (major < movie->handlers.size() && movie->handlers[major]) { auto minor = mvefile_get_next_segment_minor(movie->movie.get()); auto len = mvefile_get_next_segment_size(movie->movie.get()); auto data = mvefile_get_next_segment(movie->movie.get()); if (! movie->handlers[major](major, minor, data, len, movie->context)) return 0; } /* advance to next segment */ mvefile_advance_segment(movie->movie.get()); major = mvefile_get_next_segment_major(movie->movie.get()); } if (! mvefile_fetch_next_chunk(movie->movie.get())) return 0; /* return status */ return 1; }