blob: f1d51b87624d8bd03996e1c16de648ebe56ba3bd [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_