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

Unified Diff: media/filters/ffmpeg_demuxer.cc

Issue 11887011: Tighten up media::DecoderBuffer data requirements. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: typo Created 7 years, 11 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
« no previous file with comments | « media/base/decoder_buffer.cc ('k') | media/filters/ffmpeg_demuxer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/ffmpeg_demuxer.cc
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
index abe8fe1d63dccd062cea2d18a16d72ec7384350b..56929bcf05172823e0aab9b2ba7d8fe64e4c81b2 100644
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
@@ -588,6 +588,26 @@ void FFmpegDemuxer::OnReadFrameDone(ScopedAVPacket packet, int result) {
streams_[packet->stream_index] &&
(!audio_disabled_ ||
streams_[packet->stream_index]->type() != DemuxerStream::AUDIO)) {
+
+ // TODO(scherkus): Fix demuxing upstream to never return packets w/o data
+ // when av_read_frame() returns success code. See bug comment for ideas:
+ //
+ // https://code.google.com/p/chromium/issues/detail?id=169133#c10
+ if (!packet->data) {
+ ScopedAVPacket new_packet(new AVPacket());
+ av_new_packet(new_packet.get(), 0);
+
+ new_packet->pts = packet->pts;
+ new_packet->dts = packet->dts;
+ new_packet->pos = packet->pos;
+ new_packet->duration = packet->duration;
+ new_packet->convergence_duration = packet->convergence_duration;
+ new_packet->flags = packet->flags;
+ new_packet->stream_index = packet->stream_index;
+
+ packet.swap(new_packet);
+ }
+
FFmpegDemuxerStream* demuxer_stream = streams_[packet->stream_index];
demuxer_stream->EnqueuePacket(packet.Pass());
}
« no previous file with comments | « media/base/decoder_buffer.cc ('k') | media/filters/ffmpeg_demuxer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698