Show
Ignore:
Timestamp:
01/23/15 18:15:20 (4 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/applications/present3D/deprecated/ShowEventHandler.h

    r13720 r13890  
    1 /* -*-c++-*- Present3D - Copyright (C) 1999-2006 Robert Osfield  
     1/* -*-c++-*- Present3D - Copyright (C) 1999-2006 Robert Osfield 
    22 * 
    3  * This software is open source and may be redistributed and/or modified under   
     3 * This software is open source and may be redistributed and/or modified under 
    44 * the terms of the GNU General Public License (GPL) version 2.0. 
    55 * The full license is in LICENSE.txt file included with this distribution,. 
    6  *  
     6 * 
    77 * This software is distributed in the hope that it will be useful, 
    88 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
     9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1010 * include LICENSE.txt for more details. 
    1111*/ 
     
    2929 
    3030        virtual bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& aa, osg::Object* object, osg::NodeVisitor* nv); 
    31                  
    32         virtual void accept(osgGA::GUIEventHandlerVisitor& v); 
    33          
     31 
    3432        virtual void getUsage(osg::ApplicationUsage& usage) const; 
    35          
     33 
    3634}; 
    3735