39 #if !defined(TAWARA_TRACK_ENTRY_H_)
40 #define TAWARA_TRACK_ENTRY_H_
42 #include <boost/operators.hpp>
43 #include <boost/shared_ptr.hpp>
70 public boost::equality_comparable<TrackEntry>
80 std::string
const& codec);
90 uint64_t
number()
const {
return number_; }
96 void number(uint64_t number);
104 uint64_t
uid()
const {
return uid_; }
110 void uid(uint64_t uid);
118 uint8_t
type()
const {
return type_; }
124 void type(uint8_t type);
204 { default_dur_ = default_duration; }
219 void timecode_scale(
double timecode_scale);
228 {
return max_block_add_id_; }
231 { max_block_add_id_ = max_id; }
234 std::string
name()
const {
return name_; }
249 void codec_id(std::string
id);
257 {
return codec_private_; }
260 { codec_private_ = data; }
279 {
return attachment_link_; }
297 std::vector<uint64_t> overlays()
const;
299 void overlays(std::vector<uint64_t>
const& uids);
318 { operation_ = operation; }
321 virtual std::streamsize write_body(std::ostream& output);
324 typedef boost::shared_ptr<TrackEntry>
Ptr;
326 typedef boost::shared_ptr<TrackEntry const>
ConstPtr;
354 virtual std::streamsize body_size()
const;
357 virtual std::streamsize read_body(std::istream& input,
358 std::streamsize
size);
366 std::streamsize read_operation(std::istream& input);
375 #endif // TAWARA_TRACK_ENTRY_H_
uint64_t attachment_link() const
Get the UID of a linked attachment.
boost::shared_ptr< TrackEntry > Ptr
The type of a shared pointer to a TrackEntry.
std::string codec_id() const
Get the track's codec's ID.
BinaryElement codec_private_
void codec_private(std::vector< char > const &data)
Set the codec-private data.
UIntElement max_block_add_id_
bool decode_all() const
Check if this track's codec can decode damaged data.
uint64_t max_cache() const
Get the maximum cache size.
std::vector< UIntElement > overlays_
uint64_t max_block_add_id() const
Get the maximum BlockAdditions ID.
std::streamsize size(ID id)
Get the number of bytes required by an ID.
const ID TrackEntry(0xAE)
UIntElement attachment_link_
double timecode_scale() const
Get the track's timecode scale.
uint8_t type() const
Get the track type.
void codec_name(std::string name)
Set the track's codec's name.
The MasterElement interface.
std::vector< char > codec_private() const
Get the codec-private data.
void min_cache(uint64_t min_cache)
Set the minimum cache size.
virtual ~TrackEntry()
Destructor.
uint64_t number() const
Get the track number.
Binary primitive element.
TrackOperationBase::Ptr operation_
void max_block_add_id(uint64_t max_id)
Set the maximum BlockAdditions ID.
uint64_t min_cache() const
Get the minimum cache size.
void name(std::string name)
Set the track's name.
bool operator==(AttachedFile const &lhs, AttachedFile const &rhs)
Equality operator for the AttachedFile object.
bool enabled() const
Check if the track is enabled.
void lacing(bool lacing)
Set if the track can use lacing.
boost::shared_ptr< TrackEntry const > ConstPtr
The type of a shared pointer to a constant TrackEntry.
Unsigned integer primitive element.
String primitive element.
void default_duration(uint64_t default_duration)
Set the default duration of blocks in the track.
bool is_virtual() const
Check if this track is virtual.
void forced(bool forced)
Set if the track is forced.
bool forced() const
Check if the track is forced.
void max_cache(uint64_t max_cache)
Set the maximum cache size.
bool lacing() const
Check if the track can use lacing.
TrackOperationBase::Ptr operation() const
Get the operation used to create this track.
std::string codec_name() const
Get the track's codec's name.
StringElement codec_name_
boost::shared_ptr< TrackOperationBase > Ptr
Base type of a track operation pointer.
uint64_t default_duration() const
Get the default duration of blocks in the track.
void decode_all(bool decode_all)
Set if this track's codec can decode damaged data.
void enabled(bool enabled)
Set if the track is enabled.
FloatElement timecode_scale_
uint64_t uid() const
Get the track UID.
A track entry provides the meta-data for a single track.
void operation(TrackOperationBase::Ptr const &operation)
Set the operation used to create this track.
std::string name() const
Get the track's name.
void attachment_link(uint64_t uid)
Set the UID of a linked attachment.