Show
Ignore:
Timestamp:
01/23/15 18:15:20 (2 days ago)
Author:
robert
Message:

From Javier Taibo,
"I have found a "bug" in the new audio decoding code (actually I think the bug is in ffmpeg, but anyway it should be wise to protect the OSG plug-in about it). I am attaching a security check in FFmpegDecoderAudio.cpp.

If anybody is curious about the problem, it happens sometimes when decoding an AAC audio stream. It eventually includes a PCE block inside the AAC audio frame and then ffmpeg audio decoding function signals a "new_frame" with 1024 samples, but a null pointer instead of the audio data. It can be easily detected because in these cases number of channels is 0. Maybe this is the intended behaviour for ffmpeg, but I find it quite weird.
"

" It seems that libav does not have a channels attribute in AVFrame structure. This new version should do."

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/examples/osgscalarbar/osgscalarbar.cpp

    r6941 r14047  
    7575#endif 
    7676 
    77 osg::Node* createScalarBar() 
     77osg::Node* createScalarBar(bool vertical) 
    7878{ 
    7979#if 1 
     
    9191 
    9292    ColorRange* cr = new ColorRange(0.0f,1.0f,cs); 
    93     ScalarBar* sb = new ScalarBar(20, 11, cr, "ScalarBar", ScalarBar::VERTICAL, 0.1f, new MyScalarPrinter); 
     93    ScalarBar* sb = new ScalarBar(20, 11, cr, 
     94                      vertical ? "Vertical" : "Horizontal", 
     95                      vertical ? ScalarBar::VERTICAL : ScalarBar::HORIZONTAL, 
     96                      0.1f, new MyScalarPrinter); 
    9497    sb->setScalarPrinter(new MyScalarPrinter); 
     98 
     99    if ( !vertical ) 
     100    { 
     101        sb->setPosition( osg::Vec3(0.5f,-0.5f,0)); 
     102    } 
    95103 
    96104    return sb; 
     
    138146 
    139147    osg::Group* group = new osg::Group; 
    140     group->addChild(createScalarBar()); 
     148    group->addChild(createScalarBar(true)); 
     149    group->addChild(createScalarBar(false)); 
    141150    group->addChild(createScalarBar_HUD()); 
    142151