/* dump metadata from a FLV file */ int dump_metadata(const flvmeta_opts * options) { int retval; flv_parser parser; memset(&parser, 0, sizeof(flv_parser)); parser.user_data = (void*)options; switch (options->dump_format) { case FLVMETA_FORMAT_JSON: dump_json_setup_metadata_dump(&parser); break; case FLVMETA_FORMAT_RAW: dump_raw_setup_metadata_dump(&parser); break; case FLVMETA_FORMAT_XML: dump_xml_setup_metadata_dump(&parser); break; case FLVMETA_FORMAT_YAML: dump_yaml_setup_metadata_dump(&parser); break; } retval = flv_parse(options->input_file, &parser); if (retval == FLVMETA_DUMP_STOP_OK) { retval = FLV_OK; } return retval; }
int dump_raw_file(flv_parser * parser, const flvmeta_opts * options) { parser->on_header = raw_on_header; parser->on_tag = raw_on_tag; parser->on_audio_tag = raw_on_audio_tag; parser->on_video_tag = raw_on_video_tag; parser->on_metadata_tag = raw_on_metadata_tag; parser->on_prev_tag_size = raw_on_prev_tag_size; parser->on_stream_end = raw_on_stream_end; return flv_parse(options->input_file, parser); }
int dump_json_file(flv_parser * parser, const flvmeta_opts * options) { json_emitter je; parser->on_header = json_on_header; parser->on_tag = json_on_tag; parser->on_audio_tag = json_on_audio_tag; parser->on_video_tag = json_on_video_tag; parser->on_metadata_tag = json_on_metadata_tag; parser->on_prev_tag_size = json_on_prev_tag_size; parser->on_stream_end = json_on_stream_end; json_emit_init(&je); parser->user_data = &je; return flv_parse(options->input_file, parser); }
/* dump the full contents of an FLV file */ int dump_flv_file(const flvmeta_opts * options) { flv_parser parser; memset(&parser, 0, sizeof(flv_parser)); switch (options->dump_format) { case FLVMETA_FORMAT_JSON: dump_json_setup_file_dump(&parser); break; case FLVMETA_FORMAT_RAW: dump_raw_setup_file_dump(&parser); break; case FLVMETA_FORMAT_XML: dump_xml_setup_file_dump(&parser); break; case FLVMETA_FORMAT_YAML: dump_yaml_setup_file_dump(&parser); break; } return flv_parse(options->input_file, &parser); }