merge srs2

pull/528/head
winlin 10 years ago
commit e9e202dbf1

@ -1407,6 +1407,11 @@ int SrsSource::on_meta_data(SrsCommonMessage* msg, SrsOnMetaDataPacket* metadata
SrsAmf0Any* prop = NULL; SrsAmf0Any* prop = NULL;
// when exists the duration, remove it to make ExoPlayer happy.
if (metadata->metadata->get_property("duration") != NULL) {
metadata->metadata->remove("duration");
}
// generate metadata info to print // generate metadata info to print
std::stringstream ss; std::stringstream ss;
if ((prop = metadata->metadata->ensure_property_number("width")) != NULL) { if ((prop = metadata->metadata->ensure_property_number("width")) != NULL) {

@ -561,6 +561,24 @@ SrsAmf0Any* SrsUnSortedHashtable::ensure_property_number(string name)
return prop; return prop;
} }
void SrsUnSortedHashtable::remove(string name)
{
std::vector<SrsAmf0ObjectPropertyType>::iterator it;
for (it = properties.begin(); it != properties.end();) {
std::string key = it->first;
SrsAmf0Any* any = it->second;
if (key == name) {
srs_freep(any);
it = properties.erase(it);
} else {
++it;
}
}
}
void SrsUnSortedHashtable::copy(SrsUnSortedHashtable* src) void SrsUnSortedHashtable::copy(SrsUnSortedHashtable* src)
{ {
std::vector<SrsAmf0ObjectPropertyType>::iterator it; std::vector<SrsAmf0ObjectPropertyType>::iterator it;
@ -849,6 +867,11 @@ SrsAmf0Any* SrsAmf0Object::ensure_property_number(string name)
return properties->ensure_property_number(name); return properties->ensure_property_number(name);
} }
void SrsAmf0Object::remove(string name)
{
properties->remove(name);
}
SrsAmf0EcmaArray::SrsAmf0EcmaArray() SrsAmf0EcmaArray::SrsAmf0EcmaArray()
{ {
_count = 0; _count = 0;

@ -414,6 +414,10 @@ public:
* @remark user should never free the returned value, copy it if needed. * @remark user should never free the returned value, copy it if needed.
*/ */
virtual SrsAmf0Any* ensure_property_number(std::string name); virtual SrsAmf0Any* ensure_property_number(std::string name);
/**
* remove the property specified by name.
*/
virtual void remove(std::string name);
}; };
/** /**
@ -820,6 +824,7 @@ namespace _srs_internal
virtual SrsAmf0Any* get_property(std::string name); virtual SrsAmf0Any* get_property(std::string name);
virtual SrsAmf0Any* ensure_property_string(std::string name); virtual SrsAmf0Any* ensure_property_string(std::string name);
virtual SrsAmf0Any* ensure_property_number(std::string name); virtual SrsAmf0Any* ensure_property_number(std::string name);
virtual void remove(std::string name);
public: public:
virtual void copy(SrsUnSortedHashtable* src); virtual void copy(SrsUnSortedHashtable* src);
}; };

Loading…
Cancel
Save