From 9fd48d84c103fcc4b3c1477ca5f2b3d0d8398772 Mon Sep 17 00:00:00 2001 From: winlin Date: Sat, 8 Mar 2014 22:59:30 +0800 Subject: [PATCH] refine amf0 object size to total_size, elem count to count --- trunk/src/app/srs_app_hls.cpp | 2 +- trunk/src/rtmp/srs_protocol_amf0.cpp | 54 +++++++++++----------- trunk/src/rtmp/srs_protocol_amf0.hpp | 6 +-- trunk/src/rtmp/srs_protocol_rtmp_stack.cpp | 13 +----- trunk/src/utest/srs_utest_amf0.cpp | 38 +++++++-------- 5 files changed, 52 insertions(+), 61 deletions(-) diff --git a/trunk/src/app/srs_app_hls.cpp b/trunk/src/app/srs_app_hls.cpp index 4b11b952a..a0fda8ee1 100644 --- a/trunk/src/app/srs_app_hls.cpp +++ b/trunk/src/app/srs_app_hls.cpp @@ -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; } diff --git a/trunk/src/rtmp/srs_protocol_amf0.cpp b/trunk/src/rtmp/srs_protocol_amf0.cpp index 1cd0476a1..a08b76210 100644 --- a/trunk/src/rtmp/srs_protocol_amf0.cpp +++ b/trunk/src/rtmp/srs_protocol_amf0.cpp @@ -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(); } diff --git a/trunk/src/rtmp/srs_protocol_amf0.hpp b/trunk/src/rtmp/srs_protocol_amf0.hpp index 58c773ddb..0986ce3b5 100644 --- a/trunk/src/rtmp/srs_protocol_amf0.hpp +++ b/trunk/src/rtmp/srs_protocol_amf0.hpp @@ -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); diff --git a/trunk/src/rtmp/srs_protocol_rtmp_stack.cpp b/trunk/src/rtmp/srs_protocol_rtmp_stack.cpp index 7e583423a..f5f281273 100644 --- a/trunk/src/rtmp/srs_protocol_rtmp_stack.cpp +++ b/trunk/src/rtmp/srs_protocol_rtmp_stack.cpp @@ -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) diff --git a/trunk/src/utest/srs_utest_amf0.cpp b/trunk/src/utest/srs_utest_amf0.cpp index 1852dfc5a..06e50682b 100644 --- a/trunk/src/utest/srs_utest_amf0.cpp +++ b/trunk/src/utest/srs_utest_amf0.cpp @@ -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();