summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorcrogers@google.com <crogers@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-30 19:51:17 +0000
committercrogers@google.com <crogers@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-30 19:51:17 +0000
commitaa998003c3d763095f8d099620840daaa3d9b92b (patch)
tree95cda5c3fb27f0b5be23cf4b3e542cad24d6d785 /media
parent5d904b9e9557916894feced1d0bad88e240f1b64 (diff)
downloadchromium_src-aa998003c3d763095f8d099620840daaa3d9b92b.zip
chromium_src-aa998003c3d763095f8d099620840daaa3d9b92b.tar.gz
chromium_src-aa998003c3d763095f8d099620840daaa3d9b92b.tar.bz2
Fix crash in AudioFileReader::Read() by checking for properly initialized AVCodec
Review URL: http://codereview.chromium.org/7785003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98863 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/filters/audio_file_reader.cc14
1 files changed, 11 insertions, 3 deletions
diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc
index 6b7f819..c757233 100644
--- a/media/filters/audio_file_reader.cc
+++ b/media/filters/audio_file_reader.cc
@@ -90,7 +90,15 @@ bool AudioFileReader::Open() {
return false;
}
- result = av_seek_frame(format_context_, 0, 0, 0);
+ if ((result = av_seek_frame(format_context_, 0, 0, 0)) < 0) {
+ DLOG(WARNING) << "AudioFileReader::Open() : could not seek frame -"
+ << " result: " << result;
+ return false;
+ }
+ } else {
+ DLOG(WARNING) << "AudioFileReader::Open() : could not find codec -"
+ << " result: " << result;
+ return false;
}
return true;
@@ -116,8 +124,8 @@ bool AudioFileReader::Read(const std::vector<float*>& audio_data,
if (audio_data.size() != channels)
return false;
- DCHECK(format_context_ && codec_context_);
- if (!format_context_ || !codec_context_) {
+ DCHECK(format_context_ && codec_context_ && codec_);
+ if (!format_context_ || !codec_context_ || !codec_) {
DLOG(WARNING) << "AudioFileReader::Read() : reader is not opened!";
return false;
}