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

Side by Side Diff: media/ffmpeg/ffmpeg_common.cc

Issue 6993042: ffmpeg chromium glue (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: once more new test_expectations.txt Created 9 years, 5 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « media/base/mock_ffmpeg.cc ('k') | media/ffmpeg/ffmpeg_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/ffmpeg/ffmpeg_common.h" 5 #include "media/ffmpeg/ffmpeg_common.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 8
9 namespace media { 9 namespace media {
10 10
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 203
204 // An even width makes things easier for YV12 and appears to be the behavior 204 // An even width makes things easier for YV12 and appears to be the behavior
205 // expected by WebKit layout tests. 205 // expected by WebKit layout tests.
206 return width & ~1; 206 return width & ~1;
207 } 207 }
208 208
209 void DestroyAVFormatContext(AVFormatContext* format_context) { 209 void DestroyAVFormatContext(AVFormatContext* format_context) {
210 DCHECK(format_context); 210 DCHECK(format_context);
211 211
212 // Iterate each stream and destroy each one of them. 212 // Iterate each stream and destroy each one of them.
213 int streams = format_context->nb_streams; 213 if (format_context->streams) {
214 for (int i = 0; i < streams; ++i) { 214 int streams = format_context->nb_streams;
215 AVStream* stream = format_context->streams[i]; 215 for (int i = 0; i < streams; ++i) {
216 AVStream* stream = format_context->streams[i];
216 217
217 // The conditions for calling avcodec_close(): 218 // The conditions for calling avcodec_close():
218 // 1. AVStream is alive. 219 // 1. AVStream is alive.
219 // 2. AVCodecContext in AVStream is alive. 220 // 2. AVCodecContext in AVStream is alive.
220 // 3. AVCodec in AVCodecContext is alive. 221 // 3. AVCodec in AVCodecContext is alive.
221 // Notice that closing a codec context without prior avcodec_open() will 222 // Notice that closing a codec context without prior avcodec_open() will
222 // result in a crash in FFmpeg. 223 // result in a crash in FFmpeg.
223 if (stream && stream->codec && stream->codec->codec) { 224 if (stream && stream->codec && stream->codec->codec) {
224 stream->discard = AVDISCARD_ALL; 225 stream->discard = AVDISCARD_ALL;
225 avcodec_close(stream->codec); 226 avcodec_close(stream->codec);
227 }
226 } 228 }
227 } 229 }
228 230
229 // Then finally cleanup the format context. 231 // Then finally cleanup the format context.
230 av_close_input_file(format_context); 232 av_close_input_file(format_context);
231 } 233 }
232 234
233 } // namespace media 235 } // namespace media
OLDNEW
« no previous file with comments | « media/base/mock_ffmpeg.cc ('k') | media/ffmpeg/ffmpeg_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698