Shaka Player Embedded
Classes | Public Member Functions | List of all members
shaka::media::ffmpeg::FFmpegDemuxer Class Reference

#include <ffmpeg_demuxer.h>

Inheritance diagram for shaka::media::ffmpeg::FFmpegDemuxer:
shaka::media::Demuxer

Public Member Functions

 FFmpegDemuxer (Demuxer::Client *client, const std::string &mime_type, const std::string &container)
 
 ~FFmpegDemuxer () override
 
void Reset () override
 
bool Demux (double timestamp_offset, const uint8_t *data, size_t size, std::vector< std::shared_ptr< EncodedFrame >> *frames) override
 
- Public Member Functions inherited from shaka::media::Demuxer
 Demuxer ()
 
virtual ~ Demuxer ()
 
 Demuxer (const Demuxer &)=delete
 
Demuxeroperator= (const Demuxer &)=delete
 
 Demuxer (Demuxer &&)=delete
 
Demuxeroperator= (Demuxer &&)=delete
 
virtual bool SwitchType (const std::string &mime_type)
 

Detailed Description

An implementation of the Demuxer type that uses FFmpeg to demux frames. This produces FFmpegEncodedFrame objects.

Definition at line 40 of file ffmpeg_demuxer.h.

Constructor & Destructor Documentation

§ FFmpegDemuxer()

shaka::media::ffmpeg::FFmpegDemuxer::FFmpegDemuxer ( Demuxer::Client client,
const std::string &  mime_type,
const std::string &  container 
)

Definition at line 394 of file ffmpeg_demuxer.cc.

§ ~FFmpegDemuxer()

shaka::media::ffmpeg::FFmpegDemuxer::~FFmpegDemuxer ( )
override

Definition at line 412 of file ffmpeg_demuxer.cc.

Member Function Documentation

§ Demux()

bool shaka::media::ffmpeg::FFmpegDemuxer::Demux ( double  timestamp_offset,
const uint8_t *  data,
size_t  size,
std::vector< std::shared_ptr< EncodedFrame >> *  frames 
)
overridevirtual

Attempts to demux the given data into some number of encoded frames.

If the data contains multiple streams (i.e. multiplexed content), then all frames will be given and they will be separated based on their stream_info field.

This may be given segments from a different source after starting. This will be first given the init segment for the new stream then the new segments. This should support this case and reinitialize the demxuer if needed. The resulting frames should have different stream_info fields from before, even if they are of the same type and codec.

Parameters
timestamp_offsetThe current offset to add to the timestamps.
dataThe data to demux.
sizeThe number of bytes in data.
frames[OUT] Where to insert newly created frames.
Returns
True on success, false on error.

Implements shaka::media::Demuxer.

Definition at line 435 of file ffmpeg_demuxer.cc.

§ Reset()

void shaka::media::ffmpeg::FFmpegDemuxer::Reset ( )
overridevirtual

Resets the demuxer to parse a new stream. This may be called when adapting before parsing a new stream. This should reset any partial reads and should prepare to read from a new stream. This may not be called during adaptation, so the demuxer should still handle getting a new init segment without calling Reset first.

Implements shaka::media::Demuxer.

Definition at line 431 of file ffmpeg_demuxer.cc.


The documentation for this class was generated from the following files: