5 #ifndef NACL_PLAYER_ES_DATA_SOURCE_H_ 6 #define NACL_PLAYER_ES_DATA_SOURCE_H_ 12 #include "nacl_player/common.h" 13 #include "nacl_player/error_codes.h" 14 #include "nacl_player/media_common.h" 15 #include "nacl_player/media_codecs.h" 16 #include "nacl_player/media_data_source.h" 25 namespace NaClPlayer {
27 class ElementaryStreamListener;
75 int32_t
InitializeDone(
const std::function<
void(int32_t)>& callback);
99 const std::function<
void(int32_t)>& callback);
126 const std::function<
void(int32_t)>& callback);
155 const std::function<
void(int32_t)>& callback);
196 const std::function<
void(int32_t)>& callback);
215 int32_t
Flush(
const std::function<
void(int32_t)>& callback);
238 const std::string& type,
239 uint32_t init_data_size,
240 const void* init_data,
241 const std::function<
void(int32_t)>& callback);
248 const std::string& type,
249 uint32_t init_data_size,
250 const void* init_data);
256 virtual Impl* impl() = 0;
315 int32_t GetBitsPerChannel()
const;
322 void SetBitsPerChannel(int32_t bits_per_channel);
325 int32_t GetSamplesPerSecond()
const;
328 void SetSamplesPerSecond(int32_t samples_per_second);
337 void SetCodecExtraData(
338 uint32_t extra_data_size,
339 const void* extra_data);
342 ElementaryStream::Impl* impl();
351 std::unique_ptr<Impl> pimpl_;
403 Size GetVideoFrameSize()
const;
406 void SetVideoFrameSize(
const Size& size);
413 void SetFrameRate(
const Rational& r);
422 void SetCodecExtraData(
423 uint32_t extra_data_size,
424 const void* extra_data);
427 ElementaryStream::Impl* impl();
436 std::unique_ptr<Impl> pimpl_;
442 template <
typename T>
531 const std::function<
void(int32_t,
const T&)>& callback,
542 const std::function<
void(int32_t,
const T&)>& callback,
543 std::shared_ptr<ElementaryStreamListener> listener);
558 int32_t AddStream(T& stream,
579 int32_t AddStream(T& stream,
580 std::shared_ptr<ElementaryStreamListener> listener);
592 const std::function<
void(int32_t)>& callback);
606 int32_t SetEndOfStream(
607 const std::function<
void(int32_t)>& callback);
613 int32_t SetEndOfStream();
616 MediaDataSource::Impl* impl()
const;
622 static void OnStreamAdded(
623 const std::function<
void(int32_t,
const T&)>& callback,
666 std::shared_ptr<ElementaryStreamListener> listener,
674 std::shared_ptr<ElementaryStreamListener> listener);
677 std::unique_ptr<Impl> pimpl_;
681 void ESDataSource::OnStreamAdded(
682 const std::function<
void(int32_t,
const T&)>& callback,
684 callback(result, static_cast<const T&>(stream));
689 const std::function<
void(int32_t,
const T&)>& callback,
690 std::shared_ptr<ElementaryStreamListener> listener) {
693 "Invalid stream type.");
694 return AddStream(Traits::kType, listener,
696 ESDataSource::OnStreamAdded(callback, result, stream);});
701 const std::function<
void(int32_t,
const T&)>& callback,
705 "Invalid stream type.");
706 return AddStream(Traits::kType, listener,
708 ESDataSource::OnStreamAdded(callback, result, stream);});
713 std::shared_ptr<ElementaryStreamListener> listener) {
716 "Invalid stream type.");
717 return AddStream(Traits::kType, stream, listener);
725 "Invalid stream type.");
726 return AddStream(Traits::kType, stream, listener);
732 #endif // NACL_PLAYER_ES_DATA_SOURCE_H_
Structure describing TrustZone memory reference.
Defines integral size of 2D rectangle.
int32_t AddStream(const std::function< void(int32_t, const T &)> &callback, ElementaryStreamListener *listener)
virtual ElementaryStreamType GetStreamType() const =0
Retrieves stream type represented by this resource.
Structure describing encrypted packet.
Listener for receiving elementary stream related events.
Represents a rational number.
int32_t SetDRMInitData(const std::string &type, uint32_t init_data_size, const void *init_data, const std::function< void(int32_t)> &callback)
int32_t AppendPacket(const ESPacket &packet, const std::function< void(int32_t)> &callback)
int32_t AppendEncryptedPacket(const ESPacket &packet, const ESPacketEncryptionInfo &encryption_info, const std::function< void(int32_t)> &callback)
double TimeDelta
difference of two timestamps in seconds
int32_t AppendTrustZonePacket(const ESPacket &packet, const TrustZoneReference &handle, const std::function< void(int32_t)> &callback)