Motown: Improvements to packet definition
- Removed duration field
- Renamed various "PresentationTime" things to "Pts"
- Now implementing Packet accessors in the base class.
- Improved the way ffmpeg AVFrame and AVPacket structures are managed.
R=johngro@google.com
Review URL: https://codereview.chromium.org/1814553002 .
diff --git a/services/media/framework_ffmpeg/av_packet.h b/services/media/framework_ffmpeg/av_packet.h
new file mode 100644
index 0000000..f1d51b8
--- /dev/null
+++ b/services/media/framework_ffmpeg/av_packet.h
@@ -0,0 +1,37 @@
+// 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_