From b7672244873af6101121b3c0c203735ca00bd938 Mon Sep 17 00:00:00 2001 From: martii Date: Thu, 1 May 2014 12:51:26 +0200 Subject: [PATCH] libeplayer3/writer: add fd to writer class --- libeplayer3/writer/ac3.cpp | 6 +++--- libeplayer3/writer/divx.cpp | 14 ++++++++------ libeplayer3/writer/dts.cpp | 6 +++--- libeplayer3/writer/h263.cpp | 6 +++--- libeplayer3/writer/h264.cpp | 14 ++++++++------ libeplayer3/writer/mp3.cpp | 6 +++--- libeplayer3/writer/mpeg2.cpp | 6 +++--- libeplayer3/writer/pcm.cpp | 21 ++++++++++----------- libeplayer3/writer/vc1.cpp | 14 ++++++++------ libeplayer3/writer/wmv.cpp | 14 ++++++++------ libeplayer3/writer/writer.cpp | 2 +- 11 files changed, 58 insertions(+), 51 deletions(-) diff --git a/libeplayer3/writer/ac3.cpp b/libeplayer3/writer/ac3.cpp index 90f8494..d1a32ba 100644 --- a/libeplayer3/writer/ac3.cpp +++ b/libeplayer3/writer/ac3.cpp @@ -35,13 +35,13 @@ class WriterAC3 : public Writer { public: - bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(AVPacket *packet, int64_t pts); 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; uint8_t PesHeader[PES_MAX_HEADER_SIZE]; diff --git a/libeplayer3/writer/divx.cpp b/libeplayer3/writer/divx.cpp index 1eeaabc..185665c 100644 --- a/libeplayer3/writer/divx.cpp +++ b/libeplayer3/writer/divx.cpp @@ -37,20 +37,23 @@ class WriterDIVX : public Writer { private: bool initialHeader; + AVStream *stream; public: - bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); - void Init(); + bool Write(AVPacket *packet, int64_t pts); + void Init(int fd, AVStream *_stream); WriterDIVX(); }; -void WriterDIVX::Init() +void WriterDIVX::Init(int _fd, AVStream *_stream) { + fd = _fd; + stream = _stream; 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; 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_MSMPEG4V2, VIDEO_ENCODING_MPEG4P2); Register(this, AV_CODEC_ID_MSMPEG4V3, VIDEO_ENCODING_MPEG4P2); - Init(); } static WriterDIVX writer_divx __attribute__ ((init_priority (300))); diff --git a/libeplayer3/writer/dts.cpp b/libeplayer3/writer/dts.cpp index 732429c..11125bb 100644 --- a/libeplayer3/writer/dts.cpp +++ b/libeplayer3/writer/dts.cpp @@ -36,13 +36,13 @@ class WriterDTS : public Writer { public: - bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(AVPacket *packet, int64_t pts); 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; uint8_t PesHeader[PES_AUDIO_HEADER_SIZE]; diff --git a/libeplayer3/writer/h263.cpp b/libeplayer3/writer/h263.cpp index eb060cf..7243e6c 100644 --- a/libeplayer3/writer/h263.cpp +++ b/libeplayer3/writer/h263.cpp @@ -32,13 +32,13 @@ class WriterH263 : public Writer { public: - bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(AVPacket *packet, int64_t pts); 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; uint8_t PesHeader[PES_MAX_HEADER_SIZE]; diff --git a/libeplayer3/writer/h264.cpp b/libeplayer3/writer/h264.cpp index 837c5e6..ebf1825 100644 --- a/libeplayer3/writer/h264.cpp +++ b/libeplayer3/writer/h264.cpp @@ -52,21 +52,24 @@ class WriterH264 : public Writer private: bool initialHeader; unsigned int NalLengthBytes; + AVStream *stream; public: - bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); - void Init(); + bool Write(AVPacket *packet, int64_t pts); + void Init(int _fd, AVStream *_stream); WriterH264(); }; -void WriterH264::Init(void) +void WriterH264::Init(int _fd, AVStream *_stream) { + fd = _fd; + stream = _stream; initialHeader = true; 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; uint8_t PesHeader[PES_MAX_HEADER_SIZE]; unsigned int TimeDelta; @@ -249,7 +252,6 @@ bool WriterH264::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts) WriterH264::WriterH264() { Register(this, AV_CODEC_ID_H264, VIDEO_ENCODING_H264); - Init(); } static WriterH264 writerh264 __attribute__ ((init_priority (300))); diff --git a/libeplayer3/writer/mp3.cpp b/libeplayer3/writer/mp3.cpp index df69edc..c71af94 100644 --- a/libeplayer3/writer/mp3.cpp +++ b/libeplayer3/writer/mp3.cpp @@ -35,13 +35,13 @@ class WriterMP3 : public Writer { public: - bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(AVPacket *packet, int64_t pts); 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; uint8_t PesHeader[PES_MAX_HEADER_SIZE]; diff --git a/libeplayer3/writer/mpeg2.cpp b/libeplayer3/writer/mpeg2.cpp index 22cdf3f..f7cbb8f 100644 --- a/libeplayer3/writer/mpeg2.cpp +++ b/libeplayer3/writer/mpeg2.cpp @@ -35,13 +35,13 @@ class WriterMPEG2 : public Writer { public: - bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(AVPacket *packet, int64_t pts); 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; uint8_t PesHeader[PES_MAX_HEADER_SIZE]; diff --git a/libeplayer3/writer/pcm.cpp b/libeplayer3/writer/pcm.cpp index 82d476e..882d3bf 100644 --- a/libeplayer3/writer/pcm.cpp +++ b/libeplayer3/writer/pcm.cpp @@ -71,6 +71,7 @@ class WriterPCM : public Writer int uSampleRate; int uBitsPerSample; + AVStream *stream; SwrContext *swr; AVFrame *decoded_frame; int out_sample_rate; @@ -80,10 +81,10 @@ class WriterPCM : public Writer bool restart_audio_resampling; public: - bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(AVPacket *packet, int64_t pts); bool prepareClipPlay(); - bool writePCM(int fd, int64_t Pts, uint8_t *data, unsigned int size); - void Init(); + bool writePCM(int64_t Pts, uint8_t *data, unsigned int size); + void Init(int _fd, AVStream *_stream); WriterPCM(); }; @@ -148,7 +149,7 @@ bool WriterPCM::prepareClipPlay() 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; 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; } -void WriterPCM::Init() +void WriterPCM::Init(int _fd, AVStream *_stream) { + fd = _fd; + stream = _stream; initialHeader = 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) { restart_audio_resampling = 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); - 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; break; } @@ -353,7 +353,6 @@ WriterPCM::WriterPCM() decoded_frame = av_frame_alloc(); Register(this, AV_CODEC_ID_INJECTPCM, AUDIO_ENCODING_LPCMA); - Init(); } static WriterPCM writer_pcm __attribute__ ((init_priority (300))); diff --git a/libeplayer3/writer/vc1.cpp b/libeplayer3/writer/vc1.cpp index 6efb2b6..b0fd743 100644 --- a/libeplayer3/writer/vc1.cpp +++ b/libeplayer3/writer/vc1.cpp @@ -50,20 +50,23 @@ class WriterVC1 : public Writer private: bool initialHeader; uint8_t FrameHeaderSeen; + AVStream *stream; public: - bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); - void Init(); + bool Write(AVPacket *packet, int64_t pts); + void Init(int _fd, AVStream *_stream); WriterVC1(); }; -void WriterVC1::Init() +void WriterVC1::Init(int _fd, AVStream *_stream) { + fd = _fd; + stream = _stream; 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; if (initialHeader) { @@ -181,7 +184,6 @@ bool WriterVC1::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts) WriterVC1::WriterVC1() { Register(this, AV_CODEC_ID_VC1, VIDEO_ENCODING_VC1); - Init(); } static WriterVC1 writer_vc1 __attribute__ ((init_priority (300))); diff --git a/libeplayer3/writer/wmv.cpp b/libeplayer3/writer/wmv.cpp index 52c4484..22dea64 100644 --- a/libeplayer3/writer/wmv.cpp +++ b/libeplayer3/writer/wmv.cpp @@ -57,20 +57,23 @@ class WriterWMV : public Writer { private: bool initialHeader; + AVStream *stream; public: - bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); - void Init(); + bool Write(AVPacket *packet, int64_t pts); + void Init(int _fd, AVStream *_stream); WriterWMV(); }; -void WriterWMV::Init() +void WriterWMV::Init(int _fd, AVStream *_stream) { + fd = _fd; + stream = _stream; 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; if (initialHeader) { @@ -164,7 +167,6 @@ WriterWMV::WriterWMV() Register(this, AV_CODEC_ID_WMV1, VIDEO_ENCODING_WMV); Register(this, AV_CODEC_ID_WMV2, VIDEO_ENCODING_WMV); Register(this, AV_CODEC_ID_WMV3, VIDEO_ENCODING_WMV); - Init(); } static WriterWMV writer_wmv __attribute__ ((init_priority (300))); diff --git a/libeplayer3/writer/writer.cpp b/libeplayer3/writer/writer.cpp index 7668fc8..00443ca 100644 --- a/libeplayer3/writer/writer.cpp +++ b/libeplayer3/writer/writer.cpp @@ -58,7 +58,7 @@ void Writer::Register(Writer *w, enum AVCodecID id, audio_encoding_t 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; }