mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
This commit is contained in:
parent
4b6f1b0fd6
commit
d5bf0ba2da
7 changed files with 44 additions and 11 deletions
|
@ -234,6 +234,15 @@ srs_error_t SrsTsStreamEncoder::dump_cache(SrsLiveConsumer* /*consumer*/, SrsRtm
|
|||
return srs_success;
|
||||
}
|
||||
|
||||
void SrsTsStreamEncoder::set_has_audio(bool v)
|
||||
{
|
||||
enc->set_has_audio(v);
|
||||
}
|
||||
void SrsTsStreamEncoder::set_has_video(bool v)
|
||||
{
|
||||
enc->set_has_video(v);
|
||||
}
|
||||
|
||||
SrsFlvStreamEncoder::SrsFlvStreamEncoder()
|
||||
{
|
||||
header_written = false;
|
||||
|
@ -636,6 +645,8 @@ srs_error_t SrsLiveStream::do_serve_http(ISrsHttpResponseWriter* w, ISrsHttpMess
|
|||
w->header()->set_content_type("video/MP2T");
|
||||
enc_desc = "TS";
|
||||
enc = new SrsTsStreamEncoder();
|
||||
((SrsTsStreamEncoder*)enc)->set_has_audio(has_audio);
|
||||
((SrsTsStreamEncoder*)enc)->set_has_video(has_video);
|
||||
} else {
|
||||
return srs_error_new(ERROR_HTTP_LIVE_STREAM_EXT, "invalid pattern=%s", entry->pattern.c_str());
|
||||
}
|
||||
|
|
|
@ -110,6 +110,9 @@ public:
|
|||
public:
|
||||
virtual bool has_cache();
|
||||
virtual srs_error_t dump_cache(SrsLiveConsumer* consumer, SrsRtmpJitterAlgorithm jitter);
|
||||
public:
|
||||
void set_has_audio(bool v);
|
||||
void set_has_video(bool v);
|
||||
};
|
||||
|
||||
// Transmux RTMP with AAC stream to HTTP AAC Streaming.
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
#define VERSION_MAJOR 6
|
||||
#define VERSION_MINOR 0
|
||||
#define VERSION_REVISION 8
|
||||
#define VERSION_REVISION 9
|
||||
|
||||
#endif
|
||||
|
|
|
@ -3176,6 +3176,7 @@ SrsTsTransmuxer::SrsTsTransmuxer()
|
|||
tsmc = new SrsTsMessageCache();
|
||||
context = new SrsTsContext();
|
||||
tscw = NULL;
|
||||
has_audio_ = has_video_ = true;
|
||||
}
|
||||
|
||||
SrsTsTransmuxer::~SrsTsTransmuxer()
|
||||
|
@ -3186,6 +3187,16 @@ SrsTsTransmuxer::~SrsTsTransmuxer()
|
|||
srs_freep(context);
|
||||
}
|
||||
|
||||
void SrsTsTransmuxer::set_has_audio(bool v)
|
||||
{
|
||||
has_audio_ = v;
|
||||
}
|
||||
|
||||
void SrsTsTransmuxer::set_has_video(bool v)
|
||||
{
|
||||
has_video_ = v;
|
||||
}
|
||||
|
||||
srs_error_t SrsTsTransmuxer::initialize(ISrsStreamWriter* fw)
|
||||
{
|
||||
srs_error_t err = srs_success;
|
||||
|
@ -3197,11 +3208,13 @@ srs_error_t SrsTsTransmuxer::initialize(ISrsStreamWriter* fw)
|
|||
srs_assert(fw);
|
||||
|
||||
writer = fw;
|
||||
|
||||
|
||||
SrsAudioCodecId acodec = has_audio_ ? SrsAudioCodecIdAAC : SrsAudioCodecIdForbidden;
|
||||
SrsVideoCodecId vcodec = has_video_ ? SrsVideoCodecIdAVC : SrsVideoCodecIdForbidden;
|
||||
|
||||
srs_freep(tscw);
|
||||
// TODO: FIXME: Support config the codec.
|
||||
tscw = new SrsTsContextWriter(fw, context, SrsAudioCodecIdAAC, SrsVideoCodecIdAVC);
|
||||
|
||||
tscw = new SrsTsContextWriter(fw, context, acodec, vcodec);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
@ -1332,6 +1332,8 @@ class SrsTsTransmuxer
|
|||
{
|
||||
private:
|
||||
ISrsStreamWriter* writer;
|
||||
bool has_audio_;
|
||||
bool has_video_;
|
||||
private:
|
||||
SrsFormat* format;
|
||||
SrsTsMessageCache* tsmc;
|
||||
|
@ -1340,6 +1342,9 @@ private:
|
|||
public:
|
||||
SrsTsTransmuxer();
|
||||
virtual ~SrsTsTransmuxer();
|
||||
public:
|
||||
void set_has_audio(bool v);
|
||||
void set_has_video(bool v);
|
||||
public:
|
||||
// Initialize the underlayer file stream.
|
||||
// @param fw the writer to use for ts encoder, user must free it.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue