C++聯(lián)合體如何轉(zhuǎn)換成C#結(jié)構(gòu)

今天小編給大家分享一下C++聯(lián)合體如何轉(zhuǎn)換成C#結(jié)構(gòu)的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

成都創(chuàng)新互聯(lián)主營陸川網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,App定制開發(fā),陸川h5小程序制作搭建,陸川網(wǎng)站營銷推廣歡迎陸川等地區(qū)企業(yè)咨詢

備注:對于官方這個UNION示例,我的簡單理解,就是這類UNION做法,可適當代替IF ELSE 之類操作。

解決問題:如果只接收視頻解碼數(shù)據(jù),而從不接收音頻數(shù)據(jù),那么是否可以直接定義結(jié)構(gòu)體,并以此來獲取視頻數(shù)據(jù)。

/// <summary>
/// * @struct tagTFrameInfo_YUV420
/// * @brief 解碼后幀信息結(jié)構(gòu)(包括音頻和視頻)
/// * @attention 如果只接收視頻解碼數(shù)據(jù),而從不接收音頻數(shù)據(jù),那么是否可以直接定義結(jié)構(gòu)體,并以此來獲取視頻數(shù)據(jù)
/// * @原型定義:
/// 解碼后幀信息結(jié)構(gòu)(包括音頻和視頻)
/// typedef struct tagTFrameInfo
/// {
///   BYTE   m_byMediaType; // 媒體類型(PCM或YUV420)
///   DWORD  m_dwTimeStamp; // 時間戳  
///   union
///   {
///     BYTE   m_byBitCount; // 為YUV時的顏色bit位數(shù) 
///     BYTE   m_bStereo; // 為PCM時的聲道值
///   };
///   union
///   {
///     WORD   m_wVideoWidth; // 視頻幀寬
///     WORD m_wBitRate; // 采樣bit率(如8000)
///   };
///   union
///   {
///     WORD   m_wVideoHeight;// 視頻幀寬
///     WORD  m_wBand; // 采樣的位數(shù)(如16)
///   };
/// }TFrameInfo,*PFrameInfo; 
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct tagTFrameInfo_YUV420
{
  /// <summary>
  /// 媒體類型(0:yuv420; 1:pcm; 2:rgb32: 3:uyvy; 4:YV12),pcm是音頻
  /// @原型:BYTE   m_byMediaType; // 媒體類型(1:PCM或0:YUV420)
  /// </summary>
  public byte m_byMediaType;     /** 媒體類型(0:yuv420; 1:pcm; 2:rgb32: 3:uyvy; 4:YV12),pcm是音頻 */

  /// <summary>
  /// 時間戳
  /// @原型:DWORD  m_dwTimeStamp; // 時間戳
  /// </summary>
  public UInt32 m_dwTimeStamp;     /** 時間戳 */

  // YUV
  /// <summary>
  /// 為YUV時的顏色bit位數(shù)
  /// @原型:BYTE   m_byBitCount; //為YUV時的顏色bit位數(shù)
  /// </summary>
  public byte m_byBitCount;     /** 為YUV時的顏色bit位數(shù) */

  /// <summary>
  /// 視頻幀寬
  /// @原型:WORD   m_wVideoWidth; //視頻幀寬
  /// </summary>
  public UInt16 m_wVideoWidth;     /** 視頻幀寬 */

  /// <summary>
  /// 視頻幀寬
  /// @原型:WORD   m_wVideoHeight; //視頻幀寬
  /// </summary>
  public UInt16 m_wVideoHeight;     /** 視頻幀寬 */
}

以上就是“C++聯(lián)合體如何轉(zhuǎn)換成C#結(jié)構(gòu)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文標題:C++聯(lián)合體如何轉(zhuǎn)換成C#結(jié)構(gòu)
文章來源:http://bm7419.com/article46/gejjhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、軟件開發(fā)、網(wǎng)站建設(shè)、網(wǎng)站導航網(wǎng)站內(nèi)鏈、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營