class H264Decoder

Defined at line 31 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.h

Clients of this class are expected to pass H264 Annex-B byte stream

and are expected to provide an implementation of H264Accelerator for

offloading final steps of the decoding process.

This class must be created, called and destroyed on a single thread, and

does nothing internally on any other thread.

Public Methods

void H264Decoder (std::unique_ptr<H264Accelerator> accelerator, VideoCodecProfile profile, const VideoColorSpace & container_color_space)

Defined at line 123 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

void ~H264Decoder ()

Defined at line 139 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

void H264Decoder (const H264Decoder & )

Defined at line 169 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.h

H264Decoder & operator= (const H264Decoder & )

Defined at line 170 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.h

void SetStream (int32_t id, const DecoderBuffer & decoder)

AcceleratedVideoDecoder implementation.

Defined at line 1562 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

bool Flush ()

Defined at line 844 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

void Reset ()

Defined at line 141 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

gfx::Size GetSarSize ()

Defined at line 186 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.h

DecodeResult Decode ()

Defined at line 1591 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

gfx::Size GetPicSize ()

Defined at line 1887 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

gfx::Rect GetVisibleRect ()

Defined at line 1891 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

VideoCodecProfile GetProfile ()

Defined at line 1895 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

uint8_t GetBitDepth ()

Defined at line 1899 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

size_t GetRequiredNumOfPictures ()

Defined at line 1903 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

bool IsCurrentFrameKeyframe ()

Defined at line 1908 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

size_t GetNumReferenceFrames ()

Defined at line 1912 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

void SetStreamId (int32_t id)

If using QueuePreparsedNalu(), before Decode(), call SetStreamId() to

inform the decoder what id to assign to frames that correspond to

(logically "generated from") the queued NALUs. This takes the place of the

first parameter to SetStream() (as SetStream() is not used when using

QueuePreparsedNalu()).

Defined at line 1873 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

void QueuePreparsedNalu (std::unique_ptr<H264NALU> nalu)

Pre-parsed NALUs are used when the HW can parse, but the HW needs help with

DPB management. This method must be called before the first call to

Decode(), and SetStream() must not be called. After this method is called,

the H264Decoder instance is in nalu_injection_mode_, and stays in that mode

until destruction.

When Decode() is called, any pre-parsed NALUs are processed as if they had

been parsed from the bitstream, and calls to the accelerator will occur as

normal except without any stream data.

The caller may queue a kAUD and call Decode() when the caller is ready for

SubmitDecode() to be called. The caller may have already finished the

underlying picture decode and just needs to bring H264Decoder into sync, or

the caller may decode during SubmitDecode(). Either way, after

SubmitDecode() returns some OutputPicture() calls may occur. As an

alternative to queueing a kAUD, the caller may trigger SubmitDecode() by

instead queuing and Decode()ing a new SPS, new PPS, or a slice of a new

picture.

Defined at line 1880 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

bool IsNewPrimaryCodedPicture (const H264Picture * curr_pic, int curr_pps_id, const H264SPS * sps, const H264SliceHeader & slice_hdr)

Return true if we need to start a new picture.

Defined at line 1971 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

bool FillH264PictureFromSliceHeader (const H264SPS * sps, const H264SliceHeader & slice_hdr, H264Picture * pic)

Fill a H264Picture in |pic| from given |sps| and |slice_hdr|. Return false

when there is an error.

Defined at line 1918 of file ../../src/media/third_party/chromium_media/media/gpu/h264_decoder.cc

Records