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

CRTPLuaScriptObject.hh

Blame
  • video_provider_ffmpegsource.cpp 9,87 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 <ffms.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;
    	SWSContext = NULL;
    	BufferRGB = NULL;
    	KeyFramesLoaded = false;
    	FrameAllocated = false;
    	FrameNumber = -1;
    	MessageSize = sizeof(FFMSErrorMessage);
    
    	// and here we go
    	LoadVideo(filename, fps);
    }
    
    ///////////////
    // Destructor
    FFmpegSourceVideoProvider::~FFmpegSourceVideoProvider() {
    	Close();
    }