mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-03-31 02:30:52 +08:00
@@ -187,7 +187,6 @@ API_EXPORT int API_CALL mk_media_init_video(mk_media ctx, int codec_id, int widt
|
||||
info.iWidth = width;
|
||||
info.iHeight = height;
|
||||
info.iBitRate = bit_rate;
|
||||
(*obj)->getChannel()->initVideo(info);
|
||||
return (*obj)->getChannel()->initVideo(info);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,12 +10,13 @@
|
||||
|
||||
#include "mk_track.h"
|
||||
#include "Extension/Track.h"
|
||||
#include "Extension/Factory.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace toolkit;
|
||||
using namespace mediakit;
|
||||
|
||||
class VideoTrackForC : public VideoTrack {
|
||||
class VideoTrackForC : public VideoTrack, public std::enable_shared_from_this<VideoTrackForC> {
|
||||
public:
|
||||
VideoTrackForC(int codec_id, codec_args *args) {
|
||||
_codec_id = (CodecId) codec_id;
|
||||
@@ -49,7 +50,8 @@ public:
|
||||
}
|
||||
|
||||
Track::Ptr clone() override {
|
||||
return std::make_shared<std::remove_reference<decltype(*this)>::type>(*this);
|
||||
auto track_in = std::shared_ptr<Track>(shared_from_this());
|
||||
return Factory::getTrackByAbstractTrack(track_in);
|
||||
}
|
||||
|
||||
Sdp::Ptr getSdp() override {
|
||||
@@ -61,15 +63,16 @@ private:
|
||||
codec_args _args;
|
||||
};
|
||||
|
||||
class AudioTrackForC : public AudioTrackImp {
|
||||
class AudioTrackForC : public AudioTrackImp, public std::enable_shared_from_this<AudioTrackForC> {
|
||||
public:
|
||||
~AudioTrackForC() override = default;
|
||||
|
||||
AudioTrackForC(int codec_id, codec_args *args) :
|
||||
AudioTrackImp((CodecId) codec_id, args->audio.sample_rate, args->audio.channels, 16) {}
|
||||
AudioTrackImp((CodecId) codec_id, args->audio.sample_rate, args->audio.channels, 16) {}
|
||||
|
||||
Track::Ptr clone() override {
|
||||
return std::make_shared<std::remove_reference<decltype(*this)>::type>(*this);
|
||||
auto track_in = std::shared_ptr<Track>(shared_from_this());
|
||||
return Factory::getTrackByAbstractTrack(track_in);
|
||||
}
|
||||
|
||||
Sdp::Ptr getSdp() override {
|
||||
|
||||
@@ -64,8 +64,12 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
mk_media media = mk_media_create("__defaultVhost__", "live", "test", 0, 0, 0);
|
||||
//h264的codec
|
||||
mk_media_init_video(media, 0, 0, 0, 0, 2 * 104 * 1024);
|
||||
//mk_media_init_video(media, 0, 0, 0, 0, 2 * 104 * 1024);
|
||||
codec_args v_args={0};
|
||||
mk_track v_track = mk_track_create(MKCodecH264,&v_args);
|
||||
mk_media_init_track(media,v_track);
|
||||
mk_media_init_complete(media);
|
||||
mk_track_unref(v_track);
|
||||
|
||||
//创建h264分帧器
|
||||
mk_h264_splitter splitter = mk_h264_splitter_create(on_h264_frame, media);
|
||||
|
||||
Reference in New Issue
Block a user