Ò»¶Î»ùÓÚlinux V4LÊÓÆµ²É¼¯ÉãÏñ³ÌÐòµÄÔ´Âë
/*****************************************************************************************************
linux_m4v.c
gcc -o linux_m4v linux_m4v.c -lc -lm -lxvidcore
*******************************************************************************************************/
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <linux/videodev.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <signal.h>
#include "xvid_encode.h"
void *enc_handle = NULL;
int done = 0;
int
enc_main(unsigned char *image,
unsigned char *bitstream,
int *key,
int *stats_type,
int *stats_quant,
int *stats_length,
int sse[3]);
int
enc_stop();
int
enc_init(int use_assembler);
double
msecond();
#define VIDEO_PALETTE_JPEG 21
struct vdIn {
int fd;
char *videodevice ;
struct video_capability videocap;
struct video_picture videopict;
struct video_window videowin;
int framesizeIn ;
int bppIn;
int hdrwidth;
int hdrheight;
int formatIn;
};
struct vdIn videoIn;
int init_videoIn (struct vdIn *vd, char *device, int width, int height,int format);
static int GetDepth (int format);
static int GetVideoPict (struct vdIn *vd);
static int SetVideoPict (struct vdIn *vd);
int main(int argc,char *argv[])
{
char *device;
int format = VIDEO_PALETTE_YUV420P;
int width = 352;
int height = 288;
int i;
unsigned char r_buffer[304128];
unsigned char* mp4_buffer;
double enctime;
double totalenctime = 0.;
float totalPSNR[3] = {0., 0., 0.};
device = "/dev/video0";
ARG_OUTPUTFILE = "test.m4v";
int
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
×î½üÓÃÓÑÉÆÖ®±ÛµÄ°å×Ó£¬·¢ÏÖÄں˵ÄÃû³ÆÊÇ£ºLinux-2.6.29.4-FriendlyARM.ºóÃæÄǸöFriendlyARMËÀ»îÈ¥²»µô¡£ºóÀ´Ö»ºÃ¿´´úÂë¡£
1¡¢2.6.29.4Õâ¸ö°æ±¾ºÅÊÇÊÇubootÔÚ×öuimageµÄʱºò¼ÓÉϵģ¬¿´arch/arm/boot/Makefile:
quiet_cmd_uimage = UIMAGE $@
cmd_uimage = $(CONFIG_SHELL) $(MKIMA ......
¡¡Èç¹ûÄã°®ºÃѧϰ֪ʶ£¬ÓÈÆäÊÇLinux²Ù×÷ϵͳ֪ʶ£¬Ëæ×ÅLinuxÓ¦ÓõÄÀ©Õ¹£¬Ðí¶àÅóÓÑ¿ªÊ¼½Ó´¥Linux£¬¿ÉÄã²»ÖªµÀÈ¥ÄÄÀïÕÒµ½ÕâЩ֪ʶ£¬À´ÕâÀÈÃÄã¸ü¼ÓÁ˽âLinuxѧϰ·½·¨¡£ÈÃÄãÈ«ÃæÕÆÎÕLinuxѧϰ·½·¨¡£
1£®Ñ§Ï°µÄÄ¿µÄ
¡¡¡¡Í¨¹ýLinuxµÄÑ§Ï°ÕÆÎÕUNIXµÄÄ¿µÄÏë±Ø²»Óöà˵ÁË£¬ÔÚÕâ¸öÍøÂçÈ˲ÅÉí¼Û±¶ÔöµÄÄê´ú£¬Ï ......
ÍøÂçÉ豸Çý¶¯Ïà±È×Ö·ûÐÍÉ豸µÄÇý¶¯Òª¸´ÔÓһЩ£¬³ýÁË×ÜÌåÉÏÇý¶¯µÄ¿ò¼ÜÓÐһЩÏàËÆÍ⣬ÓÐºÜ¶àµØ·½¶¼ÊDz»Í¬£¬µ«ÍøÂçÉ豸Çý¶¯ÓÐÒ»¸öºÜ´óµÄÌØµã¾ÍÊÇÓй̶¨µÄ¿ò¼Ü¿ÉÒÔ×ñÑ£¬¾ßÌåµÄ¿ò¼Ü»áÔÚºó±ßÏêϸµÄÐðÊö£¬ÕâÀïÖ÷Òª·ÖÎöÍøÂçÉ豸Çý¶¯µÄ½á¹¹£¬ºÍÕû¸ötcp/ipÍøÂç½á¹¹Ò»Ñù£¬Õû¸öÍøÂçÉ豸Çý¶¯Ò²ÊÇÒ»¸ö·Ö²ãµÄ½á¹¹¡£¾ßÌåÈçÏ£º
1 ......