⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 videocodeccontext.h

📁 Trolltech公司发布的图形界面操作系统。可在qt-embedded-2.3.10平台上编译为嵌入式图形界面操作系统。
💻 H
字号:
/************************************************************************ Copyright (C) 2000-2005 Trolltech AS and its licensors.** All rights reserved.**** This file is part of the Qtopia Environment.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/gpl/ for GPL licensing information.** See below for additional copyright and license information**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef VIDEO_CODEC_CONTEXT_H#define VIDEO_CODEC_CONTEXT_H #include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <pthread.h>#include <sched.h>extern "C" {#include "avcodec.h"#include "avformat.h"};#include <qlist.h>#include <qstring.h>#include <qfile.h>#include "ffmutex.h"#include "mediapacket.h"#include "mediapacketbuffer.h"#include "videoscalecontext.h"class VideoCodecContext {public:    VideoCodecContext(MediaPacketBuffer *buffer);    ~VideoCodecContext();    void fileInit();    void codecInit();    void close();    int videoStreams();    int videoWidth( int stream );    int videoHeight( int stream );    double videoFrameRate( int stream );    long bitRate();    long timeStamp();    long absoluteTimeStamp();    void resetTimeStamps();    QString fileInfo();    bool videoReadScaledFrame( unsigned char **output_rows, int in_w, int in_h, int out_w, int out_h, ColorFormat fmt );    bool syncToTimeStamp( long AudioTS );    void leadInVideo();    void flush();private:    // Helper function, keeps decoding packets until a complete video frame is decoded    int decodeFrame();    // Has it's own mutex, this is the packet provider    MediaPacketBuffer *packetBuffer;    // Timing variables    FFMutex timeStampMutex;    long currentVideoTimeStamp;    long currentFrameOffsetFromTimeStamp;    long fakedVideoTimeStamp;    long fakedFrameOffsetFromTimeStamp;    int64_t frameRateDenominator;    int64_t frameRateNumerator;    long picturePtsOffset;    FFMutex videoMutex;    int frame;    int skipNext; // Number of frames to skip    int totalFrames;    int droppedFrames;    int framesInLastPacket;    long totalVideoBytesRead;    long totalVideoFramesDecoded;    // Contexts    AVCodec *videoCodec;    AVCodecContext *videoCodecContext;    VideoScaleContext videoScaleContext;    // State associated with decoding the current frame and packet    AVFrame picture;    MediaPacket *currentVideoPacket;    int frameInPacket;    unsigned char *videoPacketPtr;    int videoPacketLen;};#endif // VIDEO_CODEC_CONTEXT_H 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -