欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++聯(lián)合體轉(zhuǎn)換成C#結(jié)構(gòu)的實現(xiàn)方法

 更新時間:2014年08月12日 08:59:24   投稿:shichen2014  
這篇文章主要介紹了C++聯(lián)合體轉(zhuǎn)換成C#結(jié)構(gòu)的實現(xiàn)方法,需要的朋友可以參考下

本文實例主要參考MSDN:http://msdn.microsoft.com/zh-cn/library/ya9bz4ha%28v=vs.80%29.aspx

最近因為項目中遇到了C++聯(lián)合體轉(zhuǎn)換成C#結(jié)構(gòu)的情況,查了很多資料才轉(zhuǎn)換成功。

備注:對于官方這個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;     /** 視頻幀寬 */
}

感興趣的讀者可以對此調(diào)試運行一下,希望對大家有所幫助。

相關文章

  • C#正則表達式Regex類用法實例分析

    C#正則表達式Regex類用法實例分析

    這篇文章主要介紹了C#正則表達式Regex類用法,實例分析了其中比較常見的幾類用法,具有一定的實用價值,需要的朋友可以參考下
    2014-10-10
  • C#中的問號(?號)用法小結(jié)

    C#中的問號(?號)用法小結(jié)

    這篇文章主要介紹了C#中的問號(?號)用法小結(jié),本文介紹了3種用法,分別作為修飾符、運算符的用法,需要的朋友可以參考下
    2014-07-07
  • C#編程讀取文檔Doc、Docx及Pdf內(nèi)容的方法

    C#編程讀取文檔Doc、Docx及Pdf內(nèi)容的方法

    這篇文章主要介紹了C#編程讀取文檔Doc、Docx及Pdf內(nèi)容的方法,涉及C#操作COM組件讀取Doc、Docx及Pdf文檔的相關技巧,需要的朋友可以參考下
    2015-05-05
  • C#使用SendMessage實現(xiàn)進程間通信的方法

    C#使用SendMessage實現(xiàn)進程間通信的方法

    這篇文章主要介紹了C#使用SendMessage實現(xiàn)進程間通信的方法,涉及C#中SendMessage方法的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C# datagrid非常規(guī)方法實現(xiàn)添加合并列

    C# datagrid非常規(guī)方法實現(xiàn)添加合并列

    這篇文章主要介紹了C# datagrid非常規(guī)方法實現(xiàn)添加合并列,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • C#使用OpenCvSharp實現(xiàn)透視變換功能

    C#使用OpenCvSharp實現(xiàn)透視變換功能

    這篇文章主要為大家詳細介紹了C#如何使用OpenCvSharp實現(xiàn)透視變換的功能,文中的示例代碼簡潔易懂,具有一定的學習價值,需要的小伙伴可以參考下
    2023-11-11
  • Unity中3DText顯示模糊不清的解決方案

    Unity中3DText顯示模糊不清的解決方案

    這篇文章主要介紹了Unity中3DText顯示模糊不清的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C#中Task.Yield的用途深入講解

    C#中Task.Yield的用途深入講解

    這篇文章主要給大家介紹了關于C#中Task.Yield的用途的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • C#使用foreach循環(huán)遍歷數(shù)組完整實例

    C#使用foreach循環(huán)遍歷數(shù)組完整實例

    這篇文章主要介紹了C#使用foreach循環(huán)遍歷數(shù)組,結(jié)合完整實例形式較為詳細的分析了C#遍歷數(shù)組的相關技巧,需要的朋友可以參考下
    2016-06-06
  • C#服務器NFS共享文件夾搭建與上傳圖片文件的實現(xiàn)

    C#服務器NFS共享文件夾搭建與上傳圖片文件的實現(xiàn)

    本文主要介紹了C#服務器NFS共享文件夾搭建與上傳圖片文件的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07

最新評論