#include "Packet.h" #include namespace ffcpp { Packet::Packet() { _packet.data = nullptr; _packet.size = 0; av_init_packet(&_packet); } Packet::Packet(AVPacket packet): _packet(packet) { } Packet::Packet(Packet&& packet) { *this = std::move(packet); } Packet& Packet::operator=(Packet&& packet) { _packet = packet._packet; packet._packet.size = 0; packet._packet.data = nullptr; return *this; } Packet::~Packet() { if(_packet.data) { av_free_packet(&_packet); } } Packet::operator bool() { return (_packet.data != nullptr); } Packet::operator AVPacket*() { return &_packet; } int Packet::streamIndex() const { return _packet.stream_index; } void Packet::setStreamIndex(int index) { _packet.stream_index = index; } void Packet::rescaleTimestamps(AVRational from, AVRational to) { av_packet_rescale_ts(&_packet, from, to); } }