libeplayer3/writer: add fd to writer class

Origin commit data
------------------
Branch: master
Commit: b767224487
Author: martii <m4rtii@gmx.de>
Date: 2014-05-01 (Thu, 01 May 2014)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
martii
2014-05-01 12:51:26 +02:00
parent dbcd640fca
commit a428bd64b5
11 changed files with 58 additions and 51 deletions

View File

@@ -35,13 +35,13 @@
class WriterAC3 : public Writer class WriterAC3 : public Writer
{ {
public: public:
bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); bool Write(AVPacket *packet, int64_t pts);
WriterAC3(); WriterAC3();
}; };
bool WriterAC3::Write(int fd, AVStream * /* stream */, AVPacket *packet, int64_t pts) bool WriterAC3::Write(AVPacket *packet, int64_t pts)
{ {
if (fd < 0 || !packet || !packet->data) if (!packet || !packet->data)
return false; return false;
uint8_t PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];

View File

@@ -37,20 +37,23 @@ class WriterDIVX : public Writer
{ {
private: private:
bool initialHeader; bool initialHeader;
AVStream *stream;
public: public:
bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); bool Write(AVPacket *packet, int64_t pts);
void Init(); void Init(int fd, AVStream *_stream);
WriterDIVX(); WriterDIVX();
}; };
void WriterDIVX::Init() void WriterDIVX::Init(int _fd, AVStream *_stream)
{ {
fd = _fd;
stream = _stream;
initialHeader = true; initialHeader = true;
} }
bool WriterDIVX::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts) bool WriterDIVX::Write(AVPacket *packet, int64_t pts)
{ {
if (fd < 0 || !packet || !packet->data) if (!packet || !packet->data)
return false; return false;
uint8_t PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
@@ -101,7 +104,6 @@ WriterDIVX::WriterDIVX()
Register(this, AV_CODEC_ID_MSMPEG4V1, VIDEO_ENCODING_MPEG4P2); Register(this, AV_CODEC_ID_MSMPEG4V1, VIDEO_ENCODING_MPEG4P2);
Register(this, AV_CODEC_ID_MSMPEG4V2, VIDEO_ENCODING_MPEG4P2); Register(this, AV_CODEC_ID_MSMPEG4V2, VIDEO_ENCODING_MPEG4P2);
Register(this, AV_CODEC_ID_MSMPEG4V3, VIDEO_ENCODING_MPEG4P2); Register(this, AV_CODEC_ID_MSMPEG4V3, VIDEO_ENCODING_MPEG4P2);
Init();
} }
static WriterDIVX writer_divx __attribute__ ((init_priority (300))); static WriterDIVX writer_divx __attribute__ ((init_priority (300)));

View File

@@ -36,13 +36,13 @@
class WriterDTS : public Writer class WriterDTS : public Writer
{ {
public: public:
bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); bool Write(AVPacket *packet, int64_t pts);
WriterDTS(); WriterDTS();
}; };
bool WriterDTS::Write(int fd, AVStream * /* stream */, AVPacket *packet, int64_t pts) bool WriterDTS::Write(AVPacket *packet, int64_t pts)
{ {
if (fd < 0 || !packet || !packet->data) if (!packet || !packet->data)
return false; return false;
uint8_t PesHeader[PES_AUDIO_HEADER_SIZE]; uint8_t PesHeader[PES_AUDIO_HEADER_SIZE];

View File

@@ -32,13 +32,13 @@
class WriterH263 : public Writer class WriterH263 : public Writer
{ {
public: public:
bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); bool Write(AVPacket *packet, int64_t pts);
WriterH263(); WriterH263();
}; };
bool WriterH263::Write(int fd, AVStream * /* stream */, AVPacket *packet, int64_t pts) bool WriterH263::Write(AVPacket *packet, int64_t pts)
{ {
if (fd < 0 || !packet || !packet->data) if (!packet || !packet->data)
return false; return false;
uint8_t PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];

View File

@@ -52,21 +52,24 @@ class WriterH264 : public Writer
private: private:
bool initialHeader; bool initialHeader;
unsigned int NalLengthBytes; unsigned int NalLengthBytes;
AVStream *stream;
public: public:
bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); bool Write(AVPacket *packet, int64_t pts);
void Init(); void Init(int _fd, AVStream *_stream);
WriterH264(); WriterH264();
}; };
void WriterH264::Init(void) void WriterH264::Init(int _fd, AVStream *_stream)
{ {
fd = _fd;
stream = _stream;
initialHeader = true; initialHeader = true;
NalLengthBytes = 1; NalLengthBytes = 1;
} }
bool WriterH264::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts) bool WriterH264::Write(AVPacket *packet, int64_t pts)
{ {
if (fd < 0 || !packet || !packet->data) if (!packet || !packet->data)
return false; return false;
uint8_t PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
unsigned int TimeDelta; unsigned int TimeDelta;
@@ -249,7 +252,6 @@ bool WriterH264::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts)
WriterH264::WriterH264() WriterH264::WriterH264()
{ {
Register(this, AV_CODEC_ID_H264, VIDEO_ENCODING_H264); Register(this, AV_CODEC_ID_H264, VIDEO_ENCODING_H264);
Init();
} }
static WriterH264 writerh264 __attribute__ ((init_priority (300))); static WriterH264 writerh264 __attribute__ ((init_priority (300)));

View File

@@ -35,13 +35,13 @@
class WriterMP3 : public Writer class WriterMP3 : public Writer
{ {
public: public:
bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); bool Write(AVPacket *packet, int64_t pts);
WriterMP3(); WriterMP3();
}; };
bool WriterMP3::Write(int fd, AVStream * /* stream */, AVPacket *packet, int64_t pts) bool WriterMP3::Write(AVPacket *packet, int64_t pts)
{ {
if (fd < 0 || !packet || !packet->data) if (!packet || !packet->data)
return false; return false;
uint8_t PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];

View File

@@ -35,13 +35,13 @@
class WriterMPEG2 : public Writer class WriterMPEG2 : public Writer
{ {
public: public:
bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); bool Write(AVPacket *packet, int64_t pts);
WriterMPEG2(); WriterMPEG2();
}; };
bool WriterMPEG2::Write(int fd, AVStream * /* stream */, AVPacket *packet, int64_t pts) bool WriterMPEG2::Write(AVPacket *packet, int64_t pts)
{ {
if (fd < 0 || !packet || !packet->data) if (!packet || !packet->data)
return false; return false;
uint8_t PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];

View File

@@ -71,6 +71,7 @@ class WriterPCM : public Writer
int uSampleRate; int uSampleRate;
int uBitsPerSample; int uBitsPerSample;
AVStream *stream;
SwrContext *swr; SwrContext *swr;
AVFrame *decoded_frame; AVFrame *decoded_frame;
int out_sample_rate; int out_sample_rate;
@@ -80,10 +81,10 @@ class WriterPCM : public Writer
bool restart_audio_resampling; bool restart_audio_resampling;
public: public:
bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); bool Write(AVPacket *packet, int64_t pts);
bool prepareClipPlay(); bool prepareClipPlay();
bool writePCM(int fd, int64_t Pts, uint8_t *data, unsigned int size); bool writePCM(int64_t Pts, uint8_t *data, unsigned int size);
void Init(); void Init(int _fd, AVStream *_stream);
WriterPCM(); WriterPCM();
}; };
@@ -148,7 +149,7 @@ bool WriterPCM::prepareClipPlay()
return true; return true;
} }
bool WriterPCM::writePCM(int fd, int64_t Pts, uint8_t *data, unsigned int size) bool WriterPCM::writePCM(int64_t Pts, uint8_t *data, unsigned int size)
{ {
bool res = true; bool res = true;
uint8_t PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
@@ -219,17 +220,16 @@ bool WriterPCM::writePCM(int fd, int64_t Pts, uint8_t *data, unsigned int size)
return res; return res;
} }
void WriterPCM::Init() void WriterPCM::Init(int _fd, AVStream *_stream)
{ {
fd = _fd;
stream = _stream;
initialHeader = true; initialHeader = true;
restart_audio_resampling = true; restart_audio_resampling = true;
} }
bool WriterPCM::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts) bool WriterPCM::Write(AVPacket *packet, int64_t pts)
{ {
if (fd < 0)
return false;
if (!packet) { if (!packet) {
restart_audio_resampling = true; restart_audio_resampling = true;
return true; return true;
@@ -332,7 +332,7 @@ bool WriterPCM::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts)
out_samples = swr_convert(swr, &output, out_samples, (const uint8_t **) &decoded_frame->data[0], in_samples); out_samples = swr_convert(swr, &output, out_samples, (const uint8_t **) &decoded_frame->data[0], in_samples);
if (!writePCM(fd, pts, output, out_samples * sizeof(short) * out_channels)) { if (!writePCM(pts, output, out_samples * sizeof(short) * out_channels)) {
restart_audio_resampling = true; restart_audio_resampling = true;
break; break;
} }
@@ -353,7 +353,6 @@ WriterPCM::WriterPCM()
decoded_frame = av_frame_alloc(); decoded_frame = av_frame_alloc();
Register(this, AV_CODEC_ID_INJECTPCM, AUDIO_ENCODING_LPCMA); Register(this, AV_CODEC_ID_INJECTPCM, AUDIO_ENCODING_LPCMA);
Init();
} }
static WriterPCM writer_pcm __attribute__ ((init_priority (300))); static WriterPCM writer_pcm __attribute__ ((init_priority (300)));

View File

@@ -50,20 +50,23 @@ class WriterVC1 : public Writer
private: private:
bool initialHeader; bool initialHeader;
uint8_t FrameHeaderSeen; uint8_t FrameHeaderSeen;
AVStream *stream;
public: public:
bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); bool Write(AVPacket *packet, int64_t pts);
void Init(); void Init(int _fd, AVStream *_stream);
WriterVC1(); WriterVC1();
}; };
void WriterVC1::Init() void WriterVC1::Init(int _fd, AVStream *_stream)
{ {
fd = _fd;
stream = _stream;
initialHeader = true; initialHeader = true;
} }
bool WriterVC1::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts) bool WriterVC1::Write(AVPacket *packet, int64_t pts)
{ {
if (fd < 0 || !packet || !packet->data) if (!packet || !packet->data)
return false; return false;
if (initialHeader) { if (initialHeader) {
@@ -181,7 +184,6 @@ bool WriterVC1::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts)
WriterVC1::WriterVC1() WriterVC1::WriterVC1()
{ {
Register(this, AV_CODEC_ID_VC1, VIDEO_ENCODING_VC1); Register(this, AV_CODEC_ID_VC1, VIDEO_ENCODING_VC1);
Init();
} }
static WriterVC1 writer_vc1 __attribute__ ((init_priority (300))); static WriterVC1 writer_vc1 __attribute__ ((init_priority (300)));

View File

@@ -57,20 +57,23 @@ class WriterWMV : public Writer
{ {
private: private:
bool initialHeader; bool initialHeader;
AVStream *stream;
public: public:
bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); bool Write(AVPacket *packet, int64_t pts);
void Init(); void Init(int _fd, AVStream *_stream);
WriterWMV(); WriterWMV();
}; };
void WriterWMV::Init() void WriterWMV::Init(int _fd, AVStream *_stream)
{ {
fd = _fd;
stream = _stream;
initialHeader = true; initialHeader = true;
} }
bool WriterWMV::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts) bool WriterWMV::Write(AVPacket *packet, int64_t pts)
{ {
if (fd < 0 || !packet || !packet->data) if (!packet || !packet->data)
return false; return false;
if (initialHeader) { if (initialHeader) {
@@ -164,7 +167,6 @@ WriterWMV::WriterWMV()
Register(this, AV_CODEC_ID_WMV1, VIDEO_ENCODING_WMV); Register(this, AV_CODEC_ID_WMV1, VIDEO_ENCODING_WMV);
Register(this, AV_CODEC_ID_WMV2, VIDEO_ENCODING_WMV); Register(this, AV_CODEC_ID_WMV2, VIDEO_ENCODING_WMV);
Register(this, AV_CODEC_ID_WMV3, VIDEO_ENCODING_WMV); Register(this, AV_CODEC_ID_WMV3, VIDEO_ENCODING_WMV);
Init();
} }
static WriterWMV writer_wmv __attribute__ ((init_priority (300))); static WriterWMV writer_wmv __attribute__ ((init_priority (300)));

View File

@@ -58,7 +58,7 @@ void Writer::Register(Writer *w, enum AVCodecID id, audio_encoding_t encoding)
aencoding[id] = encoding; aencoding[id] = encoding;
} }
bool Writer::Write(int /* fd */, AVStream * /*stream*/, AVPacket * /* packet */, int64_t /* pts */) bool Writer::Write(AVPacket * /* packet */, int64_t /* pts */)
{ {
return false; return false;
} }