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

📄 dxvid.c

📁 用于Linux下的网络视频。包里包括了接收端和发送端。大部份是从Spcaview修改过来的
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
 
 
#include <xvid.h>
#include "dxvid.h"
int
dec_main(unsigned char *istream,
         unsigned char *ostream,
         int istream_size,
         xvid_dec_stats_t *xvid_dec_stats)
{
 
    int ret;
 
    xvid_dec_frame_t xvid_dec_frame;
 
    /* Reset all structures */
    memset(&xvid_dec_frame, 0, sizeof(xvid_dec_frame_t));
    memset(xvid_dec_stats, 0, sizeof(xvid_dec_stats_t));
 
    /* Set version */
    xvid_dec_frame.version = XVID_VERSION;
    xvid_dec_stats->version = XVID_VERSION;
 
    /* No general flags to set */
    xvid_dec_frame.general          = 0;
 
    /* Input stream */
    xvid_dec_frame.bitstream        = istream;
    xvid_dec_frame.length           = istream_size;
 
    /* Output frame structure */
    xvid_dec_frame.output.plane[0] = ostream;
    xvid_dec_frame.output.stride[0] = XDIM*BPP;
    xvid_dec_frame.output.csp = CSP;
 
    ret = xvid_decore(dec_handle, XVID_DEC_DECODE, &xvid_dec_frame, xvid_dec_stats);
 
    return(ret);
}
 
/* close decoder to release resources */
int
dec_stop()
{
    int ret;
 
    ret = xvid_decore(dec_handle, XVID_DEC_DESTROY, NULL, NULL);
 
    return(ret);
}            
 
/*****************************************************************************
 * Routines for decoding: init decoder, use, and stop decoder
 ****************************************************************************/
 
/* init decoder before first run */
int
dec_init(int use_assembler, int debug_level)
{
    int ret;
 
    xvid_gbl_init_t   xvid_gbl_init;
    xvid_dec_create_t xvid_dec_create;
 
    /* Reset the structure with zeros */
    memset(&xvid_gbl_init, 0, sizeof(xvid_gbl_init_t));
    memset(&xvid_dec_create, 0, sizeof(xvid_dec_create_t));
 
    /*------------------------------------------------------------------------
     * XviD core initialization
     *----------------------------------------------------------------------*/
 
    /* Version */
    xvid_gbl_init.version = XVID_VERSION;
 
    /* Assembly setting */
    if(use_assembler)
        xvid_gbl_init.cpu_flags = 0;
    else
        xvid_gbl_init.cpu_flags = XVID_CPU_FORCE;
 
    xvid_gbl_init.debug = debug_level;
 
    xvid_global(NULL, 0, &xvid_gbl_init, NULL);
 
    /*------------------------------------------------------------------------
     * XviD encoder initialization
     *----------------------------------------------------------------------*/
 
    /* Version */
    xvid_dec_create.version = XVID_VERSION;
 
    /*
     * Image dimensions -- set to 0, xvidcore will resize when ever it is
     * needed
     */
    xvid_dec_create.width = 0;
    xvid_dec_create.height = 0;
 
    ret = xvid_decore(NULL, XVID_DEC_CREATE, &xvid_dec_create, NULL);
 
    dec_handle = (int *)xvid_dec_create.handle;
 
    return(ret);
}
 

⌨️ 快捷键说明

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