summaryrefslogtreecommitdiff
path: root/src/lib/dcp_video_frame.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-01-11 19:20:51 +0000
committerCarl Hetherington <cth@carlh.net>2013-01-11 19:20:51 +0000
commitef0aa27c671f9c34b9aad79015bcc50cb10c0fc5 (patch)
tree7216d311005a1469f079006cbb17f734a21a91ea /src/lib/dcp_video_frame.h
parentd0babb26ab341026fe227de810ed30c6c9f65cf2 (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.h21
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