From e2e5582c64f35687a569d4622077067a76fbd6de Mon Sep 17 00:00:00 2001 From: martii Date: Thu, 1 May 2014 10:15:14 +0200 Subject: [PATCH] libeplayer3: cleanup AVFormatContext propagation to writers --- libeplayer3/include/manager.h | 3 +-- libeplayer3/include/output.h | 2 +- libeplayer3/include/writer.h | 2 +- libeplayer3/input.cpp | 14 +++++--------- libeplayer3/output.cpp | 6 +++--- libeplayer3/writer/ac3.cpp | 4 ++-- libeplayer3/writer/divx.cpp | 4 ++-- libeplayer3/writer/dts.cpp | 4 ++-- libeplayer3/writer/h263.cpp | 4 ++-- libeplayer3/writer/h264.cpp | 4 ++-- libeplayer3/writer/mp3.cpp | 4 ++-- libeplayer3/writer/mpeg2.cpp | 4 ++-- libeplayer3/writer/pcm.cpp | 4 ++-- libeplayer3/writer/vc1.cpp | 4 ++-- libeplayer3/writer/wmv.cpp | 4 ++-- libeplayer3/writer/writer.cpp | 2 +- 16 files changed, 32 insertions(+), 37 deletions(-) diff --git a/libeplayer3/include/manager.h b/libeplayer3/include/manager.h index 768c5ae..8c30568 100644 --- a/libeplayer3/include/manager.h +++ b/libeplayer3/include/manager.h @@ -44,13 +44,12 @@ struct Track { std::string title; int pid; - AVFormatContext *avfc; AVStream *stream; bool inactive; bool is_static; int ac3flags; int type, mag, page; // for teletext - Track() : pid(-1), avfc(NULL), stream(NULL), inactive(0), is_static(0), ac3flags(0) {} + Track() : pid(-1), stream(NULL), inactive(0), is_static(0), ac3flags(0) {} }; class Manager diff --git a/libeplayer3/include/output.h b/libeplayer3/include/output.h index fd84d04..7090703 100644 --- a/libeplayer3/include/output.h +++ b/libeplayer3/include/output.h @@ -74,7 +74,7 @@ class Output bool GetFrameCount(int64_t &framecount); bool SwitchAudio(AVStream *stream); bool SwitchVideo(AVStream *stream); - bool Write(AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t Pts); + bool Write(AVStream *stream, AVPacket *packet, int64_t Pts); }; #endif diff --git a/libeplayer3/include/writer.h b/libeplayer3/include/writer.h index 7de9f3e..b2d8e72 100644 --- a/libeplayer3/include/writer.h +++ b/libeplayer3/include/writer.h @@ -47,6 +47,6 @@ class Writer static Writer *GetWriter(enum AVCodecID id, enum AVMediaType codec_type); virtual void Init(void) { } - virtual bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts); + virtual bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); }; #endif diff --git a/libeplayer3/input.cpp b/libeplayer3/input.cpp index 4e4c321..cd5b18d 100644 --- a/libeplayer3/input.cpp +++ b/libeplayer3/input.cpp @@ -149,7 +149,7 @@ bool Input::Play() seek_target = INT64_MIN; restart_audio_resampling = true; - // flush streams + // clear streams unsigned int i; for (i = 0; i < avfc->nb_streams; i++) if (avfc->streams[i]->codec && avfc->streams[i]->codec->codec) @@ -179,7 +179,7 @@ bool Input::Play() if (_videoTrack && (_videoTrack->stream == stream)) { int64_t pts = calcPts(stream, packet.pts); - if (!player->output.Write(avfc, stream, &packet, pts)) { + if (!player->output.Write(stream, &packet, pts)) { if (warnVideoWrite) warnVideoWrite--; else { @@ -190,11 +190,11 @@ bool Input::Play() } else if (_audioTrack && (_audioTrack->stream == stream)) { if (restart_audio_resampling) { restart_audio_resampling = false; - player->output.Write(avfc, stream, NULL, 0); + player->output.Write(stream, NULL, 0); } if (!player->isBackWard) { int64_t pts = calcPts(stream, packet.pts); - if (!player->output.Write(avfc, stream, &packet, _videoTrack ? pts : 0)) { + if (!player->output.Write(stream, &packet, _videoTrack ? pts : 0)) { if (warnAudioWrite) warnAudioWrite--; else { @@ -246,7 +246,7 @@ bool Input::Play() AVPacket packet; packet.data = NULL; packet.size = 0; - player->output.Write(avfc, _audioTrack->stream, &packet, 0); + player->output.Write(_audioTrack->stream, &packet, 0); } player->output.Flush(); } @@ -314,9 +314,6 @@ bool Input::ReadSubtitle(const char *filename, const char *format, int pid) AVPacket packet; av_init_packet(&packet); - if (c->subtitle_header) - fprintf(stderr, "%s\n", c->subtitle_header); - while (av_read_frame(subavfc, &packet) > -1) { AVSubtitle sub; memset(&sub, 0, sizeof(sub)); @@ -441,7 +438,6 @@ bool Input::UpdateTracks() stream->id = n + 1; Track track; - track.avfc = avfc; track.stream = stream; AVDictionaryEntry *lang = av_dict_get(stream->metadata, "language", NULL, 0); track.title = lang ? lang->value : ""; diff --git a/libeplayer3/output.cpp b/libeplayer3/output.cpp index 9792a46..1b58aff 100644 --- a/libeplayer3/output.cpp +++ b/libeplayer3/output.cpp @@ -331,16 +331,16 @@ bool Output::SwitchVideo(AVStream *stream) return true; } -bool Output::Write(AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts) +bool Output::Write(AVStream *stream, AVPacket *packet, int64_t pts) { switch (stream->codec->codec_type) { case AVMEDIA_TYPE_VIDEO: { OpenThreads::ScopedLock v_lock(videoMutex); - return videofd > -1 && videoWriter && videoWriter->Write(videofd, avfc, stream, packet, pts); + return videofd > -1 && videoWriter && videoWriter->Write(videofd, stream, packet, pts); } case AVMEDIA_TYPE_AUDIO: { OpenThreads::ScopedLock a_lock(audioMutex); - return audiofd > -1 && audioWriter && audioWriter->Write(audiofd, avfc, stream, packet, pts); + return audiofd > -1 && audioWriter && audioWriter->Write(audiofd, stream, packet, pts); } default: return false; diff --git a/libeplayer3/writer/ac3.cpp b/libeplayer3/writer/ac3.cpp index dac0664..90f8494 100644 --- a/libeplayer3/writer/ac3.cpp +++ b/libeplayer3/writer/ac3.cpp @@ -35,11 +35,11 @@ class WriterAC3 : public Writer { public: - bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); WriterAC3(); }; -bool WriterAC3::Write(int fd, AVFormatContext * /* avfc */, AVStream * /* stream */, AVPacket *packet, int64_t pts) +bool WriterAC3::Write(int fd, AVStream * /* stream */, AVPacket *packet, int64_t pts) { if (fd < 0 || !packet || !packet->data) return false; diff --git a/libeplayer3/writer/divx.cpp b/libeplayer3/writer/divx.cpp index 12af898..1eeaabc 100644 --- a/libeplayer3/writer/divx.cpp +++ b/libeplayer3/writer/divx.cpp @@ -38,7 +38,7 @@ class WriterDIVX : public Writer private: bool initialHeader; public: - bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); void Init(); WriterDIVX(); }; @@ -48,7 +48,7 @@ void WriterDIVX::Init() initialHeader = true; } -bool WriterDIVX::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, AVPacket *packet, int64_t pts) +bool WriterDIVX::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts) { if (fd < 0 || !packet || !packet->data) return false; diff --git a/libeplayer3/writer/dts.cpp b/libeplayer3/writer/dts.cpp index 356bb95..732429c 100644 --- a/libeplayer3/writer/dts.cpp +++ b/libeplayer3/writer/dts.cpp @@ -36,11 +36,11 @@ class WriterDTS : public Writer { public: - bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); WriterDTS(); }; -bool WriterDTS::Write(int fd, AVFormatContext * /* avfc */, AVStream * /* stream */, AVPacket *packet, int64_t pts) +bool WriterDTS::Write(int fd, AVStream * /* stream */, AVPacket *packet, int64_t pts) { if (fd < 0 || !packet || !packet->data) return false; diff --git a/libeplayer3/writer/h263.cpp b/libeplayer3/writer/h263.cpp index 1924506..eb060cf 100644 --- a/libeplayer3/writer/h263.cpp +++ b/libeplayer3/writer/h263.cpp @@ -32,11 +32,11 @@ class WriterH263 : public Writer { public: - bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); WriterH263(); }; -bool WriterH263::Write(int fd, AVFormatContext * /* avfc */, AVStream * /* stream */, AVPacket *packet, int64_t pts) +bool WriterH263::Write(int fd, AVStream * /* stream */, AVPacket *packet, int64_t pts) { if (fd < 0 || !packet || !packet->data) return false; diff --git a/libeplayer3/writer/h264.cpp b/libeplayer3/writer/h264.cpp index ecaefc3..837c5e6 100644 --- a/libeplayer3/writer/h264.cpp +++ b/libeplayer3/writer/h264.cpp @@ -53,7 +53,7 @@ class WriterH264 : public Writer bool initialHeader; unsigned int NalLengthBytes; public: - bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); void Init(); WriterH264(); }; @@ -64,7 +64,7 @@ void WriterH264::Init(void) NalLengthBytes = 1; } -bool WriterH264::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, AVPacket *packet, int64_t pts) +bool WriterH264::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts) { if (fd < 0 || !packet || !packet->data) return false; diff --git a/libeplayer3/writer/mp3.cpp b/libeplayer3/writer/mp3.cpp index cb9f99b..df69edc 100644 --- a/libeplayer3/writer/mp3.cpp +++ b/libeplayer3/writer/mp3.cpp @@ -35,11 +35,11 @@ class WriterMP3 : public Writer { public: - bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); WriterMP3(); }; -bool WriterMP3::Write(int fd, AVFormatContext * /* avfc */, AVStream * /* stream */, AVPacket *packet, int64_t pts) +bool WriterMP3::Write(int fd, AVStream * /* stream */, AVPacket *packet, int64_t pts) { if (fd < 0 || !packet || !packet->data) return false; diff --git a/libeplayer3/writer/mpeg2.cpp b/libeplayer3/writer/mpeg2.cpp index 4577807..22cdf3f 100644 --- a/libeplayer3/writer/mpeg2.cpp +++ b/libeplayer3/writer/mpeg2.cpp @@ -35,11 +35,11 @@ class WriterMPEG2 : public Writer { public: - bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); WriterMPEG2(); }; -bool WriterMPEG2::Write(int fd, AVFormatContext * /* avfc */, AVStream * /* stream */, AVPacket *packet, int64_t pts) +bool WriterMPEG2::Write(int fd, AVStream * /* stream */, AVPacket *packet, int64_t pts) { if (fd < 0 || !packet || !packet->data) return false; diff --git a/libeplayer3/writer/pcm.cpp b/libeplayer3/writer/pcm.cpp index bbc56d3..82d476e 100644 --- a/libeplayer3/writer/pcm.cpp +++ b/libeplayer3/writer/pcm.cpp @@ -80,7 +80,7 @@ class WriterPCM : public Writer bool restart_audio_resampling; public: - bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); bool prepareClipPlay(); bool writePCM(int fd, int64_t Pts, uint8_t *data, unsigned int size); void Init(); @@ -225,7 +225,7 @@ void WriterPCM::Init() restart_audio_resampling = true; } -bool WriterPCM::Write(int fd, AVFormatContext * /*avfc*/, AVStream *stream, AVPacket *packet, int64_t pts) +bool WriterPCM::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts) { if (fd < 0) return false; diff --git a/libeplayer3/writer/vc1.cpp b/libeplayer3/writer/vc1.cpp index d3ce02a..6efb2b6 100644 --- a/libeplayer3/writer/vc1.cpp +++ b/libeplayer3/writer/vc1.cpp @@ -51,7 +51,7 @@ class WriterVC1 : public Writer bool initialHeader; uint8_t FrameHeaderSeen; public: - bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); void Init(); WriterVC1(); }; @@ -61,7 +61,7 @@ void WriterVC1::Init() initialHeader = true; } -bool WriterVC1::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, AVPacket *packet, int64_t pts) +bool WriterVC1::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts) { if (fd < 0 || !packet || !packet->data) return false; diff --git a/libeplayer3/writer/wmv.cpp b/libeplayer3/writer/wmv.cpp index 10220d1..52c4484 100644 --- a/libeplayer3/writer/wmv.cpp +++ b/libeplayer3/writer/wmv.cpp @@ -58,7 +58,7 @@ class WriterWMV : public Writer private: bool initialHeader; public: - bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts); + bool Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts); void Init(); WriterWMV(); }; @@ -68,7 +68,7 @@ void WriterWMV::Init() initialHeader = true; } -bool WriterWMV::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, AVPacket *packet, int64_t pts) +bool WriterWMV::Write(int fd, AVStream *stream, AVPacket *packet, int64_t pts) { if (fd < 0 || !packet || !packet->data) return false; diff --git a/libeplayer3/writer/writer.cpp b/libeplayer3/writer/writer.cpp index 82f199c..7668fc8 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 */, AVFormatContext * /* avfc */, AVStream * /*stream*/, AVPacket * /* packet */, int64_t /* pts */) +bool Writer::Write(int /* fd */, AVStream * /*stream*/, AVPacket * /* packet */, int64_t /* pts */) { return false; }