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 |  100 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 97 insertions(+), 3 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 2cc9943..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,7 +2,9 @@
 
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
+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;
@@ -12,6 +14,15 @@
  */
 @Schema(description = "瑙嗛淇℃伅")
 public class MediaInfo {
+    @Schema(description = "搴旂敤鍚�")
+    private String app;
+    @Schema(description = "娴両D")
+    private String stream;
+    @Schema(description = "娴佸獟浣撹妭鐐�")
+    private MediaServer mediaServer;
+    @Schema(description = "鍗忚")
+    private String schema;
+
     @Schema(description = "瑙傜湅浜烘暟")
     private Integer readerCount;
     @Schema(description = "瑙嗛缂栫爜绫诲瀷")
@@ -37,8 +48,15 @@
     @Schema(description = "鏁版嵁浜х敓閫熷害锛屽崟浣峛yte/s")
     private Long bytesSpeed;
 
-    public static MediaInfo getInstance(JSONObject jsonObject) {
+    public static MediaInfo getInstance(JSONObject jsonObject, MediaServer mediaServer) {
         MediaInfo mediaInfo = new MediaInfo();
+        mediaInfo.setMediaServer(mediaServer);
+        String app = jsonObject.getString("app");
+        mediaInfo.setApp(app);
+        String stream = jsonObject.getString("stream");
+        mediaInfo.setStream(stream);
+        String schema = jsonObject.getString("schema");
+        mediaInfo.setSchema(schema);
         Integer totalReaderCount = jsonObject.getInteger("totalReaderCount");
         Boolean online = jsonObject.getBoolean("online");
         Integer originType = jsonObject.getInteger("originType");
@@ -110,14 +128,22 @@
         return mediaInfo;
     }
 
-    public static MediaInfo getInstance(OnStreamChangedHookParam param) {
-        List<OnStreamChangedHookParam.MediaTrack> tracks = param.getTracks();
+    public static MediaInfo getInstance(OnStreamChangedHookParam param, MediaServer mediaServer) {
+
         MediaInfo mediaInfo = new MediaInfo();
+        mediaInfo.setApp(param.getApp());
+        mediaInfo.setStream(param.getStream());
+        mediaInfo.setSchema(param.getSchema());
+        mediaInfo.setMediaServer(mediaServer);
         mediaInfo.setReaderCount(param.getTotalReaderCount());
         mediaInfo.setOnline(param.isRegist());
         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:
@@ -149,6 +175,42 @@
                 mediaInfo.setWidth(mediaTrack.getWidth());
             }
         }
+        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;
     }
 
@@ -247,4 +309,36 @@
     public void setBytesSpeed(Long bytesSpeed) {
         this.bytesSpeed = bytesSpeed;
     }
+
+    public String getApp() {
+        return app;
+    }
+
+    public void setApp(String app) {
+        this.app = app;
+    }
+
+    public String getStream() {
+        return stream;
+    }
+
+    public void setStream(String stream) {
+        this.stream = stream;
+    }
+
+    public MediaServer getMediaServer() {
+        return mediaServer;
+    }
+
+    public void setMediaServer(MediaServer mediaServer) {
+        this.mediaServer = mediaServer;
+    }
+
+    public String getSchema() {
+        return schema;
+    }
+
+    public void setSchema(String schema) {
+        this.schema = schema;
+    }
 }

--
Gitblit v1.8.0