diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-01-11 19:20:51 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-01-11 19:20:51 +0000 |
| commit | ef0aa27c671f9c34b9aad79015bcc50cb10c0fc5 (patch) | |
| tree | 7216d311005a1469f079006cbb17f734a21a91ea /src/lib/dcp_video_frame.h | |
| parent | d0babb26ab341026fe227de810ed30c6c9f65cf2 (diff) | |
Encoded data must be copied; disambiguate second lock in encoder_thread.
Diffstat (limited to 'src/lib/dcp_video_frame.h')
| -rw-r--r-- | src/lib/dcp_video_frame.h | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/lib/dcp_video_frame.h b/src/lib/dcp_video_frame.h index 57e7e6203..f5ffa467e 100644 --- a/src/lib/dcp_video_frame.h +++ b/src/lib/dcp_video_frame.h @@ -39,15 +39,11 @@ class Subtitle; class EncodedData { public: - /** @param d Data (will not be freed by this class, but may be by subclasses) - * @param s Size of data, in bytes. + /** @param s Size of data, in bytes. */ - EncodedData (uint8_t* d, int s) - : _data (d) - , _size (s) - {} + EncodedData (int s); - virtual ~EncodedData () {} + virtual ~EncodedData (); void send (boost::shared_ptr<Socket> socket); void write (boost::shared_ptr<const EncodeOptions>, SourceFrame); @@ -65,6 +61,10 @@ public: protected: uint8_t* _data; ///< data int _size; ///< data size in bytes + +private: + /* No copy construction */ + EncodedData (EncodedData const &); }; /** @class LocallyEncodedData @@ -75,12 +75,10 @@ protected: class LocallyEncodedData : public EncodedData { public: - /** @param d Data (which will not be freed by this class) + /** @param d Data (which will be copied by this class) * @param s Size of data, in bytes. */ - LocallyEncodedData (uint8_t* d, int s) - : EncodedData (d, s) - {} + LocallyEncodedData (uint8_t* d, int s); }; /** @class RemotelyEncodedData @@ -91,7 +89,6 @@ class RemotelyEncodedData : public EncodedData { public: RemotelyEncodedData (int s); - ~RemotelyEncodedData (); }; /** @class DCPVideoFrame |
