Upstreaming browser/ui/uikit_ui_util from iOS.
[chromium-blink-merge.git] / media / ffmpeg / ffmpeg_deleters.h
blob3429e05c7a699d172ae4073171f2e30ad35c1035
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // This file contains declarations for deleters for use with |scoped_ptr|. To
6 // avoid requiring additional #includes, the (inline) definitions are in
7 // ffmpeg_common.h. (Forward declarations of deleters aren't sufficient for
8 // |scoped_ptr|.)
10 #ifndef MEDIA_FFMPEG_FFMPEG_DELETERS_H_
11 #define MEDIA_FFMPEG_FFMPEG_DELETERS_H_
13 namespace media {
15 // Wraps FFmpeg's av_free() in a class that can be passed as a template argument
16 // to scoped_ptr_malloc.
17 struct ScopedPtrAVFree {
18 void operator()(void* x) const;
21 // This assumes that the AVPacket being captured was allocated outside of
22 // FFmpeg via the new operator. Do not use this with AVPacket instances that
23 // are allocated via malloc() or av_malloc().
24 struct ScopedPtrAVFreePacket {
25 void operator()(void* x) const;
28 // Frees an AVCodecContext object in a class that can be passed as a Deleter
29 // argument to scoped_ptr_malloc.
30 struct ScopedPtrAVFreeContext {
31 void operator()(void* x) const;
34 // Frees an AVFrame object in a class that can be passed as a Deleter argument
35 // to scoped_ptr_malloc.
36 struct ScopedPtrAVFreeFrame {
37 void operator()(void* x) const;
40 } // namespace media
42 #endif // MEDIA_FFMPEG_FFMPEG_DELETERS_H_