54 lines
903 B
C++
54 lines
903 B
C++
#include "Packet.h"
|
|
#include <stdexcept>
|
|
|
|
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);
|
|
}
|
|
|
|
}
|