修复关闭HLS后,编译失败的问题

This commit is contained in:
xiongziliang 2020-09-12 19:46:58 +08:00
parent be1e872f0c
commit 3b5053af50
6 changed files with 34 additions and 15 deletions

@ -1 +1 @@
Subproject commit 729de4b2eebad09457202656ee5b7ee68b1390c5 Subproject commit 82a48c57ae5269aaa70a8c3df8a67dc06b05d0cd

View File

@ -10,12 +10,14 @@
#ifndef ZLMEDIAKIT_MULTIMEDIASOURCEMUXER_H #ifndef ZLMEDIAKIT_MULTIMEDIASOURCEMUXER_H
#define ZLMEDIAKIT_MULTIMEDIASOURCEMUXER_H #define ZLMEDIAKIT_MULTIMEDIASOURCEMUXER_H
#include "Common/Stamp.h"
#include "Rtp/PSRtpSender.h"
#include "Record/Recorder.h"
#include "Record/HlsRecorder.h"
#include "Record/HlsMediaSource.h"
#include "Rtsp/RtspMediaSourceMuxer.h" #include "Rtsp/RtspMediaSourceMuxer.h"
#include "Rtmp/RtmpMediaSourceMuxer.h" #include "Rtmp/RtmpMediaSourceMuxer.h"
#include "Record/Recorder.h"
#include "Record/HlsMediaSource.h"
#include "Record/HlsRecorder.h"
#include "Rtp/PSRtpSender.h"
namespace mediakit{ namespace mediakit{

View File

@ -15,11 +15,7 @@
#include "TsMuxer.h" #include "TsMuxer.h"
namespace mediakit { namespace mediakit {
class HlsRecorder : public MediaSourceEventInterceptor, public std::enable_shared_from_this<HlsRecorder> class HlsRecorder : public MediaSourceEventInterceptor, public TsMuxer, public std::enable_shared_from_this<HlsRecorder> {
#if defined(ENABLE_HLS)
, public TsMuxer
#endif
{
public: public:
typedef std::shared_ptr<HlsRecorder> Ptr; typedef std::shared_ptr<HlsRecorder> Ptr;
HlsRecorder(const string &m3u8_file, const string &params){ HlsRecorder(const string &m3u8_file, const string &params){
@ -63,7 +59,6 @@ public:
return _clear_cache ? true : _enabled; return _clear_cache ? true : _enabled;
} }
#if defined(ENABLE_HLS)
void inputFrame(const Frame::Ptr &frame) override{ void inputFrame(const Frame::Ptr &frame) override{
if (_clear_cache) { if (_clear_cache) {
_clear_cache = false; _clear_cache = false;
@ -78,7 +73,6 @@ private:
void onTs(const void *packet, int bytes, uint32_t timestamp, bool is_idr_fast_packet) override { void onTs(const void *packet, int bytes, uint32_t timestamp, bool is_idr_fast_packet) override {
_hls->inputData((char *) packet, bytes, timestamp, is_idr_fast_packet); _hls->inputData((char *) packet, bytes, timestamp, is_idr_fast_packet);
} }
#endif
private: private:
//默认不生成hls文件有播放器时再生成 //默认不生成hls文件有播放器时再生成

View File

@ -8,8 +8,8 @@
* may be found in the AUTHORS file in the root of the source tree. * may be found in the AUTHORS file in the root of the source tree.
*/ */
#include "TsMuxer.h"
#if defined(ENABLE_HLS) #if defined(ENABLE_HLS)
#include "TsMuxer.h"
#include "mpeg-ts-proto.h" #include "mpeg-ts-proto.h"
#include "mpeg-ts.h" #include "mpeg-ts.h"
#include "Extension/H264.h" #include "Extension/H264.h"
@ -183,5 +183,4 @@ void TsMuxer::uninit() {
} }
}//namespace mediakit }//namespace mediakit
#endif// defined(ENABLE_HLS) #endif// defined(ENABLE_HLS)

View File

@ -11,6 +11,7 @@
#ifndef TSMUXER_H #ifndef TSMUXER_H
#define TSMUXER_H #define TSMUXER_H
#if defined(ENABLE_HLS)
#include <unordered_map> #include <unordered_map>
#include "Extension/Frame.h" #include "Extension/Frame.h"
#include "Extension/Track.h" #include "Extension/Track.h"
@ -72,4 +73,25 @@ private:
}; };
}//namespace mediakit }//namespace mediakit
#else
#include "Common/MediaSink.h"
namespace mediakit {
class TsMuxer : public MediaSinkInterface {
public:
TsMuxer() {}
~TsMuxer() override {}
void addTrack(const Track::Ptr &track) override {}
void resetTracks() override {}
void inputFrame(const Frame::Ptr &frame) override {}
protected:
virtual void onTs(const void *packet, int bytes,uint32_t timestamp,bool is_idr_fast_packet) = 0;
};
}//namespace mediakit
#endif// defined(ENABLE_HLS)
#endif //TSMUXER_H #endif //TSMUXER_H

View File

@ -8,6 +8,7 @@
* may be found in the AUTHORS file in the root of the source tree. * may be found in the AUTHORS file in the root of the source tree.
*/ */
#if defined(ENABLE_RTPPROXY)
#include "PSRtpSender.h" #include "PSRtpSender.h"
#include "Rtsp/RtspSession.h" #include "Rtsp/RtspSession.h"
#include "Thread/WorkThreadPool.h" #include "Thread/WorkThreadPool.h"
@ -162,4 +163,5 @@ void PSRtpSender::onErr(const SockException &ex, bool is_connect) {
}, _poller); }, _poller);
} }
}//namespace mediakit }//namespace mediakit
#endif// defined(ENABLE_RTPPROXY)