--- /dev/null
+--- a/media/ffmpeg/ffmpeg_common.h 2015-11-27 12:01:56.155462264 +0000
++++ b/media/ffmpeg/ffmpeg_common.h 2015-11-27 12:03:03.348846300 +0000
+@@ -19,10 +19,6 @@
+
+ // Include FFmpeg header files.
+ extern "C" {
+-// Disable deprecated features which result in spammy compile warnings. This
+-// list of defines must mirror those in the 'defines' section of BUILD.gn file &
+-// ffmpeg.gyp file or the headers below will generate different structures!
+-#define FF_API_CONVERGENCE_DURATION 0
+ // Upstream libavcodec/utils.c still uses the deprecated
+ // av_dup_packet(), causing deprecation warnings.
+ // The normal fix for such things is to disable the feature as below,
+@@ -36,7 +32,6 @@
+ MSVC_PUSH_DISABLE_WARNING(4244);
+ #include <libavcodec/avcodec.h>
+ #include <libavformat/avformat.h>
+-#include <libavformat/internal.h>
+ #include <libavformat/avio.h>
+ #include <libavutil/avutil.h>
+ #include <libavutil/imgutils.h>
+diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
+index 155e980..7ba327a 100644
+--- a/media/filters/ffmpeg_demuxer.cc
++++ b/media/filters/ffmpeg_demuxer.cc
+@@ -1034,24 +1034,6 @@
+ // If no estimate is found, the stream entry will be kInfiniteDuration().
+ std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams,
+ kInfiniteDuration());
+- const AVFormatInternal* internal = format_context->internal;
+- if (internal && internal->packet_buffer &&
+- format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) {
+- struct AVPacketList* packet_buffer = internal->packet_buffer;
+- while (packet_buffer != internal->packet_buffer_end) {
+- DCHECK_LT(static_cast<size_t>(packet_buffer->pkt.stream_index),
+- start_time_estimates.size());
+- const AVStream* stream =
+- format_context->streams[packet_buffer->pkt.stream_index];
+- if (packet_buffer->pkt.pts != static_cast<int64_t>(AV_NOPTS_VALUE)) {
+- const base::TimeDelta packet_pts =
+- ConvertFromTimeBase(stream->time_base, packet_buffer->pkt.pts);
+- if (packet_pts < start_time_estimates[stream->index])
+- start_time_estimates[stream->index] = packet_pts;
+- }
+- packet_buffer = packet_buffer->next;
+- }
+- }
+
+ AVStream* audio_stream = NULL;
+ AudioDecoderConfig audio_config;
+Index: build/linux/unbundle/ffmpeg.gyp
+diff --git a/build/linux/unbundle/ffmpeg.gyp b/build/linux/unbundle/ffmpeg.gyp
+index e3c3723894ceae651920154dbb65cf83aa4d3d40..b86a1c4dc71c55d86a0bb66664f27cfe4f243fbc 100644
+--- a/build/linux/unbundle/ffmpeg.gyp
++++ b/build/linux/unbundle/ffmpeg.gyp
+@@ -41,6 +41,17 @@
+ 'USE_SYSTEM_FFMPEG',
+ ],
+ },
++ 'variables': {
++ 'headers_root_path': '.',
++ 'header_filenames': [
++ 'libavcodec/avcodec.h',
++ 'libavformat/avformat.h',
++ 'libavutil/imgutils.h',
++ ],
++ },
++ 'includes': [
++ '../../build/shim_headers.gypi',
++ ],
+ 'link_settings': {
+ 'ldflags': [
+ '<!@(pkg-config --libs-only-L --libs-only-other libavcodec libavformat libavutil)',