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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? mpeg2ts_demux_stub.c

?? Sun公司Dream項(xiàng)目
?? C
字號(hào):
/*
 * The contents of this file are subject to the terms
 * of the Common Development and Distribution License
 * (the "License").  You may not use this file except
 * in compliance with the License.
 *
 * You can obtain a copy of the license at
 * http://www.opensource.org/licenses/cddl1.php
 * See the License for the specific language governing
 * permissions and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL
 * HEADER in each file and include the License file at
 * http://www.opensource.org/licenses/cddl1.php.  If 
 * applicable, add the following below this CDDL HEADER, 
 * with the fields enclosed by brackets "[]" replaced 
 * with your own identifying information: 
 * Portions Copyright [yyyy]
 * [name of copyright owner]
 */ 

/*
 * $(@)mpeg2ts_demux_stub.cc $Revision: 1.2 $ $Date: 2006/07/15 00:02:42 $
 * 
 * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
 */

#include "mpeg2ts_demux_stub.h"
#include "PsiFilter.h"
#include "Descriptors.h"
#include "OutputBitBuffer.h"

#include <string>
#include <boost/shared_ptr.hpp>

namespace m2t=mpeg2ts;

void stringify( const unsigned char *data, int nbytes )
{
    for( int i=0; i<nbytes; ++i )
    printf("%02x ", data[i] );

    printf("\n");

}

struct PmtHeader *createProgramMapSection( int programNumber, int versionNumber,
               int pcrPid )
{
    m2t::Pmt *pmt = new m2t::Pmt( programNumber, pcrPid );
    pmt->versionNumber = versionNumber;
    
    return (struct PmtHeader *)pmt;
}

void addProgramMapDescriptor( struct PmtHeader *pmthdr, OpaqueDescriptor *descriptor )
{
    m2t::Pmt *pmt=(m2t::Pmt *)pmthdr;
    m2t::DescriptorPtr udescriptor( new m2t::UnknownDescriptor(
                                          descriptor->tag,
                                          std::string( (const char *)descriptor->buffer.data,
                                          (int)descriptor->buffer.length ) ) );
    pmt->descriptors.push_back( udescriptor );

    return;
}

void addPmtEntry( struct PmtHeader *pmthdr, unsigned char streamType, int esPid,
      OpaqueDescriptor *descriptorArray, int numDescriptors )
{
    m2t::Pmt *pmt=(m2t::Pmt *)pmthdr;

    m2t::PmtEntry pmtEntry( streamType, esPid );
    
    for( int i=0; i<numDescriptors; ++i ) 
    {
        OpaqueDescriptor *desc = &descriptorArray[i];

        m2t::DescriptorPtr descriptor( new m2t::UnknownDescriptor(
                                         desc->tag,
			                             std::string( (const char *)desc->buffer.data,
				                         (int)desc->buffer.length ) ) );

        pmtEntry.descriptors.push_back( descriptor );
    }
    pmt->entries.push_back( pmtEntry );
}



PsiBytes getPmtBytes( struct PmtHeader *pmthdr )
{
    PsiBytes retval;
    retval.length=0;
    m2t::Pmt& pmt = *(m2t::Pmt *)pmthdr;

    m2t::OutputBitBuffer outb( retval.data, sizeof(retval.data) );

    outb << pmt;

    retval.length=pmt.sizeInBytes();

    return retval;
    
}



static void createTsPktHeader( int pid, int continuityCounter, 
           m2t::OutputBitBuffer& outb )
{
    m2t::TsPacket tspkt;
    
    tspkt.syncByte = 0x47;
    tspkt.transportErrorIndicator=0;
    tspkt.payloadUnitStartIndicator = 1;
    tspkt.transportPriority = 0;
    tspkt.pid = pid;
    tspkt.transportScramblingControl = 0;
    tspkt.adaptationFieldControl = m2t::TsPacket::AfcPayloadOnly;
    tspkt.continuityCounter = continuityCounter;

    outb.writeBits( 8, tspkt.syncByte );
    outb.writeBits( 1, tspkt.transportErrorIndicator );
    outb.writeBits( 1, tspkt.payloadUnitStartIndicator );
    outb.writeBits( 1, tspkt.transportPriority );
    outb.writeBits( 13, tspkt.pid );
    outb.writeBits( 2, tspkt.transportScramblingControl );
    outb.writeBits( 2, tspkt.adaptationFieldControl );
    outb.writeBits( 4, tspkt.continuityCounter );

    return;
}

TsBytes createTransportPacketForPsi( int pid, int continuityCounter,
             PsiBytes psibytes )
{


    TsBytes retval;
    m2t::OutputBitBuffer outb( retval.data, sizeof(retval.data) );

    createTsPktHeader( pid, continuityCounter, outb );

    unsigned char *p = &retval.data[4];

    *p++=0; /* pointer_field */

    assert( psibytes.length <= 183 );

    for( int i=0; i<psibytes.length; ++i )
    *p++=psibytes.data[i];

    int remainder = 183 - psibytes.length;
    for( int i=0; i<remainder; ++i ) 
    *p++ = 0xff;

    return retval;
}

TsBytes createTransportPacket( int pid, int continuityCounter,
           PsiBytes payload )
{


    TsBytes retval;
    m2t::OutputBitBuffer outb( retval.data, sizeof(retval.data) );

    createTsPktHeader( pid, continuityCounter, outb );

    assert( payload.length <= 184 );

    unsigned char *p = &retval.data[4];

    for( int i=0; i<payload.length; ++i )
    *p++ = payload.data[i];

    int remainder = 183 - payload.length;
    for( int i=0; i<remainder; ++i ) 
    *p++ = 0xff;

    return retval;
}    

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米色777欧美一区二区| 狠狠色丁香久久婷婷综| 久久久久国产精品人| 欧美午夜理伦三级在线观看| 国产精品91一区二区| 午夜精品免费在线| 中文字幕在线观看一区二区| 精品国产乱码久久久久久牛牛| 色吧成人激情小说| 成人app在线| 国产美女精品一区二区三区| 日韩av午夜在线观看| 亚洲影院在线观看| 1000精品久久久久久久久| 精品国产伦一区二区三区观看方式| 欧美午夜寂寞影院| av激情亚洲男人天堂| 国产一级精品在线| 免费高清在线一区| 午夜伦理一区二区| 亚洲宅男天堂在线观看无病毒| 国产精品私人影院| 中文字幕不卡三区| 久久久久国产精品厨房| 26uuu国产日韩综合| 欧美一级理论片| 欧美一区二区三区四区高清| 欧美美女一区二区三区| 欧美伊人精品成人久久综合97| 91蝌蚪porny| 91视频.com| 91麻豆自制传媒国产之光| 成人性生交大合| 懂色av一区二区三区蜜臀| 国产一区二区视频在线| 国产乱人伦偷精品视频免下载| 狠狠狠色丁香婷婷综合久久五月| 久久国产精品第一页| 六月丁香综合在线视频| 久久99精品国产麻豆不卡| 裸体歌舞表演一区二区| 国内精品写真在线观看| 国产综合色视频| 高清国产一区二区三区| 成人免费毛片aaaaa**| 国产成人日日夜夜| 不卡区在线中文字幕| 一本色道久久综合亚洲aⅴ蜜桃| 色欧美88888久久久久久影院| 欧美在线综合视频| 欧美高清性hdvideosex| 91精品国产综合久久香蕉麻豆| 91精品国产综合久久久蜜臀粉嫩 | 色偷偷一区二区三区| 99精品1区2区| 欧美制服丝袜第一页| 91麻豆精品国产自产在线| 精品裸体舞一区二区三区| 国产亚洲福利社区一区| 中文字幕不卡三区| 亚洲主播在线观看| 麻豆精品视频在线| 成人短视频下载| 欧美日韩免费一区二区三区| 欧美一区二区成人| 国产日产欧美一区二区三区| 成人免费在线视频| 视频一区中文字幕国产| 国产一区二区三区最好精华液| 91视频91自| 日韩美女一区二区三区四区| 中文字幕+乱码+中文字幕一区| 亚洲午夜久久久久久久久久久 | 亚洲一区国产视频| 日韩av网站在线观看| 粉嫩aⅴ一区二区三区四区| 欧美中文字幕一二三区视频| 精品国产91乱码一区二区三区 | 洋洋成人永久网站入口| 男人的j进女人的j一区| 成人av午夜影院| 欧美一区二区三区人| 欧美韩日一区二区三区四区| 亚洲va韩国va欧美va| 国产乱码字幕精品高清av| 欧美日韩中文另类| 国产欧美日本一区视频| 日本不卡一二三区黄网| 91污在线观看| 亚洲精品一区二区三区99| 一区二区高清在线| 国产不卡视频一区二区三区| 在线不卡中文字幕| 亚洲视频在线观看一区| 老司机免费视频一区二区| 91成人看片片| 国产精品夫妻自拍| 国产麻豆精品视频| 欧美一区二区精品在线| 亚洲资源中文字幕| 欧美日韩精品免费观看视频| 精品精品欲导航| 亚洲国产另类精品专区| 99久久99久久精品免费观看| 26uuu成人网一区二区三区| 午夜欧美大尺度福利影院在线看| 99精品久久只有精品| 久久精品欧美一区二区三区不卡 | 成人深夜视频在线观看| 日韩精品中文字幕在线不卡尤物| 一区二区日韩电影| 99re成人精品视频| 国产精品久线在线观看| 夫妻av一区二区| 久久久久久久久久久久电影| 狂野欧美性猛交blacked| 欧美日韩精品综合在线| 亚洲一本大道在线| 91亚洲永久精品| 国产精品成人免费| 国产69精品久久久久777| 久久在线观看免费| 99精品国产热久久91蜜凸| 国产日韩欧美电影| 国产精品一区二区无线| 久久毛片高清国产| 极品少妇xxxx精品少妇偷拍| 欧美成人猛片aaaaaaa| 免费不卡在线视频| 日韩免费看的电影| 精品夜夜嗨av一区二区三区| 2019国产精品| 国产精品综合在线视频| 久久亚洲综合av| 国产成人精品影视| 久久精品人人做人人综合| 国产激情一区二区三区| 欧美高清在线视频| 99精品久久只有精品| 亚洲精品成人少妇| 欧美性受极品xxxx喷水| 性做久久久久久久免费看| 欧美日本不卡视频| 日本美女一区二区| 亚洲精品在线免费播放| 国产精品一品视频| 国产精品盗摄一区二区三区| 色妞www精品视频| 亚洲第一搞黄网站| 欧美福利电影网| 黄色日韩三级电影| 欧美韩日一区二区三区| 色偷偷久久一区二区三区| 天天色图综合网| 欧美电影免费观看高清完整版在线观看| 经典三级一区二区| 国产精品蜜臀av| 欧美日韩一区在线| 国模一区二区三区白浆| 国产精品成人免费在线| 欧美日韩一二区| 国产一区二区三区视频在线播放| 国产精品久久久久一区| 欧美亚洲一区二区在线| 国精产品一区一区三区mba视频| 国产精品久久久爽爽爽麻豆色哟哟| 色又黄又爽网站www久久| 奇米色一区二区| 国产精品蜜臀av| 91精品中文字幕一区二区三区| 国产精品亚洲第一区在线暖暖韩国| 亚洲欧美日本在线| 日韩精品一区在线观看| 99re6这里只有精品视频在线观看| 天天综合色天天综合| 国产午夜精品福利| 欧美日韩亚州综合| 国产剧情av麻豆香蕉精品| 亚洲一区二区三区四区五区黄| 精品国产凹凸成av人导航| 91久久香蕉国产日韩欧美9色| 蜜桃视频免费观看一区| 亚洲三级小视频| 精品国产一区久久| 91福利社在线观看| 国产精品69毛片高清亚洲| 亚洲午夜激情av| 日本一区二区三区高清不卡| 在线播放一区二区三区| 不卡一区二区三区四区| 久久爱www久久做| 亚洲一级片在线观看| 国产欧美日韩不卡免费| 欧美一区二区免费视频| 日本国产一区二区| 成人免费视频一区二区| 久久99精品国产麻豆婷婷洗澡| 亚洲激情一二三区| 国产精品女同互慰在线看| 精品久久久三级丝袜|