From bf7e93140b21f085646c783ecc070c78c24300af Mon Sep 17 00:00:00 2001 From: winlin Date: Mon, 13 Oct 2025 22:26:38 -0400 Subject: [PATCH] Refine access specifier for utest. --- .augment-guidelines | 52 +++++ trunk/src/app/srs_app_async_call.hpp | 6 +- trunk/src/app/srs_app_caster_flv.hpp | 18 +- trunk/src/app/srs_app_circuit_breaker.hpp | 6 +- trunk/src/app/srs_app_config.hpp | 66 +++---- trunk/src/app/srs_app_coworkers.hpp | 8 +- trunk/src/app/srs_app_dash.hpp | 32 ++-- trunk/src/app/srs_app_dvr.hpp | 44 ++--- trunk/src/app/srs_app_edge.hpp | 38 ++-- trunk/src/app/srs_app_encoder.hpp | 8 +- trunk/src/app/srs_app_factory.hpp | 2 +- trunk/src/app/srs_app_ffmpeg.hpp | 8 +- trunk/src/app/srs_app_forward.hpp | 12 +- trunk/src/app/srs_app_fragment.hpp | 4 +- trunk/src/app/srs_app_gb28181.hpp | 64 +++---- trunk/src/app/srs_app_hds.hpp | 4 +- trunk/src/app/srs_app_heartbeat.hpp | 2 +- trunk/src/app/srs_app_hls.hpp | 84 ++++---- trunk/src/app/srs_app_http_api.hpp | 52 ++--- trunk/src/app/srs_app_http_conn.hpp | 16 +- trunk/src/app/srs_app_http_hooks.hpp | 4 +- trunk/src/app/srs_app_http_static.hpp | 16 +- trunk/src/app/srs_app_http_stream.hpp | 36 ++-- trunk/src/app/srs_app_ingest.hpp | 14 +- trunk/src/app/srs_app_latest_version.hpp | 6 +- trunk/src/app/srs_app_listener.hpp | 44 ++--- trunk/src/app/srs_app_log.hpp | 6 +- trunk/src/app/srs_app_mpegts_udp.hpp | 26 +-- trunk/src/app/srs_app_ng_exec.hpp | 6 +- trunk/src/app/srs_app_process.hpp | 6 +- trunk/src/app/srs_app_recv_thread.hpp | 14 +- trunk/src/app/srs_app_refer.hpp | 2 +- trunk/src/app/srs_app_rtc_api.hpp | 30 +-- trunk/src/app/srs_app_rtc_codec.hpp | 4 +- trunk/src/app/srs_app_rtc_conn.hpp | 108 +++++------ trunk/src/app/srs_app_rtc_dtls.hpp | 24 +-- trunk/src/app/srs_app_rtc_network.hpp | 32 ++-- trunk/src/app/srs_app_rtc_server.hpp | 8 +- trunk/src/app/srs_app_rtc_source.hpp | 102 +++++----- trunk/src/app/srs_app_rtmp_conn.hpp | 26 +-- trunk/src/app/srs_app_rtmp_source.hpp | 46 ++--- trunk/src/app/srs_app_rtsp_conn.hpp | 26 +-- trunk/src/app/srs_app_rtsp_source.hpp | 40 ++-- trunk/src/app/srs_app_security.hpp | 2 +- trunk/src/app/srs_app_server.hpp | 52 ++--- trunk/src/app/srs_app_srt_conn.hpp | 18 +- trunk/src/app/srs_app_srt_listener.hpp | 4 +- trunk/src/app/srs_app_srt_server.hpp | 8 +- trunk/src/app/srs_app_srt_source.hpp | 26 +-- trunk/src/app/srs_app_st.hpp | 20 +- trunk/src/app/srs_app_statistic.hpp | 14 +- trunk/src/app/srs_app_stream_bridge.hpp | 6 +- trunk/src/app/srs_app_stream_token.hpp | 4 +- trunk/src/core/srs_core.hpp | 9 +- trunk/src/core/srs_core_autofree.hpp | 22 +-- trunk/src/core/srs_core_deprecated.hpp | 2 +- trunk/src/kernel/srs_kernel_aac.hpp | 4 +- trunk/src/kernel/srs_kernel_balance.hpp | 2 +- trunk/src/kernel/srs_kernel_buffer.hpp | 6 +- trunk/src/kernel/srs_kernel_error.hpp | 6 +- trunk/src/kernel/srs_kernel_file.hpp | 4 +- trunk/src/kernel/srs_kernel_flv.hpp | 12 +- trunk/src/kernel/srs_kernel_hourglass.hpp | 12 +- trunk/src/kernel/srs_kernel_kbps.hpp | 14 +- trunk/src/kernel/srs_kernel_log.hpp | 2 +- trunk/src/kernel/srs_kernel_mp3.hpp | 2 +- trunk/src/kernel/srs_kernel_mp4.hpp | 180 +++++++++--------- trunk/src/kernel/srs_kernel_packet.hpp | 12 +- trunk/src/kernel/srs_kernel_pithy_print.hpp | 12 +- trunk/src/kernel/srs_kernel_ps.hpp | 6 +- trunk/src/kernel/srs_kernel_resource.hpp | 12 +- trunk/src/kernel/srs_kernel_rtc_queue.hpp | 8 +- trunk/src/kernel/srs_kernel_rtc_rtcp.hpp | 26 +-- trunk/src/kernel/srs_kernel_rtc_rtp.hpp | 26 +-- trunk/src/kernel/srs_kernel_stream.hpp | 2 +- trunk/src/kernel/srs_kernel_ts.hpp | 42 ++-- trunk/src/protocol/srs_protocol_amf0.hpp | 28 +-- trunk/src/protocol/srs_protocol_conn.hpp | 10 +- .../src/protocol/srs_protocol_http_client.hpp | 12 +- trunk/src/protocol/srs_protocol_http_conn.hpp | 36 ++-- .../src/protocol/srs_protocol_http_stack.hpp | 32 ++-- trunk/src/protocol/srs_protocol_json.hpp | 10 +- trunk/src/protocol/srs_protocol_log.hpp | 4 +- trunk/src/protocol/srs_protocol_protobuf.hpp | 2 +- trunk/src/protocol/srs_protocol_rtc_stun.hpp | 4 +- trunk/src/protocol/srs_protocol_rtmp_conn.hpp | 8 +- .../protocol/srs_protocol_rtmp_handshake.hpp | 18 +- .../protocol/srs_protocol_rtmp_msg_array.hpp | 2 +- .../src/protocol/srs_protocol_rtmp_stack.hpp | 70 +++---- trunk/src/protocol/srs_protocol_rtp.hpp | 2 +- .../src/protocol/srs_protocol_rtsp_stack.hpp | 10 +- trunk/src/protocol/srs_protocol_sdp.hpp | 10 +- trunk/src/protocol/srs_protocol_srt.hpp | 6 +- trunk/src/protocol/srs_protocol_st.hpp | 14 +- trunk/src/protocol/srs_protocol_stream.hpp | 2 +- trunk/src/utest/srs_utest.cpp | 10 +- trunk/src/utest/srs_utest.hpp | 28 +-- trunk/src/utest/srs_utest_app9.hpp | 2 +- trunk/src/utest/srs_utest_config.hpp | 8 +- trunk/src/utest/srs_utest_core.hpp | 2 +- trunk/src/utest/srs_utest_kernel.hpp | 4 +- trunk/src/utest/srs_utest_protocol.hpp | 4 +- trunk/src/utest/srs_utest_protocol2.cpp | 4 +- trunk/src/utest/srs_utest_rtmp.hpp | 2 +- trunk/src/utest/srs_utest_service.hpp | 2 +- 105 files changed, 1069 insertions(+), 1006 deletions(-) diff --git a/.augment-guidelines b/.augment-guidelines index 7057bad63..c8223c089 100644 --- a/.augment-guidelines +++ b/.augment-guidelines @@ -301,6 +301,58 @@ code_patterns: exceptions: "Only applies to SRS-defined classes/structs - do NOT change 3rd party code like llhttp" rationale: "Consistent naming convention across SRS codebase for better code readability and maintenance - underscore distinguishes member variables from local variables and parameters" + access_specifiers_for_testing: + - pattern: "SRS_DECLARE_PRIVATE and SRS_DECLARE_PROTECTED macros" + description: "MANDATORY - Always use SRS_DECLARE_PRIVATE instead of 'private' and SRS_DECLARE_PROTECTED instead of 'protected' in class definitions" + purpose: "Enables unit tests to access private and protected members for dependency injection and mocking" + + macro_definition: | + #ifdef SRS_FORCE_PUBLIC4UTEST + #define SRS_DECLARE_PRIVATE public + #define SRS_DECLARE_PROTECTED public + #else + #define SRS_DECLARE_PRIVATE private + #define SRS_DECLARE_PROTECTED protected + #endif + + usage: | + WRONG: Using standard C++ access specifiers + class SrsBufferCache { + private: + ISrsAppConfig *config_; + ISrsRequest *req_; + protected: + virtual srs_error_t do_start(); + public: + srs_error_t start(); + }; + + CORRECT: Using SRS access specifier macros + class SrsBufferCache { + SRS_DECLARE_PRIVATE: + ISrsAppConfig *config_; + ISrsRequest *req_; + SRS_DECLARE_PROTECTED: + virtual srs_error_t do_start(); + public: + srs_error_t start(); + }; + + rules: + - "ALWAYS use SRS_DECLARE_PRIVATE instead of 'private' keyword" + - "ALWAYS use SRS_DECLARE_PROTECTED instead of 'protected' keyword" + - "Use standard 'public' keyword for public members (no macro needed)" + - "This applies to ALL production code classes in trunk/src/" + - "When SRS_FORCE_PUBLIC4UTEST is defined, all private/protected members become public for testing" + + benefits: + - "Enables unit tests to inject mock dependencies into private member fields" + - "Allows tests to access and verify internal state" + - "Makes classes fully testable without breaking encapsulation in production" + - "Provides clean separation between production and test builds" + + rationale: "This pattern allows unit tests to access private/protected members for dependency injection and mocking, while maintaining proper encapsulation in production builds. It's essential for writing comprehensive unit tests that can mock all dependencies." + commenting_style: - pattern: "C++ style comments" description: "MANDATORY - Use C++ style comments (//) instead of C style comments (/* */)" diff --git a/trunk/src/app/srs_app_async_call.hpp b/trunk/src/app/srs_app_async_call.hpp index 3eb7f6daa..7d7a66a77 100644 --- a/trunk/src/app/srs_app_async_call.hpp +++ b/trunk/src/app/srs_app_async_call.hpp @@ -53,10 +53,10 @@ public: // That is, the task is execute/call in async mode. class SrsAsyncCallWorker : public ISrsCoroutineHandler, public ISrsAsyncCallWorker { -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; -protected: +SRS_DECLARE_PROTECTED: std::vector tasks_; srs_cond_t wait_; srs_mutex_t lock_; @@ -76,7 +76,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual void flush_tasks(); }; diff --git a/trunk/src/app/srs_app_caster_flv.hpp b/trunk/src/app/srs_app_caster_flv.hpp index d5572bd5d..93db154c5 100644 --- a/trunk/src/app/srs_app_caster_flv.hpp +++ b/trunk/src/app/srs_app_caster_flv.hpp @@ -49,10 +49,10 @@ public: // A TCP listener, for flv stream server. class SrsHttpFlvListener : public ISrsHttpFlvListener { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: SrsTcpListener *listener_; ISrsAppCasterFlv *caster_; @@ -83,10 +83,10 @@ public: // The stream caster for flv stream over HTTP POST. class SrsAppCasterFlv : public ISrsAppCasterFlv { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: std::string output_; SrsHttpServeMux *http_mux_; std::vector conns_; @@ -135,11 +135,11 @@ public: // The dynamic http connection, never drop the body. class SrsDynamicHttpConn : public ISrsDynamicHttpConn { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: // The manager object to manage the connection. ISrsResourceManager *manager_; std::string output_; @@ -148,7 +148,7 @@ private: ISrsProtocolReadWriter *skt_; ISrsHttpConn *conn_; -private: +SRS_DECLARE_PRIVATE: // The ip and port of client. std::string ip_; int port_; @@ -160,7 +160,7 @@ public: public: virtual srs_error_t proxy(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, std::string o); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_proxy(ISrsHttpResponseReader *rr, SrsFlvDecoder *dec); // Extract APIs from SrsTcpConnection. // Interface ISrsHttpConnOwner. @@ -194,7 +194,7 @@ public: // The http wrapper for file reader, to read http post stream like a file. class SrsHttpFileReader : public ISrsHttpFileReader { -private: +SRS_DECLARE_PRIVATE: ISrsHttpResponseReader *http_; SrsFileReader *file_reader_; diff --git a/trunk/src/app/srs_app_circuit_breaker.hpp b/trunk/src/app/srs_app_circuit_breaker.hpp index dda1d3002..6394d0739 100644 --- a/trunk/src/app/srs_app_circuit_breaker.hpp +++ b/trunk/src/app/srs_app_circuit_breaker.hpp @@ -48,7 +48,7 @@ public: class SrsCircuitBreaker : public ISrsCircuitBreaker, public ISrsFastTimerHandler { -private: +SRS_DECLARE_PRIVATE: bool enabled_; int high_threshold_; int high_pulse_; @@ -57,7 +57,7 @@ private: int dying_threshold_; int dying_pulse_; -private: +SRS_DECLARE_PRIVATE: int hybrid_high_water_level_; int hybrid_critical_water_level_; int hybrid_dying_water_level_; @@ -74,7 +74,7 @@ public: bool hybrid_critical_water_level(); bool hybrid_dying_water_level(); -private: +SRS_DECLARE_PRIVATE: srs_error_t on_timer(srs_utime_t interval); }; diff --git a/trunk/src/app/srs_app_config.hpp b/trunk/src/app/srs_app_config.hpp index debd78d44..971b5fa2e 100644 --- a/trunk/src/app/srs_app_config.hpp +++ b/trunk/src/app/srs_app_config.hpp @@ -65,7 +65,7 @@ namespace srs_internal // The buffer of config content. class SrsConfigBuffer { -protected: +SRS_DECLARE_PROTECTED: // The last available position. char *last_; // The end of buffer. @@ -228,7 +228,7 @@ public: virtual SrsJsonAny *dumps_arg0_to_number(); virtual SrsJsonAny *dumps_arg0_to_boolean(); // private parse. -private: +SRS_DECLARE_PRIVATE: // The directive parsing context. enum SrsDirectiveContext { // The root directives, parsing file. @@ -603,7 +603,7 @@ class SrsConfig : public ISrsAppConfig { friend class SrsConfDirective; // user command -private: +SRS_DECLARE_PRIVATE: // Whether show help and exit. bool show_help_; // Whether test config file and exit. @@ -616,27 +616,27 @@ private: // Set it by argv "-e" or env "SRS_ENV_ONLY=on". bool env_only_; // global env variables. -private: +SRS_DECLARE_PRIVATE: // The user parameters, the argc and argv. // The argv is " ".join(argv), where argv is from main(argc, argv). std::string argv_; // current working directory. std::string cwd_; // Config section -private: +SRS_DECLARE_PRIVATE: // The last parsed config file. // If reload, reload the config file. std::string config_file_; -protected: +SRS_DECLARE_PROTECTED: // The directive root. SrsConfDirective *root_; -private: +SRS_DECLARE_PRIVATE: // The cache for parsing the config from environment variables. SrsConfDirective *env_cache_; // Reload section -private: +SRS_DECLARE_PRIVATE: // The reload subscribers, when reload, callback all handlers. std::vector subscribes_; @@ -654,12 +654,12 @@ public: // @remark, user can test the config before reload it. virtual srs_error_t reload(SrsReloadState *pstate); -protected: +SRS_DECLARE_PROTECTED: // Reload from the config. // @remark, use protected for the utest to override with mock. virtual srs_error_t reload_conf(SrsConfig *conf); -private: +SRS_DECLARE_PRIVATE: // Parse options and file public: // Parse the cli, the main(argc,argv) function. @@ -670,19 +670,19 @@ public: // Marshal current config to file. virtual srs_error_t persistence(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_persistence(SrsFileWriter *fw); public: // Dumps the http_api sections to json for raw api info. virtual srs_error_t raw_to_json(SrsJsonObject *obj); -private: +SRS_DECLARE_PRIVATE: public: // Get the config file path. virtual std::string config(); -private: +SRS_DECLARE_PRIVATE: // Parse each argv. virtual srs_error_t parse_argv(int &i, char **argv); // Print help and exit. @@ -692,7 +692,7 @@ public: // Parse the config file, which is specified by cli. virtual srs_error_t parse_file(const char *filename); -private: +SRS_DECLARE_PRIVATE: // Build a buffer from a src, which is string content or filename. virtual srs_error_t build_buffer(std::string src, srs_internal::SrsConfigBuffer **pbuffer); @@ -700,11 +700,11 @@ public: // Check the parsed config. virtual srs_error_t check_config(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t check_normal_config(); virtual srs_error_t check_number_connections(); -protected: +SRS_DECLARE_PROTECTED: // Parse config from the buffer. // @param buffer, the config buffer, user must delete it. // @remark, use protected for the utest to override with mock. @@ -728,7 +728,7 @@ public: // Whether srs in docker. virtual bool get_in_docker(); -private: +SRS_DECLARE_PRIVATE: // Whether user use full.conf virtual bool is_full_config(); @@ -842,7 +842,7 @@ public: virtual bool get_rtc_server_black_hole(); virtual std::string get_rtc_server_black_hole_addr(); -private: +SRS_DECLARE_PRIVATE: virtual int get_rtc_server_reuseport2(); public: @@ -972,7 +972,7 @@ public: virtual srs_utime_t get_publish_kickoff_for_idle(std::string vhost); virtual srs_utime_t get_publish_kickoff_for_idle(SrsConfDirective *vhost); -private: +SRS_DECLARE_PRIVATE: // Get the global chunk size. virtual int get_global_chunk_size(); // forward section @@ -1025,7 +1025,7 @@ public: // Get the default streamid when client doesn't provide one. virtual std::string get_srt_default_streamid(); -private: +SRS_DECLARE_PRIVATE: SrsConfDirective *get_srt(std::string vhost); public: @@ -1034,7 +1034,7 @@ public: bool get_srt_to_rtmp(std::string vhost); // http_hooks section -private: +SRS_DECLARE_PRIVATE: // Get the http_hooks directive of vhost. virtual SrsConfDirective *get_vhost_http_hooks(std::string vhost); @@ -1182,7 +1182,7 @@ public: // @remark, we will use some variable, for instance, [vhost] to substitude with vhost. virtual std::string get_engine_output(SrsConfDirective *conf); // vhost exec secion -private: +SRS_DECLARE_PRIVATE: // Get the exec directive of vhost. virtual SrsConfDirective *get_exec(std::string vhost); @@ -1223,7 +1223,7 @@ public: // The ffmpeg log level. virtual std::string get_ff_log_level(); // The MPEG-DASH section. -private: +SRS_DECLARE_PRIVATE: virtual SrsConfDirective *get_dash(std::string vhost); public: @@ -1247,7 +1247,7 @@ public: // The timeout in srs_utime_t to dispose the dash. virtual srs_utime_t get_dash_dispose(std::string vhost); // hls section -private: +SRS_DECLARE_PRIVATE: // Get the hls directive of vhost. virtual SrsConfDirective *get_hls(std::string vhost); @@ -1316,7 +1316,7 @@ public: // Old fragments are kept. Default is on. virtual bool get_hls_recover(std::string vhost); // hds section -private: +SRS_DECLARE_PRIVATE: // Get the hds directive of vhost. virtual SrsConfDirective *get_hds(const std::string &vhost); @@ -1332,7 +1332,7 @@ public: // a window is a set of hds fragments. virtual srs_utime_t get_hds_window(const std::string &vhost); // dvr section -private: +SRS_DECLARE_PRIVATE: // Get the dvr directive. virtual SrsConfDirective *get_dvr(std::string vhost); @@ -1354,7 +1354,7 @@ public: // Get the time_jitter algorithm for dvr. virtual int get_dvr_time_jitter(std::string vhost); // http api section -private: +SRS_DECLARE_PRIVATE: // Whether http api enabled virtual bool get_http_api_enabled(SrsConfDirective *conf); @@ -1380,7 +1380,7 @@ public: // Get the http api auth password. virtual std::string get_http_api_auth_password(); // https api section -private: +SRS_DECLARE_PRIVATE: SrsConfDirective *get_https_api(); public: @@ -1389,7 +1389,7 @@ public: virtual std::string get_https_api_ssl_key(); virtual std::string get_https_api_ssl_cert(); // http stream section -private: +SRS_DECLARE_PRIVATE: // Whether http stream enabled. virtual bool get_http_stream_enabled(SrsConfDirective *conf); @@ -1403,7 +1403,7 @@ public: // Whether enable crossdomain for http static and stream server. virtual bool get_http_stream_crossdomain(); // https api section -private: +SRS_DECLARE_PRIVATE: SrsConfDirective *get_https_stream(); public: @@ -1413,7 +1413,7 @@ public: virtual std::string get_https_stream_ssl_key(); virtual std::string get_https_stream_ssl_cert(); // rtmps section -private: +SRS_DECLARE_PRIVATE: SrsConfDirective *get_rtmps(); public: @@ -1450,7 +1450,7 @@ public: // used to generate the flv stream mount path. virtual std::string get_vhost_http_remux_mount(std::string vhost); // http heartbeat section -private: +SRS_DECLARE_PRIVATE: // Get the heartbeat directive. virtual SrsConfDirective *get_heartbeat(); @@ -1467,7 +1467,7 @@ public: virtual bool get_heartbeat_summaries(); bool get_heartbeat_ports(); // stats section -private: +SRS_DECLARE_PRIVATE: // Get the stats directive. virtual SrsConfDirective *get_stats(); diff --git a/trunk/src/app/srs_app_coworkers.hpp b/trunk/src/app/srs_app_coworkers.hpp index 7d7417127..c3c3c2bef 100644 --- a/trunk/src/app/srs_app_coworkers.hpp +++ b/trunk/src/app/srs_app_coworkers.hpp @@ -19,13 +19,13 @@ class SrsLiveSource; // For origin cluster. class SrsCoWorkers { -private: +SRS_DECLARE_PRIVATE: static SrsCoWorkers *instance_; -private: +SRS_DECLARE_PRIVATE: std::map streams_; -private: +SRS_DECLARE_PRIVATE: SrsCoWorkers(); virtual ~SrsCoWorkers(); @@ -35,7 +35,7 @@ public: public: virtual SrsJsonAny *dumps(std::string vhost, std::string coworker, std::string app, std::string stream); -private: +SRS_DECLARE_PRIVATE: virtual ISrsRequest *find_stream_info(std::string vhost, std::string app, std::string stream); public: diff --git a/trunk/src/app/srs_app_dash.hpp b/trunk/src/app/srs_app_dash.hpp index 1c0526a6c..1ffab25c1 100644 --- a/trunk/src/app/srs_app_dash.hpp +++ b/trunk/src/app/srs_app_dash.hpp @@ -49,7 +49,7 @@ public: // The init mp4 for FMP4. class SrsInitMp4 : public ISrsInitMp4 { -private: +SRS_DECLARE_PRIVATE: ISrsFileWriter *fw_; ISrsMp4M2tsInitEncoder *init_; ISrsFragment *fragment_; @@ -96,10 +96,10 @@ public: // The FMP4(Fragmented MP4) for DASH streaming. class SrsFragmentedMp4 : public ISrsFragmentedMp4 { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: ISrsFileWriter *fw_; ISrsMp4M2tsSegmentEncoder *enc_; ISrsFragment *fragment_; @@ -160,14 +160,14 @@ public: // The writer to write MPD for DASH. class SrsMpdWriter : public ISrsMpdWriter { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; -private: +SRS_DECLARE_PRIVATE: // The duration of fragment in srs_utime_t. srs_utime_t fragment_; // The period to update the mpd in srs_utime_t. @@ -187,7 +187,7 @@ private: // The number of current audio segment. uint64_t audio_number_; -private: +SRS_DECLARE_PRIVATE: // The home for fragment, relative to home. std::string fragment_home_; @@ -235,16 +235,16 @@ public: // The controller for DASH, control the MPD and FMP4 generating system. class SrsDashController : public ISrsDashController { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; SrsFormat *format_; ISrsMpdWriter *mpd_; -private: +SRS_DECLARE_PRIVATE: ISrsFragmentedMp4 *vcurrent_; ISrsFragmentWindow *vfragments_; ISrsFragmentedMp4 *acurrent_; @@ -258,11 +258,11 @@ private: // Had the video reaped, use to align audio/video segment's timestamp. bool video_reaped_; -private: +SRS_DECLARE_PRIVATE: // The fragment duration in srs_utime_t to reap it. srs_utime_t fragment_; -private: +SRS_DECLARE_PRIVATE: std::string home_; int video_track_id_; int audio_track_id_; @@ -281,7 +281,7 @@ public: virtual srs_error_t on_audio(SrsMediaPacket *shared_audio, SrsFormat *format); virtual srs_error_t on_video(SrsMediaPacket *shared_video, SrsFormat *format); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t refresh_mpd(SrsFormat *format); virtual srs_error_t refresh_init_mp4(SrsMediaPacket *msg, SrsFormat *format); }; @@ -309,15 +309,15 @@ public: // The MPEG-DASH encoder, transmux RTMP to DASH. class SrsDash : public ISrsDash { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: bool enabled_; bool disposable_; srs_utime_t last_update_time_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; ISrsOriginHub *hub_; ISrsDashController *controller_; diff --git a/trunk/src/app/srs_app_dvr.hpp b/trunk/src/app/srs_app_dvr.hpp index 6c4466be5..d64692738 100644 --- a/trunk/src/app/srs_app_dvr.hpp +++ b/trunk/src/app/srs_app_dvr.hpp @@ -60,10 +60,10 @@ public: // The segmenter for DVR, to write a segment file in flv/mp4. class SrsDvrSegmenter : public ISrsReloadHandler, public ISrsDvrSegmenter { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -protected: +SRS_DECLARE_PROTECTED: // The underlayer file object. ISrsFileWriter *fs_; // Whether wait keyframe to reap segment. @@ -71,11 +71,11 @@ protected: // The FLV/MP4 fragment file. SrsFragment *fragment_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; ISrsDvrPlan *plan_; -private: +SRS_DECLARE_PRIVATE: SrsRtmpJitter *jitter_; SrsRtmpJitterAlgorithm jitter_algorithm_; @@ -109,14 +109,14 @@ public: // @remark ignore when already closed. virtual srs_error_t close(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t open_encoder() = 0; virtual srs_error_t encode_metadata(SrsMediaPacket *metadata) = 0; virtual srs_error_t encode_audio(SrsMediaPacket *audio, SrsFormat *format) = 0; virtual srs_error_t encode_video(SrsMediaPacket *video, SrsFormat *format) = 0; virtual srs_error_t close_encoder() = 0; -private: +SRS_DECLARE_PRIVATE: // Generate the flv segment path. virtual std::string generate_path(); // When update the duration of segment by rtmp msg. @@ -126,14 +126,14 @@ private: // The FLV segmenter to use FLV encoder to write file. class SrsDvrFlvSegmenter : public SrsDvrSegmenter { -private: +SRS_DECLARE_PRIVATE: ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: // The FLV encoder, for FLV target. ISrsFlvTransmuxer *enc_; -private: +SRS_DECLARE_PRIVATE: // The offset of file for duration value. // The next 8 bytes is the double value. int64_t duration_offset_; @@ -150,7 +150,7 @@ public: public: virtual srs_error_t refresh_metadata(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t open_encoder(); virtual srs_error_t encode_metadata(SrsMediaPacket *metadata); virtual srs_error_t encode_audio(SrsMediaPacket *audio, SrsFormat *format); @@ -161,10 +161,10 @@ protected: // The MP4 segmenter to use MP4 encoder to write file. class SrsDvrMp4Segmenter : public SrsDvrSegmenter { -private: +SRS_DECLARE_PRIVATE: ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: // The MP4 encoder, for MP4 target. ISrsMp4Encoder *enc_; @@ -175,7 +175,7 @@ public: public: virtual srs_error_t refresh_metadata(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t open_encoder(); virtual srs_error_t encode_metadata(SrsMediaPacket *metadata); virtual srs_error_t encode_audio(SrsMediaPacket *audio, SrsFormat *format); @@ -186,11 +186,11 @@ protected: // the dvr async call. class SrsDvrAsyncCallOnDvr : public ISrsAsyncCallTask { -private: +SRS_DECLARE_PRIVATE: ISrsHttpHooks *hooks_; ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: SrsContextId cid_; std::string path_; ISrsRequest *req_; @@ -224,14 +224,14 @@ public: // The DVR plan, when and how to reap segment. class SrsDvrPlan : public ISrsReloadHandler, public ISrsDvrPlan { -protected: +SRS_DECLARE_PROTECTED: ISrsAsyncCallWorker *async_; ISrsAppConfig *config_; public: ISrsRequest *req_; -protected: +SRS_DECLARE_PROTECTED: ISrsOriginHub *hub_; ISrsDvrSegmenter *segment_; bool dvr_enabled_; @@ -271,7 +271,7 @@ public: // The DVR segment plan: reap flv when duration exceed. class SrsDvrSegmentPlan : public SrsDvrPlan { -private: +SRS_DECLARE_PRIVATE: // in config, in srs_utime_t srs_utime_t cduration_; bool wait_keyframe_; @@ -289,7 +289,7 @@ public: virtual srs_error_t on_audio(SrsMediaPacket *shared_audio, SrsFormat *format); virtual srs_error_t on_video(SrsMediaPacket *shared_video, SrsFormat *format); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t update_duration(SrsMediaPacket *msg); }; @@ -313,16 +313,16 @@ public: // DVR(Digital Video Recorder) to record RTMP stream to flv/mp4 file. class SrsDvr : public ISrsReloadHandler, public ISrsDvr { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: ISrsOriginHub *hub_; ISrsDvrPlan *plan_; ISrsRequest *req_; -private: +SRS_DECLARE_PRIVATE: // whether the dvr is actived by filter, which is specified by dvr_apply. // we always initialize the dvr, which crote plan and segment object, // but they never create actual piece of file util the apply active it. diff --git a/trunk/src/app/srs_app_edge.hpp b/trunk/src/app/srs_app_edge.hpp index b8313e34a..a7db445e8 100644 --- a/trunk/src/app/srs_app_edge.hpp +++ b/trunk/src/app/srs_app_edge.hpp @@ -87,17 +87,17 @@ public: // The RTMP upstream of edge. class SrsEdgeRtmpUpstream : public ISrsEdgeUpstream { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: // For RTMP 302, if not empty, // use this as upstream. std::string redirect_; ISrsBasicRtmpClient *sdk_; -private: +SRS_DECLARE_PRIVATE: // Current selected server, the ip:port. std::string selected_ip_; int selected_port_; @@ -122,20 +122,20 @@ public: // The HTTP FLV upstream of edge. class SrsEdgeFlvUpstream : public ISrsEdgeUpstream { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: std::string schema_; ISrsHttpClient *sdk_; ISrsHttpMessage *hr_; -private: +SRS_DECLARE_PRIVATE: ISrsFileReader *reader_; ISrsFlvDecoder *decoder_; -private: +SRS_DECLARE_PRIVATE: // We might modify the request by HTTP redirect. ISrsRequest *req_; // Current selected server, the ip:port. @@ -149,7 +149,7 @@ public: public: virtual srs_error_t connect(ISrsRequest *r, ISrsLbRoundRobin *lb); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_connect(ISrsRequest *r, ISrsLbRoundRobin *lb, int redirect_depth); public: @@ -182,14 +182,14 @@ public: // The edge used to ingest stream from origin. class SrsEdgeIngester : public ISrsCoroutineHandler, public ISrsEdgeIngester { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: // Because source references to this object, so we should directly use the source ptr. ISrsLiveSource *source_; -private: +SRS_DECLARE_PRIVATE: ISrsPlayEdge *edge_; ISrsRequest *req_; ISrsCoroutine *trd_; @@ -209,10 +209,10 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t ingest(std::string &redirect); virtual srs_error_t process_publish_message(SrsRtmpCommonMessage *msg, std::string &redirect); }; @@ -240,14 +240,14 @@ public: // The edge used to forward stream to origin. class SrsEdgeForwarder : public ISrsCoroutineHandler, public ISrsEdgeForwarder { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: // Because source references to this object, so we should directly use the source ptr. ISrsLiveSource *source_; -private: +SRS_DECLARE_PRIVATE: ISrsPublishEdge *edge_; ISrsRequest *req_; ISrsCoroutine *trd_; @@ -276,7 +276,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(); public: @@ -298,7 +298,7 @@ public: // The play edge control service. class SrsPlayEdge : public ISrsPlayEdge { -private: +SRS_DECLARE_PRIVATE: SrsEdgeState state_; ISrsEdgeIngester *ingester_; @@ -334,7 +334,7 @@ public: // The publish edge control service. class SrsPublishEdge : public ISrsPublishEdge { -private: +SRS_DECLARE_PRIVATE: SrsEdgeState state_; ISrsEdgeForwarder *forwarder_; diff --git a/trunk/src/app/srs_app_encoder.hpp b/trunk/src/app/srs_app_encoder.hpp index 1b796a039..583e1f1d0 100644 --- a/trunk/src/app/srs_app_encoder.hpp +++ b/trunk/src/app/srs_app_encoder.hpp @@ -38,11 +38,11 @@ public: // ffmpegs to transcode the specified stream. class SrsEncoder : public ISrsCoroutineHandler, public ISrsMediaEncoder { -private: +SRS_DECLARE_PRIVATE: std::string input_stream_name_; std::vector ffmpegs_; -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; SrsPithyPrint *pprint_; @@ -57,10 +57,10 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(); -private: +SRS_DECLARE_PRIVATE: virtual void clear_engines(); virtual SrsFFMPEG *at(int index); virtual srs_error_t parse_scope_engines(ISrsRequest *req); diff --git a/trunk/src/app/srs_app_factory.hpp b/trunk/src/app/srs_app_factory.hpp index d5aec498a..871253f7f 100644 --- a/trunk/src/app/srs_app_factory.hpp +++ b/trunk/src/app/srs_app_factory.hpp @@ -86,7 +86,7 @@ public: // The factory to create app objects. class SrsAppFactory : public ISrsAppFactory { -private: +SRS_DECLARE_PRIVATE: ISrsKernelFactory *kernel_factory_; public: diff --git a/trunk/src/app/srs_app_ffmpeg.hpp b/trunk/src/app/srs_app_ffmpeg.hpp index 624b79517..151ad7f0c 100644 --- a/trunk/src/app/srs_app_ffmpeg.hpp +++ b/trunk/src/app/srs_app_ffmpeg.hpp @@ -51,17 +51,17 @@ public: // A transcode engine: ffmepg, used to transcode a stream to another. class SrsFFMPEG : public ISrsFFMPEG { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: ISrsProcess *process_; std::vector params_; -private: +SRS_DECLARE_PRIVATE: std::string log_file_; -private: +SRS_DECLARE_PRIVATE: std::string ffmpeg_; std::vector iparams_; std::vector perfile_; diff --git a/trunk/src/app/srs_app_forward.hpp b/trunk/src/app/srs_app_forward.hpp index 6891b0458..ceec2d88a 100644 --- a/trunk/src/app/srs_app_forward.hpp +++ b/trunk/src/app/srs_app_forward.hpp @@ -45,19 +45,19 @@ public: // Forward the stream to other servers. class SrsForwarder : public ISrsCoroutineHandler, public ISrsForwarder { -private: +SRS_DECLARE_PRIVATE: // The ep to forward, server[:port]. std::string ep_forward_; ISrsRequest *req_; -private: +SRS_DECLARE_PRIVATE: // The source or stream context id to bind to. SrsContextId source_cid_; -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; -private: +SRS_DECLARE_PRIVATE: SrsOriginHub *hub_; SrsSimpleRtmpClient *sdk_; SrsRtmpJitter *jitter_; @@ -90,10 +90,10 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t forward(); }; diff --git a/trunk/src/app/srs_app_fragment.hpp b/trunk/src/app/srs_app_fragment.hpp index 268127b8a..54ac2300f 100644 --- a/trunk/src/app/srs_app_fragment.hpp +++ b/trunk/src/app/srs_app_fragment.hpp @@ -51,7 +51,7 @@ public: // It's a media file, for example FLV or MP4, with duration. class SrsFragment : public ISrsFragment { -private: +SRS_DECLARE_PRIVATE: // The duration in srs_utime_t. srs_utime_t dur_; // The full file path of fragment. @@ -132,7 +132,7 @@ public: // The fragment window manage a series of fragment. class SrsFragmentWindow : public ISrsFragmentWindow { -private: +SRS_DECLARE_PRIVATE: std::vector fragments_; // The expired fragments, need to be free in future. std::vector expired_fragments_; diff --git a/trunk/src/app/srs_app_gb28181.hpp b/trunk/src/app/srs_app_gb28181.hpp index 580461374..90b0a5f5d 100644 --- a/trunk/src/app/srs_app_gb28181.hpp +++ b/trunk/src/app/srs_app_gb28181.hpp @@ -91,12 +91,12 @@ std::string srs_gb_state(SrsGbSessionState ostate, SrsGbSessionState state); // {"port":9000, "is_tcp": true} class SrsGoApiGbPublish : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsResourceManager *gb_manager_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: SrsConfDirective *conf_; public: @@ -106,7 +106,7 @@ public: public: virtual srs_error_t serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, SrsJsonObject *res); srs_error_t bind_session(std::string stream, uint64_t ssrc); }; @@ -139,26 +139,26 @@ public: // media objects use directly pointer to session, while session use shared ptr. class SrsGbSession : public ISrsGbSession { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: SrsContextId cid_; -private: +SRS_DECLARE_PRIVATE: // The shared resource which own this object, we should never free it because it's managed by shared ptr. SrsSharedResource *wrapper_; // The owner coroutine, allow user to interrupt the loop. ISrsInterruptable *owner_coroutine_; ISrsContextIdSetter *owner_cid_; -private: +SRS_DECLARE_PRIVATE: SrsGbSessionState state_; SrsSharedResource media_; ISrsGbMuxer *muxer_; -private: +SRS_DECLARE_PRIVATE: // When wait for media connecting, timeout if exceed. srs_utime_t connecting_starttime_; // The time we enter reinviting state. @@ -166,7 +166,7 @@ private: // The number of timeout, dispose session if exceed. uint32_t nn_timeout_; -private: +SRS_DECLARE_PRIVATE: SrsAlonePithyPrint *ppp_; srs_utime_t startime_; uint64_t total_packs_; @@ -175,7 +175,7 @@ private: uint64_t total_msgs_dropped_; uint64_t total_reserved_; -private: +SRS_DECLARE_PRIVATE: uint32_t media_id_; srs_utime_t media_starttime_; uint64_t media_msgs_; @@ -213,11 +213,11 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(); srs_error_t drive_state(); -private: +SRS_DECLARE_PRIVATE: SrsGbSessionState set_state(SrsGbSessionState v); // Interface ISrsResource public: @@ -238,13 +238,13 @@ public: // The Media listener for GB. class SrsGbListener : public ISrsGbListener, public ISrsTcpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsApiServerOwner *api_server_owner_; ISrsResourceManager *gb_manager_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: SrsConfDirective *conf_; ISrsIpListener *media_listener_; @@ -260,7 +260,7 @@ public: public: virtual srs_error_t on_tcp_client(ISrsListener *listener, srs_netfd_t stfd); -private: +SRS_DECLARE_PRIVATE: srs_error_t listen_api(); }; @@ -301,16 +301,16 @@ public: class SrsGbMediaTcpConn : public ISrsGbMediaTcpConn, // It's a resource, coroutine handler, and executor handler. public ISrsPsPackHandler { -private: +SRS_DECLARE_PRIVATE: ISrsResourceManager *gb_manager_; -private: +SRS_DECLARE_PRIVATE: bool connected_; // The owner session object, note that we use the raw pointer and should never free it. ISrsGbSession *session_; uint32_t nn_rtcp_; -private: +SRS_DECLARE_PRIVATE: // The shared resource which own this object, we should never free it because it's managed by shared ptr. SrsSharedResource *wrapper_; // The owner coroutine, allow user to interrupt the loop. @@ -318,7 +318,7 @@ private: ISrsContextIdSetter *owner_cid_; SrsContextId cid_; -private: +SRS_DECLARE_PRIVATE: ISrsPackContext *pack_; ISrsProtocolReadWriter *conn_; uint8_t *buffer_; @@ -351,13 +351,13 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(); // Interface ISrsPsPackHandler public: virtual srs_error_t on_ps_pack(SrsPsPacket *ps, const std::vector &msgs); -private: +SRS_DECLARE_PRIVATE: // Create session if no one, or bind to an existed session. srs_error_t bind_session(uint32_t ssrc, ISrsGbSession **psession); }; @@ -379,7 +379,7 @@ public: // we must recalc the timestamp. class SrsMpegpsQueue : public ISrsMpegpsQueue { -private: +SRS_DECLARE_PRIVATE: // The key: dts, value: msg. std::map msgs_; int nb_audios_; @@ -409,16 +409,16 @@ public: // Mux GB28181 to RTMP. class SrsGbMuxer : public ISrsGbMuxer { -private: +SRS_DECLARE_PRIVATE: ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: // The owner session object, note that we use the raw pointer and should never free it. ISrsGbSession *session_; std::string output_; ISrsBasicRtmpClient *sdk_; -private: +SRS_DECLARE_PRIVATE: ISrsRawH264Stream *avc_; std::string h264_sps_; bool h264_sps_changed_; @@ -433,11 +433,11 @@ private: std::string h265_pps_; bool vps_sps_pps_sent_; -private: +SRS_DECLARE_PRIVATE: ISrsRawAacStream *aac_; std::string aac_specific_config_; -private: +SRS_DECLARE_PRIVATE: ISrsMpegpsQueue *queue_; ISrsPithyPrint *pprint_; @@ -449,7 +449,7 @@ public: void setup(std::string output); srs_error_t on_ts_message(SrsTsMessage *msg); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t on_ts_video(SrsTsMessage *msg, SrsBuffer *avs); virtual srs_error_t mux_h264(SrsTsMessage *msg, SrsBuffer *avs); virtual srs_error_t write_h264_sps_pps(uint32_t dts, uint32_t pts); @@ -461,7 +461,7 @@ private: virtual srs_error_t write_audio_raw_frame(char *frame, int frame_size, SrsRawAacStreamCodec *codec, uint32_t dts); virtual srs_error_t rtmp_write_packet(char type, uint32_t timestamp, char *data, int size); -private: +SRS_DECLARE_PRIVATE: // Connect to RTMP server. virtual srs_error_t connect(); // Close the connection to RTMP server. @@ -484,7 +484,7 @@ class SrsRecoverablePsContext : public ISrsRecoverablePsContext public: ISrsPsContext *ctx_; -private: +SRS_DECLARE_PRIVATE: // If decoding error, enter the recover mode. Drop all left bytes util next pack header. int recover_; @@ -497,7 +497,7 @@ public: // parsed by previous decoding, we should move to the start of payload bytes. virtual srs_error_t decode_rtp(SrsBuffer *stream, int reserved, ISrsPsMessageHandler *handler); -private: +SRS_DECLARE_PRIVATE: // Decode the RTP payload as PS pack stream. virtual srs_error_t decode(SrsBuffer *stream, ISrsPsMessageHandler *handler); // When got error, drop data and enter recover mode. @@ -530,7 +530,7 @@ public: // PS pack stream. class SrsPackContext : public ISrsPackContext { -private: +SRS_DECLARE_PRIVATE: // To process a pack of TS/PS messages. ISrsPsPackHandler *handler_; // Note that it might be freed, so never use its fields. diff --git a/trunk/src/app/srs_app_hds.hpp b/trunk/src/app/srs_app_hds.hpp index 59562c051..e64de1374 100644 --- a/trunk/src/app/srs_app_hds.hpp +++ b/trunk/src/app/srs_app_hds.hpp @@ -45,12 +45,12 @@ public: srs_error_t on_video(SrsMediaPacket *msg); srs_error_t on_audio(SrsMediaPacket *msg); -private: +SRS_DECLARE_PRIVATE: srs_error_t flush_mainfest(); srs_error_t flush_bootstrap(); void adjust_windows(); -private: +SRS_DECLARE_PRIVATE: std::list fragments_; SrsHdsFragment *currentSegment_; int fragment_index_; diff --git a/trunk/src/app/srs_app_heartbeat.hpp b/trunk/src/app/srs_app_heartbeat.hpp index 952e79267..5c31fd102 100644 --- a/trunk/src/app/srs_app_heartbeat.hpp +++ b/trunk/src/app/srs_app_heartbeat.hpp @@ -19,7 +19,7 @@ public: public: virtual void heartbeat(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_heartbeat(); }; diff --git a/trunk/src/app/srs_app_hls.hpp b/trunk/src/app/srs_app_hls.hpp index 0cee7d04d..23d5cc067 100644 --- a/trunk/src/app/srs_app_hls.hpp +++ b/trunk/src/app/srs_app_hls.hpp @@ -73,11 +73,11 @@ public: class SrsInitMp4Segment : public SrsFragment { -private: +SRS_DECLARE_PRIVATE: ISrsFileWriter *fw_; SrsMp4M2tsInitEncoder init_; -private: +SRS_DECLARE_PRIVATE: // Key ID for encryption unsigned char kid_[16]; // Constant IV for encryption @@ -96,14 +96,14 @@ public: virtual srs_error_t write_video_only(SrsFormat *format, int v_tid); virtual srs_error_t write_audio_only(SrsFormat *format, int a_tid); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t init_encoder(); }; // TODO: merge this code with SrsFragmentedMp4 in dash class SrsHlsM4sSegment : public SrsFragment { -private: +SRS_DECLARE_PRIVATE: ISrsFileWriter *fw_; SrsFmp4SegmentEncoder enc_; @@ -130,11 +130,11 @@ public: // The hls async call: on_hls class SrsDvrAsyncCallOnHls : public ISrsAsyncCallTask { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsHttpHooks *hooks_; -private: +SRS_DECLARE_PRIVATE: SrsContextId cid_; std::string path_; std::string ts_url_; @@ -157,11 +157,11 @@ public: // The hls async call: on_hls_notify class SrsDvrAsyncCallOnHlsNotify : public ISrsAsyncCallTask { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsHttpHooks *hooks_; -private: +SRS_DECLARE_PRIVATE: SrsContextId cid_; std::string ts_url_; ISrsRequest *req_; @@ -184,14 +184,14 @@ public: // TODO: Rename to SrsHlsTsMuxer, for TS file only. class SrsHlsMuxer { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; -private: +SRS_DECLARE_PRIVATE: std::string hls_entry_prefix_; std::string hls_path_; std::string hls_ts_file_; @@ -204,7 +204,7 @@ private: srs_utime_t hls_window_; SrsAsyncCallWorker *async_; -private: +SRS_DECLARE_PRIVATE: // Whether use floor algorithm for timestamp. bool hls_ts_floor_; // The deviation in piece to adjust the fragment to be more @@ -215,7 +215,7 @@ private: int64_t accept_floor_ts_; int64_t previous_floor_ts_; -private: +SRS_DECLARE_PRIVATE: // Whether encrypted or not bool hls_keys_; int hls_fragments_per_key_; @@ -231,13 +231,13 @@ private: // The underlayer file writer. ISrsFileWriter *writer_; -private: +SRS_DECLARE_PRIVATE: int sequence_no_; srs_utime_t max_td_; std::string m3u8_; std::string m3u8_url_; -private: +SRS_DECLARE_PRIVATE: // The available cached segments in m3u8. SrsFragmentWindow *segments_; // The current writing segment. @@ -245,7 +245,7 @@ private: // The ts context, to keep cc continous between ts. SrsTsContext *context_; -private: +SRS_DECLARE_PRIVATE: // Latest audio codec, parsed from stream. SrsAudioCodecId latest_acodec_; // Latest audio codec, parsed from stream. @@ -306,7 +306,7 @@ public: // Close segment(ts). virtual srs_error_t segment_close(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_segment_close(); virtual srs_error_t write_hls_key(); virtual srs_error_t refresh_m3u8(); @@ -318,7 +318,7 @@ public: // HLS recover mode. srs_error_t recover_hls(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_recover_hls(); }; @@ -327,14 +327,14 @@ private: // to flush video/audio, without any mechenisms. class SrsHlsFmp4Muxer { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; -private: +SRS_DECLARE_PRIVATE: std::string hls_entry_prefix_; std::string hls_path_; std::string hls_m4s_file_; @@ -347,7 +347,7 @@ private: srs_utime_t hls_window_; SrsAsyncCallWorker *async_; -private: +SRS_DECLARE_PRIVATE: // Whether use floor algorithm for timestamp. bool hls_ts_floor_; // The deviation in piece to adjust the fragment to be more @@ -359,7 +359,7 @@ private: int64_t previous_floor_ts_; bool init_mp4_ready_; -private: +SRS_DECLARE_PRIVATE: // Whether encrypted or not // TODO: fmp4 encryption is not yet implemented. // fmp4 support four kinds of protection scheme: 'cenc', 'cbc1', 'cens', 'cbcs'. @@ -385,7 +385,7 @@ private: // The underlayer file writer. ISrsFileWriter *writer_; -private: +SRS_DECLARE_PRIVATE: int sequence_no_; srs_utime_t max_td_; std::string m3u8_; @@ -395,13 +395,13 @@ private: int audio_track_id_; uint64_t video_dts_; -private: +SRS_DECLARE_PRIVATE: // The available cached segments in m3u8. SrsFragmentWindow *segments_; // The current writing segment. SrsHlsM4sSegment *current_; -private: +SRS_DECLARE_PRIVATE: // Latest audio codec, parsed from stream. SrsAudioCodecId latest_acodec_; // Latest audio codec, parsed from stream. @@ -461,7 +461,7 @@ public: // Close segment(ts). virtual srs_error_t segment_close(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_segment_close(); virtual srs_error_t write_hls_key(); virtual srs_error_t refresh_m3u8(); @@ -513,10 +513,10 @@ public: // TODO: Rename to SrsHlsTsController, for TS file only. class SrsHlsController : public ISrsHlsController { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: // The HLS muxer to reap ts and m3u8. // The TS is cached to SrsTsMessageCache then flush to ts segment. SrsHlsMuxer *muxer_; @@ -557,7 +557,7 @@ public: // write video to muxer. virtual srs_error_t write_video(SrsMediaPacket *shared_video, SrsFormat *format); -private: +SRS_DECLARE_PRIVATE: // Reopen the muxer for a new hls segment, // close current segment, open a new segment, // then write the key frame to the new segment. @@ -569,27 +569,27 @@ private: // Direct sample processing without caching, simpler than TS controller. class SrsHlsMp4Controller : public ISrsHlsController { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: bool has_video_sh_; bool has_audio_sh_; -private: +SRS_DECLARE_PRIVATE: int video_track_id_; int audio_track_id_; -private: +SRS_DECLARE_PRIVATE: // Current audio dts. uint64_t audio_dts_; // Current video dts. uint64_t video_dts_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; -private: +SRS_DECLARE_PRIVATE: SrsHlsFmp4Muxer *muxer_; public: @@ -637,13 +637,13 @@ public: // TODO: FIXME: add utest for hls. class SrsHls : public ISrsHls { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: ISrsHlsController *controller_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; // Whether the HLS is enabled. bool enabled_; @@ -657,7 +657,7 @@ private: // To detect heartbeat and dispose it if configured. srs_utime_t last_update_time_; -private: +SRS_DECLARE_PRIVATE: SrsOriginHub *hub_; SrsRtmpJitter *jitter_; SrsPithyPrint *pprint_; @@ -669,7 +669,7 @@ public: public: virtual void async_reload(); -private: +SRS_DECLARE_PRIVATE: srs_error_t reload(); srs_error_t do_reload(int *reloading, int *reloaded, int *refreshed); @@ -697,7 +697,7 @@ public: // TODO: FIXME: Remove param is_sps_pps. virtual srs_error_t on_video(SrsMediaPacket *shared_video, SrsFormat *format); -private: +SRS_DECLARE_PRIVATE: virtual void hls_show_mux_log(); }; diff --git a/trunk/src/app/srs_app_http_api.hpp b/trunk/src/app/srs_app_http_api.hpp index 93291378a..8b9350b60 100644 --- a/trunk/src/app/srs_app_http_api.hpp +++ b/trunk/src/app/srs_app_http_api.hpp @@ -38,7 +38,7 @@ extern srs_error_t srs_api_response_code(ISrsHttpResponseWriter *w, ISrsHttpMess // For http root. class SrsGoApiRoot : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -51,7 +51,7 @@ public: class SrsGoApiApi : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -64,7 +64,7 @@ public: class SrsGoApiV1 : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -77,7 +77,7 @@ public: class SrsGoApiVersion : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -90,7 +90,7 @@ public: class SrsGoApiSummaries : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -103,7 +103,7 @@ public: class SrsGoApiRusages : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -116,7 +116,7 @@ public: class SrsGoApiSelfProcStats : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -129,7 +129,7 @@ public: class SrsGoApiSystemProcStats : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -142,7 +142,7 @@ public: class SrsGoApiMemInfos : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -155,7 +155,7 @@ public: class SrsGoApiAuthors : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -168,7 +168,7 @@ public: class SrsGoApiFeatures : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -181,7 +181,7 @@ public: class SrsGoApiRequests : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -194,7 +194,7 @@ public: class SrsGoApiVhosts : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -207,7 +207,7 @@ public: class SrsGoApiStreams : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -220,7 +220,7 @@ public: class SrsGoApiClients : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -233,14 +233,14 @@ public: class SrsGoApiRaw : public ISrsHttpHandler, public ISrsReloadHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: ISrsSignalHandler *handler_; -private: +SRS_DECLARE_PRIVATE: bool raw_api_; bool allow_reload_; bool allow_query_; @@ -257,7 +257,7 @@ public: class SrsGoApiClusters : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -270,7 +270,7 @@ public: class SrsGoApiError : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -284,7 +284,7 @@ public: #ifdef SRS_GPERF class SrsGoApiTcmalloc : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -299,10 +299,10 @@ public: #ifdef SRS_VALGRIND class SrsGoApiValgrind : public ISrsHttpHandler, public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; std::string task_; @@ -321,7 +321,7 @@ public: #ifdef SRS_SIGNAL_API class SrsGoApiSignal : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -335,11 +335,11 @@ public: class SrsGoApiMetrics : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: bool enabled_; std::string label_; std::string tag_; diff --git a/trunk/src/app/srs_app_http_conn.hpp b/trunk/src/app/srs_app_http_conn.hpp index 6fa6d1d56..ae5de8172 100644 --- a/trunk/src/app/srs_app_http_conn.hpp +++ b/trunk/src/app/srs_app_http_conn.hpp @@ -95,17 +95,17 @@ public: // The http connection which request the static or stream content. class SrsHttpConn : public ISrsHttpConn { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -protected: +SRS_DECLARE_PROTECTED: ISrsHttpParser *parser_; ISrsCommonHttpHandler *http_mux_; ISrsHttpCorsMux *cors_; ISrsHttpAuthMux *auth_; ISrsHttpConnOwner *handler_; -protected: +SRS_DECLARE_PROTECTED: ISrsProtocolReadWriter *skt_; // Each connection start a green thread, // when thread stop, the connection will be delete by server. @@ -114,7 +114,7 @@ protected: std::string ip_; int port_; -private: +SRS_DECLARE_PRIVATE: // The delta for statistic. ISrsNetworkDelta *delta_; // The create time in microseconds. @@ -137,7 +137,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(); virtual srs_error_t process_requests(ISrsRequest **preq); virtual srs_error_t process_request(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, int rid); @@ -179,11 +179,11 @@ public: // Drop body of request, only process the response. class SrsHttpxConn : public ISrsHttpxConn { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsStatistic *stat_; -private: +SRS_DECLARE_PRIVATE: // The manager object to manage the connection. ISrsResourceManager *manager_; ISrsProtocolReadWriter *io_; @@ -242,7 +242,7 @@ public: // The http server, use http stream or static server to serve requests. class SrsHttpServer : public ISrsHttpServer { -private: +SRS_DECLARE_PRIVATE: ISrsHttpStaticServer *http_static_; ISrsHttpStreamServer *http_stream_; diff --git a/trunk/src/app/srs_app_http_hooks.hpp b/trunk/src/app/srs_app_http_hooks.hpp index 11af2521c..567f0aff8 100644 --- a/trunk/src/app/srs_app_http_hooks.hpp +++ b/trunk/src/app/srs_app_http_hooks.hpp @@ -153,7 +153,7 @@ public: class SrsHttpHooks : public ISrsHttpHooks { -private: +SRS_DECLARE_PRIVATE: ISrsAppFactory *factory_; ISrsStatistic *stat_; ISrsAppConfig *config_; @@ -176,7 +176,7 @@ public: srs_error_t discover_co_workers(std::string url, std::string &host, int &port); srs_error_t on_forward_backend(std::string url, ISrsRequest *req, std::vector &rtmp_urls); -private: +SRS_DECLARE_PRIVATE: srs_error_t do_post(ISrsHttpClient *hc, std::string url, std::string req, int &code, std::string &res); }; diff --git a/trunk/src/app/srs_app_http_static.hpp b/trunk/src/app/srs_app_http_static.hpp index b0254b766..1666f36d8 100644 --- a/trunk/src/app/srs_app_http_static.hpp +++ b/trunk/src/app/srs_app_http_static.hpp @@ -35,7 +35,7 @@ public: // Server HLS streaming. class SrsHlsStream : public ISrsFastTimerHandler { -private: +SRS_DECLARE_PRIVATE: // The period of validity of the ctx std::map map_ctx_info_; @@ -47,7 +47,7 @@ public: virtual srs_error_t serve_m3u8_ctx(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, ISrsFileReaderFactory *factory, std::string fullpath, ISrsRequest *req, bool *served); virtual void on_serve_ts_ctx(ISrsHttpResponseWriter *w, ISrsHttpMessage *r); -private: +SRS_DECLARE_PRIVATE: srs_error_t serve_new_session(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, ISrsRequest *req, std::string &ctx); srs_error_t serve_exists_session(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, ISrsFileReaderFactory *factory, std::string fullpath); bool ctx_is_exist(std::string ctx); @@ -56,24 +56,24 @@ private: void http_hooks_on_stop(ISrsRequest *req); bool is_interrupt(std::string id); // interface ISrsFastTimerHandler -private: +SRS_DECLARE_PRIVATE: srs_error_t on_timer(srs_utime_t interval); -private: +SRS_DECLARE_PRIVATE: SrsSecurity *security_; }; // The Vod streaming, like FLV, MP4 or HLS streaming. class SrsVodStream : public SrsHttpFileServer { -private: +SRS_DECLARE_PRIVATE: SrsHlsStream hls_; public: SrsVodStream(std::string root_dir); virtual ~SrsVodStream(); -protected: +SRS_DECLARE_PROTECTED: // The flv vod stream supports flv?start=offset-bytes. // For example, http://server/file.flv?start=10240 // server will write flv header and sequence header, @@ -103,7 +103,7 @@ public: // serve http static file and flv/mp4 vod stream. class SrsHttpStaticServer : public ISrsHttpStaticServer { -private: +SRS_DECLARE_PRIVATE: ISrsHttpServeMux *mux_; public: @@ -118,7 +118,7 @@ public: public: virtual srs_error_t serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t mount_vhost(std::string vhost, std::string &pmount); }; diff --git a/trunk/src/app/srs_app_http_stream.hpp b/trunk/src/app/srs_app_http_stream.hpp index 463de132b..9773f2106 100644 --- a/trunk/src/app/srs_app_http_stream.hpp +++ b/trunk/src/app/srs_app_http_stream.hpp @@ -51,14 +51,14 @@ public: // A cache for HTTP Live Streaming encoder, to make android(weixin) happy. class SrsBufferCache : public ISrsCoroutineHandler, public ISrsBufferCache { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsLiveSourceManager *live_sources_; -private: +SRS_DECLARE_PRIVATE: srs_utime_t fast_cache_; -private: +SRS_DECLARE_PRIVATE: ISrsMessageQueue *queue_; ISrsRequest *req_; ISrsCoroutine *trd_; @@ -107,7 +107,7 @@ public: // Transmux RTMP to HTTP Live Streaming. class SrsFlvStreamEncoder : public ISrsBufferEncoder { -private: +SRS_DECLARE_PRIVATE: ISrsFlvTransmuxer *enc_; bool header_written_; bool has_audio_; @@ -138,14 +138,14 @@ public: // Write the tags in a time. virtual srs_error_t write_tags(SrsMediaPacket **msgs, int count); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t write_header(bool has_video, bool has_audio); }; // Transmux RTMP to HTTP TS Streaming. class SrsTsStreamEncoder : public ISrsBufferEncoder { -private: +SRS_DECLARE_PRIVATE: ISrsTsTransmuxer *enc_; public: @@ -171,7 +171,7 @@ public: // Transmux RTMP with AAC stream to HTTP AAC Streaming. class SrsAacStreamEncoder : public ISrsBufferEncoder { -private: +SRS_DECLARE_PRIVATE: ISrsAacTransmuxer *enc_; ISrsBufferCache *cache_; @@ -193,7 +193,7 @@ public: // Transmux RTMP with MP3 stream to HTTP MP3 Streaming. class SrsMp3StreamEncoder : public ISrsBufferEncoder { -private: +SRS_DECLARE_PRIVATE: ISrsMp3Transmuxer *enc_; ISrsBufferCache *cache_; @@ -215,7 +215,7 @@ public: // Write stream to http response direclty. class SrsBufferWriter : public SrsFileWriter { -private: +SRS_DECLARE_PRIVATE: ISrsHttpResponseWriter *writer_; public: @@ -251,13 +251,13 @@ public: // TODO: FIXME: Rename to SrsHttpLive class SrsLiveStream : public ISrsLiveStream { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsLiveSourceManager *live_sources_; ISrsStatistic *stat_; ISrsHttpHooks *hooks_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; ISrsBufferCache *cache_; ISrsSecurity *security_; @@ -274,7 +274,7 @@ public: public: virtual srs_error_t serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r); -private: +SRS_DECLARE_PRIVATE: srs_error_t serve_http_impl(ISrsHttpResponseWriter *w, ISrsHttpMessage *r); public: @@ -283,7 +283,7 @@ public: public: virtual void expire(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_serve_http(SrsLiveSource *source, ISrsLiveConsumer *consumer, ISrsHttpResponseWriter *w, ISrsHttpMessage *r); virtual srs_error_t http_hooks_on_play(ISrsHttpMessage *r); virtual void http_hooks_on_stop(ISrsHttpMessage *r); @@ -292,7 +292,7 @@ private: // The Live Entry, to handle HTTP Live Streaming. struct SrsLiveEntry { -private: +SRS_DECLARE_PRIVATE: bool is_flv_; bool is_ts_; bool is_aac_; @@ -342,11 +342,11 @@ public: // TODO: Support multiple stream. class SrsHttpStreamServer : public ISrsHttpStreamServer { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsHttpServeMux *mux_; -private: +SRS_DECLARE_PRIVATE: ISrsAsyncCallWorker *async_; public: @@ -373,14 +373,14 @@ public: public: virtual srs_error_t dynamic_match(ISrsHttpMessage *request, ISrsHttpHandler **ph); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t initialize_flv_streaming(); virtual srs_error_t initialize_flv_entry(std::string vhost); }; class SrsHttpStreamDestroy : public ISrsAsyncCallTask { -private: +SRS_DECLARE_PRIVATE: std::string sid_; std::map *streamHandlers_; ISrsHttpServeMux *mux_; diff --git a/trunk/src/app/srs_app_ingest.hpp b/trunk/src/app/srs_app_ingest.hpp index e84d5ac38..93f4c4adc 100644 --- a/trunk/src/app/srs_app_ingest.hpp +++ b/trunk/src/app/srs_app_ingest.hpp @@ -49,7 +49,7 @@ public: // Ingester ffmpeg object. class SrsIngesterFFMPEG : public ISrsIngesterFFMPEG { -private: +SRS_DECLARE_PRIVATE: std::string vhost_; std::string id_; ISrsFFMPEG *ffmpeg_; @@ -91,14 +91,14 @@ public: // push to SRS(or any RTMP server) over RTMP. class SrsIngester : public ISrsIngester, public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: ISrsAppFactory *app_factory_; ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: std::vector ingesters_; -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; ISrsPithyPrint *pprint_; // Whether the ingesters are expired, for example, the listen port changed, @@ -118,7 +118,7 @@ public: virtual srs_error_t start(); virtual void stop(); -private: +SRS_DECLARE_PRIVATE: // Notify FFMPEG to fast stop. virtual void fast_stop(); // When SRS quit, directly kill FFMPEG after fast stop. @@ -127,10 +127,10 @@ private: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(); -private: +SRS_DECLARE_PRIVATE: virtual void clear_engines(); virtual srs_error_t parse(); virtual srs_error_t parse_ingesters(SrsConfDirective *vhost); diff --git a/trunk/src/app/srs_app_latest_version.hpp b/trunk/src/app/srs_app_latest_version.hpp index 17cfbc2ed..de7d34911 100644 --- a/trunk/src/app/srs_app_latest_version.hpp +++ b/trunk/src/app/srs_app_latest_version.hpp @@ -19,12 +19,12 @@ class SrsLatestVersion : public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; std::string server_id_; std::string session_id_; -private: +SRS_DECLARE_PRIVATE: std::string match_version_; std::string stable_version_; @@ -38,7 +38,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: srs_error_t query_latest_version(std::string &url); }; diff --git a/trunk/src/app/srs_app_listener.hpp b/trunk/src/app/srs_app_listener.hpp index e6d65cc57..e902709ff 100644 --- a/trunk/src/app/srs_app_listener.hpp +++ b/trunk/src/app/srs_app_listener.hpp @@ -94,19 +94,19 @@ public: // Bind udp port, start thread to recv packet and handler it. class SrsUdpListener : public ISrsCoroutineHandler, public ISrsIpListener { -private: +SRS_DECLARE_PRIVATE: ISrsAppFactory *factory_; -protected: +SRS_DECLARE_PROTECTED: std::string label_; srs_netfd_t lfd_; ISrsCoroutine *trd_; -protected: +SRS_DECLARE_PROTECTED: char *buf_; int nb_buf_; -protected: +SRS_DECLARE_PROTECTED: ISrsUdpHandler *handler_; std::string ip_; int port_; @@ -119,11 +119,11 @@ public: ISrsListener *set_label(const std::string &label); ISrsListener *set_endpoint(const std::string &i, int p); -private: +SRS_DECLARE_PRIVATE: virtual int fd(); virtual srs_netfd_t stfd(); -private: +SRS_DECLARE_PRIVATE: void set_socket_buffer(); public: @@ -133,22 +133,22 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: srs_error_t do_cycle(); }; // Bind and listen tcp port, use handler to process the client. class SrsTcpListener : public ISrsCoroutineHandler, public ISrsIpListener { -private: +SRS_DECLARE_PRIVATE: ISrsAppFactory *factory_; -private: +SRS_DECLARE_PRIVATE: std::string label_; srs_netfd_t lfd_; ISrsCoroutine *trd_; -private: +SRS_DECLARE_PRIVATE: ISrsTcpHandler *handler_; std::string ip_; int port_; @@ -170,17 +170,17 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: srs_error_t do_cycle(); }; // Bind and listen tcp port, use handler to process the client. class SrsMultipleTcpListeners : public ISrsIpListener, public ISrsTcpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsAppFactory *factory_; -private: +SRS_DECLARE_PRIVATE: ISrsTcpHandler *handler_; std::vector listeners_; @@ -223,13 +223,13 @@ public: // TODO: FIXME: Rename it. Refine it for performance issue. class SrsUdpMuxSocket : public ISrsUdpMuxSocket { -private: +SRS_DECLARE_PRIVATE: // For sender yield only. uint32_t nn_msgs_for_yield_; std::map cache_; SrsBuffer *cache_buffer_; -private: +SRS_DECLARE_PRIVATE: char *buf_; int nb_buf_; int nread_; @@ -237,11 +237,11 @@ private: sockaddr_storage from_; int fromlen_; -private: +SRS_DECLARE_PRIVATE: std::string peer_ip_; int peer_port_; -private: +SRS_DECLARE_PRIVATE: // Cache for peer id. std::string peer_id_; // If the address changed, we should generate the peer_id. @@ -271,19 +271,19 @@ public: class SrsUdpMuxListener : public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: ISrsAppFactory *factory_; -private: +SRS_DECLARE_PRIVATE: srs_netfd_t lfd_; ISrsCoroutine *trd_; SrsContextId cid_; -private: +SRS_DECLARE_PRIVATE: char *buf_; int nb_buf_; -private: +SRS_DECLARE_PRIVATE: ISrsUdpMuxHandler *handler_; std::string ip_; int port_; @@ -302,7 +302,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: void set_socket_buffer(); }; diff --git a/trunk/src/app/srs_app_log.hpp b/trunk/src/app/srs_app_log.hpp index 77e64c431..3147c2362 100644 --- a/trunk/src/app/srs_app_log.hpp +++ b/trunk/src/app/srs_app_log.hpp @@ -20,11 +20,11 @@ // when you want to use different level, override this classs, set the protected _level. class SrsFileLog : public ISrsLog, public ISrsReloadHandler { -private: +SRS_DECLARE_PRIVATE: // Defined in SrsLogLevel. SrsLogLevel level_; -private: +SRS_DECLARE_PRIVATE: char *log_data_; // Log to file if specified srs_log_file int fd_; @@ -42,7 +42,7 @@ public: virtual void reopen(); virtual void log(SrsLogLevel level, const char *tag, const SrsContextId &context_id, const char *fmt, va_list args); -private: +SRS_DECLARE_PRIVATE: virtual void write_log(int &fd, char *str_log, int size, int level); virtual void open_log_file(); }; diff --git a/trunk/src/app/srs_app_mpegts_udp.hpp b/trunk/src/app/srs_app_mpegts_udp.hpp index 1cc87a031..ea56a314b 100644 --- a/trunk/src/app/srs_app_mpegts_udp.hpp +++ b/trunk/src/app/srs_app_mpegts_udp.hpp @@ -44,10 +44,10 @@ class ISrsAppFactory; // A UDP listener, for udp stream caster server. class SrsUdpCasterListener : public ISrsListener { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: ISrsIpListener *listener_; ISrsMpegtsOverUdp *caster_; @@ -78,7 +78,7 @@ public: // we must recalc the timestamp. class SrsMpegtsQueue : public ISrsMpegtsQueue { -private: +SRS_DECLARE_PRIVATE: // The key: dts, value: msg. std::map msgs_; int nb_audios_; @@ -107,19 +107,19 @@ public: // The mpegts over udp stream caster. class SrsMpegtsOverUdp : public ISrsMpegtsOverUdp { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: ISrsTsContext *context_; SrsSimpleStream *buffer_; std::string output_; -private: +SRS_DECLARE_PRIVATE: ISrsBasicRtmpClient *sdk_; -private: +SRS_DECLARE_PRIVATE: ISrsRawH264Stream *avc_; std::string h264_sps_; bool h264_sps_changed_; @@ -127,11 +127,11 @@ private: bool h264_pps_changed_; bool h264_sps_pps_sent_; -private: +SRS_DECLARE_PRIVATE: ISrsRawAacStream *aac_; std::string aac_specific_config_; -private: +SRS_DECLARE_PRIVATE: ISrsMpegtsQueue *queue_; ISrsPithyPrint *pprint_; @@ -145,23 +145,23 @@ public: public: virtual srs_error_t on_udp_packet(const sockaddr *from, const int fromlen, char *buf, int nb_buf); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t on_udp_bytes(std::string host, int port, char *buf, int nb_buf); // Interface ISrsTsHandler public: virtual srs_error_t on_ts_message(SrsTsMessage *msg); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t on_ts_video(SrsTsMessage *msg, SrsBuffer *avs); virtual srs_error_t write_h264_sps_pps(uint32_t dts, uint32_t pts); virtual srs_error_t write_h264_ipb_frame(char *frame, int frame_size, uint32_t dts, uint32_t pts); virtual srs_error_t on_ts_audio(SrsTsMessage *msg, SrsBuffer *avs); virtual srs_error_t write_audio_raw_frame(char *frame, int frame_size, SrsRawAacStreamCodec *codec, uint32_t dts); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t rtmp_write_packet(char type, uint32_t timestamp, char *data, int size); -private: +SRS_DECLARE_PRIVATE: // Connect to RTMP server. virtual srs_error_t connect(); // Close the connection to RTMP server. diff --git a/trunk/src/app/srs_app_ng_exec.hpp b/trunk/src/app/srs_app_ng_exec.hpp index eaf3ead3e..ad290acc2 100644 --- a/trunk/src/app/srs_app_ng_exec.hpp +++ b/trunk/src/app/srs_app_ng_exec.hpp @@ -36,7 +36,7 @@ public: // @see https://github.com/ossrs/srs/issues/367 class SrsNgExec : public ISrsCoroutineHandler, public ISrsNgExec { -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; SrsPithyPrint *pprint_; std::string input_stream_name_; @@ -53,10 +53,10 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t parse_exec_publish(ISrsRequest *req); virtual void clear_exec_publish(); virtual void show_exec_log_message(); diff --git a/trunk/src/app/srs_app_process.hpp b/trunk/src/app/srs_app_process.hpp index c1d9cae6f..9ce2b376d 100644 --- a/trunk/src/app/srs_app_process.hpp +++ b/trunk/src/app/srs_app_process.hpp @@ -57,13 +57,13 @@ public: // process->stop(); class SrsProcess : public ISrsProcess { -private: +SRS_DECLARE_PRIVATE: bool is_started_; // Whether SIGTERM send but need to wait or SIGKILL. bool fast_stopped_; pid_t pid_; -private: +SRS_DECLARE_PRIVATE: std::string bin_; std::string stdout_file_; std::string stderr_file_; @@ -87,7 +87,7 @@ public: // @remark the argv[0] must be the binary. virtual srs_error_t initialize(std::string binary, std::vector argv); -private: +SRS_DECLARE_PRIVATE: // Redirect standard I/O. virtual srs_error_t redirect_io(); diff --git a/trunk/src/app/srs_app_recv_thread.hpp b/trunk/src/app/srs_app_recv_thread.hpp index 6831bb93e..7dbf506e9 100644 --- a/trunk/src/app/srs_app_recv_thread.hpp +++ b/trunk/src/app/srs_app_recv_thread.hpp @@ -80,7 +80,7 @@ public: // The recv thread, use message handler to handle each received message. class SrsRecvThread : public ISrsRecvThread { -protected: +SRS_DECLARE_PROTECTED: ISrsCoroutine *trd_; ISrsMessagePumper *pumper_; ISrsRtmpServer *rtmp_; @@ -105,7 +105,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(); }; @@ -125,7 +125,7 @@ public: // @see: https://github.com/ossrs/srs/issues/217 class SrsQueueRecvThread : public ISrsQueueRecvThread { -private: +SRS_DECLARE_PRIVATE: std::vector queue_; ISrsRecvThread *trd_; ISrsRtmpServer *rtmp_; @@ -173,10 +173,10 @@ public: // @see: https://github.com/ossrs/srs/issues/237 class SrsPublishRecvThread : public ISrsPublishRecvThread { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: uint32_t nn_msgs_for_yield_; ISrsRecvThread *trd_; ISrsRtmpServer *rtmp_; @@ -234,7 +234,7 @@ public: virtual void on_read(ssize_t nread); #endif -private: +SRS_DECLARE_PRIVATE: virtual void set_socket_buffer(srs_utime_t sleep_v); }; @@ -254,7 +254,7 @@ public: // @see https://github.com/ossrs/srs/issues/636#issuecomment-298208427 class SrsHttpRecvThread : public ISrsHttpRecvThread { -private: +SRS_DECLARE_PRIVATE: SrsHttpxConn *conn_; ISrsCoroutine *trd_; diff --git a/trunk/src/app/srs_app_refer.hpp b/trunk/src/app/srs_app_refer.hpp index 54ec573cc..17399be4a 100644 --- a/trunk/src/app/srs_app_refer.hpp +++ b/trunk/src/app/srs_app_refer.hpp @@ -25,7 +25,7 @@ public: // @param refer the refer in config. virtual srs_error_t check(std::string page_url, SrsConfDirective *refer); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t check_single_refer(std::string page_url, std::string refer); }; diff --git a/trunk/src/app/srs_app_rtc_api.hpp b/trunk/src/app/srs_app_rtc_api.hpp index 9d33bdfe9..e3320c5d4 100644 --- a/trunk/src/app/srs_app_rtc_api.hpp +++ b/trunk/src/app/srs_app_rtc_api.hpp @@ -25,14 +25,14 @@ class ISrsHttpHooks; class SrsGoApiRtcPlay : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsStatistic *stat_; ISrsRtcSourceManager *rtc_sources_; ISrsLiveSourceManager *live_sources_; ISrsHttpHooks *hooks_; -private: +SRS_DECLARE_PRIVATE: ISrsRtcApiServer *server_; ISrsSecurity *security_; @@ -43,27 +43,27 @@ public: public: virtual srs_error_t serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, SrsJsonObject *res); public: virtual srs_error_t serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, SrsRtcUserConfig *ruc); -private: +SRS_DECLARE_PRIVATE: srs_error_t check_remote_sdp(const SrsSdp &remote_sdp); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t http_hooks_on_play(ISrsRequest *req); }; class SrsGoApiRtcPublish : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsStatistic *stat_; ISrsHttpHooks *hooks_; -private: +SRS_DECLARE_PRIVATE: ISrsRtcApiServer *server_; ISrsSecurity *security_; @@ -74,26 +74,26 @@ public: public: virtual srs_error_t serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, SrsJsonObject *res); public: virtual srs_error_t serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, SrsRtcUserConfig *ruc); -private: +SRS_DECLARE_PRIVATE: srs_error_t check_remote_sdp(const SrsSdp &remote_sdp); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t http_hooks_on_publish(ISrsRequest *req); }; // See https://datatracker.ietf.org/doc/draft-ietf-wish-whip/ class SrsGoApiRtcWhip : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: ISrsRtcApiServer *server_; SrsGoApiRtcPublish *publish_; SrsGoApiRtcPlay *play_; @@ -105,13 +105,13 @@ public: public: virtual srs_error_t serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, SrsRtcUserConfig *ruc); }; class SrsGoApiRtcNACK : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsRtcApiServer *server_; public: @@ -121,7 +121,7 @@ public: public: virtual srs_error_t serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, SrsJsonObject *res); }; diff --git a/trunk/src/app/srs_app_rtc_codec.hpp b/trunk/src/app/srs_app_rtc_codec.hpp index 9829016f0..5c4c6f951 100644 --- a/trunk/src/app/srs_app_rtc_codec.hpp +++ b/trunk/src/app/srs_app_rtc_codec.hpp @@ -58,7 +58,7 @@ public: // The audio transcoder, transcode audio from one codec to another. class SrsAudioTranscoder : public ISrsAudioTranscoder { -private: +SRS_DECLARE_PRIVATE: AVCodecContext *dec_; AVFrame *dec_frame_; AVPacket *dec_packet_; @@ -95,7 +95,7 @@ public: // @remark User should never free the data, it's managed by this transcoder. void aac_codec_header(uint8_t **data, int *len); -private: +SRS_DECLARE_PRIVATE: srs_error_t init_dec(SrsAudioCodecId from); srs_error_t init_enc(SrsAudioCodecId to, int channels, int samplerate, int bit_rate); srs_error_t init_swr(AVCodecContext *decoder); diff --git a/trunk/src/app/srs_app_rtc_conn.hpp b/trunk/src/app/srs_app_rtc_conn.hpp index 75b2d222b..73ad15bab 100644 --- a/trunk/src/app/srs_app_rtc_conn.hpp +++ b/trunk/src/app/srs_app_rtc_conn.hpp @@ -103,7 +103,7 @@ public: // The security transport, use DTLS/SRTP to protect the data. class SrsSecurityTransport : public ISrsRtcTransport { -private: +SRS_DECLARE_PRIVATE: ISrsRtcNetwork *network_; ISrsDtls *dtls_; ISrsSRTP *srtp_; @@ -134,7 +134,7 @@ public: virtual srs_error_t on_dtls_application_data(const char *data, const int len); virtual srs_error_t write_dtls_data(void *data, int size); -private: +SRS_DECLARE_PRIVATE: srs_error_t srtp_initialize(); }; @@ -155,7 +155,7 @@ public: // Plaintext transport, without DTLS or SRTP. class SrsPlaintextTransport : public ISrsRtcTransport { -private: +SRS_DECLARE_PRIVATE: ISrsRtcNetwork *network_; public: @@ -192,12 +192,12 @@ public: // A worker coroutine to request the PLI. class SrsRtcPliWorker : public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; ISrsCond *wait_; ISrsRtcPliWorkerHandler *handler_; -private: +SRS_DECLARE_PRIVATE: // Key is SSRC, value is the CID of subscriber which requests PLI. std::map plis_; @@ -216,7 +216,7 @@ public: // the rtc on_stop async call. class SrsRtcAsyncCallOnStop : public ISrsAsyncCallTask { -private: +SRS_DECLARE_PRIVATE: SrsContextId cid_; ISrsRequest *req_; ISrsHttpHooks *hooks_; @@ -235,22 +235,22 @@ public: // A RTC play stream, client pull and play stream from SRS. class SrsRtcPlayStream : public ISrsCoroutineHandler, public ISrsReloadHandler, public ISrsRtcPliWorkerHandler, public ISrsRtcSourceChangeCallback { -private: +SRS_DECLARE_PRIVATE: ISrsExecRtcAsyncTask *exec_; ISrsExpire *expire_; ISrsRtcPacketSender *sender_; -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsRtcSourceManager *rtc_sources_; ISrsStatistic *stat_; -private: +SRS_DECLARE_PRIVATE: SrsContextId cid_; SrsFastCoroutine *trd_; SrsRtcPliWorker *pli_worker_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; SrsSharedPtr source_; // key: publish_ssrc, value: send track to process rtp/rtcp @@ -259,7 +259,7 @@ private: // The pithy print for special stage. SrsErrorPithyPrint *nack_epp_; -private: +SRS_DECLARE_PRIVATE: // Fast cache for tracks. uint32_t cache_ssrc0_; uint32_t cache_ssrc1_; @@ -268,7 +268,7 @@ private: SrsRtcSendTrack *cache_track1_; SrsRtcSendTrack *cache_track2_; -private: +SRS_DECLARE_PRIVATE: // For merged-write messages. int mw_msgs_; bool realtime_; @@ -276,7 +276,7 @@ private: bool nack_enabled_; bool nack_no_copy_; -private: +SRS_DECLARE_PRIVATE: // Whether player started. bool is_started_; @@ -300,7 +300,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: srs_error_t send_packet(SrsRtpPacket *&pkt); public: @@ -310,7 +310,7 @@ public: public: srs_error_t on_rtcp(SrsRtcpCommon *rtcp); -private: +SRS_DECLARE_PRIVATE: srs_error_t on_rtcp_xr(SrsRtcpXr *rtcp); srs_error_t on_rtcp_nack(SrsRtcpNack *rtcp); srs_error_t on_rtcp_ps_feedback(SrsRtcpFbCommon *rtcp); @@ -341,7 +341,7 @@ public: // A fast timer for publish stream, for RTCP feedback. class SrsRtcPublishRtcpTimer : public ISrsFastTimerHandler { -private: +SRS_DECLARE_PRIVATE: ISrsRtcRtcpSender *sender_; srs_mutex_t lock_; @@ -349,17 +349,17 @@ public: SrsRtcPublishRtcpTimer(ISrsRtcRtcpSender *sender); virtual ~SrsRtcPublishRtcpTimer(); // interface ISrsFastTimerHandler -private: +SRS_DECLARE_PRIVATE: srs_error_t on_timer(srs_utime_t interval); }; // A fast timer for publish stream, for TWCC feedback. class SrsRtcPublishTwccTimer : public ISrsFastTimerHandler { -private: +SRS_DECLARE_PRIVATE: ISrsCircuitBreaker *circuit_breaker_; -private: +SRS_DECLARE_PRIVATE: ISrsRtcRtcpSender *sender_; srs_mutex_t lock_; @@ -367,18 +367,18 @@ public: SrsRtcPublishTwccTimer(ISrsRtcRtcpSender *sender); virtual ~SrsRtcPublishTwccTimer(); // interface ISrsFastTimerHandler -private: +SRS_DECLARE_PRIVATE: srs_error_t on_timer(srs_utime_t interval); }; // the rtc on_unpublish async call. class SrsRtcAsyncCallOnUnpublish : public ISrsAsyncCallTask { -private: +SRS_DECLARE_PRIVATE: ISrsHttpHooks *hooks_; ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: SrsContextId cid_; ISrsRequest *req_; @@ -394,54 +394,54 @@ public: // A RTC publish stream, client push and publish stream to SRS. class SrsRtcPublishStream : public ISrsRtpPacketDecodeHandler, public ISrsRtcPublishStream, public ISrsRtcPliWorkerHandler, public ISrsRtcRtcpSender { -private: +SRS_DECLARE_PRIVATE: ISrsExecRtcAsyncTask *exec_; ISrsExpire *expire_; ISrsRtcPacketReceiver *receiver_; ISrsCircuitBreaker *circuit_breaker_; -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; ISrsAppConfig *config_; ISrsRtcSourceManager *rtc_sources_; ISrsLiveSourceManager *live_sources_; ISrsSrtSourceManager *srt_sources_; -private: +SRS_DECLARE_PRIVATE: friend class SrsRtcPublishRtcpTimer; friend class SrsRtcPublishTwccTimer; SrsRtcPublishRtcpTimer *timer_rtcp_; SrsRtcPublishTwccTimer *timer_twcc_; -private: +SRS_DECLARE_PRIVATE: SrsContextId cid_; uint64_t nn_audio_frames_; SrsRtcPliWorker *pli_worker_; SrsErrorPithyPrint *twcc_epp_; -private: +SRS_DECLARE_PRIVATE: uint16_t pt_to_drop_; // Whether enabled nack. bool nack_enabled_; bool nack_no_copy_; bool twcc_enabled_; -private: +SRS_DECLARE_PRIVATE: bool request_keyframe_; SrsErrorPithyPrint *pli_epp_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; SrsSharedPtr source_; // Simulators. int nn_simulate_nack_drop_; -private: +SRS_DECLARE_PRIVATE: // track vector std::vector audio_tracks_; std::vector video_tracks_; -private: +SRS_DECLARE_PRIVATE: int twcc_id_; uint8_t twcc_fb_count_; SrsRtcpTWCC rtcp_twcc_; @@ -460,7 +460,7 @@ public: void set_all_tracks_status(bool status); virtual const SrsContextId &context_id(); -private: +SRS_DECLARE_PRIVATE: bool is_sender_started(); bool is_sender_twcc_enabled(); srs_error_t send_rtcp_rr(); @@ -470,7 +470,7 @@ public: srs_error_t on_rtp_cipher(char *buf, int nb_buf); srs_error_t on_rtp_plaintext(char *buf, int nb_buf); -private: +SRS_DECLARE_PRIVATE: srs_error_t do_on_rtp_plaintext(SrsRtpPacket *&pkt, SrsBuffer *buf); public: @@ -479,13 +479,13 @@ public: public: virtual void on_before_decode_payload(SrsRtpPacket *pkt, SrsBuffer *buf, ISrsRtpPayloader **ppayload, SrsRtpPacketPayloadType *ppt); -private: +SRS_DECLARE_PRIVATE: srs_error_t send_periodic_twcc(); public: srs_error_t on_rtcp(SrsRtcpCommon *rtcp); -private: +SRS_DECLARE_PRIVATE: srs_error_t on_rtcp_sr(SrsRtcpSR *rtcp); srs_error_t on_rtcp_xr(SrsRtcpXr *rtcp); @@ -496,10 +496,10 @@ public: public: void simulate_nack_drop(int nn); -private: +SRS_DECLARE_PRIVATE: void simulate_drop_packet(SrsRtpHeader *h, int nn_bytes); -private: +SRS_DECLARE_PRIVATE: srs_error_t on_twcc(uint16_t sn); SrsRtcAudioRecvTrack *get_audio_track(uint32_t ssrc); SrsRtcVideoRecvTrack *get_video_track(uint32_t ssrc); @@ -521,11 +521,11 @@ public: // A fast timer for conntion, for NACK feedback. class SrsRtcConnectionNackTimer : public ISrsFastTimerHandler { -private: +SRS_DECLARE_PRIVATE: ISrsSharedTimer *shared_timer_; ISrsCircuitBreaker *circuit_breaker_; -private: +SRS_DECLARE_PRIVATE: ISrsRtcConnectionNackTimerHandler *handler_; srs_mutex_t lock_; @@ -537,7 +537,7 @@ public: virtual srs_error_t initialize(); // interface ISrsFastTimerHandler -private: +SRS_DECLARE_PRIVATE: srs_error_t on_timer(srs_utime_t interval); }; @@ -609,13 +609,13 @@ class SrsRtcConnection : public ISrsRtcConnection { friend class SrsSecurityTransport; -private: +SRS_DECLARE_PRIVATE: ISrsCircuitBreaker *circuit_breaker_; ISrsResourceManager *conn_manager_; ISrsRtcSourceManager *rtc_sources_; ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: SrsRtcConnectionNackTimer *timer_nack_; ISrsExecRtcAsyncTask *exec_; SrsRtcPublisherNegotiator *publisher_negotiator_; @@ -624,11 +624,11 @@ private: public: bool disposing_; -private: +SRS_DECLARE_PRIVATE: iovec *cache_iov_; SrsBuffer *cache_buffer_; -private: +SRS_DECLARE_PRIVATE: // key: stream id std::map players_; // key: player track's ssrc @@ -638,7 +638,7 @@ private: // key: publisher track's ssrc std::map publishers_ssrc_map_; -private: +SRS_DECLARE_PRIVATE: // The local:remote username, such as m5x0n128:jvOm where local name is m5x0n128. std::string username_; // The random token to verify the WHIP DELETE request etc. @@ -646,14 +646,14 @@ private: // A group of networks, each has its own DTLS and SRTP context. SrsRtcNetworks *networks_; -private: +SRS_DECLARE_PRIVATE: // TODO: FIXME: Rename it. // The timeout of session, keep alive by STUN ping pong. srs_utime_t session_timeout_; // TODO: FIXME: Rename it. srs_utime_t last_stun_time_; -private: +SRS_DECLARE_PRIVATE: // For each RTC session, we use a specified cid for debugging logs. SrsContextId cid_; ISrsRequest *req_; @@ -661,7 +661,7 @@ private: SrsSdp local_sdp_; SrsSharedPtr publish_token_; -private: +SRS_DECLARE_PRIVATE: // twcc handler int twcc_id_; // Simulators. @@ -669,7 +669,7 @@ private: // Pithy print for PLI request. SrsErrorPithyPrint *pli_epp_; -private: +SRS_DECLARE_PRIVATE: bool nack_enabled_; public: @@ -721,14 +721,14 @@ public: srs_error_t on_rtp_cipher(char *data, int nb_data); srs_error_t on_rtp_plaintext(char *data, int nb_data); -private: +SRS_DECLARE_PRIVATE: // Decode the RTP header from buf, find the publisher by SSRC. srs_error_t find_publisher(char *buf, int size, SrsRtcPublishStream **ppublisher); public: srs_error_t on_rtcp(char *data, int nb_data); -private: +SRS_DECLARE_PRIVATE: srs_error_t dispatch_rtcp(SrsRtcpCommon *rtcp); public: @@ -770,7 +770,7 @@ public: // Notify by specified network. srs_error_t on_binding_request(SrsStunPacket *r, std::string &ice_pwd); -private: +SRS_DECLARE_PRIVATE: srs_error_t create_player(ISrsRequest *request, std::map sub_relations); srs_error_t create_publisher(ISrsRequest *request, SrsRtcSourceDescription *stream_desc); }; @@ -778,7 +778,7 @@ private: // Negotiate via SDP exchange for WebRTC publisher. class SrsRtcPublisherNegotiator { -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; ISrsAppConfig *config_; @@ -798,7 +798,7 @@ public: // Negotiate via SDP exchange for WebRTC player. class SrsRtcPlayerNegotiator { -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; ISrsAppConfig *config_; ISrsRtcSourceManager *rtc_sources_; diff --git a/trunk/src/app/srs_app_rtc_dtls.hpp b/trunk/src/app/srs_app_rtc_dtls.hpp index 271a1542d..9f3807d85 100644 --- a/trunk/src/app/srs_app_rtc_dtls.hpp +++ b/trunk/src/app/srs_app_rtc_dtls.hpp @@ -34,7 +34,7 @@ public: // The DTLS certificate. class SrsDtlsCertificate : public ISrsDtlsCertificate { -private: +SRS_DECLARE_PRIVATE: std::string fingerprint_; bool ecdsa_mode_; X509 *dtls_cert_; @@ -104,7 +104,7 @@ enum SrsDtlsState { class SrsDtlsImpl { -protected: +SRS_DECLARE_PROTECTED: SSL_CTX *dtls_ctx_; SSL *dtls_; BIO *bio_in_; @@ -113,7 +113,7 @@ protected: // @remark: dtls_version_ default value is SrsDtlsVersionAuto. SrsDtlsVersion version_; -protected: +SRS_DECLARE_PROTECTED: // Whether the handshake is done, for us only. // @remark For us only, means peer maybe not done, we also need to handle the DTLS packet. bool handshake_done_for_us_; @@ -135,7 +135,7 @@ public: virtual srs_error_t start_active_handshake(); virtual srs_error_t on_dtls(char *data, int nb_data); -protected: +SRS_DECLARE_PROTECTED: srs_error_t do_on_dtls(char *data, int nb_data); void state_trace(uint8_t *data, int length, bool incoming, int r0); @@ -143,7 +143,7 @@ public: srs_error_t get_srtp_key(std::string &recv_key, std::string &send_key); void callback_by_ssl(std::string type, std::string desc); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t on_handshake_done() = 0; virtual bool is_dtls_client() = 0; virtual srs_error_t start_arq() = 0; @@ -151,7 +151,7 @@ protected: class SrsDtlsClientImpl : public SrsDtlsImpl, public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: // ARQ thread, for role active(DTLS client). // @note If passive(DTLS server), the ARQ is driven by DTLS client. ISrsCoroutine *trd_; @@ -167,11 +167,11 @@ public: public: virtual srs_error_t initialize(std::string version, std::string role); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t on_handshake_done(); virtual bool is_dtls_client(); -protected: +SRS_DECLARE_PROTECTED: srs_error_t start_arq(); void stop_arq(); @@ -188,7 +188,7 @@ public: public: virtual srs_error_t initialize(std::string version, std::string role); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t on_handshake_done(); virtual bool is_dtls_client(); srs_error_t start_arq(); @@ -208,7 +208,7 @@ public: srs_error_t get_srtp_key(std::string &recv_key, std::string &send_key); void callback_by_ssl(std::string type, std::string desc); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t on_handshake_done(); virtual bool is_dtls_client(); virtual srs_error_t start_arq(); @@ -231,7 +231,7 @@ public: // The DTLS transport. class SrsDtls : public ISrsDtls { -private: +SRS_DECLARE_PRIVATE: SrsDtlsImpl *impl_; ISrsDtlsCallback *callback_; @@ -271,7 +271,7 @@ public: // The SRTP transport. class SrsSRTP : public ISrsSRTP { -private: +SRS_DECLARE_PRIVATE: srtp_t recv_ctx_; srtp_t send_ctx_; diff --git a/trunk/src/app/srs_app_rtc_network.hpp b/trunk/src/app/srs_app_rtc_network.hpp index 9288ce4b1..bfa649f29 100644 --- a/trunk/src/app/srs_app_rtc_network.hpp +++ b/trunk/src/app/srs_app_rtc_network.hpp @@ -62,7 +62,7 @@ public: // A group of networks, each has its own DTLS and SRTP context. class SrsRtcNetworks : public ISrsRtcNetworks { -private: +SRS_DECLARE_PRIVATE: // Network over UDP. ISrsRtcNetwork *udp_; // Network over TCP @@ -70,7 +70,7 @@ private: // Network over dummy ISrsRtcNetwork *dummy_; -private: +SRS_DECLARE_PRIVATE: // WebRTC session object. ISrsRtcConnection *conn_; // Delta object for statistics. @@ -170,17 +170,17 @@ public: // The WebRTC over UDP network. class SrsRtcUdpNetwork : public ISrsRtcNetwork { -private: +SRS_DECLARE_PRIVATE: ISrsResourceManager *conn_manager_; -private: +SRS_DECLARE_PRIVATE: // WebRTC session object. ISrsRtcConnection *conn_; // Delta object for statistics. ISrsEphemeralDelta *delta_; SrsRtcNetworkState state_; -private: +SRS_DECLARE_PRIVATE: // Pithy print for address change, use port as error code. SrsErrorPithyPrint *pp_address_change_; // The peer address, client maybe use more than one address, it's the current selected one. @@ -200,7 +200,7 @@ public: // When got STUN ping message. The peer address may change, we can identify that by STUN messages. srs_error_t on_stun(SrsStunPacket *r, char *data, int nb_data); -private: +SRS_DECLARE_PRIVATE: srs_error_t on_binding_request(SrsStunPacket *r, std::string ice_pwd); // DTLS transport functions. public: @@ -229,17 +229,17 @@ public: class SrsRtcTcpNetwork : public ISrsRtcNetwork { -private: +SRS_DECLARE_PRIVATE: ISrsRtcConnection *conn_; ISrsEphemeralDelta *delta_; ISrsProtocolReadWriter *sendonly_skt_; -private: +SRS_DECLARE_PRIVATE: // The DTLS transport over this network. ISrsRtcTransport *transport_; SrsSharedResource owner_; -private: +SRS_DECLARE_PRIVATE: std::string peer_ip_; int peer_port_; SrsRtcNetworkState state_; @@ -266,7 +266,7 @@ public: // When got STUN ping message. The peer address may change, we can identify that by STUN messages. srs_error_t on_stun(SrsStunPacket *r, char *data, int nb_data); -private: +SRS_DECLARE_PRIVATE: srs_error_t on_binding_request(SrsStunPacket *r, std::string ice_pwd); // DTLS transport functions. public: @@ -308,15 +308,15 @@ public: // For WebRTC over TCP. class SrsRtcTcpConn : public ISrsRtcTcpConn { -private: +SRS_DECLARE_PRIVATE: ISrsResourceManager *conn_manager_; ISrsStatistic *stat_; -private: +SRS_DECLARE_PRIVATE: // Because session references to this object, so we should directly use the session ptr. ISrsRtcConnection *session_; -private: +SRS_DECLARE_PRIVATE: // The ip and port of client. std::string ip_; int port_; @@ -326,7 +326,7 @@ private: // Packet cache. char *pkt_; -private: +SRS_DECLARE_PRIVATE: // The shared resource which own this object, we should never free it because it's managed by shared ptr. SrsSharedResource *wrapper_; // The owner coroutine, allow user to interrupt the loop. @@ -334,7 +334,7 @@ private: ISrsContextIdSetter *owner_cid_; SrsContextId cid_; -private: +SRS_DECLARE_PRIVATE: void setup(); public: @@ -364,7 +364,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(); srs_error_t handshake(); srs_error_t read_packet(char *pkt, int *nb_pkt); diff --git a/trunk/src/app/srs_app_rtc_server.hpp b/trunk/src/app/srs_app_rtc_server.hpp index 716931802..b99c9cfcc 100644 --- a/trunk/src/app/srs_app_rtc_server.hpp +++ b/trunk/src/app/srs_app_rtc_server.hpp @@ -45,7 +45,7 @@ class SrsRtcBlackhole public: bool blackhole_; -private: +SRS_DECLARE_PRIVATE: sockaddr_in *blackhole_addr_; srs_netfd_t blackhole_stfd_; @@ -100,7 +100,7 @@ extern std::string srs_dns_resolve(std::string host, int &family); // RTC session manager to handle WebRTC session lifecycle and management. class SrsRtcSessionManager : public ISrsExecRtcAsyncTask { -private: +SRS_DECLARE_PRIVATE: ISrsResourceManager *conn_manager_; ISrsStreamPublishTokenManager *stream_publish_tokens_; ISrsRtcSourceManager *rtc_sources_; @@ -108,7 +108,7 @@ private: ISrsAppConfig *config_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: // WebRTC async call worker for non-blocking operations. SrsAsyncCallWorker *rtc_async_; @@ -123,7 +123,7 @@ public: virtual ISrsRtcConnection *find_rtc_session_by_username(const std::string &ufrag); virtual srs_error_t create_rtc_session(SrsRtcUserConfig *ruc, SrsSdp &local_sdp, ISrsRtcConnection **psession); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_create_rtc_session(SrsRtcUserConfig *ruc, SrsSdp &local_sdp, ISrsRtcConnection *session); public: diff --git a/trunk/src/app/srs_app_rtc_source.hpp b/trunk/src/app/srs_app_rtc_source.hpp index 209b421b1..926a0c128 100644 --- a/trunk/src/app/srs_app_rtc_source.hpp +++ b/trunk/src/app/srs_app_rtc_source.hpp @@ -119,11 +119,11 @@ public: // The RTC stream consumer, consume packets from RTC stream source. class SrsRtcConsumer : public ISrsRtcConsumer { -private: +SRS_DECLARE_PRIVATE: // Because source references to this object, so we should directly use the source ptr. ISrsRtcSourceForConsumer *source_; -private: +SRS_DECLARE_PRIVATE: std::vector queue_; // when source id changed, notice all consumers bool should_update_source_id_; @@ -132,7 +132,7 @@ private: bool mw_waiting_; int mw_min_msgs_; -private: +SRS_DECLARE_PRIVATE: // The callback for stream change event. ISrsRtcSourceChangeCallback *handler_; @@ -172,7 +172,7 @@ public: // The RTC source manager. class SrsRtcSourceManager : public ISrsRtcSourceManager, public ISrsHourGlassHandler { -private: +SRS_DECLARE_PRIVATE: srs_mutex_t lock_; std::map > pool_; SrsHourGlass *timer_; @@ -184,7 +184,7 @@ public: public: virtual srs_error_t initialize(); // interface ISrsHourGlassHandler -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t setup_ticks(); virtual srs_error_t notify(int event, srs_utime_t interval, srs_utime_t tick); @@ -233,11 +233,11 @@ public: // A Source is a stream, to publish and to play with, binding to SrsRtcPublishStream and SrsRtcPlayStream. class SrsRtcSource : public ISrsRtpTarget, public ISrsFastTimerHandler, public ISrsRtcSourceForConsumer { -private: +SRS_DECLARE_PRIVATE: // The RTP bridge, convert RTP packets to other protocols. ISrsRtcBridge *rtc_bridge_; -private: +SRS_DECLARE_PRIVATE: // Circuit breaker for protecting server resources. ISrsCircuitBreaker *circuit_breaker_; // For publish, it's the publish client id. @@ -252,7 +252,7 @@ private: // Steam description for this steam. SrsRtcSourceDescription *stream_desc_; -private: +SRS_DECLARE_PRIVATE: // To delivery stream to clients. std::vector consumers_; // Whether stream is created, that is, SDP is done. @@ -262,12 +262,12 @@ private: // Notify stream event to event handler std::vector event_handlers_; -private: +SRS_DECLARE_PRIVATE: // The PLI for RTC2RTMP. srs_utime_t pli_for_rtmp_; srs_utime_t pli_elapsed_; -private: +SRS_DECLARE_PRIVATE: // The last die time, while die means neither publishers nor players. srs_utime_t stream_die_at_; @@ -282,14 +282,14 @@ public: // Whether stream is dead, which is no publisher or player. virtual bool stream_is_dead(); -private: +SRS_DECLARE_PRIVATE: void init_for_play_before_publishing(); public: // Update the authentication information in request. virtual void update_auth(ISrsRequest *r); -private: +SRS_DECLARE_PRIVATE: // The stream source changed. virtual srs_error_t on_source_changed(); @@ -337,7 +337,7 @@ public: virtual void set_stream_desc(SrsRtcSourceDescription *stream_desc); virtual std::vector get_track_desc(std::string type, std::string media_type); // interface ISrsFastTimerHandler -private: +SRS_DECLARE_PRIVATE: srs_error_t on_timer(srs_utime_t interval); }; @@ -346,7 +346,7 @@ private: // Convert AV frame to RTC RTP packets. class SrsRtcRtpBuilder { -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; ISrsRtpTarget *rtp_target_; // The format, codec information. @@ -356,7 +356,7 @@ private: // The video builder, convert frame to RTP packets. SrsRtpVideoBuilder *video_builder_; -private: +SRS_DECLARE_PRIVATE: SrsAudioCodecId latest_codec_; ISrsAudioTranscoder *codec_; bool keep_bframe_; @@ -364,11 +364,11 @@ private: bool merge_nalus_; uint16_t audio_sequence_; -private: +SRS_DECLARE_PRIVATE: uint32_t audio_ssrc_; uint8_t audio_payload_type_; -private: +SRS_DECLARE_PRIVATE: SrsSharedPtr source_; // Lazy initialization flags bool audio_initialized_; @@ -378,7 +378,7 @@ public: SrsRtcRtpBuilder(ISrsRtpTarget *target, SrsSharedPtr source); virtual ~SrsRtcRtpBuilder(); -private: +SRS_DECLARE_PRIVATE: // Lazy initialization methods srs_error_t initialize_audio_track(SrsAudioCodecId codec); srs_error_t initialize_video_track(SrsVideoCodecId codec); @@ -389,18 +389,18 @@ public: virtual void on_unpublish(); virtual srs_error_t on_frame(SrsMediaPacket *frame); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t on_audio(SrsMediaPacket *msg); -private: +SRS_DECLARE_PRIVATE: srs_error_t init_codec(SrsAudioCodecId codec); srs_error_t transcode(SrsParsedAudioPacket *audio); srs_error_t package_opus(SrsParsedAudioPacket *audio, SrsRtpPacket *pkt); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t on_video(SrsMediaPacket *msg); -private: +SRS_DECLARE_PRIVATE: srs_error_t filter(SrsMediaPacket *msg, SrsFormat *format, bool &has_idr, std::vector &samples); srs_error_t package_stap_a(SrsMediaPacket *msg, SrsRtpPacket *pkt); srs_error_t package_nalus(SrsMediaPacket *msg, const std::vector &samples, std::vector &pkts); @@ -413,7 +413,7 @@ private: // TODO: Maybe should use SrsRtpRingBuffer? class SrsRtcFrameBuilderVideoPacketCache { -private: +SRS_DECLARE_PRIVATE: const static uint16_t cache_size_ = 512; struct RtcPacketCache { bool in_use_; @@ -441,7 +441,7 @@ public: // Check if frame is complete by verifying FU-A start/end fragment counts match bool check_frame_complete(const uint16_t start, const uint16_t end); -private: +SRS_DECLARE_PRIVATE: bool is_slot_in_use(uint16_t sequence_number); uint32_t get_rtp_timestamp(uint16_t sequence_number); inline uint16_t cache_index(uint16_t sequence_number) @@ -453,7 +453,7 @@ private: // Video frame detector for managing frame boundaries and packet loss detection class SrsRtcFrameBuilderVideoFrameDetector { -private: +SRS_DECLARE_PRIVATE: SrsRtcFrameBuilderVideoPacketCache *video_cache_; uint16_t header_sn_; uint16_t lost_sn_; @@ -474,7 +474,7 @@ public: // Audio packet cache for RTP packet jitter buffer management class SrsRtcFrameBuilderAudioPacketCache { -private: +SRS_DECLARE_PRIVATE: // Audio jitter buffer, map sequence number to packet std::map audio_buffer_; // Last processed sequence number @@ -503,24 +503,24 @@ public: // Collect and build WebRTC RTP packets to AV frames. class SrsRtcFrameBuilder { -private: +SRS_DECLARE_PRIVATE: ISrsFrameTarget *frame_target_; -private: +SRS_DECLARE_PRIVATE: bool is_first_audio_; ISrsAudioTranscoder *audio_transcoder_; SrsVideoCodecId video_codec_; -private: +SRS_DECLARE_PRIVATE: SrsRtcFrameBuilderAudioPacketCache *audio_cache_; SrsRtcFrameBuilderVideoPacketCache *video_cache_; SrsRtcFrameBuilderVideoFrameDetector *frame_detector_; -private: +SRS_DECLARE_PRIVATE: // The state for timestamp sync state. -1 for init. 0 not sync. 1 sync. int sync_state_; -private: +SRS_DECLARE_PRIVATE: // For OBS WHIP, send (VPS/)SPS/PPS in dedicated RTP packet. SrsRtpPacket *obs_whip_vps_; SrsRtpPacket *obs_whip_sps_; @@ -536,12 +536,12 @@ public: virtual void on_unpublish(); virtual srs_error_t on_rtp(SrsRtpPacket *pkt); -private: +SRS_DECLARE_PRIVATE: srs_error_t packet_audio(SrsRtpPacket *pkt); srs_error_t transcode_audio(SrsRtpPacket *pkt); void packet_aac(SrsRtmpCommonMessage *audio, char *data, int len, uint32_t pts, bool is_header); -private: +SRS_DECLARE_PRIVATE: srs_error_t packet_video(SrsRtpPacket *pkt); srs_error_t packet_video_key_frame(SrsRtpPacket *pkt); srs_error_t packet_sequence_header_avc(SrsRtpPacket *pkt); @@ -549,7 +549,7 @@ private: srs_error_t packet_sequence_header_hevc(SrsRtpPacket *pkt); srs_error_t do_packet_sequence_header_hevc(SrsRtpPacket *pkt, SrsNaluSample *vps, SrsNaluSample *sps, SrsNaluSample *pps); -private: +SRS_DECLARE_PRIVATE: srs_error_t packet_video_rtmp(const uint16_t start, const uint16_t end); int calculate_packet_payload_size(SrsRtpPacket *pkt); void write_packet_payload_to_buffer(SrsRtpPacket *pkt, SrsBuffer &payload, int &nalu_len); @@ -571,7 +571,7 @@ public: std::vector rtcp_fbs_; -private: +SRS_DECLARE_PRIVATE: // The cached codec ID, corresponding to name_. // For video, you can convert it to type SrsVideoCodecId // For audio, you can convert it to type SrsAudioCodecId @@ -777,19 +777,19 @@ public: // The RTC receive track. class SrsRtcRecvTrack { -protected: +SRS_DECLARE_PROTECTED: SrsRtcTrackDescription *track_desc_; -protected: +SRS_DECLARE_PROTECTED: ISrsRtcPacketReceiver *receiver_; SrsRtpRingBuffer *rtp_queue_; SrsRtpNackForReceiver *nack_receiver_; -private: +SRS_DECLARE_PRIVATE: // By config, whether no copy. bool nack_no_copy_; -protected: +SRS_DECLARE_PROTECTED: // Latest sender report ntp and rtp time. SrsNtp last_sender_report_ntp_; int64_t last_sender_report_rtp_time_; @@ -828,7 +828,7 @@ public: virtual srs_error_t on_rtp(SrsSharedPtr &source, SrsRtpPacket *pkt) = 0; virtual srs_error_t check_send_nacks() = 0; -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t do_check_send_nacks(uint32_t &timeout_nacks); }; @@ -864,12 +864,12 @@ public: template class SrsRtcJitter { -private: +SRS_DECLARE_PRIVATE: ST threshold_; typedef ST (*PFN)(const T &, const T &); PFN distance_; -private: +SRS_DECLARE_PRIVATE: // The value about packet. T pkt_base_; T pkt_last_; @@ -926,7 +926,7 @@ public: // For RTC timestamp jitter. class SrsRtcTsJitter { -private: +SRS_DECLARE_PRIVATE: SrsRtcJitter *jitter_; public: @@ -940,7 +940,7 @@ public: // For RTC sequence jitter. class SrsRtcSeqJitter { -private: +SRS_DECLARE_PRIVATE: SrsRtcJitter *jitter_; public: @@ -968,18 +968,18 @@ public: // send track description SrsRtcTrackDescription *track_desc_; -protected: +SRS_DECLARE_PROTECTED: // The owner connection for this track. ISrsRtcPacketSender *sender_; // NACK ARQ ring buffer. SrsRtpRingBuffer *rtp_queue_; -protected: +SRS_DECLARE_PROTECTED: // The jitter to correct ts and sequence number. SrsRtcTsJitter *jitter_ts_; SrsRtcSeqJitter *jitter_seq_; -private: +SRS_DECLARE_PRIVATE: // By config, whether no copy. bool nack_no_copy_; // The pithy print for special stage. @@ -998,7 +998,7 @@ public: bool get_track_status(); std::string get_track_id(); -protected: +SRS_DECLARE_PROTECTED: void rebuild_packet(SrsRtpPacket *pkt); public: @@ -1036,13 +1036,13 @@ public: class SrsRtcSSRCGenerator { -private: +SRS_DECLARE_PRIVATE: static SrsRtcSSRCGenerator *instance_; -private: +SRS_DECLARE_PRIVATE: uint32_t ssrc_num_; -private: +SRS_DECLARE_PRIVATE: SrsRtcSSRCGenerator(); virtual ~SrsRtcSSRCGenerator(); diff --git a/trunk/src/app/srs_app_rtmp_conn.hpp b/trunk/src/app/srs_app_rtmp_conn.hpp index 5c7b0ce24..0a9426c20 100644 --- a/trunk/src/app/srs_app_rtmp_conn.hpp +++ b/trunk/src/app/srs_app_rtmp_conn.hpp @@ -56,14 +56,14 @@ class ISrsSecurity; // The simple rtmp client for SRS. class SrsSimpleRtmpClient : public SrsBasicRtmpClient { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; public: SrsSimpleRtmpClient(std::string u, srs_utime_t ctm, srs_utime_t stm); virtual ~SrsSimpleRtmpClient(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t connect_app(); }; @@ -106,7 +106,7 @@ public: // The base transport layer for RTMP connections over plain TCP. class SrsRtmpTransport : public ISrsRtmpTransport { -protected: +SRS_DECLARE_PROTECTED: srs_netfd_t stfd_; SrsTcpConnection *skt_; @@ -135,10 +135,10 @@ public: // The SSL/TLS transport layer for RTMPS connections. class SrsRtmpsTransport : public SrsRtmpTransport { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: SrsSslConnection *ssl_; public: @@ -164,7 +164,7 @@ class SrsRtmpConn : public ISrsConnection, // It's a resource. // For the thread to directly access any field of connection. friend class SrsPublishRecvThread; -private: +SRS_DECLARE_PRIVATE: ISrsResourceManager *manager_; ISrsAppConfig *config_; ISrsStreamPublishTokenManager *stream_publish_tokens_; @@ -177,7 +177,7 @@ private: ISrsRtspSourceManager *rtsp_sources_; #endif -private: +SRS_DECLARE_PRIVATE: ISrsRtmpServer *rtmp_; SrsRefer *refer_; SrsBandwidth *bandwidth_; @@ -205,7 +205,7 @@ private: // About the rtmp client. SrsClientInfo *info_; -private: +SRS_DECLARE_PRIVATE: ISrsRtmpTransport *transport_; // Each connection start a green thread, // when thread stop, the connection will be delete by server. @@ -228,13 +228,13 @@ public: public: virtual std::string desc(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t do_cycle(); public: virtual ISrsKbpsDelta *delta(); -private: +SRS_DECLARE_PRIVATE: // When valid and connected to vhost/app, service the client. virtual srs_error_t service_cycle(); // The stream(play/publish) service cycle, identify client first. @@ -251,16 +251,16 @@ private: virtual srs_error_t process_play_control_msg(SrsLiveConsumer *consumer, SrsRtmpCommonMessage *msg); virtual void set_sock_options(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t check_edge_token_traverse_auth(); virtual srs_error_t do_token_traverse_auth(SrsRtmpClient *client); -private: +SRS_DECLARE_PRIVATE: // When the connection disconnect, call this method. // e.g. log msg of connection and report to other system. virtual srs_error_t on_disconnect(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t http_hooks_on_connect(); virtual void http_hooks_on_close(); virtual srs_error_t http_hooks_on_publish(); diff --git a/trunk/src/app/srs_app_rtmp_source.hpp b/trunk/src/app/srs_app_rtmp_source.hpp index 079978484..29fa50224 100644 --- a/trunk/src/app/srs_app_rtmp_source.hpp +++ b/trunk/src/app/srs_app_rtmp_source.hpp @@ -77,7 +77,7 @@ int srs_time_jitter_string2int(std::string time_jitter); // Time jitter detect and correct, to ensure the rtmp stream is monotonically. class SrsRtmpJitter { -private: +SRS_DECLARE_PRIVATE: int64_t last_pkt_time_; int64_t last_pkt_correct_time_; @@ -97,7 +97,7 @@ public: // To alloc and increase fixed space, fast remove and insert for msgs sender. class SrsFastVector { -private: +SRS_DECLARE_PRIVATE: SrsMediaPacket **msgs_; int nb_msgs_; int count_; @@ -140,12 +140,12 @@ public: // We limit the size in seconds, drop old messages(the whole gop) if full. class SrsMessageQueue : public ISrsMessageQueue { -private: +SRS_DECLARE_PRIVATE: // The start and end time. srs_utime_t av_start_time_; srs_utime_t av_end_time_; -private: +SRS_DECLARE_PRIVATE: // Whether do logging when shrinking. bool _ignore_shrink; // The max queue size, shrink if exceed it. @@ -182,7 +182,7 @@ public: // @remark the atc/tba/tbv/ag are same to SrsLiveConsumer.enqueue(). virtual srs_error_t dump_packets(ISrsLiveConsumer *consumer, bool atc, SrsRtmpJitterAlgorithm ag); -private: +SRS_DECLARE_PRIVATE: // Remove a gop from the front. // if no iframe found, clear it. virtual void shrink(); @@ -224,11 +224,11 @@ public: // The consumer for SrsLiveSource, that is a play client. class SrsLiveConsumer : public ISrsWakable, public ISrsLiveConsumer { -private: +SRS_DECLARE_PRIVATE: // Because source references to this object, so we should directly use the source ptr. ISrsLiveSource *source_; -private: +SRS_DECLARE_PRIVATE: SrsRtmpJitter *jitter_; SrsMessageQueue *queue_; bool paused_; @@ -285,7 +285,7 @@ public: // To enable it to fast startup. class SrsGopCache { -private: +SRS_DECLARE_PRIVATE: // if disabled the gop cache, // The client will wait for the next keyframe for h264, // and will be black-screen. @@ -360,7 +360,7 @@ public: // The mix queue to correct the timestamp for mix_correct algorithm. class SrsMixQueue { -private: +SRS_DECLARE_PRIVATE: uint32_t nb_videos_; uint32_t nb_audios_; std::multimap msgs_; @@ -411,20 +411,20 @@ public: // they are meanless for edge server. class SrsOriginHub : public ISrsReloadHandler, public ISrsOriginHub { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsStatistic *stat_; ISrsHttpHooks *hooks_; -private: +SRS_DECLARE_PRIVATE: // Because source references to this object, so we should directly use the source ptr. ISrsLiveSource *source_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; bool is_active_; -private: +SRS_DECLARE_PRIVATE: // hls handler. ISrsHls *hls_; // The DASH encoder. @@ -484,7 +484,7 @@ public: // For the SrsHls to callback to request the sequence headers. virtual srs_error_t on_hls_request_sh(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t create_forwarders(); virtual srs_error_t create_backend_forwarders(bool &applied); virtual void destroy_forwarders(); @@ -494,7 +494,7 @@ private: // This class cache and update the meta. class SrsMetaCache { -private: +SRS_DECLARE_PRIVATE: // The cached metadata, FLV script data tag. SrsMediaPacket *meta_; // The cached video sequence header, for example, sps/pps for h.264. @@ -572,10 +572,10 @@ public: // The source manager to create and refresh all stream sources. class SrsLiveSourceManager : public ISrsHourGlassHandler, public ISrsLiveSourceManager { -private: +SRS_DECLARE_PRIVATE: ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: srs_mutex_t lock_; std::map > pool_; ISrsHourGlass *timer_; @@ -600,7 +600,7 @@ public: // dispose and cycle all sources. virtual void dispose(); // interface ISrsHourGlassHandler -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t setup_ticks(); virtual srs_error_t notify(int event, srs_utime_t interval, srs_utime_t tick); @@ -641,13 +641,13 @@ public: // The live streaming source. class SrsLiveSource : public ISrsReloadHandler, public ISrsFrameTarget, public ISrsLiveSource { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsStatistic *stat_; ISrsLiveSourceHandler *handler_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: // For publish, it's the publish client id. // For edge, it's the edge ingest id. // when source id changed, for example, the edge reconnect, @@ -688,7 +688,7 @@ private: // The format, codec information. SrsRtmpFormat *format_; -private: +SRS_DECLARE_PRIVATE: // Whether source is avaiable for publishing. bool can_publish_; // The last die time, while die means neither publishers nor players. @@ -738,14 +738,14 @@ public: virtual srs_error_t on_audio(SrsRtmpCommonMessage *audio); srs_error_t on_frame(SrsMediaPacket *msg); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t on_audio_imp(SrsMediaPacket *audio); public: // TODO: FIXME: Use SrsMediaPacket instead. virtual srs_error_t on_video(SrsRtmpCommonMessage *video); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t on_video_imp(SrsMediaPacket *video); public: diff --git a/trunk/src/app/srs_app_rtsp_conn.hpp b/trunk/src/app/srs_app_rtsp_conn.hpp index 29555fb76..091c8074b 100644 --- a/trunk/src/app/srs_app_rtsp_conn.hpp +++ b/trunk/src/app/srs_app_rtsp_conn.hpp @@ -60,24 +60,24 @@ public: // A RTSP play stream, client pull and play stream from SRS. class SrsRtspPlayStream : public ISrsRtspPlayStream, public ISrsCoroutineHandler, public ISrsRtcSourceChangeCallback { -private: +SRS_DECLARE_PRIVATE: ISrsAppFactory *app_factory_; ISrsStatistic *stat_; ISrsRtspSourceManager *rtsp_sources_; -private: +SRS_DECLARE_PRIVATE: SrsContextId cid_; ISrsCoroutine *trd_; ISrsRtspConnection *session_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; SrsSharedPtr source_; // key: publish_ssrc, value: send track to process rtp/rtcp std::map audio_tracks_; std::map video_tracks_; -private: +SRS_DECLARE_PRIVATE: // Fast cache for tracks. uint32_t cache_ssrc0_; uint32_t cache_ssrc1_; @@ -86,7 +86,7 @@ private: ISrsRtspSendTrack *cache_track1_; ISrsRtspSendTrack *cache_track2_; -private: +SRS_DECLARE_PRIVATE: // Whether player started. bool is_started; @@ -110,7 +110,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: srs_error_t send_packet(SrsRtpPacket *&pkt); public: @@ -136,17 +136,17 @@ class SrsRtspConnection : public ISrsResource, // It's a resource. public ISrsStartable, public ISrsRtspConnection { -private: +SRS_DECLARE_PRIVATE: ISrsRtspSourceManager *rtsp_sources_; ISrsResourceManager *rtsp_manager_; ISrsStatistic *stat_; ISrsAppConfig *config_; ISrsHttpHooks *hooks_; -private: +SRS_DECLARE_PRIVATE: bool disposing_; -private: +SRS_DECLARE_PRIVATE: // TODO: FIXME: Rename it. // The timeout of session, keep alive by STUN ping pong. srs_utime_t session_timeout; @@ -191,7 +191,7 @@ public: public: ISrsKbpsDelta *delta(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_describe(SrsRtspRequest *req, std::string &sdp); virtual srs_error_t do_setup(SrsRtspRequest *req, uint32_t *ssrc); virtual srs_error_t do_play(SrsRtspRequest *req, SrsRtspConnection *conn); @@ -217,7 +217,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: srs_error_t do_cycle(); srs_error_t on_rtsp_request(SrsRtspRequest *req_raw); @@ -233,14 +233,14 @@ public: bool is_alive(); void alive(); -private: +SRS_DECLARE_PRIVATE: srs_error_t http_hooks_on_play(ISrsRequest *req); srs_error_t get_ssrc_by_stream_id(uint32_t stream_id, uint32_t *ssrc); }; class SrsRtspTcpNetwork : public ISrsStreamWriter { -private: +SRS_DECLARE_PRIVATE: ISrsProtocolReadWriter *skt_; int channel_; diff --git a/trunk/src/app/srs_app_rtsp_source.hpp b/trunk/src/app/srs_app_rtsp_source.hpp index b538c4c7e..ec484fb03 100644 --- a/trunk/src/app/srs_app_rtsp_source.hpp +++ b/trunk/src/app/srs_app_rtsp_source.hpp @@ -34,11 +34,11 @@ class ISrsRtspConnection; // The RTSP stream consumer, consume packets from RTSP stream source. class SrsRtspConsumer { -private: +SRS_DECLARE_PRIVATE: // Because source references to this object, so we should directly use the source ptr. SrsRtspSource *source_; -private: +SRS_DECLARE_PRIVATE: std::vector queue_; // when source id changed, notice all consumers bool should_update_source_id_; @@ -47,7 +47,7 @@ private: bool mw_waiting_; int mw_min_msgs_; -private: +SRS_DECLARE_PRIVATE: // The callback for stream change event. ISrsRtcSourceChangeCallback *handler_; @@ -87,7 +87,7 @@ public: // The RTSP source manager. class SrsRtspSourceManager : public ISrsHourGlassHandler, public ISrsRtspSourceManager { -private: +SRS_DECLARE_PRIVATE: srs_mutex_t lock_; std::map > pool_; SrsHourGlass *timer_; @@ -99,7 +99,7 @@ public: public: virtual srs_error_t initialize(); // interface ISrsHourGlassHandler -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t setup_ticks(); virtual srs_error_t notify(int event, srs_utime_t interval, srs_utime_t tick); @@ -122,11 +122,11 @@ extern SrsResourceManager *_srs_rtsp_manager; // A Source is a stream, to publish and to play with, binding to SrsRtspPlayStream. class SrsRtspSource : public ISrsRtpTarget { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; ISrsCircuitBreaker *circuit_breaker_; -private: +SRS_DECLARE_PRIVATE: // For publish, it's the publish client id. // For edge, it's the edge ingest id. // when source id changed, for example, the edge reconnect, @@ -139,7 +139,7 @@ private: SrsRtcTrackDescription *audio_desc_; SrsRtcTrackDescription *video_desc_; -private: +SRS_DECLARE_PRIVATE: // To delivery stream to clients. std::vector consumers_; // Whether stream is created, that is, SDP is done. @@ -147,7 +147,7 @@ private: // Whether stream is delivering data, that is, DTLS is done. bool is_delivering_packets_; -private: +SRS_DECLARE_PRIVATE: // The last die time, while die means neither publishers nor players. srs_utime_t stream_die_at_; @@ -166,7 +166,7 @@ public: // Update the authentication information in request. virtual void update_auth(ISrsRequest *r); -private: +SRS_DECLARE_PRIVATE: // The stream source changed. virtual srs_error_t on_source_changed(); @@ -209,10 +209,10 @@ public: // Convert AV frame to RTSP RTP packets. class SrsRtspRtpBuilder { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; ISrsRtpTarget *rtp_target_; // The format, codec information. @@ -222,13 +222,13 @@ private: // The video builder, convert frame to RTP packets. SrsRtpVideoBuilder *video_builder_; -private: +SRS_DECLARE_PRIVATE: uint16_t audio_sequence_; uint32_t audio_ssrc_; uint8_t audio_payload_type_; int audio_sample_rate_; -private: +SRS_DECLARE_PRIVATE: SrsSharedPtr source_; // Lazy initialization flags bool audio_initialized_; @@ -238,7 +238,7 @@ public: SrsRtspRtpBuilder(ISrsRtpTarget *target, SrsSharedPtr source); virtual ~SrsRtspRtpBuilder(); -private: +SRS_DECLARE_PRIVATE: // Lazy initialization methods srs_error_t initialize_audio_track(SrsAudioCodecId codec); srs_error_t initialize_video_track(SrsVideoCodecId codec); @@ -249,16 +249,16 @@ public: virtual void on_unpublish(); virtual srs_error_t on_frame(SrsMediaPacket *frame); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t on_audio(SrsMediaPacket *msg); -private: +SRS_DECLARE_PRIVATE: srs_error_t package_aac(SrsParsedAudioPacket *audio, SrsRtpPacket *pkt); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t on_video(SrsMediaPacket *msg); -private: +SRS_DECLARE_PRIVATE: srs_error_t filter(SrsMediaPacket *msg, SrsFormat *format, bool &has_idr, std::vector &samples); srs_error_t package_stap_a(SrsMediaPacket *msg, SrsRtpPacket *pkt); srs_error_t package_nalus(SrsMediaPacket *msg, const std::vector &samples, std::vector &pkts); @@ -286,7 +286,7 @@ public: // send track description SrsRtcTrackDescription *track_desc_; -protected: +SRS_DECLARE_PROTECTED: // The owner connection for this track. ISrsRtspConnection *session_; diff --git a/trunk/src/app/srs_app_security.hpp b/trunk/src/app/srs_app_security.hpp index d8ff2487b..c5c348812 100644 --- a/trunk/src/app/srs_app_security.hpp +++ b/trunk/src/app/srs_app_security.hpp @@ -41,7 +41,7 @@ public: // @param req the request object of client. virtual srs_error_t check(SrsRtmpConnType type, std::string ip, ISrsRequest *req); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_check(SrsConfDirective *rules, SrsRtmpConnType type, std::string ip, ISrsRequest *req); virtual srs_error_t allow_check(SrsConfDirective *rules, SrsRtmpConnType type, std::string ip); virtual srs_error_t deny_check(SrsConfDirective *rules, SrsRtmpConnType type, std::string ip); diff --git a/trunk/src/app/srs_app_server.hpp b/trunk/src/app/srs_app_server.hpp index 7c76829fc..2050d45b4 100644 --- a/trunk/src/app/srs_app_server.hpp +++ b/trunk/src/app/srs_app_server.hpp @@ -122,7 +122,7 @@ class SrsServer : public ISrsReloadHandler, // Reload framework for permormance public ISrsApiServerOwner, public ISrsRtcApiServer { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; ISrsLiveSourceManager *live_sources_; ISrsResourceManager *conn_manager_; @@ -141,20 +141,20 @@ private: ISrsStatistic *stat_; ISrsAppFactory *app_factory_; -private: +SRS_DECLARE_PRIVATE: ISrsCommonHttpHandler *http_api_mux_; SrsHttpServer *http_server_; -private: +SRS_DECLARE_PRIVATE: SrsHttpHeartbeat *http_heartbeat_; SrsIngester *ingester_; ISrsHourGlass *timer_; -private: +SRS_DECLARE_PRIVATE: // PID file manager for process identification and locking. SrsPidFileLocker *pid_file_locker_; -private: +SRS_DECLARE_PRIVATE: // If reusing, HTTP API use the same port of HTTP server. bool reuse_api_over_server_; // If reusing, WebRTC TCP use the same port of HTTP server. @@ -191,17 +191,17 @@ private: SrsGbListener *stream_caster_gb28181_; #endif -private: +SRS_DECLARE_PRIVATE: // SRT acceptors for MPEG-TS over SRT. std::vector srt_acceptors_; -private: +SRS_DECLARE_PRIVATE: // WebRTC UDP listeners for RTC server functionality. std::vector rtc_listeners_; // WebRTC session manager. SrsRtcSessionManager *rtc_session_manager_; -private: +SRS_DECLARE_PRIVATE: // Signal manager which convert gignal to io message. SrsSignalManager *signal_manager_; // To query the latest available version of SRS. @@ -219,7 +219,7 @@ public: SrsServer(); virtual ~SrsServer(); -private: +SRS_DECLARE_PRIVATE: // When SIGTERM, SRS should do cleanup, for example, // to stop all ingesters, cleanup HLS and dvr. virtual void dispose(); @@ -240,7 +240,7 @@ public: public: srs_error_t run(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t initialize_st(); virtual srs_error_t initialize_signal(); virtual srs_error_t listen(); @@ -252,7 +252,7 @@ public: void stop(); // interface ISrsCoroutineHandler -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t cycle(); // server utilities. @@ -272,7 +272,7 @@ public: // @remark, maybe the HTTP RAW API will trigger the on_signal() also. virtual void on_signal(int signo); -private: +SRS_DECLARE_PRIVATE: // The server thread main cycle, // update the global static data, for instance, the current time, // the cpu/mem/network statistic. @@ -280,11 +280,11 @@ private: virtual srs_error_t do2_cycle(); // interface ISrsHourGlassHandler -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t setup_ticks(); virtual srs_error_t notify(int event, srs_utime_t interval, srs_utime_t tick); -private: +SRS_DECLARE_PRIVATE: // Resample the server kbs. virtual void resample_kbps(); @@ -294,7 +294,7 @@ private: virtual srs_error_t accept_srt_client(srs_srt_t srt_fd); virtual srs_error_t srt_fd_to_resource(srs_srt_t srt_fd, ISrsResource **pr); -private: +SRS_DECLARE_PRIVATE: // WebRTC-related methods virtual srs_error_t listen_rtc_udp(); @@ -302,21 +302,21 @@ private: public: virtual srs_error_t on_udp_packet(ISrsUdpMuxSocket *skt); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t listen_rtc_api(); public: virtual ISrsRtcConnection *find_rtc_session_by_username(const std::string &ufrag); virtual srs_error_t create_rtc_session(SrsRtcUserConfig *ruc, SrsSdp &local_sdp, ISrsRtcConnection **psession); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t srs_update_server_statistics(); // Interface ISrsTcpHandler public: virtual srs_error_t on_tcp_client(ISrsListener *listener, srs_netfd_t stfd); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_on_tcp_client(ISrsListener *listener, srs_netfd_t &stfd); virtual srs_error_t on_before_connection(const char *label, int fd, const std::string &ip, int port); @@ -333,13 +333,13 @@ extern SrsServer *_srs_server; // @see: st-1.9/docs/notes.html class SrsSignalManager : public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: // Per-process pipe which is used as a signal queue. // Up to PIPE_BUF/sizeof(int) signals can be queued up. int sig_pipe_[2]; srs_netfd_t signal_read_stfd_; -private: +SRS_DECLARE_PRIVATE: SrsServer *server_; ISrsCoroutine *trd_; @@ -354,7 +354,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: // Global singleton instance static SrsSignalManager *instance; // Signal catching function. @@ -366,10 +366,10 @@ private: // @see https://github.com/ossrs/srs/issues/1635 class SrsInotifyWorker : public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: SrsServer *server_; ISrsCoroutine *trd_; srs_netfd_t inotify_fd_; @@ -388,10 +388,10 @@ public: // PID file manager for process identification and locking. class SrsPidFileLocker { -private: +SRS_DECLARE_PRIVATE: ISrsAppConfig *config_; -private: +SRS_DECLARE_PRIVATE: int pid_fd_; std::string pid_file_; @@ -403,7 +403,7 @@ public: // Acquire the PID file for the whole process. virtual srs_error_t acquire(); -private: +SRS_DECLARE_PRIVATE: // Close the PID file descriptor. virtual void close(); }; diff --git a/trunk/src/app/srs_app_srt_conn.hpp b/trunk/src/app/srs_app_srt_conn.hpp index 901f511bf..94a61e179 100644 --- a/trunk/src/app/srs_app_srt_conn.hpp +++ b/trunk/src/app/srs_app_srt_conn.hpp @@ -59,7 +59,7 @@ public: virtual srs_error_t write(void *buf, size_t size, ssize_t *nwrite); virtual srs_error_t writev(const iovec *iov, int iov_size, ssize_t *nwrite); -private: +SRS_DECLARE_PRIVATE: // The underlayer srt fd handler. srs_srt_t srt_fd_; // The underlayer srt socket. @@ -86,14 +86,14 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: srs_error_t do_cycle(); public: srs_error_t start(); srs_error_t get_recv_err(); -private: +SRS_DECLARE_PRIVATE: ISrsProtocolReadWriter *srt_conn_; ISrsCoroutine *trd_; srs_error_t recv_err_; @@ -115,7 +115,7 @@ public: // The SRT connection, for client to publish or play stream. class SrsMpegtsSrtConn : public ISrsMpegtsSrtConnection { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; ISrsAppConfig *config_; ISrsStreamPublishTokenManager *stream_publish_tokens_; @@ -147,10 +147,10 @@ public: public: virtual srs_error_t cycle(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t do_cycle(); -private: +SRS_DECLARE_PRIVATE: srs_error_t publishing(); srs_error_t playing(); srs_error_t acquire_publish(); @@ -158,10 +158,10 @@ private: srs_error_t do_publishing(); srs_error_t do_playing(); -private: +SRS_DECLARE_PRIVATE: srs_error_t on_srt_packet(char *buf, int nb_buf); -private: +SRS_DECLARE_PRIVATE: srs_error_t http_hooks_on_connect(); void http_hooks_on_close(); srs_error_t http_hooks_on_publish(); @@ -169,7 +169,7 @@ private: srs_error_t http_hooks_on_play(); void http_hooks_on_stop(); -private: +SRS_DECLARE_PRIVATE: ISrsResourceManager *resource_manager_; srs_srt_t srt_fd_; ISrsProtocolReadWriter *srt_conn_; diff --git a/trunk/src/app/srs_app_srt_listener.hpp b/trunk/src/app/srs_app_srt_listener.hpp index dcec29cce..3b994c32a 100644 --- a/trunk/src/app/srs_app_srt_listener.hpp +++ b/trunk/src/app/srs_app_srt_listener.hpp @@ -28,12 +28,12 @@ public: // Bind and listen SRT(udp) port, use handler to process the client. class SrsSrtListener : public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: srs_srt_t lfd_; SrsSrtSocket *srt_skt_; ISrsCoroutine *trd_; -private: +SRS_DECLARE_PRIVATE: ISrsSrtHandler *handler_; std::string ip_; int port_; diff --git a/trunk/src/app/srs_app_srt_server.hpp b/trunk/src/app/srs_app_srt_server.hpp index 8a7471338..ee52abf6d 100644 --- a/trunk/src/app/srs_app_srt_server.hpp +++ b/trunk/src/app/srs_app_srt_server.hpp @@ -30,12 +30,12 @@ public: // A common srt acceptor, for SRT server. class SrsSrtAcceptor : public ISrsSrtHandler { -private: +SRS_DECLARE_PRIVATE: std::string ip_; int port_; ISrsSrtClientHandler *srt_handler_; -private: +SRS_DECLARE_PRIVATE: SrsSrtListener *listener_; public: @@ -45,7 +45,7 @@ public: public: virtual srs_error_t listen(std::string ip, int port); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t set_srt_opt(); // Interface ISrsSrtHandler public: @@ -69,7 +69,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: ISrsSrtPoller *srt_poller_; ISrsCoroutine *trd_; }; diff --git a/trunk/src/app/srs_app_srt_source.hpp b/trunk/src/app/srs_app_srt_source.hpp index d9168b212..b1413368c 100644 --- a/trunk/src/app/srs_app_srt_source.hpp +++ b/trunk/src/app/srs_app_srt_source.hpp @@ -48,7 +48,7 @@ public: char *data(); int size(); -private: +SRS_DECLARE_PRIVATE: SrsMediaPacket *shared_buffer_; // The size of SRT packet or SRT payload. int actual_buffer_size_; @@ -70,7 +70,7 @@ public: // The SRT source manager. class SrsSrtSourceManager : public ISrsHourGlassHandler, public ISrsSrtSourceManager { -private: +SRS_DECLARE_PRIVATE: srs_mutex_t lock_; std::map > pool_; SrsHourGlass *timer_; @@ -82,7 +82,7 @@ public: public: virtual srs_error_t initialize(); // interface ISrsHourGlassHandler -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t setup_ticks(); virtual srs_error_t notify(int event, srs_utime_t interval, srs_utime_t tick); @@ -116,7 +116,7 @@ public: // The SRT consumer, consume packets from SRT stream source. class SrsSrtConsumer : public ISrsSrtConsumer { -private: +SRS_DECLARE_PRIVATE: // Because source references to this object, so we should directly use the source ptr. ISrsSrtSource *source_; @@ -124,7 +124,7 @@ public: SrsSrtConsumer(ISrsSrtSource *source); virtual ~SrsSrtConsumer(); -private: +SRS_DECLARE_PRIVATE: std::vector queue_; // when source id changed, notice all consumers bool should_update_source_id_; @@ -162,7 +162,7 @@ public: public: virtual srs_error_t on_ts_message(SrsTsMessage *msg); -private: +SRS_DECLARE_PRIVATE: srs_error_t on_ts_video_avc(SrsTsMessage *msg, SrsBuffer *avs); srs_error_t on_ts_audio(SrsTsMessage *msg, SrsBuffer *avs); srs_error_t check_sps_pps_change(SrsTsMessage *msg); @@ -173,10 +173,10 @@ private: srs_error_t check_vps_sps_pps_change(SrsTsMessage *msg); srs_error_t on_hevc_frame(SrsTsMessage *msg, std::vector > &ipb_frames); -private: +SRS_DECLARE_PRIVATE: ISrsFrameTarget *frame_target_; -private: +SRS_DECLARE_PRIVATE: SrsTsContext *ts_ctx_; // Record sps/pps had changed, if change, need to generate new video sh frame. bool sps_pps_change_; @@ -190,10 +190,10 @@ private: bool audio_sh_change_; std::string audio_sh_; -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; -private: +SRS_DECLARE_PRIVATE: // SRT to rtmp, video stream id. int video_streamid_; // SRT to rtmp, audio stream id. @@ -218,7 +218,7 @@ public: // A SRT source is a stream, to publish and to play with. class SrsSrtSource : public ISrsSrtSource { -private: +SRS_DECLARE_PRIVATE: ISrsStatistic *stat_; public: @@ -261,7 +261,7 @@ public: public: srs_error_t on_packet(SrsSrtPacket *packet); -private: +SRS_DECLARE_PRIVATE: // Source id. SrsContextId _source_id; // previous source id. @@ -273,7 +273,7 @@ private: // The last die time, while die means neither publishers nor players. srs_utime_t stream_die_at_; -private: +SRS_DECLARE_PRIVATE: ISrsSrtBridge *srt_bridge_; }; diff --git a/trunk/src/app/srs_app_st.hpp b/trunk/src/app/srs_app_st.hpp index aaa0bdd83..c38884210 100644 --- a/trunk/src/app/srs_app_st.hpp +++ b/trunk/src/app/srs_app_st.hpp @@ -25,7 +25,7 @@ class SrsExecutorCoroutine; // @see https://github.com/ossrs/srs/pull/908 class SrsDummyCoroutine : public ISrsCoroutine { -private: +SRS_DECLARE_PRIVATE: SrsContextId cid_; public: @@ -55,7 +55,7 @@ public: // Please read https://github.com/ossrs/srs/issues/78 class SrsSTCoroutine : public ISrsCoroutine { -private: +SRS_DECLARE_PRIVATE: SrsFastCoroutine *impl_; public: @@ -96,24 +96,24 @@ public: // High performance coroutine. class SrsFastCoroutine : public ISrsCoroutine { -private: +SRS_DECLARE_PRIVATE: std::string name_; int stack_size_; ISrsCoroutineHandler *handler_; -private: +SRS_DECLARE_PRIVATE: srs_thread_t trd_; SrsContextId cid_; srs_error_t trd_err_; -private: +SRS_DECLARE_PRIVATE: bool started_; bool interrupted_; bool disposed_; // Cycle done, no need to interrupt it. bool cycle_done_; -private: +SRS_DECLARE_PRIVATE: // Sub state in disposed, we need to wait for thread to quit. bool stopping_; SrsContextId stopping_cid_; @@ -140,7 +140,7 @@ public: const SrsContextId &cid(); virtual void set_cid(const SrsContextId &cid); -private: +SRS_DECLARE_PRIVATE: srs_error_t cycle(); static void *pfn(void *arg); }; @@ -148,7 +148,7 @@ private: // Like goroutine sync.WaitGroup. class SrsWaitGroup { -private: +SRS_DECLARE_PRIVATE: int nn_; srs_cond_t done_; @@ -203,13 +203,13 @@ class SrsExecutorCoroutine : public ISrsResource, // It's a resource. public ISrsContextIdGetter, public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: ISrsResourceManager *manager_; ISrsResource *resource_; ISrsCoroutineHandler *handler_; ISrsExecutorHandler *callback_; -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; public: diff --git a/trunk/src/app/srs_app_statistic.hpp b/trunk/src/app/srs_app_statistic.hpp index 609b473e3..f0cf2b7e0 100644 --- a/trunk/src/app/srs_app_statistic.hpp +++ b/trunk/src/app/srs_app_statistic.hpp @@ -178,7 +178,7 @@ public: // The global statistic instance. class SrsStatistic : public ISrsStatistic { -private: +SRS_DECLARE_PRIVATE: // The id to identify the sever. std::string server_id_; // The id to identify the service. @@ -186,27 +186,27 @@ private: // The pid to identify the service process. std::string service_pid_; -private: +SRS_DECLARE_PRIVATE: // The key: vhost id, value: vhost object. std::map vhosts_; // The key: vhost url, value: vhost Object. // @remark a fast index for vhosts. std::map rvhosts_; -private: +SRS_DECLARE_PRIVATE: // The key: stream id, value: stream Object. std::map streams_; // The key: stream url, value: stream Object. // @remark a fast index for streams. std::map rstreams_; -private: +SRS_DECLARE_PRIVATE: // The key: client id, value: stream object. std::map clients_; // The server total kbps. SrsKbps *kbps_; -private: +SRS_DECLARE_PRIVATE: // The total of clients connections. int64_t nb_clients_; // The total of clients errors. @@ -252,7 +252,7 @@ public: // exists in stat. virtual void on_disconnect(std::string id, srs_error_t err); -private: +SRS_DECLARE_PRIVATE: // Cleanup the stream if stream is not active and for the last client. void cleanup_stream(SrsStatisticStream *stream); @@ -284,7 +284,7 @@ public: // Dumps the hints about SRS server. void dumps_hints_kv(std::stringstream &ss); -private: +SRS_DECLARE_PRIVATE: virtual SrsStatisticVhost *create_vhost(ISrsRequest *req); virtual SrsStatisticStream *create_stream(SrsStatisticVhost *vhost, ISrsRequest *req); diff --git a/trunk/src/app/srs_app_stream_bridge.hpp b/trunk/src/app/srs_app_stream_bridge.hpp index cf06cba2e..d3d3ea50a 100644 --- a/trunk/src/app/srs_app_stream_bridge.hpp +++ b/trunk/src/app/srs_app_stream_bridge.hpp @@ -85,7 +85,7 @@ public: // Then, deliver the RTP packets to RTP target, which binds to a RTC/RTSP source. class SrsRtmpBridge : public ISrsRtmpBridge { -private: +SRS_DECLARE_PRIVATE: #ifdef SRS_FFMPEG_FIT SrsRtcRtpBuilder *rtp_builder_; #endif @@ -135,7 +135,7 @@ public: // Then, deliver the AV frames to frame target, which binds to a RTMP/RTC source. class SrsSrtBridge : public ISrsSrtBridge, public ISrsFrameTarget { -private: +SRS_DECLARE_PRIVATE: // Convert SRT TS packets to media frame packets. SrsSrtFrameBuilder *frame_builder_; // Deliver media frame packets to RTMP target. @@ -184,7 +184,7 @@ public: // Then, deliver the RTMP frame packet to RTMP target, which binds to a live source. class SrsRtcBridge : public ISrsRtcBridge { -private: +SRS_DECLARE_PRIVATE: ISrsRequest *req_; #ifdef SRS_FFMPEG_FIT // Collect and build WebRTC RTP packets to AV frames. diff --git a/trunk/src/app/srs_app_stream_token.hpp b/trunk/src/app/srs_app_stream_token.hpp index af8867fa5..6f8623f95 100644 --- a/trunk/src/app/srs_app_stream_token.hpp +++ b/trunk/src/app/srs_app_stream_token.hpp @@ -24,7 +24,7 @@ class SrsStreamPublishTokenManager; // This prevents race conditions across all protocols (RTMP, RTC, SRT, etc.). class SrsStreamPublishToken { -private: +SRS_DECLARE_PRIVATE: // The stream URL this token is for std::string stream_url_; // Whether this token is currently acquired @@ -70,7 +70,7 @@ public: // This prevents race conditions across all protocols. class SrsStreamPublishTokenManager : public ISrsStreamPublishTokenManager { -private: +SRS_DECLARE_PRIVATE: // Map of stream URL to token std::map tokens_; // Mutex to protect the tokens map diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index ae303e208..81aabf796 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -17,8 +17,11 @@ // This ensures consistent class layout between production code and utest code with AddressSanitizer. // The macro is automatically enabled when --utest=on is specified in configure. #ifdef SRS_FORCE_PUBLIC4UTEST - #define private public - #define protected public + #define SRS_DECLARE_PRIVATE public + #define SRS_DECLARE_PROTECTED public +#else + #define SRS_DECLARE_PRIVATE private + #define SRS_DECLARE_PROTECTED protected #endif // To convert macro values to string. @@ -76,7 +79,7 @@ typedef SrsCplxError *srs_error_t; #if 1 class _SrsContextId { -private: +SRS_DECLARE_PRIVATE: std::string v_; public: diff --git a/trunk/src/core/srs_core_autofree.hpp b/trunk/src/core/srs_core_autofree.hpp index 1b70d8b7c..d189f7cf4 100644 --- a/trunk/src/core/srs_core_autofree.hpp +++ b/trunk/src/core/srs_core_autofree.hpp @@ -32,7 +32,7 @@ template class SrsUniquePtr { -private: +SRS_DECLARE_PRIVATE: T *ptr_; void (*deleter_)(T *); @@ -63,19 +63,19 @@ public: return ptr_; } -private: +SRS_DECLARE_PRIVATE: // Copy the unique ptr. SrsUniquePtr(const SrsUniquePtr &); // The assign operator. SrsUniquePtr &operator=(const SrsUniquePtr &); -private: +SRS_DECLARE_PRIVATE: // Overload the * operator. T &operator*(); // Overload the bool operator. operator bool() const; #if __cplusplus >= 201103L // C++11 -private: +SRS_DECLARE_PRIVATE: // The move constructor. SrsUniquePtr(SrsUniquePtr &&); // The move assign operator. @@ -96,7 +96,7 @@ private: template class SrsUniquePtr { -private: +SRS_DECLARE_PRIVATE: T *ptr_; public: @@ -125,19 +125,19 @@ public: return ptr_[index]; } -private: +SRS_DECLARE_PRIVATE: // Copy the unique ptr. SrsUniquePtr(const SrsUniquePtr &); // The assign operator. SrsUniquePtr &operator=(const SrsUniquePtr &); -private: +SRS_DECLARE_PRIVATE: // Overload the * operator. T &operator*(); // Overload the bool operator. operator bool() const; #if __cplusplus >= 201103L // C++11 -private: +SRS_DECLARE_PRIVATE: // The move constructor. SrsUniquePtr(SrsUniquePtr &&); // The move assign operator. @@ -157,7 +157,7 @@ private: template class SrsSharedPtr { -private: +SRS_DECLARE_PRIVATE: // The pointer to the object. T *ptr_; // The reference count of the object. @@ -181,7 +181,7 @@ public: reset(); } -private: +SRS_DECLARE_PRIVATE: // Reset the shared ptr. void reset() { @@ -235,7 +235,7 @@ public: return *this; } -private: +SRS_DECLARE_PRIVATE: // Overload the * operator. T &operator*() { diff --git a/trunk/src/core/srs_core_deprecated.hpp b/trunk/src/core/srs_core_deprecated.hpp index 52bc28f72..02b087402 100644 --- a/trunk/src/core/srs_core_deprecated.hpp +++ b/trunk/src/core/srs_core_deprecated.hpp @@ -60,7 +60,7 @@ // template // class impl_SrsAutoFree //{ -// private: +// SRS_DECLARE_PRIVATE: // T** ptr; // bool is_array; // bool _use_free; diff --git a/trunk/src/kernel/srs_kernel_aac.hpp b/trunk/src/kernel/srs_kernel_aac.hpp index 0d53818c2..c70b2638d 100644 --- a/trunk/src/kernel/srs_kernel_aac.hpp +++ b/trunk/src/kernel/srs_kernel_aac.hpp @@ -30,10 +30,10 @@ public: // Transmux the RTMP packets to AAC stream. class SrsAacTransmuxer : public ISrsAacTransmuxer { -private: +SRS_DECLARE_PRIVATE: ISrsStreamWriter *writer_; -private: +SRS_DECLARE_PRIVATE: SrsAacObjectType aac_object_; int8_t aac_sample_rate_; int8_t aac_channels_; diff --git a/trunk/src/kernel/srs_kernel_balance.hpp b/trunk/src/kernel/srs_kernel_balance.hpp index ba7078618..277ac71a2 100644 --- a/trunk/src/kernel/srs_kernel_balance.hpp +++ b/trunk/src/kernel/srs_kernel_balance.hpp @@ -50,7 +50,7 @@ public: // class SrsLbRoundRobin : public ISrsLbRoundRobin { -private: +SRS_DECLARE_PRIVATE: int index_; uint32_t count_; std::string elem_; diff --git a/trunk/src/kernel/srs_kernel_buffer.hpp b/trunk/src/kernel/srs_kernel_buffer.hpp index 537cb265c..93d0874a5 100644 --- a/trunk/src/kernel/srs_kernel_buffer.hpp +++ b/trunk/src/kernel/srs_kernel_buffer.hpp @@ -182,7 +182,7 @@ public: // @remark The buffer never manages the bytes memory, user must manage it. class SrsBuffer { -private: +SRS_DECLARE_PRIVATE: // Current read/write position within the buffer char *p_; // Pointer to the start of the buffer data (not owned by this class) @@ -402,7 +402,7 @@ public: // @remark This class does not take ownership of the SrsBuffer pointer. class SrsBitBuffer { -private: +SRS_DECLARE_PRIVATE: // Current byte being processed (cached from stream) int8_t cb_; // Number of unread bits remaining in current byte (0-8) @@ -534,7 +534,7 @@ public: // @remark The size may be less than the allocated buffer size for chunked data. class SrsMemoryBlock { -private: +SRS_DECLARE_PRIVATE: // Current size of valid data in the buffer. // This may be less than the allocated buffer size for chunked data // that arrives in multiple parts. diff --git a/trunk/src/kernel/srs_kernel_error.hpp b/trunk/src/kernel/srs_kernel_error.hpp index a8ef1c6a1..a4f80f856 100644 --- a/trunk/src/kernel/srs_kernel_error.hpp +++ b/trunk/src/kernel/srs_kernel_error.hpp @@ -434,7 +434,7 @@ extern bool srs_is_server_gracefully_close(srs_error_t err); // please @read https://github.com/ossrs/srs/issues/913 class SrsCplxError { -private: +SRS_DECLARE_PRIVATE: int code_; SrsCplxError *wrapped_; std::string msg_; @@ -449,13 +449,13 @@ private: std::string desc_; std::string summary_; -private: +SRS_DECLARE_PRIVATE: SrsCplxError(); public: virtual ~SrsCplxError(); -private: +SRS_DECLARE_PRIVATE: virtual std::string description(); virtual std::string summary(); diff --git a/trunk/src/kernel/srs_kernel_file.hpp b/trunk/src/kernel/srs_kernel_file.hpp index ec09d2166..518e50656 100644 --- a/trunk/src/kernel/srs_kernel_file.hpp +++ b/trunk/src/kernel/srs_kernel_file.hpp @@ -38,7 +38,7 @@ public: // file writer, to write to file. class SrsFileWriter : public ISrsFileWriter { -private: +SRS_DECLARE_PRIVATE: std::string path_; FILE *fp_; char *buf_; @@ -107,7 +107,7 @@ public: */ class SrsFileReader : public ISrsFileReader { -private: +SRS_DECLARE_PRIVATE: std::string path_; int fd_; diff --git a/trunk/src/kernel/srs_kernel_flv.hpp b/trunk/src/kernel/srs_kernel_flv.hpp index a4bce479f..ffa15a7a3 100644 --- a/trunk/src/kernel/srs_kernel_flv.hpp +++ b/trunk/src/kernel/srs_kernel_flv.hpp @@ -268,13 +268,13 @@ public: // Transmux RTMP packets to FLV stream. class SrsFlvTransmuxer : public ISrsFlvTransmuxer { -private: +SRS_DECLARE_PRIVATE: bool has_audio_; bool has_video_; bool drop_if_not_match_; ISrsWriter *writer_; -private: +SRS_DECLARE_PRIVATE: char tag_header_[SRS_FLV_TAG_HEADER_SIZE]; public: @@ -317,7 +317,7 @@ public: // @remark assert data_size is not negative. static int size_tag(int data_size); -private: +SRS_DECLARE_PRIVATE: // The cache tag header. int nb_tag_headers_; char *tag_headers_; @@ -332,7 +332,7 @@ public: // Write the tags in a time. virtual srs_error_t write_tags(SrsMediaPacket **msgs, int count); -private: +SRS_DECLARE_PRIVATE: virtual void cache_metadata(char type, char *data, int size, char *cache); virtual void cache_audio(int64_t timestamp, char *data, int size, char *cache); virtual void cache_video(int64_t timestamp, char *data, int size, char *cache); @@ -363,7 +363,7 @@ public: // Decode flv file. class SrsFlvDecoder : public ISrsFlvDecoder { -private: +SRS_DECLARE_PRIVATE: ISrsReader *reader_; public: @@ -396,7 +396,7 @@ public: // then seek to specified offset. class SrsFlvVodStreamDecoder { -private: +SRS_DECLARE_PRIVATE: ISrsFileReader *reader_; public: diff --git a/trunk/src/kernel/srs_kernel_hourglass.hpp b/trunk/src/kernel/srs_kernel_hourglass.hpp index 8fbb5556a..78984d8e5 100644 --- a/trunk/src/kernel/srs_kernel_hourglass.hpp +++ b/trunk/src/kernel/srs_kernel_hourglass.hpp @@ -70,7 +70,7 @@ public: // hg->start(); class SrsHourGlass : public ISrsCoroutineHandler, public ISrsHourGlass { -private: +SRS_DECLARE_PRIVATE: std::string label_; ISrsCoroutine *trd_; ISrsHourGlassHandler *handler_; @@ -139,7 +139,7 @@ public: // instead, we should start only one fast timer in server. class SrsFastTimer : public ISrsCoroutineHandler, public ISrsFastTimer { -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; srs_utime_t interval_; std::vector handlers_; @@ -156,7 +156,7 @@ public: void subscribe(ISrsFastTimerHandler *timer); void unsubscribe(ISrsFastTimerHandler *timer); // Interface ISrsCoroutineHandler -private: +SRS_DECLARE_PRIVATE: // Cycle the hourglass, which will sleep resolution every time. // and call handler when ticked. virtual srs_error_t cycle(); @@ -165,14 +165,14 @@ private: // To monitor the system wall clock timer deviation. class SrsClockWallMonitor : public ISrsFastTimerHandler { -private: +SRS_DECLARE_PRIVATE: ISrsTime *time_; public: SrsClockWallMonitor(); virtual ~SrsClockWallMonitor(); // interface ISrsFastTimerHandler -private: +SRS_DECLARE_PRIVATE: srs_error_t on_timer(srs_utime_t interval); }; @@ -193,7 +193,7 @@ public: // Global shared timer manager class SrsSharedTimer : public ISrsSharedTimer { -private: +SRS_DECLARE_PRIVATE: SrsFastTimer *timer20ms_; SrsFastTimer *timer100ms_; SrsFastTimer *timer1s_; diff --git a/trunk/src/kernel/srs_kernel_kbps.hpp b/trunk/src/kernel/srs_kernel_kbps.hpp index 879af5f95..5ce3736ee 100644 --- a/trunk/src/kernel/srs_kernel_kbps.hpp +++ b/trunk/src/kernel/srs_kernel_kbps.hpp @@ -71,10 +71,10 @@ public: // A pps manager every some duration. class SrsPps { -private: +SRS_DECLARE_PRIVATE: ISrsClock *clk_; -private: +SRS_DECLARE_PRIVATE: // samples SrsRateSample sample_10s_; SrsRateSample sample_30s_; @@ -252,7 +252,7 @@ void srs_global_rtc_update(SrsKbsRtcStats *stats); */ class SrsKbpsSlice { -private: +SRS_DECLARE_PRIVATE: ISrsClock *clk_; public: @@ -315,7 +315,7 @@ public: // sent out each UDP packet. class SrsEphemeralDelta : public ISrsEphemeralDelta { -private: +SRS_DECLARE_PRIVATE: uint64_t in_; uint64_t out_; @@ -344,7 +344,7 @@ public: // A network delta data source for SrsKbps. class SrsNetworkDelta : public ISrsNetworkDelta { -private: +SRS_DECLARE_PRIVATE: ISrsProtocolStatistic *in_; ISrsProtocolStatistic *out_; uint64_t in_base_; @@ -375,7 +375,7 @@ public: */ class SrsKbps { -private: +SRS_DECLARE_PRIVATE: SrsKbpsSlice *is_; SrsKbpsSlice *os_; ISrsClock *clk_; @@ -411,7 +411,7 @@ public: // A sugar to use SrsNetworkDelta and SrsKbps. class SrsNetworkKbps { -private: +SRS_DECLARE_PRIVATE: SrsNetworkDelta *delta_; SrsKbps *kbps_; diff --git a/trunk/src/kernel/srs_kernel_log.hpp b/trunk/src/kernel/srs_kernel_log.hpp index 45042f7fa..97e220071 100644 --- a/trunk/src/kernel/srs_kernel_log.hpp +++ b/trunk/src/kernel/srs_kernel_log.hpp @@ -94,7 +94,7 @@ public: #define SrsContextRestore(cid) impl_SrsContextRestore _context_restore_instance(cid) class impl_SrsContextRestore { -private: +SRS_DECLARE_PRIVATE: SrsContextId cid_; public: diff --git a/trunk/src/kernel/srs_kernel_mp3.hpp b/trunk/src/kernel/srs_kernel_mp3.hpp index 9d42d9f35..5505e863e 100644 --- a/trunk/src/kernel/srs_kernel_mp3.hpp +++ b/trunk/src/kernel/srs_kernel_mp3.hpp @@ -32,7 +32,7 @@ public: */ class SrsMp3Transmuxer : public ISrsMp3Transmuxer { -private: +SRS_DECLARE_PRIVATE: ISrsFileWriter *writer_; public: diff --git a/trunk/src/kernel/srs_kernel_mp4.hpp b/trunk/src/kernel/srs_kernel_mp4.hpp index 294587eda..628813ad1 100644 --- a/trunk/src/kernel/srs_kernel_mp4.hpp +++ b/trunk/src/kernel/srs_kernel_mp4.hpp @@ -177,7 +177,7 @@ public: // ISO_IEC_14496-12-base-format-2012.pdf, page 16 class SrsMp4Box : public ISrsCodec { -private: +SRS_DECLARE_PRIVATE: // The size is the entire size of the box, including the size and type header, fields, // And all contained boxes. This facilitates general parsing of the file. // @@ -195,10 +195,10 @@ public: // For box 'uuid'. std::vector usertype_; -protected: +SRS_DECLARE_PROTECTED: std::vector boxes_; -private: +SRS_DECLARE_PRIVATE: // The position at buffer to start demux the box. int start_pos_; @@ -240,12 +240,12 @@ public: virtual srs_error_t encode(SrsBuffer *buf); virtual srs_error_t decode(SrsBuffer *buf); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t encode_boxes(SrsBuffer *buf); virtual srs_error_t decode_boxes(SrsBuffer *buf); // Sub classes can override these functions for special codec. // @remark For mdat box, we use completely different codec. -protected: +SRS_DECLARE_PROTECTED: // The size of header, not including the contained boxes. virtual int nb_header(); // It's not necessary to check the buffer, because we already know the size in parent function, @@ -276,7 +276,7 @@ public: SrsMp4FullBox(); virtual ~SrsMp4FullBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -299,7 +299,7 @@ public: // An informative integer for the minor version of the major brand uint32_t minor_version_; -private: +SRS_DECLARE_PRIVATE: // A list, to the end of the box, of brands std::vector compatible_brands_; @@ -312,7 +312,7 @@ public: virtual void set_compatible_brands(SrsMp4BoxBrand b0, SrsMp4BoxBrand b1, SrsMp4BoxBrand b2); virtual void set_compatible_brands(SrsMp4BoxBrand b0, SrsMp4BoxBrand b1, SrsMp4BoxBrand b2, SrsMp4BoxBrand b3); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -370,7 +370,7 @@ public: SrsMp4MovieFragmentHeaderBox(); virtual ~SrsMp4MovieFragmentHeaderBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -452,7 +452,7 @@ public: SrsMp4TrackFragmentHeaderBox(); virtual ~SrsMp4TrackFragmentHeaderBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -478,7 +478,7 @@ public: SrsMp4TrackFragmentDecodeTimeBox(); virtual ~SrsMp4TrackFragmentDecodeTimeBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -554,7 +554,7 @@ public: SrsMp4TrackFragmentRunBox(); virtual ~SrsMp4TrackFragmentRunBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -629,7 +629,7 @@ public: // because the mdat only decode the header. virtual srs_error_t decode(SrsBuffer *buf); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t encode_boxes(SrsBuffer *buf); virtual srs_error_t decode_boxes(SrsBuffer *buf); @@ -641,14 +641,14 @@ public: // ISO_IEC_14496-12-base-format-2012.pdf, page 29 class SrsMp4FreeSpaceBox : public SrsMp4Box { -private: +SRS_DECLARE_PRIVATE: std::vector data_; public: SrsMp4FreeSpaceBox(SrsMp4BoxType v); virtual ~SrsMp4FreeSpaceBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -685,7 +685,7 @@ public: // Get the number of audio tracks. virtual int nb_soun_tracks(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -738,7 +738,7 @@ public: // Get the duration in ms. virtual uint64_t duration(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -787,7 +787,7 @@ public: SrsMp4TrackExtendsBox(); virtual ~SrsMp4TrackExtendsBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -915,7 +915,7 @@ public: SrsMp4TrackHeaderBox(); virtual ~SrsMp4TrackHeaderBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -985,7 +985,7 @@ public: SrsMp4EditListBox(); virtual ~SrsMp4EditListBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1042,7 +1042,7 @@ public: // longest track in the presentation. If the duration cannot be determined then duration is set to all 1s. uint64_t duration_; -private: +SRS_DECLARE_PRIVATE: // The language code for this media. See ISO 639-2/T for the set of three character // codes. Each character is packed as the difference between its ASCII value and 0x60. Since the code // is confined to being three lower-case letters, these values are strictly positive. @@ -1067,7 +1067,7 @@ public: virtual char language2(); virtual void set_language2(char v); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1101,7 +1101,7 @@ public: virtual bool is_video(); virtual bool is_audio(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1152,7 +1152,7 @@ public: SrsMp4VideoMeidaHeaderBox(); virtual ~SrsMp4VideoMeidaHeaderBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1174,7 +1174,7 @@ public: SrsMp4SoundMeidaHeaderBox(); virtual ~SrsMp4SoundMeidaHeaderBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1220,7 +1220,7 @@ public: SrsMp4DataEntryUrlBox(); virtual ~SrsMp4DataEntryUrlBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1240,7 +1240,7 @@ public: SrsMp4DataEntryUrnBox(); virtual ~SrsMp4DataEntryUrnBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1256,7 +1256,7 @@ public: // in this table to the samples in the track. A track may be split over several sources in this way. class SrsMp4DataReferenceBox : public SrsMp4FullBox { -private: +SRS_DECLARE_PRIVATE: std::vector entries_; public: @@ -1269,7 +1269,7 @@ public: // Note that box must be SrsMp4DataEntryBox* virtual void append(SrsMp4Box *box); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1315,7 +1315,7 @@ public: virtual SrsMp4SyncSampleBox *stss(); virtual void set_stss(SrsMp4SyncSampleBox *v); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1336,7 +1336,7 @@ public: SrsMp4SampleEntry(); virtual ~SrsMp4SampleEntry(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1386,7 +1386,7 @@ public: virtual SrsMp4HvcCBox *hvcC(); virtual void set_hvcC(SrsMp4HvcCBox *v); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1406,7 +1406,7 @@ public: SrsMp4AvccBox(); virtual ~SrsMp4AvccBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1426,7 +1426,7 @@ public: SrsMp4HvcCBox(); virtual ~SrsMp4HvcCBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1458,7 +1458,7 @@ public: // For AAC codec, get the asc. virtual SrsMp4DecoderSpecificInfo *asc(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1491,7 +1491,7 @@ public: SrsMp4ESTagEs tag; // bit(8) // The decoded or encoded variant length. int32_t vlen; // bit(28) -private: +SRS_DECLARE_PRIVATE: // The position at buffer to start demux the box. int start_pos; @@ -1508,7 +1508,7 @@ public: virtual srs_error_t encode(SrsBuffer *buf); virtual srs_error_t decode(SrsBuffer *buf); -protected: +SRS_DECLARE_PROTECTED: virtual int32_t nb_payload() = 0; virtual srs_error_t encode_payload(SrsBuffer *buf) = 0; virtual srs_error_t decode_payload(SrsBuffer *buf) = 0; @@ -1549,7 +1549,7 @@ public: SrsMp4DecoderSpecificInfo(); virtual ~SrsMp4DecoderSpecificInfo(); -protected: +SRS_DECLARE_PROTECTED: virtual int32_t nb_payload(); virtual srs_error_t encode_payload(SrsBuffer *buf); virtual srs_error_t decode_payload(SrsBuffer *buf); @@ -1577,7 +1577,7 @@ public: SrsMp4DecoderConfigDescriptor(); virtual ~SrsMp4DecoderConfigDescriptor(); -protected: +SRS_DECLARE_PROTECTED: virtual int32_t nb_payload(); virtual srs_error_t encode_payload(SrsBuffer *buf); virtual srs_error_t decode_payload(SrsBuffer *buf); @@ -1597,7 +1597,7 @@ public: SrsMp4SLConfigDescriptor(); virtual ~SrsMp4SLConfigDescriptor(); -protected: +SRS_DECLARE_PROTECTED: virtual int32_t nb_payload(); virtual srs_error_t encode_payload(SrsBuffer *buf); virtual srs_error_t decode_payload(SrsBuffer *buf); @@ -1626,7 +1626,7 @@ public: SrsMp4ES_Descriptor(); virtual ~SrsMp4ES_Descriptor(); -protected: +SRS_DECLARE_PROTECTED: virtual int32_t nb_payload(); virtual srs_error_t encode_payload(SrsBuffer *buf); virtual srs_error_t decode_payload(SrsBuffer *buf); @@ -1652,7 +1652,7 @@ public: // For AAC codec, get the asc. virtual SrsMp4DecoderSpecificInfo *asc(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1667,7 +1667,7 @@ public: // information needed for that coding. class SrsMp4SampleDescriptionBox : public SrsMp4FullBox { -private: +SRS_DECLARE_PRIVATE: std::vector entries_; public: @@ -1686,7 +1686,7 @@ public: // Note that box must be SrsMp4SampleEntry* virtual void append(SrsMp4Box *box); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1726,7 +1726,7 @@ public: // An integer that gives the number of entries in the following table. std::vector entries_; -private: +SRS_DECLARE_PRIVATE: // The index for counter to calc the dts for samples. uint32_t index_; uint32_t count_; @@ -1741,7 +1741,7 @@ public: // When got an sample, index starts from 0. virtual srs_error_t on_sample(uint32_t sample_index, SrsMp4SttsEntry **ppentry); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1786,7 +1786,7 @@ public: // An integer that gives the number of entries in the following table. std::vector entries_; -private: +SRS_DECLARE_PRIVATE: // The index for counter to calc the dts for samples. uint32_t index_; uint32_t count_; @@ -1801,7 +1801,7 @@ public: // When got an sample, index starts from 0. virtual srs_error_t on_sample(uint32_t sample_index, SrsMp4CttsEntry **ppentry); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1831,7 +1831,7 @@ public: // Whether the sample is sync, index starts from 0. virtual bool is_sync(uint32_t sample_index); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1876,7 +1876,7 @@ public: // The numbers of the samples that are sync samples in the stream. SrsMp4StscEntry *entries_; -private: +SRS_DECLARE_PRIVATE: // The index for counter to calc the dts for samples. uint32_t index_; @@ -1890,7 +1890,7 @@ public: // When got an chunk, index starts from 0. virtual SrsMp4StscEntry *on_chunk(uint32_t chunk_index); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1917,7 +1917,7 @@ public: SrsMp4ChunkOffsetBox(); virtual ~SrsMp4ChunkOffsetBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1944,7 +1944,7 @@ public: SrsMp4ChunkLargeOffsetBox(); virtual ~SrsMp4ChunkLargeOffsetBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -1979,7 +1979,7 @@ public: // Get the size of sample. virtual srs_error_t get_sample_size(uint32_t sample_index, uint32_t *psample_size); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -2001,7 +2001,7 @@ public: SrsMp4UserDataBox(); virtual ~SrsMp4UserDataBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -2040,7 +2040,7 @@ public: SrsMp4SegmentIndexBox(); virtual ~SrsMp4SegmentIndexBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -2079,7 +2079,7 @@ public: SrsMp4SampleAuxiliaryInfoSizeBox(); virtual ~SrsMp4SampleAuxiliaryInfoSizeBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -2117,7 +2117,7 @@ public: SrsMp4SampleAuxiliaryInfoOffsetBox(); virtual ~SrsMp4SampleAuxiliaryInfoOffsetBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -2162,7 +2162,7 @@ public: virtual std::stringstream &dumps(std::stringstream &ss, SrsMp4DumpContext dc); -private: +SRS_DECLARE_PRIVATE: SrsMp4FullBox *senc_; uint8_t per_sample_iv_size_; uint8_t *iv_; @@ -2195,7 +2195,7 @@ class SrsMp4SampleEncryptionBox : public SrsMp4FullBox public: std::vector entries_; -private: +SRS_DECLARE_PRIVATE: uint8_t per_sample_iv_size_; public: @@ -2204,7 +2204,7 @@ public: SrsMp4SampleEncryptionBox(uint8_t per_sample_iv_size); virtual ~SrsMp4SampleEncryptionBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -2220,14 +2220,14 @@ public: // } class SrsMp4OriginalFormatBox : public SrsMp4Box { -private: +SRS_DECLARE_PRIVATE: uint32_t data_format_; public: SrsMp4OriginalFormatBox(uint32_t original_format); virtual ~SrsMp4OriginalFormatBox(); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -2263,7 +2263,7 @@ public: public: virtual void set_scheme_uri(char *uri, uint32_t uri_size); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -2387,7 +2387,7 @@ public: public: virtual void set_default_constant_IV(uint8_t *iv, uint8_t iv_size); -protected: +SRS_DECLARE_PROTECTED: virtual int nb_header(); virtual srs_error_t encode_header(SrsBuffer *buf); virtual srs_error_t decode_header(SrsBuffer *buf); @@ -2438,7 +2438,7 @@ public: // Handles timing offset between audio and video tracks to ensure proper A/V sync in MP4 files. class SrsMp4DvrJitter { -private: +SRS_DECLARE_PRIVATE: uint64_t video_start_dts_; uint64_t audio_start_dts_; bool has_first_video_; @@ -2455,7 +2455,7 @@ public: // to maintain A/V synchronization in MP4 files virtual uint32_t get_first_sample_delta(SrsFrameType track); -private: +SRS_DECLARE_PRIVATE: // Reset the jitter state (useful for new recording sessions) virtual void reset(); // Check if both audio and video start times have been captured @@ -2473,7 +2473,7 @@ private: // The keyframe is specified by stss. class SrsMp4SampleManager { -private: +SRS_DECLARE_PRIVATE: SrsMp4DvrJitter *jitter_; // MP4 A/V sync jitter handler public: @@ -2497,13 +2497,13 @@ public: // @param The dts is the dts of last segment. virtual srs_error_t write(SrsMp4TrackFragmentBox *traf, uint64_t dts); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t write_track(SrsFrameType track, SrsMp4DecodingTime2SampleBox *stts, SrsMp4SyncSampleBox *stss, SrsMp4CompositionTime2SampleBox *ctts, SrsMp4Sample2ChunkBox *stsc, SrsMp4SampleSizeBox *stsz, SrsMp4FullBox *co); virtual srs_error_t do_load(std::map &tses, SrsMp4MovieBox *moov); -private: +SRS_DECLARE_PRIVATE: // Load the samples of track from stco, stsz and stsc. // @param tses The temporary samples, key is offset, value is sample. // @param tt The type of sample, convert to flv tag type. @@ -2517,7 +2517,7 @@ private: // @remark For mdat box, we only decode the header, then skip the data. class SrsMp4BoxReader { -private: +SRS_DECLARE_PRIVATE: ISrsReadSeeker *rsio_; // The temporary buffer to read from buffer. char *buf_; @@ -2533,7 +2533,7 @@ public: // Read a MP4 box to pbox, the stream is fill with the bytes of box to decode. virtual srs_error_t read(SrsSimpleStream *stream, SrsMp4Box **ppbox); -private: +SRS_DECLARE_PRIVATE: srs_error_t do_read(SrsSimpleStream *stream, SrsMp4Box *&box); public: @@ -2544,7 +2544,7 @@ public: // The MP4 demuxer. class SrsMp4Decoder { -private: +SRS_DECLARE_PRIVATE: // The major brand of decoder, parse from ftyp. SrsMp4BoxBrand brand_; // The samples build from moov. @@ -2559,7 +2559,7 @@ public: // TODO: FIXME: Use SrsFormat instead. SrsVideoCodecId vcodec_; -private: +SRS_DECLARE_PRIVATE: // For H.264/AVC, the avcc contains the sps/pps. std::vector pavcc_; // Whether avcc is written to reader. @@ -2576,13 +2576,13 @@ public: // The audio sound type. SrsAudioChannels channels_; -private: +SRS_DECLARE_PRIVATE: // For AAC, the asc in esds box. std::vector pasc_; // Whether asc is written to reader. bool asc_written_; -private: +SRS_DECLARE_PRIVATE: // Underlayer reader and seeker. // @remark The demuxer must use seeker for general MP4 to seek the moov. ISrsReadSeeker *rsio_; @@ -2612,11 +2612,11 @@ public: virtual srs_error_t read_sample(SrsMp4HandlerType *pht, uint16_t *pft, uint16_t *pct, uint32_t *pdts, uint32_t *ppts, uint8_t **psample, uint32_t *pnb_sample); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t parse_ftyp(SrsMp4FileTypeBox *ftyp); virtual srs_error_t parse_moov(SrsMp4MovieBox *moov); -private: +SRS_DECLARE_PRIVATE: // Load the next box from reader. // @param required_box_type The box type required, 0 for any box. virtual srs_error_t load_next_box(SrsMp4Box **ppbox, uint32_t required_box_type); @@ -2646,7 +2646,7 @@ public: // The MP4 muxer. class SrsMp4Encoder : public ISrsMp4Encoder { -private: +SRS_DECLARE_PRIVATE: ISrsWriteSeeker *wsio_; // The mdat offset at file, we must update the header when flush. off_t mdat_offset_; @@ -2666,7 +2666,7 @@ public: // The audio sound type. SrsAudioChannels channels_; -private: +SRS_DECLARE_PRIVATE: // For AAC, the asc in esds box. std::vector pasc_; // The number of audio samples. @@ -2679,7 +2679,7 @@ public: // Forbidden if no video stream. SrsVideoCodecId vcodec_; -private: +SRS_DECLARE_PRIVATE: // For H.264/AVC, the avcc contains the sps/pps. std::vector pavcc_; // For H.265/HEVC, the hvcC contains the vps/sps/pps. @@ -2715,7 +2715,7 @@ public: virtual void set_audio_codec(SrsAudioCodecId vcodec, SrsAudioSampleRate sample_rate, SrsAudioSampleBits sound_bits, SrsAudioChannels channels); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t copy_sequence_header(SrsFormat *format, bool vsh, uint8_t *sample, uint32_t nb_sample); virtual srs_error_t do_write_sample(SrsMp4Sample *ps, uint8_t *sample, uint32_t nb_sample); virtual SrsMp4ObjectType get_audio_object_type(); @@ -2739,10 +2739,10 @@ public: // TODO: What the M2ts short for? class SrsMp4M2tsInitEncoder : public ISrsMp4M2tsInitEncoder { -private: +SRS_DECLARE_PRIVATE: ISrsWriter *writer_; -private: +SRS_DECLARE_PRIVATE: uint8_t crypt_byte_block_; uint8_t skip_byte_block_; unsigned char kid_[16]; @@ -2782,7 +2782,7 @@ public: */ virtual srs_error_t write(SrsFormat *format, int v_tid, int a_tid); -private: +SRS_DECLARE_PRIVATE: /** * box->type = 'encv' or 'enca' * |encv| @@ -2824,13 +2824,13 @@ public: // TODO: fmp4 support package more than one tracks. class SrsMp4M2tsSegmentEncoder : public ISrsMp4M2tsSegmentEncoder { -private: +SRS_DECLARE_PRIVATE: ISrsWriter *writer_; uint32_t sequence_number_; srs_utime_t decode_basetime_; uint32_t track_id_; -private: +SRS_DECLARE_PRIVATE: uint32_t nb_audios_; uint32_t nb_videos_; uint32_t styp_bytes_; @@ -2863,7 +2863,7 @@ public: // TODO: fmp4 support package more than one tracks. class SrsFmp4SegmentEncoder { -private: +SRS_DECLARE_PRIVATE: ISrsWriter *writer_; uint32_t sequence_number_; // TODO: audio, video may have different basetime. @@ -2871,7 +2871,7 @@ private: uint32_t audio_track_id_; uint32_t video_track_id_; -private: +SRS_DECLARE_PRIVATE: uint32_t nb_audios_; uint32_t nb_videos_; uint32_t styp_bytes_; @@ -2880,7 +2880,7 @@ private: SrsMp4SampleManager *audio_samples_; SrsMp4SampleManager *video_samples_; -private: +SRS_DECLARE_PRIVATE: // Encryption unsigned char *key_; unsigned char iv_[16]; diff --git a/trunk/src/kernel/srs_kernel_packet.hpp b/trunk/src/kernel/srs_kernel_packet.hpp index b0ee2def8..85b9becb7 100644 --- a/trunk/src/kernel/srs_kernel_packet.hpp +++ b/trunk/src/kernel/srs_kernel_packet.hpp @@ -252,17 +252,17 @@ public: virtual SrsParsedVideoPacket *video(); virtual SrsVideoCodecConfig *vcodec(); -private: +SRS_DECLARE_PRIVATE: // Demux the video packet in H.264 codec. // The packet is muxed in FLV format, defined in flv specification. // Demux the sps/pps from sequence header. // Demux the samples from NALUs. virtual srs_error_t video_avc_demux(SrsBuffer *stream, int64_t timestamp); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t hevc_demux_hvcc(SrsBuffer *stream); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t hevc_demux_vps_sps_pps(SrsHevcHvccNalu *nal); virtual srs_error_t hevc_demux_vps_rbsp(char *rbsp, int nb_rbsp); virtual srs_error_t hevc_demux_sps_rbsp(char *rbsp, int nb_rbsp); @@ -274,13 +274,13 @@ public: virtual srs_error_t hevc_demux_sps(SrsBuffer *stream); virtual srs_error_t hevc_demux_pps(SrsBuffer *stream); -private: +SRS_DECLARE_PRIVATE: // Parse the H.264 SPS/PPS. virtual srs_error_t avc_demux_sps_pps(SrsBuffer *stream); virtual srs_error_t avc_demux_sps(); virtual srs_error_t avc_demux_sps_rbsp(char *rbsp, int nb_rbsp); -private: +SRS_DECLARE_PRIVATE: // Parse the H.264 or H.265 NALUs. virtual srs_error_t video_nalu_demux(SrsBuffer *stream); // Demux the avc NALU in "AnnexB" from ISO_IEC_14496-10-AVC-2003.pdf, page 211. @@ -290,7 +290,7 @@ private: virtual srs_error_t avc_demux_ibmf_format(SrsBuffer *stream); virtual srs_error_t do_avc_demux_ibmf_format(SrsBuffer *stream); -private: +SRS_DECLARE_PRIVATE: // Demux the audio packet in AAC codec. // Demux the asc from sequence header. // Demux the sampels from RAW data. diff --git a/trunk/src/kernel/srs_kernel_pithy_print.hpp b/trunk/src/kernel/srs_kernel_pithy_print.hpp index bde101b7e..7a652c904 100644 --- a/trunk/src/kernel/srs_kernel_pithy_print.hpp +++ b/trunk/src/kernel/srs_kernel_pithy_print.hpp @@ -43,7 +43,7 @@ public: // Of course, we can add the multiple user support, which is SrsPithyPrint. class SrsStageManager { -private: +SRS_DECLARE_PRIVATE: std::map stages_; public: @@ -63,7 +63,7 @@ public: // The number of call of can_print(). uint32_t nn_count_; -private: +SRS_DECLARE_PRIVATE: double ratio_; SrsStageManager stages_; std::map ticks_; @@ -82,7 +82,7 @@ public: // An standalone pithy print, without shared stages. class SrsAlonePithyPrint { -private: +SRS_DECLARE_PRIVATE: SrsStageInfo info_; srs_utime_t previous_tick_; @@ -127,14 +127,14 @@ public: // } class SrsPithyPrint : public ISrsPithyPrint { -private: +SRS_DECLARE_PRIVATE: int client_id_; SrsStageInfo *cache_; int stage_id_; srs_utime_t age_; srs_utime_t previous_tick_; -private: +SRS_DECLARE_PRIVATE: SrsPithyPrint(int _stage_id); public: @@ -157,7 +157,7 @@ public: static SrsPithyPrint *create_srt_publish(); virtual ~SrsPithyPrint(); -private: +SRS_DECLARE_PRIVATE: // Enter the specified stage, return the client id. virtual int enter_stage(); // Leave the specified stage, release the client id. diff --git a/trunk/src/kernel/srs_kernel_ps.hpp b/trunk/src/kernel/srs_kernel_ps.hpp index 5e62a1dfd..e1759cf85 100644 --- a/trunk/src/kernel/srs_kernel_ps.hpp +++ b/trunk/src/kernel/srs_kernel_ps.hpp @@ -78,7 +78,7 @@ class SrsPsContext : public ISrsPsContext public: SrsPsDecodeHelper helper_; -private: +SRS_DECLARE_PRIVATE: // The last decoding PS(TS) message. SrsTsMessage *last_; // The current parsing PS packet context. @@ -112,7 +112,7 @@ public: // @remark We will consume all bytes in stream. virtual srs_error_t decode(SrsBuffer *stream, ISrsPsMessageHandler *handler); -private: +SRS_DECLARE_PRIVATE: srs_error_t do_decode(SrsBuffer *stream, ISrsPsMessageHandler *handler); }; @@ -274,7 +274,7 @@ public: public: virtual srs_error_t decode(SrsBuffer *stream); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t decode_pack(SrsBuffer *stream); virtual srs_error_t decode_system(SrsBuffer *stream); }; diff --git a/trunk/src/kernel/srs_kernel_resource.hpp b/trunk/src/kernel/srs_kernel_resource.hpp index d1aeccce2..1a74fa6d4 100644 --- a/trunk/src/kernel/srs_kernel_resource.hpp +++ b/trunk/src/kernel/srs_kernel_resource.hpp @@ -123,12 +123,12 @@ public: // The resource manager remove resource and delete it asynchronously. class SrsResourceManager : public ISrsCoroutineHandler, public ISrsResourceManager { -private: +SRS_DECLARE_PRIVATE: std::string label_; SrsContextId cid_; bool verbose_; -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; ISrsCond *cond_; // Callback handlers. @@ -141,7 +141,7 @@ private: std::vector zombies_; std::vector *p_disposing_; -private: +SRS_DECLARE_PRIVATE: // The connections without any id. std::vector conns_; // The connections with resource id. @@ -183,7 +183,7 @@ public: public: virtual void remove(ISrsResource *c); -private: +SRS_DECLARE_PRIVATE: void do_remove(ISrsResource *c); void check_remove(ISrsResource *c, bool &in_zombie, bool &in_disposing); void clear(); @@ -210,7 +210,7 @@ private: template class SrsSharedResource : public ISrsResource { -private: +SRS_DECLARE_PRIVATE: SrsSharedPtr ptr_; public: @@ -244,7 +244,7 @@ public: return *this; } -private: +SRS_DECLARE_PRIVATE: // Overload the * operator. T &operator*() { diff --git a/trunk/src/kernel/srs_kernel_rtc_queue.hpp b/trunk/src/kernel/srs_kernel_rtc_queue.hpp index 9652e3f7b..dc6acce68 100644 --- a/trunk/src/kernel/srs_kernel_rtc_queue.hpp +++ b/trunk/src/kernel/srs_kernel_rtc_queue.hpp @@ -30,7 +30,7 @@ class SrsRtpRingBuffer; // We store the received packets in ring buffer. class SrsRtpRingBuffer { -private: +SRS_DECLARE_PRIVATE: // Capacity of the ring-buffer. uint16_t capacity_; // Ring bufer. @@ -106,7 +106,7 @@ struct SrsRtpNackInfo { class SrsRtpNackForReceiver { -private: +SRS_DECLARE_PRIVATE: // Nack queue, seq order, oldest to newest. std::map queue_; // Max nack count. @@ -114,10 +114,10 @@ private: SrsRtpRingBuffer *rtp_; SrsNackOption opts_; -private: +SRS_DECLARE_PRIVATE: srs_utime_t pre_check_time_; -private: +SRS_DECLARE_PRIVATE: int rtt_; public: diff --git a/trunk/src/kernel/srs_kernel_rtc_rtcp.hpp b/trunk/src/kernel/srs_kernel_rtc_rtcp.hpp index a39edb5d3..970ee6156 100644 --- a/trunk/src/kernel/srs_kernel_rtc_rtcp.hpp +++ b/trunk/src/kernel/srs_kernel_rtc_rtcp.hpp @@ -63,7 +63,7 @@ struct SrsRtcpHeader { class SrsRtcpCommon : public ISrsCodec { -protected: +SRS_DECLARE_PROTECTED: SrsRtcpHeader header_; uint32_t ssrc_; uint8_t payload_[kRtcpPacketSize]; @@ -72,7 +72,7 @@ protected: char *data_; int nb_data_; -protected: +SRS_DECLARE_PROTECTED: srs_error_t decode_header(SrsBuffer *buffer); srs_error_t encode_header(SrsBuffer *buffer); @@ -96,7 +96,7 @@ public: class SrsRtcpApp : public SrsRtcpCommon { -private: +SRS_DECLARE_PRIVATE: uint8_t name_[4]; public: @@ -144,7 +144,7 @@ struct SrsRtcpRB { class SrsRtcpSR : public SrsRtcpCommon { -private: +SRS_DECLARE_PRIVATE: uint64_t ntp_; uint32_t rtp_ts_; uint32_t send_rtp_packets_; @@ -175,7 +175,7 @@ public: class SrsRtcpRR : public SrsRtcpCommon { -private: +SRS_DECLARE_PRIVATE: SrsRtcpRB rb_; public: @@ -213,7 +213,7 @@ public: // inlucde Transport layer FB message and Payload-specific FB message. class SrsRtcpFbCommon : public SrsRtcpCommon { -protected: +SRS_DECLARE_PROTECTED: uint32_t media_ssrc_; public: @@ -273,7 +273,7 @@ public: class SrsRtcpTWCC : public SrsRtcpFbCommon { -private: +SRS_DECLARE_PRIVATE: uint16_t base_sn_; int32_t reference_time_; uint8_t fb_pkt_count_; @@ -294,7 +294,7 @@ private: int pkt_len_; uint16_t next_base_sn_; -private: +SRS_DECLARE_PRIVATE: void clear(); srs_utime_t calculate_delta_us(srs_utime_t ts, srs_utime_t last); srs_error_t process_pkt_chunk(SrsRtcpTWCCChunk &chunk, int delta_size); @@ -332,13 +332,13 @@ public: virtual uint64_t nb_bytes(); virtual srs_error_t encode(SrsBuffer *buffer); -private: +SRS_DECLARE_PRIVATE: srs_error_t do_encode(SrsBuffer *buffer); }; class SrsRtcpNack : public SrsRtcpFbCommon { -private: +SRS_DECLARE_PRIVATE: struct SrsPidBlp { uint16_t pid_; uint16_t blp_; @@ -377,7 +377,7 @@ public: class SrsRtcpSli : public SrsRtcpFbCommon { -private: +SRS_DECLARE_PRIVATE: uint16_t first_; uint16_t number_; uint8_t picture_; @@ -395,7 +395,7 @@ public: class SrsRtcpRpsi : public SrsRtcpFbCommon { -private: +SRS_DECLARE_PRIVATE: uint8_t pb_; uint8_t payload_type_; char *native_rpsi_; @@ -427,7 +427,7 @@ public: class SrsRtcpCompound : public ISrsCodec { -private: +SRS_DECLARE_PRIVATE: std::vector rtcps_; int nb_bytes_; char *data_; diff --git a/trunk/src/kernel/srs_kernel_rtc_rtp.hpp b/trunk/src/kernel/srs_kernel_rtc_rtp.hpp index 1f8ccfb15..d358b002f 100644 --- a/trunk/src/kernel/srs_kernel_rtc_rtp.hpp +++ b/trunk/src/kernel/srs_kernel_rtc_rtp.hpp @@ -137,10 +137,10 @@ public: SrsRtpExtensionTypes(); virtual ~SrsRtpExtensionTypes(); -private: +SRS_DECLARE_PRIVATE: bool register_id(int id, SrsRtpExtensionType type, std::string uri); -private: +SRS_DECLARE_PRIVATE: uint8_t ids_[kRtpExtensionNumberOfExtensions]; }; @@ -197,17 +197,17 @@ public: // Note that the extensions should never extends from any class, for performance. class SrsRtpExtensions // : public ISrsCodec { -private: +SRS_DECLARE_PRIVATE: bool has_ext_; // by default, twcc isnot decoded. Because it is decoded by fast function(srs_rtp_fast_parse_twcc) bool decode_twcc_extension_; -private: +SRS_DECLARE_PRIVATE: // The extension types is used to decode the packet, which is reference to // the types in publish stream. SrsRtpExtensionTypes *types_; -private: +SRS_DECLARE_PRIVATE: SrsRtpExtensionTwcc twcc_; SrsRtpExtensionOneByte audio_level_; @@ -227,7 +227,7 @@ public: public: virtual srs_error_t decode(SrsBuffer *buf); -private: +SRS_DECLARE_PRIVATE: srs_error_t decode_0xbede(SrsBuffer *buf); public: @@ -238,7 +238,7 @@ public: // Note that the header should never extends from any class, for performance. class SrsRtpHeader // : public ISrsCodec { -private: +SRS_DECLARE_PRIVATE: uint8_t padding_length_; uint8_t cc_; bool marker_; @@ -257,7 +257,7 @@ public: public: virtual srs_error_t decode(SrsBuffer *buf); -private: +SRS_DECLARE_PRIVATE: srs_error_t parse_extensions(SrsBuffer *buf); public: @@ -326,11 +326,11 @@ class SrsRtpPacket public: SrsRtpHeader header_; -private: +SRS_DECLARE_PRIVATE: ISrsRtpPayloader *payload_; SrsRtpPacketPayloadType payload_type_; -private: +SRS_DECLARE_PRIVATE: // The original shared memory block, all RTP packets can refer to its data. // Note that the size of shared memory block, is not the packet size, it's a larger aligned buffer. // @remark Note that it may point to the whole RTP packet(for RTP parser, which decode RTP packet from buffer), @@ -345,13 +345,13 @@ public: // The frame type, for RTMP bridge or SFU source. SrsFrameType frame_type_; // Fast cache for performance. -private: +SRS_DECLARE_PRIVATE: // The cached payload size for packet. int cached_payload_size_; // The helper handler for decoder, use RAW payload if NULL. ISrsRtpPacketDecodeHandler *decode_handler_; -private: +SRS_DECLARE_PRIVATE: int64_t avsync_time_; public: @@ -428,7 +428,7 @@ public: // Multiple NALUs, automatically insert 001 between NALUs. class SrsRtpRawNALUs : public ISrsRtpPayloader { -private: +SRS_DECLARE_PRIVATE: // We will manage the samples, but the sample itself point to the shared memory. std::vector nalus_; int nn_bytes_; diff --git a/trunk/src/kernel/srs_kernel_stream.hpp b/trunk/src/kernel/srs_kernel_stream.hpp index 91a33dbb0..e9abe3839 100644 --- a/trunk/src/kernel/srs_kernel_stream.hpp +++ b/trunk/src/kernel/srs_kernel_stream.hpp @@ -17,7 +17,7 @@ */ class SrsSimpleStream { -private: +SRS_DECLARE_PRIVATE: std::vector data_; public: diff --git a/trunk/src/kernel/srs_kernel_ts.hpp b/trunk/src/kernel/srs_kernel_ts.hpp index ad8ef525d..ce1885e05 100644 --- a/trunk/src/kernel/srs_kernel_ts.hpp +++ b/trunk/src/kernel/srs_kernel_ts.hpp @@ -338,18 +338,18 @@ public: // The context of ts, to decode the ts stream. class SrsTsContext : public ISrsTsContext { -private: +SRS_DECLARE_PRIVATE: // Whether context is ready, failed if try to write data when not ready. // When PAT and PMT writen, the context is ready. // @see https://github.com/ossrs/srs/issues/834 bool ready_; -private: +SRS_DECLARE_PRIVATE: std::map pids_; bool pure_audio_; int8_t sync_byte_; -private: +SRS_DECLARE_PRIVATE: // when any codec changed, write the PAT/PMT. SrsVideoCodecId vcodec_; SrsAudioCodecId acodec_; @@ -391,7 +391,7 @@ public: // @param ac The audio codec, write the PAT/PMT table when changed. virtual srs_error_t encode(ISrsStreamWriter *writer, SrsTsMessage *msg, SrsVideoCodecId vc, SrsAudioCodecId ac); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t encode_pat_pmt(ISrsStreamWriter *writer, int16_t vpid, SrsTsStream vs, int16_t apid, SrsTsStream as); virtual srs_error_t encode_pes(ISrsStreamWriter *writer, SrsTsMessage *msg, int16_t pid, SrsTsStream sid, bool pure_audio); }; @@ -471,7 +471,7 @@ public: // The continuity counter may be discontinuous when the discontinuity_indicator is set to '1' (refer to 2.4.3.4). In the case of // a null packet the value of the continuity_counter is undefined. uint8_t continuity_counter_; // 4bits -private: +SRS_DECLARE_PRIVATE: SrsTsAdaptationField *adaptation_field_; SrsTsPayload *payload_; @@ -742,7 +742,7 @@ public: // decoder. int nb_af_reserved_; -private: +SRS_DECLARE_PRIVATE: SrsTsPacket *packet_; public: @@ -788,7 +788,7 @@ enum SrsTsPsiId { // The payload of ts packet, can be PES or PSI payload. class SrsTsPayload { -protected: +SRS_DECLARE_PROTECTED: SrsTsPacket *packet_; public: @@ -1071,7 +1071,7 @@ public: virtual int size(); virtual srs_error_t encode(SrsBuffer *stream); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t decode_33bits_dts_pts(SrsBuffer *stream, int64_t *pv); virtual srs_error_t encode_33bits_dts_pts(SrsBuffer *stream, uint8_t fb, int64_t v); }; @@ -1145,7 +1145,7 @@ public: virtual int size(); virtual srs_error_t encode(SrsBuffer *stream); -protected: +SRS_DECLARE_PROTECTED: virtual int psi_size() = 0; virtual srs_error_t psi_encode(SrsBuffer *stream) = 0; virtual srs_error_t psi_decode(SrsBuffer *stream) = 0; @@ -1226,10 +1226,10 @@ public: SrsTsPayloadPAT(SrsTsPacket *p); virtual ~SrsTsPayloadPAT(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t psi_decode(SrsBuffer *stream); -protected: +SRS_DECLARE_PROTECTED: virtual int psi_size(); virtual srs_error_t psi_encode(SrsBuffer *stream); }; @@ -1331,10 +1331,10 @@ public: SrsTsPayloadPMT(SrsTsPacket *p); virtual ~SrsTsPayloadPMT(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t psi_decode(SrsBuffer *stream); -protected: +SRS_DECLARE_PROTECTED: virtual int psi_size(); virtual srs_error_t psi_encode(SrsBuffer *stream); }; @@ -1366,12 +1366,12 @@ public: // Write the TS message to TS context. class SrsTsContextWriter : public ISrsTsContextWriter { -private: +SRS_DECLARE_PRIVATE: // User must config the codec in right way. SrsVideoCodecId vcodec_; SrsAudioCodecId acodec_; -private: +SRS_DECLARE_PRIVATE: ISrsTsContext *context_; ISrsStreamWriter *writer_; std::string path_; @@ -1411,11 +1411,11 @@ public: public: srs_error_t config_cipher(unsigned char *key, unsigned char *iv); -private: +SRS_DECLARE_PRIVATE: unsigned char *key; unsigned char iv[16]; -private: +SRS_DECLARE_PRIVATE: char *buf; int nb_buf; }; @@ -1469,7 +1469,7 @@ public: virtual SrsTsMessage *video(); virtual void set_video(SrsTsMessage *msg); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cache_mp3(SrsParsedAudioPacket *frame); virtual srs_error_t do_cache_aac(SrsParsedAudioPacket *frame); virtual srs_error_t do_cache_avc(SrsParsedVideoPacket *frame); @@ -1497,13 +1497,13 @@ public: // Transmux the RTMP stream to HTTP-TS stream. class SrsTsTransmuxer : public ISrsTsTransmuxer { -private: +SRS_DECLARE_PRIVATE: ISrsStreamWriter *writer_; bool has_audio_; bool has_video_; bool guess_has_av_; -private: +SRS_DECLARE_PRIVATE: ISrsFormat *format_; ISrsTsMessageCache *tsmc_; ISrsTsContextWriter *tscw_; @@ -1529,7 +1529,7 @@ public: virtual srs_error_t write_audio(int64_t timestamp, char *data, int size); virtual srs_error_t write_video(int64_t timestamp, char *data, int size); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t flush_audio(); virtual srs_error_t flush_video(); }; diff --git a/trunk/src/protocol/srs_protocol_amf0.hpp b/trunk/src/protocol/srs_protocol_amf0.hpp index f93998837..bd6392537 100644 --- a/trunk/src/protocol/srs_protocol_amf0.hpp +++ b/trunk/src/protocol/srs_protocol_amf0.hpp @@ -318,11 +318,11 @@ public: */ class SrsAmf0Object : public SrsAmf0Any { -private: +SRS_DECLARE_PRIVATE: srs_internal::SrsUnSortedHashtable *properties_; srs_internal::SrsAmf0ObjectEOF *eof_; -private: +SRS_DECLARE_PRIVATE: friend class SrsAmf0Any; /** * make amf0 object to private, @@ -410,12 +410,12 @@ public: */ class SrsAmf0EcmaArray : public SrsAmf0Any { -private: +SRS_DECLARE_PRIVATE: srs_internal::SrsUnSortedHashtable *properties_; srs_internal::SrsAmf0ObjectEOF *eof_; int32_t count_; -private: +SRS_DECLARE_PRIVATE: friend class SrsAmf0Any; /** * make amf0 object to private, @@ -498,11 +498,11 @@ public: */ class SrsAmf0StrictArray : public SrsAmf0Any { -private: +SRS_DECLARE_PRIVATE: std::vector properties_; int32_t count_; -private: +SRS_DECLARE_PRIVATE: friend class SrsAmf0Any; /** * make amf0 object to private, @@ -630,7 +630,7 @@ class SrsAmf0String : public SrsAmf0Any public: std::string value_; -private: +SRS_DECLARE_PRIVATE: friend class SrsAmf0Any; /** * make amf0 string to private, @@ -660,7 +660,7 @@ class SrsAmf0Boolean : public SrsAmf0Any public: bool value_; -private: +SRS_DECLARE_PRIVATE: friend class SrsAmf0Any; /** * make amf0 boolean to private, @@ -689,7 +689,7 @@ class SrsAmf0Number : public SrsAmf0Any public: double value_; -private: +SRS_DECLARE_PRIVATE: friend class SrsAmf0Any; /** * make amf0 number to private, @@ -715,11 +715,11 @@ public: */ class SrsAmf0Date : public SrsAmf0Any { -private: +SRS_DECLARE_PRIVATE: int64_t date_value_; int16_t time_zone_; -private: +SRS_DECLARE_PRIVATE: friend class SrsAmf0Any; /** * make amf0 date to private, @@ -754,7 +754,7 @@ public: */ class SrsAmf0Null : public SrsAmf0Any { -private: +SRS_DECLARE_PRIVATE: friend class SrsAmf0Any; /** * make amf0 null to private, @@ -779,7 +779,7 @@ public: */ class SrsAmf0Undefined : public SrsAmf0Any { -private: +SRS_DECLARE_PRIVATE: friend class SrsAmf0Any; /** * make amf0 undefined to private, @@ -805,7 +805,7 @@ public: */ class SrsUnSortedHashtable { -private: +SRS_DECLARE_PRIVATE: typedef std::pair SrsAmf0ObjectPropertyType; std::vector properties_; diff --git a/trunk/src/protocol/srs_protocol_conn.hpp b/trunk/src/protocol/srs_protocol_conn.hpp index 8063a7a33..0b3b9eb3c 100644 --- a/trunk/src/protocol/srs_protocol_conn.hpp +++ b/trunk/src/protocol/srs_protocol_conn.hpp @@ -51,7 +51,7 @@ public: // server will add the connection to manager, and delete it when remove. class SrsTcpConnection : public ISrsProtocolReadWriter { -private: +SRS_DECLARE_PRIVATE: // The underlayer st fd handler. srs_netfd_t stfd_; // The underlayer socket. @@ -84,7 +84,7 @@ public: // cache or buffer. class SrsBufferedReadWriter : public ISrsProtocolReadWriter { -private: +SRS_DECLARE_PRIVATE: // The under-layer transport. ISrsProtocolReadWriter *io_; // Fixed, small and fast buffer. Note that it must be very small piece of cache, make sure matches all protocols, @@ -101,7 +101,7 @@ public: // Peek the head of cache to buf in size of bytes. srs_error_t peek(char *buf, int *size); -private: +SRS_DECLARE_PRIVATE: srs_error_t reload_buffer(); // Interface ISrsProtocolReadWriter public: @@ -131,11 +131,11 @@ public: // The SSL connection over TCP transport, in server mode. class SrsSslConnection : public ISrsSslConnection { -private: +SRS_DECLARE_PRIVATE: // The under-layer plaintext transport. ISrsProtocolReadWriter *transport_; -private: +SRS_DECLARE_PRIVATE: SSL_CTX *ssl_ctx_; SSL *ssl_; BIO *bio_in_; diff --git a/trunk/src/protocol/srs_protocol_http_client.hpp b/trunk/src/protocol/srs_protocol_http_client.hpp index 2b4f67692..1e4bde818 100644 --- a/trunk/src/protocol/srs_protocol_http_client.hpp +++ b/trunk/src/protocol/srs_protocol_http_client.hpp @@ -32,10 +32,10 @@ class SrsTcpClient; // The SSL client over TCP transport. class SrsSslClient : public ISrsReader, public ISrsStreamWriter { -private: +SRS_DECLARE_PRIVATE: ISrsProtocolReadWriter *transport_; -private: +SRS_DECLARE_PRIVATE: SSL_CTX *ssl_ctx_; SSL *ssl_; BIO *bio_in_; @@ -82,7 +82,7 @@ public: // hc.post("/api/v1/version", "Hello world!", NULL); class SrsHttpClient : public ISrsHttpClient { -private: +SRS_DECLARE_PRIVATE: // The underlayer TCP transport, set to NULL when disconnect, or never not NULL when connected. // We will disconnect transport when initialize or channel error, such as send/recv error. SrsTcpClient *transport_; @@ -90,7 +90,7 @@ private: std::map headers_; SrsNetworkKbps *kbps_; -private: +SRS_DECLARE_PRIVATE: // The timeout in srs_utime_t. srs_utime_t timeout_; srs_utime_t recv_timeout_; @@ -99,7 +99,7 @@ private: std::string host_; int port_; -private: +SRS_DECLARE_PRIVATE: SrsSslClient *ssl_transport_; public: @@ -136,7 +136,7 @@ public: public: virtual void kbps_sample(const char *label, srs_utime_t age); -private: +SRS_DECLARE_PRIVATE: virtual void disconnect(); virtual srs_error_t connect(); ISrsStreamWriter *writer(); diff --git a/trunk/src/protocol/srs_protocol_http_conn.hpp b/trunk/src/protocol/srs_protocol_http_conn.hpp index 80a72692a..e527d3fa9 100644 --- a/trunk/src/protocol/srs_protocol_http_conn.hpp +++ b/trunk/src/protocol/srs_protocol_http_conn.hpp @@ -47,7 +47,7 @@ public: // provides HTTP message originted service. class SrsHttpParser : public ISrsHttpParser { -private: +SRS_DECLARE_PRIVATE: llhttp_settings_t settings_; llhttp_t parser_; // The global parse buffer. @@ -55,7 +55,7 @@ private: // Whether allow jsonp parse. bool jsonp_; -private: +SRS_DECLARE_PRIVATE: std::string field_name_; std::string field_value_; SrsHttpParseState state_; @@ -82,11 +82,11 @@ public: // @remark user must free the ppmsg if not NULL. virtual srs_error_t parse_message(ISrsReader *reader, ISrsHttpMessage **ppmsg); -private: +SRS_DECLARE_PRIVATE: // parse the HTTP message to member field: msg. virtual srs_error_t parse_message_imp(ISrsReader *reader); -private: +SRS_DECLARE_PRIVATE: static int on_message_begin(llhttp_t *parser); static int on_headers_complete(llhttp_t *parser); static int on_message_complete(llhttp_t *parser); @@ -104,7 +104,7 @@ private: // documentation for Request.Write and RoundTripper. class SrsHttpMessage : public ISrsHttpMessage { -private: +SRS_DECLARE_PRIVATE: // The body object, reader object. // @remark, user can get body in string by get_body(). SrsHttpResponseReader *_body; @@ -112,7 +112,7 @@ private: // The transport connection, can be NULL. ISrsConnection *owner_conn_; -private: +SRS_DECLARE_PRIVATE: // The request type defined as // enum http_parser_type { HTTP_REQUEST, HTTP_RESPONSE, HTTP_BOTH }; uint8_t type_; @@ -121,7 +121,7 @@ private: llhttp_status_t _status; int64_t _content_length; -private: +SRS_DECLARE_PRIVATE: // The http headers SrsHttpHeader _header; // Whether the request indicates should keep alive for the http connection. @@ -129,7 +129,7 @@ private: // Whether the body is chunked. bool chunked_; -private: +SRS_DECLARE_PRIVATE: std::string schema_; // The parsed url. std::string _url; @@ -140,7 +140,7 @@ private: // The query map std::map _query; -private: +SRS_DECLARE_PRIVATE: // Whether request is jsonp. bool jsonp_; // The method in QueryString will override the HTTP method. @@ -253,7 +253,7 @@ public: // HTTP request, the first line is RequestLine. While for HTTP response, it's StatusLine. class SrsHttpMessageWriter { -private: +SRS_DECLARE_PRIVATE: ISrsProtocolReadWriter *skt_; SrsHttpHeader *hdr_; // Before writing header, there is a chance to filter it, @@ -262,22 +262,22 @@ private: // The first line writer. ISrsHttpFirstLineWriter *flw_; -private: +SRS_DECLARE_PRIVATE: char header_cache_[SRS_HTTP_HEADER_CACHE_SIZE]; iovec *iovss_cache_; int nb_iovss_cache_; -private: +SRS_DECLARE_PRIVATE: // Reply header has been (logically) written bool header_wrote_; -private: +SRS_DECLARE_PRIVATE: // The explicitly-declared Content-Length; or -1 int64_t content_length_; // The number of bytes written in body int64_t written_; -private: +SRS_DECLARE_PRIVATE: // The wroteHeader tells whether the header's been written to "the // wire" (or rather: w.conn.buf). this is unlike // (*response).wroteHeader, which tells only whether it was @@ -306,7 +306,7 @@ public: // Response writer use st socket class SrsHttpResponseWriter : public ISrsHttpResponseWriter, public ISrsHttpFirstLineWriter { -protected: +SRS_DECLARE_PROTECTED: SrsHttpMessageWriter *writer_; // The status code passed to WriteHeader, for response only. int status_; @@ -333,7 +333,7 @@ public: // Request writer use st socket class SrsHttpRequestWriter : public ISrsHttpRequestWriter, public ISrsHttpFirstLineWriter { -protected: +SRS_DECLARE_PROTECTED: SrsHttpMessageWriter *writer_; // The method and path passed to WriteHeader, for request only. std::string method_; @@ -358,7 +358,7 @@ public: // Response reader use st socket. class SrsHttpResponseReader : public ISrsHttpResponseReader { -private: +SRS_DECLARE_PRIVATE: ISrsReader *skt_; SrsHttpMessage *owner_; SrsFastStream *buffer_; @@ -386,7 +386,7 @@ public: virtual bool eof(); virtual srs_error_t read(void *buf, size_t size, ssize_t *nread); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t read_chunked(void *buf, size_t size, ssize_t *nread); virtual srs_error_t read_specified(void *buf, size_t size, ssize_t *nread); }; diff --git a/trunk/src/protocol/srs_protocol_http_stack.hpp b/trunk/src/protocol/srs_protocol_http_stack.hpp index ec1cd1ee4..ecc6f9fa6 100644 --- a/trunk/src/protocol/srs_protocol_http_stack.hpp +++ b/trunk/src/protocol/srs_protocol_http_stack.hpp @@ -85,7 +85,7 @@ enum SrsHttpParseState { // A Header represents the key-value pairs in an HTTP header. class SrsHttpHeader { -private: +SRS_DECLARE_PRIVATE: // The order in which header fields with differing field names are // received is not significant. However, it is "good practice" to send // general-header fields first, followed by request-header or response- @@ -304,7 +304,7 @@ public: // Redirect to a fixed URL class SrsHttpRedirectHandler : public ISrsHttpHandler { -private: +SRS_DECLARE_PRIVATE: std::string url; int code; @@ -341,10 +341,10 @@ extern std::string srs_http_fs_fullpath(std::string dir, std::string pattern, st // http.Handle("/", SrsHttpFileServer("static-dir")) class SrsHttpFileServer : public ISrsHttpHandler { -protected: +SRS_DECLARE_PROTECTED: std::string dir; -protected: +SRS_DECLARE_PROTECTED: ISrsFileReaderFactory *fs_factory; SrsPath *path_; @@ -352,7 +352,7 @@ public: SrsHttpFileServer(std::string root_dir); virtual ~SrsHttpFileServer(); -private: +SRS_DECLARE_PRIVATE: // For utest to mock the fs. virtual void set_fs_factory(ISrsFileReaderFactory *v); // For utest to mock the path utility. @@ -361,13 +361,13 @@ private: public: virtual srs_error_t serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r); -private: +SRS_DECLARE_PRIVATE: // Serve the file by specified path virtual srs_error_t serve_file(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, std::string fullpath); virtual srs_error_t serve_flv_file(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, std::string fullpath); virtual srs_error_t serve_mp4_file(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, std::string fullpath); -protected: +SRS_DECLARE_PROTECTED: // When access flv file with x.flv?start=xxx virtual srs_error_t serve_flv_stream(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, std::string fullpath, int64_t offset); // When access mp4 file with x.mp4?range=start-end @@ -388,7 +388,7 @@ protected: // the ts file including: .ts .m4s init.mp4 virtual srs_error_t serve_ts_ctx(ISrsHttpResponseWriter *w, ISrsHttpMessage *r, std::string fullpath); -protected: +SRS_DECLARE_PROTECTED: // Copy the fs to response writer in size bytes. virtual srs_error_t copy(ISrsHttpResponseWriter *w, SrsFileReader *fs, ISrsHttpMessage *r, int64_t size); }; @@ -476,7 +476,7 @@ public: // equivalent .- and ..-free URL. class SrsHttpServeMux : public ISrsHttpServeMux { -private: +SRS_DECLARE_PRIVATE: // The pattern handler, to handle the http request. std::map static_matchers_; // The vhost handler. @@ -486,7 +486,7 @@ private: // The path will rewrite to ossrs.net/live/livestream.flv std::map vhosts_; -private: +SRS_DECLARE_PRIVATE: // all dynamic matcher for http match. // For example, the hstrs(http stream trigger rtmp source) // can dynamic match and install handler when request incoming and no handler. @@ -518,7 +518,7 @@ public: public: virtual srs_error_t find_handler(ISrsHttpMessage *r, ISrsHttpHandler **ph); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t match(ISrsHttpMessage *r, ISrsHttpHandler **ph); virtual bool path_match(std::string pattern, std::string path); }; @@ -537,7 +537,7 @@ public: // The filter http mux, directly serve the http CORS requests class SrsHttpCorsMux : public ISrsHttpCorsMux { -private: +SRS_DECLARE_PRIVATE: bool required; bool enabled; ISrsHttpHandler *next_; @@ -570,7 +570,7 @@ public: // @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/WWW-Authenticate class SrsHttpAuthMux : public ISrsHttpAuthMux { -private: +SRS_DECLARE_PRIVATE: bool enabled_; std::string username_; std::string password_; @@ -586,7 +586,7 @@ public: public: virtual srs_error_t serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage *r); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_auth(ISrsHttpResponseWriter *w, ISrsHttpMessage *r); }; @@ -668,7 +668,7 @@ public: // Used to resolve the http uri. class SrsHttpUri { -private: +SRS_DECLARE_PRIVATE: std::string url_; std::string schema_; std::string host_; @@ -702,7 +702,7 @@ public: virtual std::string username(); virtual std::string password(); -private: +SRS_DECLARE_PRIVATE: // Simple URL parser to replace http-parser URL parsing virtual srs_error_t parse_url_simple(const std::string &url, std::string &schema, std::string &host, int &port, std::string &path, std::string &query, std::string &fragment, diff --git a/trunk/src/protocol/srs_protocol_json.hpp b/trunk/src/protocol/srs_protocol_json.hpp index 5273fb079..72ca8464f 100644 --- a/trunk/src/protocol/srs_protocol_json.hpp +++ b/trunk/src/protocol/srs_protocol_json.hpp @@ -44,7 +44,7 @@ public: char marker_; // Don't directly create this object, // please use SrsJsonAny::str() to create a concreated one. -protected: +SRS_DECLARE_PROTECTED: SrsJsonAny(); public: @@ -101,11 +101,11 @@ public: class SrsJsonObject : public SrsJsonAny { -private: +SRS_DECLARE_PRIVATE: typedef std::pair SrsJsonObjectPropertyType; std::vector properties_; -private: +SRS_DECLARE_PRIVATE: // Use SrsJsonAny::object() to create it. friend class SrsJsonAny; SrsJsonObject(); @@ -137,10 +137,10 @@ public: class SrsJsonArray : public SrsJsonAny { -private: +SRS_DECLARE_PRIVATE: std::vector properties_; -private: +SRS_DECLARE_PRIVATE: // Use SrsJsonAny::array() to create it. friend class SrsJsonAny; SrsJsonArray(); diff --git a/trunk/src/protocol/srs_protocol_log.hpp b/trunk/src/protocol/srs_protocol_log.hpp index 015cb9f64..a0eeff67e 100644 --- a/trunk/src/protocol/srs_protocol_log.hpp +++ b/trunk/src/protocol/srs_protocol_log.hpp @@ -19,7 +19,7 @@ // which identify the client. class SrsThreadContext : public ISrsContext { -private: +SRS_DECLARE_PRIVATE: std::map cache_; public: @@ -31,7 +31,7 @@ public: virtual const SrsContextId &get_id(); virtual const SrsContextId &set_id(const SrsContextId &v); -private: +SRS_DECLARE_PRIVATE: virtual void clear_cid(); }; diff --git a/trunk/src/protocol/srs_protocol_protobuf.hpp b/trunk/src/protocol/srs_protocol_protobuf.hpp index 772a00f36..a98b6dc9d 100644 --- a/trunk/src/protocol/srs_protocol_protobuf.hpp +++ b/trunk/src/protocol/srs_protocol_protobuf.hpp @@ -17,7 +17,7 @@ class ISrsEncoder; // See https://developers.google.com/protocol-buffers/docs/encoding#varints class SrsProtobufVarints { -private: +SRS_DECLARE_PRIVATE: static int bits_len64(uint64_t x); public: diff --git a/trunk/src/protocol/srs_protocol_rtc_stun.hpp b/trunk/src/protocol/srs_protocol_rtc_stun.hpp index 26b649355..3fed0a731 100644 --- a/trunk/src/protocol/srs_protocol_rtc_stun.hpp +++ b/trunk/src/protocol/srs_protocol_rtc_stun.hpp @@ -59,7 +59,7 @@ enum SrsStunMessageAttribute { class SrsStunPacket { -private: +SRS_DECLARE_PRIVATE: uint16_t message_type_; std::string username_; std::string local_ufrag_; @@ -97,7 +97,7 @@ public: srs_error_t decode(const char *buf, const int nb_buf); srs_error_t encode(const std::string &pwd, SrsBuffer *stream); -private: +SRS_DECLARE_PRIVATE: srs_error_t encode_binding_response(const std::string &pwd, SrsBuffer *stream); std::string encode_username(); std::string encode_mapped_address(); diff --git a/trunk/src/protocol/srs_protocol_rtmp_conn.hpp b/trunk/src/protocol/srs_protocol_rtmp_conn.hpp index 0f9b6bb5b..eae3372d3 100644 --- a/trunk/src/protocol/srs_protocol_rtmp_conn.hpp +++ b/trunk/src/protocol/srs_protocol_rtmp_conn.hpp @@ -68,15 +68,15 @@ public: // client.close(); class SrsBasicRtmpClient : public ISrsBasicRtmpClient { -private: +SRS_DECLARE_PRIVATE: std::string url_; srs_utime_t connect_timeout_; srs_utime_t stream_timeout_; -protected: +SRS_DECLARE_PROTECTED: ISrsRequest *req_; -private: +SRS_DECLARE_PRIVATE: SrsTcpClient *transport_; SrsRtmpClient *client_; SrsNetworkKbps *kbps_; @@ -100,7 +100,7 @@ public: virtual srs_error_t connect(); virtual void close(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t connect_app(); virtual srs_error_t do_connect_app(std::string local_ip, bool debug); diff --git a/trunk/src/protocol/srs_protocol_rtmp_handshake.hpp b/trunk/src/protocol/srs_protocol_rtmp_handshake.hpp index aa90c1103..7393d974d 100644 --- a/trunk/src/protocol/srs_protocol_rtmp_handshake.hpp +++ b/trunk/src/protocol/srs_protocol_rtmp_handshake.hpp @@ -36,14 +36,14 @@ srs_error_t openssl_generate_key(char *public_key, int32_t size); // The DH wrapper. class SrsDH { -private: +SRS_DECLARE_PRIVATE: DH *pdh; public: SrsDH(); virtual ~SrsDH(); -private: +SRS_DECLARE_PRIVATE: virtual void close(); public: @@ -67,7 +67,7 @@ public: // user should never ignore this size. virtual srs_error_t copy_shared_key(const char *ppkey, int32_t ppkey_size, char *skey, int32_t &skey_size); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_initialize(); }; // The schema type. @@ -91,7 +91,7 @@ enum srs_schema_type { // @see also: http://blog.csdn.net/win_lin/article/details/13006803 class SrsKeyBlock { -private: +SRS_DECLARE_PRIVATE: SrsRand rand_; public: @@ -119,7 +119,7 @@ public: // @stream contains c1s1_key_bytes the key start bytes srs_error_t parse(SrsBuffer *stream); -private: +SRS_DECLARE_PRIVATE: // Calculate the offset of key, // The key->offset cannot be used as the offset of key. int calc_valid_offset(); @@ -133,7 +133,7 @@ private: // @see also: http://blog.csdn.net/win_lin/article/details/13006803 class SrsDigestBlock { -private: +SRS_DECLARE_PRIVATE: SrsRand rand_; public: @@ -161,7 +161,7 @@ public: // @stream contains c1s1_digest_bytes the digest start bytes srs_error_t parse(SrsBuffer *stream); -private: +SRS_DECLARE_PRIVATE: // Calculate the offset of digest, // The key->offset cannot be used as the offset of digest. int calc_valid_offset(); @@ -174,7 +174,7 @@ class SrsC1S1; // while the concrete class to implements in schema0 or schema1. class SrsC1S1Strategy { -protected: +SRS_DECLARE_PROTECTED: SrsKeyBlock key_; SrsDigestBlock digest_; @@ -389,7 +389,7 @@ public: // @see also: http://blog.csdn.net/win_lin/article/details/13006803 class SrsC2S2 { -private: +SRS_DECLARE_PRIVATE: SrsRand rand_; public: diff --git a/trunk/src/protocol/srs_protocol_rtmp_msg_array.hpp b/trunk/src/protocol/srs_protocol_rtmp_msg_array.hpp index 63eb8d459..2bd8b8f79 100644 --- a/trunk/src/protocol/srs_protocol_rtmp_msg_array.hpp +++ b/trunk/src/protocol/srs_protocol_rtmp_msg_array.hpp @@ -37,7 +37,7 @@ public: // Free specified count of messages. virtual void free(int count); -private: +SRS_DECLARE_PRIVATE: // Zero initialize the message array. virtual void zero(int count); }; diff --git a/trunk/src/protocol/srs_protocol_rtmp_stack.hpp b/trunk/src/protocol/srs_protocol_rtmp_stack.hpp index 88f70c5c8..489ca4808 100644 --- a/trunk/src/protocol/srs_protocol_rtmp_stack.hpp +++ b/trunk/src/protocol/srs_protocol_rtmp_stack.hpp @@ -121,7 +121,7 @@ public: // The message type set the RTMP message type in header. virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: // The subpacket can override to calc the packet size. virtual int get_size(); // The subpacket can override to encode the payload to stream. @@ -134,7 +134,7 @@ protected: // and to send out RTMP message over RTMP chunk stream. class SrsProtocol { -private: +SRS_DECLARE_PRIVATE: class AckWindowSize { public: @@ -147,7 +147,7 @@ private: AckWindowSize(); }; // For peer in/out -private: +SRS_DECLARE_PRIVATE: // The underlayer socket object, send/recv bytes. ISrsProtocolReadWriter *skt_; // The requests sent out, used to build the response. @@ -155,7 +155,7 @@ private: // value: the request command name std::map requests_; // For peer in -private: +SRS_DECLARE_PRIVATE: // The chunk stream to decode RTMP messages. std::map chunk_streams_; // Cache some frequently used chunk header. @@ -181,7 +181,7 @@ private: // When not auto response message, manual flush the messages in queue. std::vector manual_response_queue_; // For peer out -private: +SRS_DECLARE_PRIVATE: // Cache for multiple messages send, // initialize to iovec[SRS_CONSTS_IOVS_MAX] and realloc when consumed, // it's ok to realloc the iovs cache, for all ptr is ok. @@ -338,7 +338,7 @@ public: return err; } -private: +SRS_DECLARE_PRIVATE: // Send out the messages, donot free it, // The caller must free the param msgs. virtual srs_error_t do_send_messages(SrsMediaPacket **msgs, int nb_msgs); @@ -367,13 +367,13 @@ private: // When message sentout, update the context. virtual srs_error_t on_send_packet(SrsMessageHeader *mh, SrsRtmpCommand *packet); -private: +SRS_DECLARE_PRIVATE: // Auto response the ack message. virtual srs_error_t response_acknowledgement_message(); // Auto response the ping message. virtual srs_error_t response_ping_message(int32_t timestamp); -private: +SRS_DECLARE_PRIVATE: virtual void print_debug_info(); }; @@ -543,7 +543,7 @@ bool srs_client_type_is_publish(SrsRtmpConnType type); // For smart switch between complex and simple handshake. class SrsHandshakeBytes { -private: +SRS_DECLARE_PRIVATE: SrsRand rand_; public: @@ -589,10 +589,10 @@ struct SrsServerInfo { // implements the client role protocol. class SrsRtmpClient { -private: +SRS_DECLARE_PRIVATE: SrsHandshakeBytes *hs_bytes_; -protected: +SRS_DECLARE_PROTECTED: SrsProtocol *protocol_; ISrsProtocolReadWriter *io_; @@ -702,7 +702,7 @@ public: // such as connect to vhost/app, play stream, get audio/video data. class SrsRtmpServer : public ISrsRtmpServer { -private: +SRS_DECLARE_PRIVATE: SrsHandshakeBytes *hs_bytes_; SrsProtocol *protocol_; ISrsProtocolReadWriter *io_; @@ -868,13 +868,13 @@ public: return protocol_->expect_message(pmsg, ppacket); } -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t identify_create_stream_client(SrsCreateStreamPacket *req, int stream_id, int depth, SrsRtmpConnType &type, std::string &stream_name, srs_utime_t &duration); virtual srs_error_t identify_fmle_publish_client(SrsFMLEStartPacket *req, SrsRtmpConnType &type, std::string &stream_name); virtual srs_error_t identify_haivision_publish_client(SrsFMLEStartPacket *req, SrsRtmpConnType &type, std::string &stream_name); virtual srs_error_t identify_flash_publish_client(SrsPublishPacket *req, SrsRtmpConnType &type, std::string &stream_name); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t identify_play_client(SrsPlayPacket *req, SrsRtmpConnType &type, std::string &stream_name, srs_utime_t &duration); }; @@ -907,7 +907,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -937,7 +937,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -971,7 +971,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -997,7 +997,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1030,7 +1030,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1058,7 +1058,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1109,7 +1109,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); // Factory method to create specified FMLE packet. @@ -1145,7 +1145,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1192,7 +1192,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1285,7 +1285,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1320,7 +1320,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1346,7 +1346,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1379,7 +1379,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1407,7 +1407,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1433,7 +1433,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1463,7 +1463,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1486,7 +1486,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1509,7 +1509,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1534,7 +1534,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1565,7 +1565,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; @@ -1676,7 +1676,7 @@ public: public: virtual int get_message_type(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); virtual srs_error_t encode_packet(SrsBuffer *stream); }; diff --git a/trunk/src/protocol/srs_protocol_rtp.hpp b/trunk/src/protocol/srs_protocol_rtp.hpp index b3a6b4a39..6c7e6e37b 100644 --- a/trunk/src/protocol/srs_protocol_rtp.hpp +++ b/trunk/src/protocol/srs_protocol_rtp.hpp @@ -24,7 +24,7 @@ class SrsFormat; // RTP video builder for packaging video NALUs into RTP packets class SrsRtpVideoBuilder { -private: +SRS_DECLARE_PRIVATE: uint16_t video_sequence_; uint32_t video_ssrc_; uint8_t video_payload_type_; diff --git a/trunk/src/protocol/srs_protocol_rtsp_stack.hpp b/trunk/src/protocol/srs_protocol_rtsp_stack.hpp index ba3a1be6e..ef5cc403a 100644 --- a/trunk/src/protocol/srs_protocol_rtsp_stack.hpp +++ b/trunk/src/protocol/srs_protocol_rtsp_stack.hpp @@ -264,7 +264,7 @@ public: // Encode message to string. virtual srs_error_t encode(std::stringstream &ss); -protected: +SRS_DECLARE_PROTECTED: // Sub classes override this to encode the headers. virtual srs_error_t encode_header(std::stringstream &ss); }; @@ -283,7 +283,7 @@ public: SrsRtspOptionsResponse(int cseq); virtual ~SrsRtspOptionsResponse(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t encode_header(std::stringstream &ss); }; @@ -298,7 +298,7 @@ public: SrsRtspDescribeResponse(int cseq); virtual ~SrsRtspDescribeResponse(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t encode_header(std::stringstream &ss); }; @@ -330,7 +330,7 @@ public: SrsRtspSetupResponse(int cseq); virtual ~SrsRtspSetupResponse(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t encode_header(std::stringstream &ss); }; @@ -341,7 +341,7 @@ public: SrsRtspPlayResponse(int cseq); virtual ~SrsRtspPlayResponse(); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t encode_header(std::stringstream &ss); }; diff --git a/trunk/src/protocol/srs_protocol_sdp.hpp b/trunk/src/protocol/srs_protocol_sdp.hpp index 91bf96dcd..b59194f17 100644 --- a/trunk/src/protocol/srs_protocol_sdp.hpp +++ b/trunk/src/protocol/srs_protocol_sdp.hpp @@ -154,7 +154,7 @@ public: bool is_audio() const { return type_ == "audio"; } bool is_video() const { return type_ == "video"; } -private: +SRS_DECLARE_PRIVATE: srs_error_t parse_attribute(const std::string &content); srs_error_t parse_attr_rtpmap(const std::string &value); srs_error_t parse_attr_rtcp(const std::string &value); @@ -166,7 +166,7 @@ private: srs_error_t parse_attr_ssrc_group(const std::string &value); srs_error_t parse_attr_extmap(const std::string &value); -private: +SRS_DECLARE_PRIVATE: SrsSSRCInfo &fetch_or_create_ssrc_info(uint32_t ssrc); public: @@ -224,10 +224,10 @@ public: std::string get_ice_pwd() const; std::string get_dtls_role() const; -private: +SRS_DECLARE_PRIVATE: srs_error_t parse_line(const std::string &line); -private: +SRS_DECLARE_PRIVATE: srs_error_t parse_origin(const std::string &content); srs_error_t parse_version(const std::string &content); srs_error_t parse_session_name(const std::string &content); @@ -237,7 +237,7 @@ private: srs_error_t parse_media_description(const std::string &content); srs_error_t parse_attr_group(const std::string &content); -private: +SRS_DECLARE_PRIVATE: bool in_media_session_; public: diff --git a/trunk/src/protocol/srs_protocol_srt.hpp b/trunk/src/protocol/srs_protocol_srt.hpp index 5e532129a..07db450ae 100644 --- a/trunk/src/protocol/srs_protocol_srt.hpp +++ b/trunk/src/protocol/srs_protocol_srt.hpp @@ -71,7 +71,7 @@ extern srs_error_t srs_srt_get_remote_ip_port(srs_srt_t srt_fd, std::string &ip, // Get SRT stats. class SrsSrtStat { -private: +SRS_DECLARE_PRIVATE: void *stat_; public: @@ -178,12 +178,12 @@ public: // Unsubscribed OUT event to srt poller. srs_error_t disable_write(); -private: +SRS_DECLARE_PRIVATE: srs_error_t enable_event(int event); srs_error_t disable_event(int event); srs_error_t check_error(); -private: +SRS_DECLARE_PRIVATE: srs_srt_t srt_fd_; // Mark if some error occured in srt socket. bool has_error_; diff --git a/trunk/src/protocol/srs_protocol_st.hpp b/trunk/src/protocol/srs_protocol_st.hpp index 59acd2755..b7a2e8e4b 100644 --- a/trunk/src/protocol/srs_protocol_st.hpp +++ b/trunk/src/protocol/srs_protocol_st.hpp @@ -91,7 +91,7 @@ extern int srs_mutex_unlock(srs_mutex_t mutex); // cond->signal(); class SrsCond : public ISrsCond { -private: +SRS_DECLARE_PRIVATE: srs_cond_t cond_; public: @@ -111,7 +111,7 @@ public: // SrsLocker(mutex->get()); class SrsMutex { -private: +SRS_DECLARE_PRIVATE: srs_mutex_t mutex_; public: @@ -153,7 +153,7 @@ extern bool srs_is_never_timeout(srs_utime_t tm); class impl__SrsLocker { -private: +SRS_DECLARE_PRIVATE: srs_mutex_t *lock_; public: @@ -174,7 +174,7 @@ public: // that is, the sync socket mechanism. class SrsStSocket : public ISrsProtocolReadWriter { -private: +SRS_DECLARE_PRIVATE: // The recv/send timeout in srs_utime_t. // @remark Use SRS_UTIME_NO_TIMEOUT for never timeout. srs_utime_t rtm_; @@ -190,7 +190,7 @@ public: SrsStSocket(srs_netfd_t fd); virtual ~SrsStSocket(); -private: +SRS_DECLARE_PRIVATE: void init(srs_netfd_t fd); public: @@ -220,11 +220,11 @@ public: // @remark User can directly free the object, which will close the fd. class SrsTcpClient : public ISrsProtocolReadWriter { -private: +SRS_DECLARE_PRIVATE: srs_netfd_t stfd_; SrsStSocket *io_; -private: +SRS_DECLARE_PRIVATE: std::string host_; int port_; // The timeout in srs_utime_t. diff --git a/trunk/src/protocol/srs_protocol_stream.hpp b/trunk/src/protocol/srs_protocol_stream.hpp index 44a3fe19f..e1ee353c4 100644 --- a/trunk/src/protocol/srs_protocol_stream.hpp +++ b/trunk/src/protocol/srs_protocol_stream.hpp @@ -49,7 +49,7 @@ public: // TODO: FIXME: add utest for it. class SrsFastStream { -private: +SRS_DECLARE_PRIVATE: #ifdef SRS_PERF_MERGED_READ // the merged handler bool merged_read_; diff --git a/trunk/src/utest/srs_utest.cpp b/trunk/src/utest/srs_utest.cpp index 1f78878e4..10f19a22e 100644 --- a/trunk/src/utest/srs_utest.cpp +++ b/trunk/src/utest/srs_utest.cpp @@ -69,6 +69,14 @@ srs_error_t prepare_main() { srs_error_t err = srs_success; + // Root global objects, should be created before any other global objects. + _srs_log = new SrsFileLog(); + _srs_context = new SrsThreadContext(); + _srs_config = new SrsConfig(); + + // For background context id. + _srs_context->set_id(_srs_context->generate_id()); + if ((err = srs_global_initialize()) != srs_success) { return srs_error_wrap(err, "init global"); } @@ -222,7 +230,7 @@ public: return cp; } -private: +SRS_DECLARE_PRIVATE: MockSrsContextId *bind_; }; diff --git a/trunk/src/utest/srs_utest.hpp b/trunk/src/utest/srs_utest.hpp index ee9cb813d..320cf0db2 100644 --- a/trunk/src/utest/srs_utest.hpp +++ b/trunk/src/utest/srs_utest.hpp @@ -120,7 +120,7 @@ public: // @remark The size of memory to allocate, should smaller than page size, generally 4096 bytes. class MockProtectedBuffer { -private: +SRS_DECLARE_PRIVATE: char *raw_memory_; public: @@ -139,7 +139,7 @@ public: // The chan never free the args, you must manage the memory. class SrsCoroutineChan { -private: +SRS_DECLARE_PRIVATE: std::vector args_; srs_mutex_t lock_; @@ -206,7 +206,7 @@ public: #define SRS_COROUTINE_GO_IMPL(context, id, code_block) \ class AnonymousCoroutineHandler##id : public ISrsCoroutineHandler \ { \ - private: \ + SRS_DECLARE_PRIVATE: \ SrsCoroutineChan *ctx_; \ \ public: \ @@ -283,7 +283,7 @@ public: // but with proper HTTP response formatting class SrsHttpTestServer : public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; srs_netfd_t fd_; string response_body_; @@ -304,14 +304,14 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(srs_netfd_t cfd); }; // Simple HTTPS test server similar to Go's httptest.NewServer but with SSL support class SrsHttpsTestServer : public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; srs_netfd_t fd_; string response_body_; @@ -329,10 +329,10 @@ public: virtual int get_port(); // Interface ISrsCoroutineHandler -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: srs_error_t handle_client(srs_netfd_t client_fd); }; @@ -340,7 +340,7 @@ private: // This server handles basic RTMP handshake and connect app operations class SrsRtmpTestServer : public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; srs_netfd_t fd_; string app_; @@ -366,7 +366,7 @@ public: public: virtual srs_error_t cycle(); -private: +SRS_DECLARE_PRIVATE: virtual srs_error_t do_cycle(srs_netfd_t cfd); virtual srs_error_t handle_rtmp_client(srs_netfd_t cfd); }; @@ -374,7 +374,7 @@ private: // Test TCP server for testing SrsTcpConnection class SrsTestTcpServer : public ISrsCoroutineHandler, public ISrsTcpHandler { -private: +SRS_DECLARE_PRIVATE: ISrsCoroutine *trd_; SrsTcpListener *listener_; string ip_; @@ -403,7 +403,7 @@ public: // Test TCP client for testing SrsTcpConnection class SrsTestTcpClient { -private: +SRS_DECLARE_PRIVATE: SrsTcpClient *client_; SrsTcpConnection *conn_; string host_; @@ -425,7 +425,7 @@ public: // Test UDP server for testing UDP socket communication class SrsUdpTestServer : public ISrsCoroutineHandler { -private: +SRS_DECLARE_PRIVATE: srs_netfd_t lfd_; ISrsCoroutine *trd_; SrsStSocket *socket_; @@ -450,7 +450,7 @@ public: // Test UDP client for testing UDP socket communication class SrsUdpTestClient { -private: +SRS_DECLARE_PRIVATE: srs_netfd_t stfd_; SrsStSocket *socket_; string host_; diff --git a/trunk/src/utest/srs_utest_app9.hpp b/trunk/src/utest/srs_utest_app9.hpp index 5d8d33951..70ddadb7c 100644 --- a/trunk/src/utest/srs_utest_app9.hpp +++ b/trunk/src/utest/srs_utest_app9.hpp @@ -170,7 +170,7 @@ public: // Mock ISrsLiveSource for testing SrsOriginHub::on_audio class MockLiveSourceForOriginHub : public ISrsLiveSource { -private: +SRS_DECLARE_PRIVATE: SrsRtmpFormat *format_; SrsMetaCache *meta_; diff --git a/trunk/src/utest/srs_utest_config.hpp b/trunk/src/utest/srs_utest_config.hpp index 937adaf5d..aaa56a6dc 100644 --- a/trunk/src/utest/srs_utest_config.hpp +++ b/trunk/src/utest/srs_utest_config.hpp @@ -34,20 +34,20 @@ public: MockSrsConfig(); virtual ~MockSrsConfig(); -private: +SRS_DECLARE_PRIVATE: std::map included_files; public: virtual srs_error_t mock_parse(std::string buf); virtual srs_error_t mock_include(const std::string file_name, const std::string content); -protected: +SRS_DECLARE_PROTECTED: virtual srs_error_t build_buffer(std::string src, srs_internal::SrsConfigBuffer **pbuffer); }; class ISrsSetEnvConfig { -private: +SRS_DECLARE_PRIVATE: std::string key; SrsConfig *conf; @@ -65,7 +65,7 @@ public: conf->env_cache_ = new SrsConfDirective(); } -private: +SRS_DECLARE_PRIVATE: // Adds, changes environment variables, which may starts with $. int srs_setenv(const std::string &key, const std::string &value, bool overwrite); // Deletes environment variables, which may starts with $. diff --git a/trunk/src/utest/srs_utest_core.hpp b/trunk/src/utest/srs_utest_core.hpp index a4455fa93..317ae78ce 100644 --- a/trunk/src/utest/srs_utest_core.hpp +++ b/trunk/src/utest/srs_utest_core.hpp @@ -16,7 +16,7 @@ class MyNormalObject { -private: +SRS_DECLARE_PRIVATE: int id_; public: diff --git a/trunk/src/utest/srs_utest_kernel.hpp b/trunk/src/utest/srs_utest_kernel.hpp index 8b5e37c72..b892f67a3 100644 --- a/trunk/src/utest/srs_utest_kernel.hpp +++ b/trunk/src/utest/srs_utest_kernel.hpp @@ -45,7 +45,7 @@ public: class MockFileRemover { -private: +SRS_DECLARE_PRIVATE: std::string path_; public: @@ -124,7 +124,7 @@ public: class MockBufferReader : public ISrsReader { -private: +SRS_DECLARE_PRIVATE: std::string str; public: diff --git a/trunk/src/utest/srs_utest_protocol.hpp b/trunk/src/utest/srs_utest_protocol.hpp index b53c2fbcf..c1b4b95d0 100644 --- a/trunk/src/utest/srs_utest_protocol.hpp +++ b/trunk/src/utest/srs_utest_protocol.hpp @@ -105,7 +105,7 @@ public: class MockStatistic : public ISrsProtocolStatistic { -private: +SRS_DECLARE_PRIVATE: int64_t in; int64_t out; @@ -126,7 +126,7 @@ public: class MockWallClock : public SrsWallClock { -private: +SRS_DECLARE_PRIVATE: int64_t clock; public: diff --git a/trunk/src/utest/srs_utest_protocol2.cpp b/trunk/src/utest/srs_utest_protocol2.cpp index 9dc355a9a..5f9c16541 100644 --- a/trunk/src/utest/srs_utest_protocol2.cpp +++ b/trunk/src/utest/srs_utest_protocol2.cpp @@ -7734,7 +7734,7 @@ MockStage::MockStage(llhttp_t *from) class MockParser { -private: +SRS_DECLARE_PRIVATE: llhttp_settings_t settings; llhttp_t *parser; size_t parsed; @@ -7758,7 +7758,7 @@ public: public: srs_error_t parse(string data); -private: +SRS_DECLARE_PRIVATE: static int on_message_begin(llhttp_t *parser); static int on_url(llhttp_t *parser, const char *at, size_t length); static int on_status(llhttp_t *parser, const char *at, size_t length); diff --git a/trunk/src/utest/srs_utest_rtmp.hpp b/trunk/src/utest/srs_utest_rtmp.hpp index d743dfc2a..9936973e9 100644 --- a/trunk/src/utest/srs_utest_rtmp.hpp +++ b/trunk/src/utest/srs_utest_rtmp.hpp @@ -25,7 +25,7 @@ public: MockPacket(); virtual ~MockPacket(); -protected: +SRS_DECLARE_PROTECTED: virtual int get_size(); }; diff --git a/trunk/src/utest/srs_utest_service.hpp b/trunk/src/utest/srs_utest_service.hpp index 21db40361..1867d470e 100644 --- a/trunk/src/utest/srs_utest_service.hpp +++ b/trunk/src/utest/srs_utest_service.hpp @@ -35,7 +35,7 @@ public: class MockTcpHandler : public ISrsTcpHandler { -private: +SRS_DECLARE_PRIVATE: srs_netfd_t fd; public: