1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-02-15 04:42:04 +00:00

refine amf0 object size to total_size, elem count to count

This commit is contained in:
winlin 2014-03-08 22:59:30 +08:00
parent 59db1dd260
commit 9fd48d84c1
5 changed files with 52 additions and 61 deletions

View file

@ -1212,7 +1212,7 @@ int SrsHls::on_meta_data(SrsAmf0Object* metadata)
}
SrsAmf0Object* obj = metadata;
if (obj->size() <= 0) {
if (obj->count() <= 0) {
srs_trace("no metadata persent, hls ignored it.");
return ret;
}

View file

@ -71,7 +71,7 @@ public:
__SrsAmf0String(const char* _value);
virtual ~__SrsAmf0String();
virtual int size();
virtual int total_size();
virtual int read(SrsStream* stream);
virtual int write(SrsStream* stream);
};
@ -91,7 +91,7 @@ public:
__SrsAmf0Boolean(bool _value);
virtual ~__SrsAmf0Boolean();
virtual int size();
virtual int total_size();
virtual int read(SrsStream* stream);
virtual int write(SrsStream* stream);
};
@ -110,7 +110,7 @@ public:
__SrsAmf0Number(double _value);
virtual ~__SrsAmf0Number();
virtual int size();
virtual int total_size();
virtual int read(SrsStream* stream);
virtual int write(SrsStream* stream);
};
@ -126,7 +126,7 @@ public:
__SrsAmf0Null();
virtual ~__SrsAmf0Null();
virtual int size();
virtual int total_size();
virtual int read(SrsStream* stream);
virtual int write(SrsStream* stream);
};
@ -142,7 +142,7 @@ public:
__SrsAmf0Undefined();
virtual ~__SrsAmf0Undefined();
virtual int size();
virtual int total_size();
virtual int read(SrsStream* stream);
virtual int write(SrsStream* stream);
};
@ -162,7 +162,7 @@ public:
__SrsUnSortedHashtable();
virtual ~__SrsUnSortedHashtable();
virtual int size();
virtual int count();
virtual void clear();
virtual std::string key_at(int index);
virtual SrsAmf0Any* value_at(int index);
@ -186,7 +186,7 @@ public:
__SrsAmf0ObjectEOF();
virtual ~__SrsAmf0ObjectEOF();
virtual int size();
virtual int total_size();
virtual int read(SrsStream* stream);
virtual int write(SrsStream* stream);
};
@ -407,7 +407,7 @@ __SrsUnSortedHashtable::~__SrsUnSortedHashtable()
properties.clear();
}
int __SrsUnSortedHashtable::size()
int __SrsUnSortedHashtable::count()
{
return (int)properties.size();
}
@ -419,14 +419,14 @@ void __SrsUnSortedHashtable::clear()
std::string __SrsUnSortedHashtable::key_at(int index)
{
srs_assert(index < size());
srs_assert(index < count());
SrsObjectPropertyType& elem = properties[index];
return elem.first;
}
SrsAmf0Any* __SrsUnSortedHashtable::value_at(int index)
{
srs_assert(index < size());
srs_assert(index < count());
SrsObjectPropertyType& elem = properties[index];
return elem.second;
}
@ -511,7 +511,7 @@ __SrsAmf0ObjectEOF::~__SrsAmf0ObjectEOF()
{
}
int __SrsAmf0ObjectEOF::size()
int __SrsAmf0ObjectEOF::total_size()
{
return SrsAmf0Size::object_eof();
}
@ -594,11 +594,11 @@ SrsAmf0Object::~SrsAmf0Object()
srs_freep(eof);
}
int SrsAmf0Object::size()
int SrsAmf0Object::total_size()
{
int size = 1;
for (int i = 0; i < properties->size(); i++){
for (int i = 0; i < properties->count(); i++){
std::string name = key_at(i);
SrsAmf0Any* value = value_at(i);
@ -681,7 +681,7 @@ int SrsAmf0Object::write(SrsStream* stream)
srs_verbose("amf0 write object marker success");
// value
for (int i = 0; i < properties->size(); i++) {
for (int i = 0; i < properties->count(); i++) {
std::string name = this->key_at(i);
SrsAmf0Any* any = this->value_at(i);
@ -710,7 +710,7 @@ int SrsAmf0Object::write(SrsStream* stream)
int SrsAmf0Object::count()
{
return properties->size();
return properties->count();
}
std::string SrsAmf0Object::key_at(int index)
@ -756,11 +756,11 @@ SrsAmf0EcmaArray::~SrsAmf0EcmaArray()
srs_freep(eof);
}
int SrsAmf0EcmaArray::size()
int SrsAmf0EcmaArray::total_size()
{
int size = 1 + 4;
for (int i = 0; i < properties->size(); i++){
for (int i = 0; i < properties->count(); i++){
std::string name = key_at(i);
SrsAmf0Any* value = value_at(i);
@ -863,7 +863,7 @@ int SrsAmf0EcmaArray::write(SrsStream* stream)
srs_verbose("amf0 write ecma_array count success. count=%d", _count);
// value
for (int i = 0; i < properties->size(); i++) {
for (int i = 0; i < properties->count(); i++) {
std::string name = this->key_at(i);
SrsAmf0Any* any = this->value_at(i);
@ -897,7 +897,7 @@ void SrsAmf0EcmaArray::clear()
int SrsAmf0EcmaArray::count()
{
return properties->size();
return properties->count();
}
std::string SrsAmf0EcmaArray::key_at(int index)
@ -961,7 +961,7 @@ int SrsAmf0Size::object(SrsAmf0Object* obj)
return 0;
}
return obj->size();
return obj->total_size();
}
int SrsAmf0Size::object_eof()
@ -975,7 +975,7 @@ int SrsAmf0Size::ecma_array(SrsAmf0EcmaArray* arr)
return 0;
}
return arr->size();
return arr->total_size();
}
int SrsAmf0Size::any(SrsAmf0Any* o)
@ -984,7 +984,7 @@ int SrsAmf0Size::any(SrsAmf0Any* o)
return 0;
}
return o->size();
return o->total_size();
}
__SrsAmf0String::__SrsAmf0String(const char* _value)
@ -999,7 +999,7 @@ __SrsAmf0String::~__SrsAmf0String()
{
}
int __SrsAmf0String::size()
int __SrsAmf0String::total_size()
{
return SrsAmf0Size::str(value);
}
@ -1024,7 +1024,7 @@ __SrsAmf0Boolean::~__SrsAmf0Boolean()
{
}
int __SrsAmf0Boolean::size()
int __SrsAmf0Boolean::total_size()
{
return SrsAmf0Size::boolean();
}
@ -1049,7 +1049,7 @@ __SrsAmf0Number::~__SrsAmf0Number()
{
}
int __SrsAmf0Number::size()
int __SrsAmf0Number::total_size()
{
return SrsAmf0Size::number();
}
@ -1073,7 +1073,7 @@ __SrsAmf0Null::~__SrsAmf0Null()
{
}
int __SrsAmf0Null::size()
int __SrsAmf0Null::total_size()
{
return SrsAmf0Size::null();
}
@ -1097,7 +1097,7 @@ __SrsAmf0Undefined::~__SrsAmf0Undefined()
{
}
int __SrsAmf0Undefined::size()
int __SrsAmf0Undefined::total_size()
{
return SrsAmf0Size::undefined();
}

View file

@ -121,7 +121,7 @@ public:
/**
* get the size of amf0 any, including the marker size.
*/
virtual int size() = 0;
virtual int total_size() = 0;
/**
* read elem from stream
*/
@ -159,7 +159,7 @@ public:
virtual ~SrsAmf0Object();
public:
virtual int size();
virtual int total_size();
virtual int read(SrsStream* stream);
virtual int write(SrsStream* stream);
@ -198,7 +198,7 @@ public:
virtual ~SrsAmf0EcmaArray();
public:
virtual int size();
virtual int total_size();
virtual int read(SrsStream* stream);
virtual int write(SrsStream* stream);

View file

@ -1884,17 +1884,8 @@ int SrsConnectAppResPacket::get_message_type()
int SrsConnectAppResPacket::get_size()
{
int size = SrsAmf0Size::str(command_name) + SrsAmf0Size::number();
if (props->size() > 0) {
size += SrsAmf0Size::object(props);
}
if (info->size() > 0) {
size += SrsAmf0Size::object(info);
}
return size;
return SrsAmf0Size::str(command_name) + SrsAmf0Size::number()
+ SrsAmf0Size::object(props) + SrsAmf0Size::object(info);
}
int SrsConnectAppResPacket::encode_packet(SrsStream* stream)

View file

@ -383,7 +383,7 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
EXPECT_EQ(3, s.pos());
s.reset();
@ -397,7 +397,7 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
EXPECT_EQ(3, s.pos());
s.skip(-3);
@ -412,7 +412,7 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
s.reset();
EXPECT_EQ(2, s.read_1bytes());
@ -423,7 +423,7 @@ VOID TEST(AMF0Test, AnyIO)
s.reset();
s.current()[3] = 'x';
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
EXPECT_STREQ("xinlin", o->to_str().c_str());
}
@ -435,14 +435,14 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
s.reset();
EXPECT_EQ(0, s.read_1bytes());
s.reset();
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
EXPECT_DOUBLE_EQ(10, o->to_number());
}
@ -454,14 +454,14 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
s.reset();
EXPECT_EQ(1, s.read_1bytes());
s.reset();
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
EXPECT_TRUE(o->to_boolean());
}
if (true) {
@ -471,14 +471,14 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
s.reset();
EXPECT_EQ(1, s.read_1bytes());
s.reset();
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
EXPECT_FALSE(o->to_boolean());
}
@ -490,14 +490,14 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
s.reset();
EXPECT_EQ(5, s.read_1bytes());
s.reset();
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
EXPECT_TRUE(o->is_null());
}
@ -509,14 +509,14 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
s.reset();
EXPECT_EQ(6, s.read_1bytes());
s.reset();
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
EXPECT_TRUE(o->is_undefined());
}
@ -528,7 +528,7 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
s.reset();
@ -548,7 +548,7 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
s.reset();
@ -568,7 +568,7 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
s.reset();
@ -588,7 +588,7 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
s.reset();
@ -607,7 +607,7 @@ VOID TEST(AMF0Test, AnyIO)
SrsAutoFree(SrsAmf0Any, o, false);
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(o->size(), s.pos());
EXPECT_EQ(o->total_size(), s.pos());
s.reset();