Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d18270d1 authored by Lajos Molnar's avatar Lajos Molnar
Browse files

Codec2: use std::list only for C2Work/C2Worklet

Use std::list for these as these are managed in lists.
onWorkDone now returns std::list<C2Work>
SettingsResult now contains std::vector<C2ParamFieldValues>
C2WorkOutline now contains std::vector<c2_node_id_t>

Bug: 64121714
Change-Id: Ibda75aad004be542c960cd190e19c168c5e3f724
parent 4345046d
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -117,7 +117,7 @@ public:


    virtual void onWorkDone_nb(
    virtual void onWorkDone_nb(
            std::weak_ptr<C2Component> component,
            std::weak_ptr<C2Component> component,
            std::vector<std::unique_ptr<C2Work>> workItems) override {
            std::list<std::unique_ptr<C2Work>> workItems) override {
        (void)component;
        (void)component;
        sp<CCodec> codec(mCodec.promote());
        sp<CCodec> codec(mCodec.promote());
        if (!codec) {
        if (!codec) {
@@ -601,7 +601,7 @@ void CCodec::signalRequestIDRFrame() {
    // TODO
    // TODO
}
}


void CCodec::onWorkDone(std::vector<std::unique_ptr<C2Work>> &workItems) {
void CCodec::onWorkDone(std::list<std::unique_ptr<C2Work>> &workItems) {
    Mutexed<std::list<std::unique_ptr<C2Work>>>::Locked queue(mWorkDoneQueue);
    Mutexed<std::list<std::unique_ptr<C2Work>>>::Locked queue(mWorkDoneQueue);
    for (std::unique_ptr<C2Work> &item : workItems) {
    for (std::unique_ptr<C2Work> &item : workItems) {
        queue->push_back(std::move(item));
        queue->push_back(std::move(item));
+2 −2
Original line number Original line Diff line number Diff line
@@ -237,8 +237,8 @@ std::shared_ptr<C2ComponentInterface> SimpleC2Component::intf() {


namespace {
namespace {


std::vector<std::unique_ptr<C2Work>> vec(std::unique_ptr<C2Work> &work) {
std::list<std::unique_ptr<C2Work>> vec(std::unique_ptr<C2Work> &work) {
    std::vector<std::unique_ptr<C2Work>> ret;
    std::list<std::unique_ptr<C2Work>> ret;
    ret.push_back(std::move(work));
    ret.push_back(std::move(work));
    return ret;
    return ret;
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -332,7 +332,7 @@ public:
    class Listener {
    class Listener {
    public:
    public:
        virtual void onWorkDone_nb(std::weak_ptr<C2Component> component,
        virtual void onWorkDone_nb(std::weak_ptr<C2Component> component,
                                std::vector<std::unique_ptr<C2Work>> workItems) = 0;
                                std::list<std::unique_ptr<C2Work>> workItems) = 0;


        virtual void onTripped_nb(std::weak_ptr<C2Component> component,
        virtual void onTripped_nb(std::weak_ptr<C2Component> component,
                               std::vector<std::shared_ptr<C2SettingResult>> settingResult) = 0;
                               std::vector<std::shared_ptr<C2SettingResult>> settingResult) = 0;
+2 −2
Original line number Original line Diff line number Diff line
@@ -68,7 +68,7 @@ struct C2SettingResult {


    /// Conflicting parameters or fields with optional suggestions with (optional) suggested values
    /// Conflicting parameters or fields with optional suggestions with (optional) suggested values
    /// for any conflicting fields to avoid the conflict.
    /// for any conflicting fields to avoid the conflict.
    std::list<C2ParamFieldValues> conflicts;
    std::vector<C2ParamFieldValues> conflicts;
};
};


// ================================================================================================
// ================================================================================================
@@ -206,7 +206,7 @@ struct C2Work {
struct C2WorkOutline {
struct C2WorkOutline {
//public:
//public:
    C2WorkOrdinalStruct ordinal;
    C2WorkOrdinalStruct ordinal;
    std::list<c2_node_id_t> chain;
    std::vector<c2_node_id_t> chain;
};
};


/// @}
/// @}
+3 −3
Original line number Original line Diff line number Diff line
@@ -83,7 +83,7 @@ public:
    ~SimplePlayer();
    ~SimplePlayer();


    void onWorkDone(std::weak_ptr<C2Component> component,
    void onWorkDone(std::weak_ptr<C2Component> component,
                    std::vector<std::unique_ptr<C2Work>> workItems);
                    std::list<std::unique_ptr<C2Work>> workItems);
    void onTripped(std::weak_ptr<C2Component> component,
    void onTripped(std::weak_ptr<C2Component> component,
                   std::vector<std::shared_ptr<C2SettingResult>> settingResult);
                   std::vector<std::shared_ptr<C2SettingResult>> settingResult);
    void onError(std::weak_ptr<C2Component> component, uint32_t errorCode);
    void onError(std::weak_ptr<C2Component> component, uint32_t errorCode);
@@ -120,7 +120,7 @@ public:
    virtual ~Listener() = default;
    virtual ~Listener() = default;


    virtual void onWorkDone_nb(std::weak_ptr<C2Component> component,
    virtual void onWorkDone_nb(std::weak_ptr<C2Component> component,
                            std::vector<std::unique_ptr<C2Work>> workItems) override {
                            std::list<std::unique_ptr<C2Work>> workItems) override {
        mThis->onWorkDone(component, std::move(workItems));
        mThis->onWorkDone(component, std::move(workItems));
    }
    }


@@ -174,7 +174,7 @@ SimplePlayer::~SimplePlayer() {
}
}


void SimplePlayer::onWorkDone(
void SimplePlayer::onWorkDone(
        std::weak_ptr<C2Component> component, std::vector<std::unique_ptr<C2Work>> workItems) {
        std::weak_ptr<C2Component> component, std::list<std::unique_ptr<C2Work>> workItems) {
    ALOGV("SimplePlayer::onWorkDone");
    ALOGV("SimplePlayer::onWorkDone");
    (void) component;
    (void) component;
    ULock l(mProcessedLock);
    ULock l(mProcessedLock);
Loading