91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 656KB
    文件類型: .tar
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-10
  • 語言: C/C++
  • 標簽: v4l2??mfc??視頻解碼??

資源簡介

基于三星arm平臺 mfc5.1 v4l2 mfc視頻解碼 參考代碼

資源截圖

代碼片段和文件信息

/*
?*?V4L2?Codec?decoding?example?application
?*?Kamil?Debski?
?*
?*?Argument?parser
?*
?*?Copyright?2012?Samsung?Electronics?Co.?Ltd.
?*
?*?Licensed?under?the?Apache?License?Version?2.0?(the?“License“);
?*?you?may?not?use?this?file?except?in?compliance?with?the?License.
?*?You?may?obtain?a?copy?of?the?License?at
?*
?*?http://www.apache.org/licenses/LICENSE-2.0
?*
?*?Unless?required?by?applicable?law?or?agreed?to?in?writing?software
?*?distributed?under?the?License?is?distributed?on?an?“AS?IS“?BASIS
?*?WITHOUT?WARRANTIES?OR?CONDITIONS?OF?ANY?KIND?either?express?or?implied.
?*?See?the?License?for?the?specific?language?governing?permissions?and
?*?limitations?under?the?License.
?*
?*/

#include?
#include?
#include?
#include?

#include?“common.h“
#include?“parser.h“


void?print_usage(char?*name)
{
//?“d:f:i:m:c:V“
printf(“Usage:\n“);
printf(“\t./%s\n“?name);
printf(“\t-c??-?The?codec?of?the?encoded?stream\n“);
printf(“\t\t?????Available?codecs:?mpeg4?h264\n“);
printf(“\t-d???-?frame?buffer?device?(e.g.?/dev/fb0)\n“);
printf(“\t-f??-?FIMC?device?(e.g.?/dev/video4)\n“);
printf(“\t-i??-?Input?file?name\n“);
printf(“\t-m??-?MFC?device?(e.g.?/dev/video8)\n“);
printf(“\t-V?-?synchronise?to?vsync\n“);
//printf(“\t-??-?\n“);
printf(“\tp2\n“);
printf(“\n“);
}

void?init_to_defaults(struct?instance?*i)
{
memset(i?0?sizeof(*i));
}

int?get_codec(char?*str)
{
if?(strncasecmp(“mpeg4“?str?5)?==?0)?{
return?V4L2_PIX_FMT_MPEG4;
}?else?if?(strncasecmp(“h264“?str?5)?==?0)?{
return?V4L2_PIX_FMT_H264;
}?else?if?(strncasecmp(“h263“?str?5)?==?0)?{
return?V4L2_PIX_FMT_H263;
}?else?if?(strncasecmp(“xvid“?str?5)?==?0)?{
return?V4L2_PIX_FMT_XVID;
}?else?if?(strncasecmp(“mpeg2“?str?5)?==?0)?{
return?V4L2_PIX_FMT_MPEG2;
}?else?if?(strncasecmp(“mpeg1“?str?5)?==?0)?{
return?V4L2_PIX_FMT_MPEG1;
}
return?0;
}

int?parse_args(struct?instance?*i?int?argc?char?**argv)
{
int?c;

init_to_defaults(i);

while?((c?=?getopt(argc?argv?“c:d:f:i:m:V“))?!=?-1)?{
switch?(c)?{
case?‘c‘:
i->parser.codec?=?get_codec(optarg);
break;
case?‘d‘:
i->fb.name?=?optarg;
break;
case?‘f‘:
i->fimc.name?=?optarg;
break;
case?‘i‘:
i->in.name?=?optarg;
break;
case?‘m‘:
i->mfc.name?=?optarg;
break;
case?‘V‘:
i->fb.double_buf?=?1;
break;
default:
err(“Bad?argument“);
return?-1;
}
}

if?(!i->in.name?||?!i->fb.name?||?!i->fimc.name?||?!i->mfc.name)?{
err(“The?following?arguments?are?required:?-d?-f?-i?-m?-c“);
return?-1;
}

if?(!i->parser.codec)?{
err(“Unknown?or?not?set?codec?(-c)“);
return?-1;
}

switch?(i->parser.codec)?{
case?V4L2_PIX_FMT_XVID:
case?V4L2_PIX_FMT_H263:
case?V4L2_PIX_FMT_MPEG4:
i->parser.func?=?parse_mpeg4_stream;
break;
case?V4L2_PIX_FMT_H264:
i->parser.func?=?parse_h264_stream;
break;
case?V4L2_PIX_FMT_MPEG1:
case?V4L2_PIX_FMT_MPEG2:

評論

共有 條評論