亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ra_depack.c

?? 用于進行real depack
?? C
字號:
/* ***** BEGIN LICENSE BLOCK ***** * Source last modified: $Id: ra_depack.c,v 1.1.1.1.2.1 2005/05/04 18:21:33 hubbe Exp $ *  * REALNETWORKS CONFIDENTIAL--NOT FOR DISTRIBUTION IN SOURCE CODE FORM * Portions Copyright (c) 1995-2005 RealNetworks, Inc. * All Rights Reserved. *  * The contents of this file, and the files included with this file, * are subject to the current version of the Real Format Source Code * Porting and Optimization License, available at * https://helixcommunity.org/2005/license/realformatsource (unless * RealNetworks otherwise expressly agrees in writing that you are * subject to a different license).  You may also obtain the license * terms directly from RealNetworks.  You may not use this file except * in compliance with the Real Format Source Code Porting and * Optimization License. There are no redistribution rights for the * source code of this file. Please see the Real Format Source Code * Porting and Optimization License for the rights, obligations and * limitations governing use of the contents of the file. *  * RealNetworks is the developer of the Original Code and owns the * copyrights in the portions it created. *  * This file, and the files included with this file, is distributed and * made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, * EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL * SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT * OR NON-INFRINGEMENT. *  * Technology Compatibility Kit Test Suite(s) Location: * https://rarvcode-tck.helixcommunity.org *  * Contributor(s): *  * ***** END LICENSE BLOCK ***** */#include <memory.h>#include "helix_types.h"#include "helix_result.h"#include "ra_depack.h"#include "ra_depack_internal.h"#include "rm_memory_default.h"#include "rm_error_default.h"#include "memory_utils.h"ra_depack* ra_depack_create(void*                   pAvail,                            ra_block_avail_func_ptr fpAvail,                            void*                   pUserError,                            rm_error_func_ptr       fpError){    return ra_depack_create2(pAvail,                             fpAvail,                             pUserError,                             fpError,                             HXNULL,                             rm_memory_default_malloc,                             rm_memory_default_free);}ra_depack* ra_depack_create2(void*                   pAvail,                             ra_block_avail_func_ptr fpAvail,                             void*                   pUserError,                             rm_error_func_ptr       fpError,                             void*                   pUserMem,                             rm_malloc_func_ptr      fpMalloc,                             rm_free_func_ptr        fpFree){    ra_depack* pRet = HXNULL;    if (fpAvail && fpMalloc && fpFree)    {        /* Allocate space for the ra_depack_internal struct         * by using the passed-in malloc function         */        ra_depack_internal* pInt =            (ra_depack_internal*) fpMalloc(pUserMem, sizeof(ra_depack_internal));        if (pInt)        {            /* Zero out the struct */            memset((void*) pInt, 0, sizeof(ra_depack_internal));            /* Assign the frame callback members */            pInt->pAvail  = pAvail;            pInt->fpAvail = fpAvail;            /*             * Assign the error members. If the caller did not             * provide an error callback, then use the default             * rm_error_default().             */            if (fpError)            {                pInt->fpError    = fpError;                pInt->pUserError = pUserError;            }            else            {                pInt->fpError    = rm_error_default;                pInt->pUserError = HXNULL;            }            /* Assign the memory functions */            pInt->fpMalloc = fpMalloc;            pInt->fpFree   = fpFree;            pInt->pUserMem = pUserMem;            /* Assign the return value */            pRet = (ra_depack*) pInt;        }    }    return pRet;}HX_RESULT ra_depack_init(ra_depack* pDepack, rm_stream_header* header){    HX_RESULT retVal = HXR_FAIL;    if (pDepack && header)    {        /* Get the internal struct */        ra_depack_internal* pInt = (ra_depack_internal*) pDepack;        /* Call the internal init */        retVal = ra_depacki_init(pInt, header);    }    return retVal;}UINT32 ra_depack_get_num_substreams(ra_depack* pDepack){    UINT32 ulRet = 0;    if (pDepack)    {        /* Get the internal struct */        ra_depack_internal* pInt = (ra_depack_internal*) pDepack;        /* Return the number of substreams */        ulRet = pInt->multiStreamHdr.ulNumSubStreams;    }    return ulRet;}UINT32 ra_depack_get_codec_4cc(ra_depack* pDepack, UINT32 ulSubStream){    UINT32 ulRet = 0;    if (pDepack)    {        /* Get the internal struct */        ra_depack_internal* pInt = (ra_depack_internal*) pDepack;        /* Make sure the substream index is legal */        if (pInt->pSubStreamHdr &&            ulSubStream < pInt->multiStreamHdr.ulNumSubStreams)        {            ulRet = pInt->pSubStreamHdr[ulSubStream].ulCodecID;        }    }    return ulRet;}HX_RESULT ra_depack_get_codec_init_info(ra_depack*       pDepack,                                        UINT32           ulSubStream,                                        ra_format_info** ppInfo){    HX_RESULT retVal = HXR_FAIL;    if (pDepack && ppInfo)    {        /* Init local variables */        UINT32          ulSize = sizeof(ra_format_info);        ra_format_info* pInfo  = HXNULL;        /* Get the internal struct */        ra_depack_internal* pInt = (ra_depack_internal*) pDepack;        /* Allocate space for the struct */        pInfo = ra_depacki_malloc(pInt, ulSize);        if (pInfo)        {            /* NULL out the memory */            memset(pInfo, 0, ulSize);            /* Fill in the init info struct */            retVal = ra_depacki_get_format_info(pInt, ulSubStream, pInfo);            if (retVal == HXR_OK)            {                /* Assign the out parameter */                *ppInfo = pInfo;            }            else            {                /* We failed so free the memory we allocated */                ra_depacki_free(pInt, pInfo);            }        }    }    return retVal;}void ra_depack_destroy_codec_init_info(ra_depack* pDepack, ra_format_info** ppInfo){    if (pDepack && ppInfo && *ppInfo)    {        /* Get the internal struct */        ra_depack_internal* pInt = (ra_depack_internal*) pDepack;        /* Clean up the format info struct */        ra_depacki_cleanup_format_info(pInt, *ppInfo);        /* Delete the memory associated with it */        ra_depacki_free(pInt, *ppInfo);        /* NULL the pointer out */        *ppInfo = HXNULL;    }}HX_RESULT ra_depack_add_packet(ra_depack* pDepack, rm_packet* packet){    HX_RESULT retVal = HXR_FAIL;    if (pDepack && packet)    {        /* Get the internal struct */        ra_depack_internal* pInt = (ra_depack_internal*) pDepack;        /* Call the internal function */        retVal = ra_depacki_add_packet(pInt, packet);    }    return retVal;}void ra_depack_destroy_block(ra_depack* pDepack, ra_block** ppBlock){    if (pDepack && ppBlock && *ppBlock)    {        /* Get the internal struct */        ra_depack_internal* pInt = (ra_depack_internal*) pDepack;        /* Free the data */        if ((*ppBlock)->pData)        {            ra_depacki_free(pInt, (*ppBlock)->pData);            (*ppBlock)->pData = HXNULL;        }        /* Free the memory itself */        ra_depacki_free(pInt, *ppBlock);        /* Null out the pointer */        *ppBlock = HXNULL;    }}HX_RESULT ra_depack_seek(ra_depack* pDepack, UINT32 ulTime){    HX_RESULT retVal = HXR_FAIL;    if (pDepack)    {        /* Get the internal struct */        ra_depack_internal* pInt = (ra_depack_internal*) pDepack;        /* Call the internal seek function */        retVal = ra_depacki_seek(pInt, ulTime);    }    return retVal;}void ra_depack_destroy(ra_depack** ppDepack){    if (ppDepack)    {        ra_depack_internal* pInt = (ra_depack_internal*) *ppDepack;        if (pInt && pInt->fpFree)        {            /* Save a pointer to fpFree and pUserMem */            rm_free_func_ptr fpFree   = pInt->fpFree;            void*            pUserMem = pInt->pUserMem;            /* Clean up the substream header array */            ra_depacki_cleanup_substream_hdr_array(pInt);            /* Null everything out */            memset(pInt, 0, sizeof(ra_depack_internal));            /* Free the rm_parser_internal struct memory */            fpFree(pUserMem, pInt);            /* NULL out the pointer */            *ppDepack = HXNULL;        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看91视频大全| 国产精品久久毛片| 日本aⅴ亚洲精品中文乱码| 欧美三级视频在线| 图片区小说区国产精品视频| 在线成人av影院| 美腿丝袜亚洲一区| 亚洲精品一区二区三区蜜桃下载| 精品在线观看免费| 国产校园另类小说区| 91麻豆精品一区二区三区| 亚洲国产综合视频在线观看| 91精品欧美综合在线观看最新| 麻豆极品一区二区三区| 国产日韩精品一区二区三区| jvid福利写真一区二区三区| 亚洲妇女屁股眼交7| 精品国产欧美一区二区| 成人app网站| 视频一区欧美精品| 久久久综合激的五月天| 色综合久久久网| 麻豆精品精品国产自在97香蕉| 国产女人18水真多18精品一级做| 91亚洲精华国产精华精华液| 午夜激情综合网| 欧美—级在线免费片| 欧洲亚洲国产日韩| 黄色小说综合网站| 国产精品精品国产色婷婷| 欧美色综合网站| 国产盗摄女厕一区二区三区| 亚洲电影一级黄| 国产日韩精品一区二区三区 | 亚洲欧美一区二区三区国产精品| 欧美精品日日鲁夜夜添| 成人一级片网址| 免费在线视频一区| 一区二区理论电影在线观看| 精品国产乱码久久| 欧美日韩中文另类| 成人免费看的视频| 久久国产精品露脸对白| 欧美激情一区二区三区不卡| 91精品国产品国语在线不卡| av福利精品导航| 久久不见久久见免费视频1| 一二三四区精品视频| 国产欧美一区二区三区在线看蜜臀| 欧美综合亚洲图片综合区| 国产精品亚洲第一区在线暖暖韩国| 亚洲成a人v欧美综合天堂下载| 国产精品麻豆一区二区| 精品不卡在线视频| 欧美日韩精品一区二区三区 | 日韩国产高清在线| 中文字幕一区二区在线观看| 久久久久久亚洲综合影院红桃 | 亚洲乱码精品一二三四区日韩在线| 2023国产精品| 精品国产乱码久久久久久浪潮| 欧美日韩久久久一区| 色婷婷久久久久swag精品| 成人激情校园春色| 粉嫩绯色av一区二区在线观看| 久久99国内精品| 日本欧美一区二区三区| 日韩精品一区第一页| 天堂一区二区在线免费观看| 亚洲国产精品一区二区尤物区| 国产精品日日摸夜夜摸av| 亚洲国产精品黑人久久久| 26uuu亚洲| 欧美精品一区二区三区在线| 欧美一区二区精美| 欧美一级黄色片| 91麻豆精品国产91久久久更新时间| 欧美精品自拍偷拍动漫精品| 欧美日韩情趣电影| 6080国产精品一区二区| 91精品国产aⅴ一区二区| 欧美日韩电影在线| 制服丝袜av成人在线看| 3751色影院一区二区三区| 欧美精品一卡二卡| 欧美一区二区三区日韩视频| 亚洲精品在线三区| 国产精品色哟哟网站| 最近日韩中文字幕| 亚洲一区二区三区自拍| 舔着乳尖日韩一区| 蜜臀a∨国产成人精品| 国产九色sp调教91| 不卡视频一二三四| 欧美日韩午夜在线视频| 日韩精品中午字幕| 久久久电影一区二区三区| 亚洲欧美综合在线精品| 一个色综合av| 亚洲国产人成综合网站| 蓝色福利精品导航| 最好看的中文字幕久久| 精品亚洲aⅴ乱码一区二区三区| 激情综合网最新| 成人h动漫精品一区二| 91美女蜜桃在线| 91啪在线观看| 欧美日韩性生活| 日韩精品一区二区三区视频播放| 欧美一二区视频| 久久久久久亚洲综合影院红桃| 91精品国产麻豆| 自拍偷拍国产亚洲| 经典一区二区三区| 91精品国产综合久久久久久久久久| 欧美大片日本大片免费观看| 一区二区三区丝袜| 蜜臀久久久99精品久久久久久| 在线免费观看不卡av| 色婷婷精品大视频在线蜜桃视频| 欧美电影影音先锋| 中文av字幕一区| 日本成人在线不卡视频| 久久91精品久久久久久秒播| 成人精品视频一区二区三区 | 亚洲欧美日韩在线| 美女mm1313爽爽久久久蜜臀| 男男成人高潮片免费网站| 播五月开心婷婷综合| 国产成人日日夜夜| 丁香六月综合激情| 欧美三级中文字| 精品国产a毛片| 亚洲日本一区二区三区| 一区二区三区欧美日| 麻豆精品新av中文字幕| 成人av在线观| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久九九影视网| 天天爽夜夜爽夜夜爽精品视频| 99视频国产精品| 欧美色图第一页| 国产一区高清在线| 亚洲福中文字幕伊人影院| 精品国产sm最大网站免费看| 亚洲一区二区三区视频在线| 一本在线高清不卡dvd| 久久久影视传媒| 视频一区中文字幕| 色婷婷综合久色| 国产精品无码永久免费888| 蜜臀a∨国产成人精品| 欧美日韩精品二区第二页| 自拍偷拍亚洲欧美日韩| 成人av资源在线观看| 中文字幕乱码亚洲精品一区| 国产一区二区三区四区五区入口| 日韩一区二区三区视频在线| 舔着乳尖日韩一区| 3d成人h动漫网站入口| 亚洲网友自拍偷拍| 欧美性受xxxx黑人xyx性爽| 中文字幕日本乱码精品影院| 成年人午夜久久久| 日韩一区有码在线| 一本久久精品一区二区| 亚洲视频一区二区在线| 色综合天天综合狠狠| 日韩毛片高清在线播放| www.66久久| 一区二区三区波多野结衣在线观看| 91偷拍与自偷拍精品| 亚洲欧美经典视频| 欧美在线观看你懂的| 日韩在线a电影| 亚洲精品在线观看网站| 国产一区不卡在线| 一区在线观看视频| 91成人在线免费观看| 亚洲精品视频在线观看网站| 色综合久久久久网| 日韩制服丝袜av| 欧美变态凌虐bdsm| 国产一区二区三区四| 国产精品视频第一区| 色狠狠av一区二区三区| 亚洲成av人在线观看| 欧美刺激午夜性久久久久久久| 国产在线不卡一卡二卡三卡四卡| 中文字幕精品一区二区精品绿巨人| 99精品久久只有精品| 亚洲欧美日韩国产手机在线| 欧美精品日韩精品| 国产精品中文欧美| 亚洲综合色视频| 精品剧情v国产在线观看在线| 成人一区在线看| 性感美女极品91精品| 久久女同互慰一区二区三区| 色悠悠久久综合|