Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(423)

Unified Diff: services/media/framework_ffmpeg/ffmpeg_video_decoder.h

Issue 1923763002: Motown: Ffmpeg video decoder (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Minor fixes per feedback. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: services/media/framework_ffmpeg/ffmpeg_video_decoder.h
diff --git a/services/media/framework_ffmpeg/ffmpeg_video_decoder.h b/services/media/framework_ffmpeg/ffmpeg_video_decoder.h
index dc853920d5c1808cdf79a596980ad85bdae98367..907140fe44827dd68cd5062480b83881f7141d81 100644
--- a/services/media/framework_ffmpeg/ffmpeg_video_decoder.h
+++ b/services/media/framework_ffmpeg/ffmpeg_video_decoder.h
@@ -20,6 +20,8 @@ class FfmpegVideoDecoder : public FfmpegDecoderBase {
protected:
// FfmpegDecoderBase overrides.
+ void Flush() override;
+
int Decode(const AVPacket& av_packet,
const ffmpeg::AvFramePtr& av_frame_ptr,
PayloadAllocator* allocator,
@@ -31,6 +33,8 @@ class FfmpegVideoDecoder : public FfmpegDecoderBase {
PacketPtr CreateOutputEndOfStreamPacket() override;
private:
+ using Extent = VideoStreamType::Extent;
+
// Callback used by the ffmpeg decoder to acquire a buffer.
static int AllocateBufferForAvFrame(AVCodecContext* av_codec_context,
AVFrame* av_frame,
@@ -39,13 +43,18 @@ class FfmpegVideoDecoder : public FfmpegDecoderBase {
// Callback used by the ffmpeg decoder to release a buffer.
static void ReleaseBufferForAvFrame(void* opaque, uint8_t* buffer);
- // AllocateBufferForAvFrame deposits the packet size here, because there's
- // no good evidence of it after avcodec_decode_audio4 completes.
- uint64_t packet_size_;
+ // The allocator used by avcodec_decode_audio4 to provide context for
+ // AllocateBufferForAvFrame. This is set only during the call to
+ // avcodec_decode_audio4.
+ PayloadAllocator* allocator_;
+
+ // Used to supply PTS for end-of-stream.
+ int64_t next_pts_ = Packet::kUnknownPts;
- // This is used to verify that an allocated buffer is being used as expected
- // by ffmpeg avcodec_decode_audio4. AllocateBufferForAvFrame sets it.
- // void* packet_buffer_;
+ // TODO(dalesat): For investigation only...remove these three fields.
+ bool first_frame_ = true;
+ AVColorSpace colorspace_;
+ Extent coded_size_;
};
} // namespace media
« no previous file with comments | « services/media/framework_ffmpeg/ffmpeg_formatting.cc ('k') | services/media/framework_ffmpeg/ffmpeg_video_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698