Index: media/filters/ffmpeg_demuxer.cc |
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc |
index f3f87ac45ed8b794a934f477a807bf849c15932c..bcd9b1768589790548e8d623e10b9b4b5879d003 100644 |
--- a/media/filters/ffmpeg_demuxer.cc |
+++ b/media/filters/ffmpeg_demuxer.cc |
@@ -196,6 +196,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { |
av_packet_split_side_data(packet.get()); |
scoped_refptr<DecoderBuffer> buffer; |
+ bool is_keyframe = packet.get()->flags & AV_PKT_FLAG_KEY; |
if (type() == DemuxerStream::TEXT) { |
int id_size = 0; |
@@ -216,7 +217,8 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { |
&side_data); |
buffer = DecoderBuffer::CopyFrom(packet.get()->data, packet.get()->size, |
- side_data.data(), side_data.size()); |
+ side_data.data(), side_data.size(), |
+ is_keyframe); |
} else { |
int side_data_size = 0; |
uint8* side_data = av_packet_get_side_data( |
@@ -244,10 +246,12 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { |
if (side_data_size > 0) { |
buffer = DecoderBuffer::CopyFrom(packet.get()->data + data_offset, |
packet.get()->size - data_offset, |
- side_data, side_data_size); |
+ side_data, side_data_size, |
+ is_keyframe); |
} else { |
buffer = DecoderBuffer::CopyFrom(packet.get()->data + data_offset, |
- packet.get()->size - data_offset); |
+ packet.get()->size - data_offset, |
+ is_keyframe); |
} |
int skip_samples_size = 0; |