blob: 9ff59e60f00939d45dba986048f91efc838bb33e [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SERVICES_MEDIA_FRAMEWORK_FFMPEG_AV_PACKET_H_
#define SERVICES_MEDIA_FRAMEWORK_FFMPEG_AV_PACKET_H_
extern "C" {
#include "third_party/ffmpeg/libavcodec/avcodec.h"
#include "third_party/ffmpeg/libavformat/avformat.h"
}
namespace mojo {
namespace media {
namespace ffmpeg {
struct AVPacketDeleter {
inline void operator()(AVPacket* ptr) const { av_free_packet(ptr); }
};
using AvPacketPtr = std::unique_ptr<AVPacket, AVPacketDeleter>;
struct AvPacket {
static AvPacketPtr Create() {
AVPacket* av_packet = new AVPacket();
av_init_packet(av_packet);
return AvPacketPtr(av_packet);
}
};
} // namespace ffmpeg
} // namespace media
} // namespace mojo
#endif // SERVICES_MEDIA_FRAMEWORK_FFMPEG_AV_PACKET_H_