Added a function for determining codec compatibility regarding output format

This commit is contained in:
Moritz Bunkus 2010-05-17 23:17:23 +02:00
parent 738ffb5863
commit 047da0ce42
9 changed files with 29 additions and 5 deletions

View File

@ -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);

View File

@ -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) \

View File

@ -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<generic_packetizer_c *> ptzrs_in_header_order;

View File

@ -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;
}

View File

@ -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);

View File

@ -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;
}

View File

@ -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

View File

@ -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;
}

View File

@ -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();