// Return TRUE if all was read. FALSE if a problem occured: // If a bitstream syntax problem occured the bitstream will // point to after the problem, in case we run out of data the bitstream // will point to where we want to restart after getting more. static int read_seq_info(struct bitstream *esstream) { dbg_print(DMT_VERBOSE, "Read Sequence Info\n"); // We only get here after seeing that start code if (next_u32(esstream) != 0xB3010000) // LSB first (0x000001B3) fatal(EXIT_BUG_BUG, "read_seq_info: Impossible!"); // If we get here esstream points to the start of a sequence_header_code // should we run out of data in esstream this is where we want to restart // after getting more. unsigned char *video_seq_start = esstream->pos; sequence_header(esstream); sequence_ext(esstream); // FIXME: if sequence extension is missing this is not MPEG-2, // or broken. Set bitstream error. //extension_and_user_data(esstream); if (esstream->error) return 0; if (esstream->bitsleft < 0) { init_bitstream(esstream, video_seq_start, esstream->end); return 0; } dbg_print(DMT_VERBOSE, "Read Sequence Info - processed\n\n"); return 1; }
// Return TRUE if all was read. FALSE if a problem occured: // If a bitstream syntax problem occured the bitstream will // point to after the problem, in case we run out of data the bitstream // will point to where we want to restart after getting more. static int read_seq_info(struct lib_cc_decode *ctx, struct bitstream *esstream) { debug("Read Sequence Info\n"); // We only get here after seeing that start code if (next_u32(esstream) != 0xB3010000) // LSB first (0x000001B3) fatal(CCX_COMMON_EXIT_BUG_BUG, "read_seq_info: next_u32(esstream) != 0xB3010000. Please file a bug report in GitHub.\n"); // If we get here esstream points to the start of a sequence_header_code // should we run out of data in esstream this is where we want to restart // after getting more. unsigned char *video_seq_start = esstream->pos; sequence_header(ctx, esstream); sequence_ext(ctx, esstream); // FIXME: if sequence extension is missing this is not MPEG-2, // or broken. Set bitstream error. //extension_and_user_data(esstream); if (esstream->error) return 0; if (esstream->bitsleft < 0) { init_bitstream(esstream, video_seq_start, esstream->end); return 0; } debug("Read Sequence Info - processed\n\n"); return 1; }