Fix vector+unique_ptr issues with MSVS 2019

Because a StreamState object contains a unique_ptr, it is not
copyable.  A vector of StreamStates, therefore, causes a compile error
on resize or push_back, both of which invoke the copy constructor.

I don't know why MSVS complains, but clang does not.

To fix this, I'm changing vector<StreamState> into deque<StreamState>.

At this point static_library builds are working in MSVS 2019.
shared_library builds are still not working.

Issue #867 (MSVS 2019)
Issue #336 (progress toward replacing Travis & Appveyor with GitHub
  Actions, which uses MSVS 2019)
b/190743862 (internal; tracking replacement of Travis)

Change-Id: Iaa9d5fc357102d15eac96c29ebeee7c7236e976b
This commit is contained in:
Joey Parrish 2021-06-14 12:10:20 -07:00
parent 3d211440a6
commit ae89145015
1 changed files with 2 additions and 1 deletions

View File

@ -7,6 +7,7 @@
#ifndef PACKAGER_MEDIA_CHUNKING_CUE_ALIGNMENT_HANDLER_ #ifndef PACKAGER_MEDIA_CHUNKING_CUE_ALIGNMENT_HANDLER_
#define PACKAGER_MEDIA_CHUNKING_CUE_ALIGNMENT_HANDLER_ #define PACKAGER_MEDIA_CHUNKING_CUE_ALIGNMENT_HANDLER_
#include <deque>
#include <list> #include <list>
#include "packager/media/base/media_handler.h" #include "packager/media/base/media_handler.h"
@ -73,7 +74,7 @@ class CueAlignmentHandler : public MediaHandler {
Status RunThroughSamples(StreamState* stream); Status RunThroughSamples(StreamState* stream);
SyncPointQueue* const sync_points_ = nullptr; SyncPointQueue* const sync_points_ = nullptr;
std::vector<StreamState> stream_states_; std::deque<StreamState> stream_states_;
// A common hint used by all streams. When a new cue is given to all streams, // A common hint used by all streams. When a new cue is given to all streams,
// the hint will be updated. The hint will always be larger than any cue. The // the hint will be updated. The hint will always be larger than any cue. The