当前位置: 首页>>代码示例>>C++>>正文


C++ XRef::SetExtraData方法代码示例

本文整理汇总了C++中XRef::SetExtraData方法的典型用法代码示例。如果您正苦于以下问题:C++ XRef::SetExtraData方法的具体用法?C++ XRef::SetExtraData怎么用?C++ XRef::SetExtraData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在XRef的用法示例。


在下文中一共展示了XRef::SetExtraData方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: TSLeak

void AVMuxerTest::TSLeak()
{
	// avformat_write_trailer() isn't called on every file for .ts files. This caused
	// a leak. The solution is to call it in dtor after file/buffer is done.

    XRef<H264Decoder> d = new H264Decoder( GetFastH264DecoderOptions() );
    d->SetOutputWidth( 640 );
    d->SetOutputHeight( 360 );
    XRef<H264Encoder> e = new H264Encoder( GetHLSH264EncoderOptions( 250000, 640, 360, 15, 1, 15 ) );
    XRef<AVMuxer> c = new AVMuxer( e->GetOptions(),
                                   "foo.ts",
                                   AVMuxer::OUTPUT_LOCATION_BUFFER );

    c->SetExtraData( e->GetExtraData() );

    for( int i = 0; i < NUM_FRAMES_IN_GOP; i++ )
    {
        int index = i % NUM_FRAMES_IN_GOP;

        XIRef<Packet> pkt = new Packet( gop[index].frame, gop[index].frameSize, false );
        d->Decode( pkt );
        e->EncodeYUV420P( d->Get() );
        c->WriteVideoPacket( e->Get(), ((i % 15) == 0) ? true : false );
    }

    XIRef<XMemory> buffer = new XMemory;
    c->FinalizeBuffer(buffer);
}
开发者ID:MultiSight,项目名称:avkit,代码行数:28,代码来源:AVMuxerTest.cpp

示例2: TestBuffer

void AVMuxerTest::TestBuffer()
{
    XRef<H264Decoder> d = new H264Decoder( GetFastH264DecoderOptions() );
    d->SetOutputWidth( 640 );
    d->SetOutputHeight( 360 );
    XRef<H264Encoder> e = new H264Encoder( GetFastH264EncoderOptions( 250000, 640, 360, 15, 1, 15 ) );
    XRef<AVMuxer> c = new AVMuxer( e->GetOptions(),
                                   "foo.mp4",
                                   AVMuxer::OUTPUT_LOCATION_BUFFER );

    c->SetExtraData( e->GetExtraData() );

    for( int i = 0; i < NUM_FRAMES_IN_GOP; i++ )
    {
        int index = i % NUM_FRAMES_IN_GOP;

        XIRef<Packet> pkt = new Packet( gop[index].frame, gop[index].frameSize, false );
        d->Decode( pkt );
        e->EncodeYUV420P( d->Get() );
        c->WriteVideoPacket( e->Get(), ((i % 15) == 0) ? true : false );
    }

    XIRef<XMemory> buffer = new XMemory;
    c->FinalizeBuffer( buffer );
}
开发者ID:MultiSight,项目名称:avkit,代码行数:25,代码来源:AVMuxerTest.cpp

示例3: _FinishInit

void TranscodeExport::_FinishInit( XRef<H264Encoder>& encoder,
                                   XRef<AVMuxer>& muxer,
                                   H264Decoder& decoder,
                                   const XString& tempFileName,
                                   bool outputToFile,
                                   int traversalNum,
                                   int traversalDen )
{
    // Now that we have decoded the first frame, we can finish initializing everything...

    // First, we should finish initializing our Decoder by setting an output resolution.
    uint16_t width = 0;
    uint16_t height = 0;

    AspectCorrectDimensions( decoder.GetInputWidth(), decoder.GetInputHeight(),
                             _requestedWidth, _requestedHeight,
                             width, height );

    decoder.SetOutputWidth( width );
    decoder.SetOutputHeight( height );

    // Configure and create our encoder...
    int timeBaseNum = 0;
    int timeBaseDen = 0;
    AVKit::DToQ( (1 / _frameRate), timeBaseNum, timeBaseDen );

    CodecOptions options = GetCRFH264EncoderOptions( 26, width, height, 15, timeBaseNum, timeBaseDen );

    encoder = new H264Encoder( options, false );

    // Create our muxer...
    muxer = new AVMuxer( encoder->GetOptions(),
                         tempFileName,
                         (outputToFile) ? AVMuxer::OUTPUT_LOCATION_FILE : AVMuxer::OUTPUT_LOCATION_BUFFER );

    // Finally, provide the muxer with our encoders extra data so we create valid conainers.
    muxer->SetExtraData( encoder->GetExtraData() );
}
开发者ID:MultiSight,项目名称:exporty,代码行数:38,代码来源:TranscodeExport.cpp


注:本文中的XRef::SetExtraData方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。