Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 22ebeab1bbaf9872c6dec0dcc1e1e709ad054896
  • master par défaut
  • script
  • new-devel
  • devel
  • timingView-edit
  • fix-mpv
7 résultats

ModuleDeclaration.cc

Blame
  • video_provider_ffmpegsource.cpp 9,26 Kio
    // Copyright (c) 2008, Karl Blomster
    // All rights reserved.
    //
    // Redistribution and use in source and binary forms, with or without
    // modification, are permitted provided that the following conditions are met:
    //
    //   * Redistributions of source code must retain the above copyright notice,
    //     this list of conditions and the following disclaimer.
    //   * Redistributions in binary form must reproduce the above copyright notice,
    //     this list of conditions and the following disclaimer in the documentation
    //     and/or other materials provided with the distribution.
    //   * Neither the name of the Aegisub Group nor the names of its contributors
    //     may be used to endorse or promote products derived from this software
    //     without specific prior written permission.
    //
    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    // POSSIBILITY OF SUCH DAMAGE.
    //
    // -----------------------------------------------------------------------------
    //
    // AEGISUB
    //
    // Website: http://aegisub.cellosoft.com
    // Contact: mailto:zeratul@cellosoft.com
    //
    
    #ifdef WITH_FFMPEGSOURCE
    
    ///////////
    // Headers
    #include "video_provider_ffmpegsource.h"
    #include "video_context.h"
    #include "options.h"
    
    
    ///////////////
    // Constructor
    FFmpegSourceVideoProvider::FFmpegSourceVideoProvider(Aegisub::String filename, double fps) {
    	// initialize ffmpegsource
    	FFMS_Init();
    
    	// clean up variables
    	VideoSource = NULL;
    	Index = NULL;
    	DstFormat = FFMS_PIX_FMT_NONE;
    	LastDstFormat = FFMS_PIX_FMT_NONE;
    	KeyFramesLoaded = false;
    	FrameNumber = -1;
    	MessageSize = sizeof(FFMSErrorMessage);
    
    	// and here we go
    	try {
    		LoadVideo(filename, fps);
    	} catch (...) {
    		Close();
    		throw;
    	}
    }
    
    ///////////////
    // Destructor