From b1b6fae22c5ab3013d73df1a43cd42f7fe0fa347 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 09 四月 2024 10:35:11 +0800
Subject: [PATCH] Merge branch 'master' into dev/zlm

---
 src/main/java/com/genersoft/iot/vmp/media/bean/MediaInfo.java |   45 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/media/bean/MediaInfo.java b/src/main/java/com/genersoft/iot/vmp/media/bean/MediaInfo.java
index e753fb6..8ee0eaf 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/bean/MediaInfo.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/bean/MediaInfo.java
@@ -2,8 +2,9 @@
 
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
-import com.genersoft.iot.vmp.media.zlm.dto.MediaServer;
+import com.genersoft.iot.vmp.media.abl.bean.hook.OnStreamArriveABLHookParam;
 import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
+import com.genersoft.iot.vmp.media.zlm.dto.hook.OriginType;
 import io.swagger.v3.oas.annotations.media.Schema;
 
 import java.util.List;
@@ -128,7 +129,7 @@
     }
 
     public static MediaInfo getInstance(OnStreamChangedHookParam param, MediaServer mediaServer) {
-        List<OnStreamChangedHookParam.MediaTrack> tracks = param.getTracks();
+
         MediaInfo mediaInfo = new MediaInfo();
         mediaInfo.setApp(param.getApp());
         mediaInfo.setStream(param.getStream());
@@ -139,6 +140,10 @@
         mediaInfo.setOriginType(param.getOriginType());
         mediaInfo.setAliveSecond(param.getAliveSecond());
         mediaInfo.setBytesSpeed(param.getBytesSpeed());
+        List<OnStreamChangedHookParam.MediaTrack> tracks = param.getTracks();
+        if (tracks == null || tracks.isEmpty()) {
+            return mediaInfo;
+        }
         for (OnStreamChangedHookParam.MediaTrack mediaTrack : tracks) {
             switch (mediaTrack.getCodec_id()) {
                 case 0:
@@ -173,6 +178,42 @@
         return mediaInfo;
     }
 
+    public static MediaInfo getInstance(OnStreamArriveABLHookParam param, MediaServer mediaServer) {
+
+        MediaInfo mediaInfo = new MediaInfo();
+        mediaInfo.setApp(param.getApp());
+        mediaInfo.setStream(param.getStream());
+        mediaInfo.setMediaServer(mediaServer);
+        mediaInfo.setReaderCount(param.getReaderCount());
+        mediaInfo.setOnline(true);
+        mediaInfo.setVideoCodec(param.getVideoCodec());
+        switch (param.getNetworkType()) {
+            case 21:
+                mediaInfo.setOriginType(OriginType.RTMP_PUSH.ordinal());
+                break;
+            case 23:
+                mediaInfo.setOriginType(OriginType.RTSP_PUSH.ordinal());
+                break;
+            case 30:
+            case 31:
+            case 32:
+            case 33:
+                mediaInfo.setOriginType(OriginType.PULL.ordinal());
+                break;
+            default:
+                mediaInfo.setOriginType(OriginType.UNKNOWN.ordinal());
+                break;
+
+        }
+        mediaInfo.setWidth(param.getWidth());
+        mediaInfo.setHeight(param.getHeight());
+        mediaInfo.setAudioCodec(param.getAudioCodec());
+        mediaInfo.setAudioChannels(param.getAudioChannels());
+        mediaInfo.setAudioSampleRate(param.getAudioSampleRate());
+
+        return mediaInfo;
+    }
+
     public Integer getReaderCount() {
         return readerCount;
     }

--
Gitblit v1.8.0