diff --git a/src/merge/output_control.h b/src/merge/output_control.h index 450af3c55..3bf5f371f 100644 --- a/src/merge/output_control.h +++ b/src/merge/output_control.h @@ -197,11 +197,6 @@ extern int g_split_max_num_files; extern append_mode_e g_append_mode; -enum output_compatibility_e { - OC_MATROSKA, - OC_WEBMEDIA, -}; - extern output_compatibility_e g_output_compatibility; void get_file_type(filelist_t &file); diff --git a/src/merge/pr_generic.cpp b/src/merge/pr_generic.cpp index 99d20b33f..6e2dfc29f 100644 --- a/src/merge/pr_generic.cpp +++ b/src/merge/pr_generic.cpp @@ -1107,6 +1107,11 @@ generic_packetizer_c::display_dimensions_or_aspect_ratio_set() { return m_ti.display_dimensions_or_aspect_ratio_set(); } +bool +generic_packetizer_c::is_compatible_with(output_compatibility_e compatibility) { + return OC_MATROSKA == compatibility; +} + //-------------------------------------------------------------------- #define add_all_requested_track_ids(type, container) \ diff --git a/src/merge/pr_generic.h b/src/merge/pr_generic.h index cb480701b..f954ff88b 100644 --- a/src/merge/pr_generic.h +++ b/src/merge/pr_generic.h @@ -180,6 +180,11 @@ enum attach_mode_e { ATTACH_MODE_TO_ALL_FILES, }; +enum output_compatibility_e { + OC_MATROSKA, + OC_WEBMEDIA, +}; + class track_info_c { protected: bool m_initialized; @@ -589,6 +594,8 @@ public: virtual void apply_factory_full_queueing(packet_cptr_di &p_start); virtual bool display_dimensions_or_aspect_ratio_set(); + + virtual bool is_compatible_with(output_compatibility_e compatibility); }; extern std::vector ptzrs_in_header_order; diff --git a/src/output/p_aac.cpp b/src/output/p_aac.cpp index 2b5d07b13..dbec1f41d 100644 --- a/src/output/p_aac.cpp +++ b/src/output/p_aac.cpp @@ -210,3 +210,9 @@ aac_packetizer_c::can_connect_to(generic_packetizer_c *src, return CAN_CONNECT_YES; } + +bool +aac_packetizer_c::is_compatible_with(output_compatibility_e) { + return true; +} + diff --git a/src/output/p_aac.h b/src/output/p_aac.h index 62150e59c..6c671d8a0 100644 --- a/src/output/p_aac.h +++ b/src/output/p_aac.h @@ -44,6 +44,7 @@ public: } virtual connection_result_e can_connect_to(generic_packetizer_c *src, std::string &error_message); + virtual bool is_compatible_with(output_compatibility_e compatibility); private: virtual unsigned char *get_aac_packet(unsigned long *header, aac_header_t *aacheader); diff --git a/src/output/p_avc.cpp b/src/output/p_avc.cpp index 2932ee72e..727de1e42 100644 --- a/src/output/p_avc.cpp +++ b/src/output/p_avc.cpp @@ -204,3 +204,7 @@ mpeg4_p10_es_video_packetizer_c::can_connect_to(generic_packetizer_c *src, return CAN_CONNECT_YES; } +bool +mpeg4_p10_es_video_packetizer_c::is_compatible_with(output_compatibility_e) { + return true; +} diff --git a/src/output/p_avc.h b/src/output/p_avc.h index 832eff028..f163f5531 100644 --- a/src/output/p_avc.h +++ b/src/output/p_avc.h @@ -47,6 +47,7 @@ public: virtual void connect(generic_packetizer_c *src, int64_t p_append_timecode_offset = -1); virtual connection_result_e can_connect_to(generic_packetizer_c *src, std::string &error_message); + virtual bool is_compatible_with(output_compatibility_e compatibility); }; #endif // __P_AVC_H diff --git a/src/output/p_mpeg4_p10.cpp b/src/output/p_mpeg4_p10.cpp index 749a71b20..016765bb8 100644 --- a/src/output/p_mpeg4_p10.cpp +++ b/src/output/p_mpeg4_p10.cpp @@ -186,3 +186,7 @@ mpeg4_p10_video_packetizer_c::change_nalu_size_len(packet_cptr packet) { packet->data->set_size(dst_pos); } +bool +mpeg4_p10_video_packetizer_c::is_compatible_with(output_compatibility_e) { + return true; +} diff --git a/src/output/p_mpeg4_p10.h b/src/output/p_mpeg4_p10.h index 2c50265f4..d242025ce 100644 --- a/src/output/p_mpeg4_p10.h +++ b/src/output/p_mpeg4_p10.h @@ -29,6 +29,7 @@ public: virtual void set_headers(); virtual connection_result_e can_connect_to(generic_packetizer_c *src, std::string &error_message); + virtual bool is_compatible_with(output_compatibility_e compatibility); protected: virtual void extract_aspect_ratio();