Skip to content

Commit

Permalink
for ExoPlayer, remove duration for live.
Browse files Browse the repository at this point in the history
  • Loading branch information
winlinvip committed Oct 28, 2015
1 parent 50a7b9c commit ef00005
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,7 @@ Remark:

## History

* v2.0, 2015-10-28, for [ExoPlayer #828][exo #828], remove duration for live.
* v2.0, 2015-10-28, for [ExoPlayer #828][exo #828], add av tag in flv header. 2.0.197
* v2.0, 2015-10-27, for [#512][bug #512] partical hotfix the hls pure audio. 2.0.196
* <strong>v2.0, 2015-10-08, [2.0 alpha2(2.0.195)][r2.0a2] released. 89358 lines.</strong>
Expand Down
5 changes: 5 additions & 0 deletions trunk/src/app/srs_app_source.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1400,6 +1400,11 @@ int SrsSource::on_meta_data(SrsCommonMessage* msg, SrsOnMetaDataPacket* metadata

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
std::stringstream ss;
if ((prop = metadata->metadata->ensure_property_number("width")) != NULL) {
Expand Down
23 changes: 23 additions & 0 deletions trunk/src/protocol/srs_rtmp_amf0.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -513,6 +513,24 @@ SrsAmf0Any* SrsUnSortedHashtable::ensure_property_number(string name)
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)
{
std::vector<SrsAmf0ObjectPropertyType>::iterator it;
Expand Down Expand Up @@ -787,6 +805,11 @@ SrsAmf0Any* SrsAmf0Object::ensure_property_number(string name)
return properties->ensure_property_number(name);
}

void SrsAmf0Object::remove(string name)
{
properties->remove(name);
}

SrsAmf0EcmaArray::SrsAmf0EcmaArray()
{
_count = 0;
Expand Down
5 changes: 5 additions & 0 deletions trunk/src/protocol/srs_rtmp_amf0.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,10 @@ class SrsAmf0Object : public SrsAmf0Any
* @remark user should never free the returned value, copy it if needed.
*/
virtual SrsAmf0Any* ensure_property_number(std::string name);
/**
* remove the property specified by name.
*/
virtual void remove(std::string name);
};

/**
Expand Down Expand Up @@ -803,6 +807,7 @@ namespace _srs_internal
virtual SrsAmf0Any* get_property(std::string name);
virtual SrsAmf0Any* ensure_property_string(std::string name);
virtual SrsAmf0Any* ensure_property_number(std::string name);
virtual void remove(std::string name);
public:
virtual void copy(SrsUnSortedHashtable* src);
};
Expand Down

1 comment on commit ef00005

@winlinvip
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.