mp3sameheader=0;
mp3sameheadercount=0;
+ strcpy(L_VPE_OMX_AUDIO_REND, VPE_OMX_AUDIO_REND);
}
AudioOMX::~AudioOMX()
}
video->LockClock();
- error = OMX_GetHandle(&omx_aud_rend, VPE_OMX_AUDIO_REND, NULL, &callbacks);
+ error = OMX_GetHandle(&omx_aud_rend, L_VPE_OMX_AUDIO_REND, NULL, &callbacks);
if (error != OMX_ErrorNone) {
Log::getInstance()->log("Audio", Log::DEBUG,
"Init OMX audio rend failed %x", error);
cur_input_buf_omx=NULL;
input_bufs_omx_mutex.Lock();
- for (int i=0; i< input_bufs_omx_all.size();i++) {
+ for (UINT i=0; i< input_bufs_omx_all.size();i++) {
error=OMX_FreeBuffer(omx_aud_rend/*dec*/,omx_rend_input_port/*codec*/,input_bufs_omx_all[i]);
if (error!=OMX_ErrorNone){
Log::getInstance()->log("Audio", Log::DEBUG, "Use OMX_FreeBuffer failed %x", error);
input_bufs_omx_free.clear();
input_bufs_omx_mutex.Unlock();
+ return 1;
}
int AudioOMX::DestroyInputBufsOMXwhilePlaying() //call with clock mutex locked
{
- OMX_ERRORTYPE error;
+ //OMX_ERRORTYPE error;
cur_input_buf_omx=NULL;
input_bufs_omx_mutex.Lock();
Log::getInstance()->log("Audio", Log::DEBUG, "deallocatecodecsomx mark 1");
if (cur_input_buf_omx) {
cur_input_buf_omx->nFlags|=OMX_BUFFERFLAG_EOS;
- OMX_ERRORTYPE error=video->ProtOMXEmptyThisBuffer(omx_aud_rend/*dec*/,cur_input_buf_omx);
+ error=video->ProtOMXEmptyThisBuffer(omx_aud_rend/*dec*/,cur_input_buf_omx);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Audio", Log::DEBUG, "OMX_EmptyThisBuffer 6 failed %x", error);
}
- error=OMX_SetupTunnel(omx_aud_rend,omx_rend_input_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_aud_rend,omx_rend_input_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Audio", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
}
- error=OMX_SetupTunnel(omx_clock,omx_clock_output_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_clock,omx_clock_output_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Audio", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
}
- error=OMX_SetupTunnel(omx_aud_rend,omx_rend_clock_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_aud_rend,omx_rend_clock_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Audio", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
unsigned int AudioOMX::AdvanceMpAudioSync(const UCHAR *data,unsigned int size,unsigned int *framesize)
{
if (size<=2) return size; // silly;
- unsigned int test=0;
+ unsigned int atest=0;
*framesize=0;
//inspired by libav parsing code
- while (test+1<size) {
- if (data[test]==0xFF && (data[test+1] &0xe0)==0xe0) {
- if ((data[test+1] & 0x18) == 0x08) {test++;continue;} //sanity check: mpeg version ID 01 -> reserved
+ while (atest+1<size) {
+ if (data[atest]==0xFF && (data[atest+1] &0xe0)==0xe0) {
+ if ((data[atest+1] & 0x18) == 0x08) {atest++;continue;} //sanity check: mpeg version ID 01 -> reserved
//sanity check inspired by libav
48, 56, 64, 80, 96, 112, 128, 144, 160 } } };
int lsf=0;
int mpeg2=0;
- int layer=4-((data[test+1]&0x06)>>1);
- if (layer==4) {test++;continue;} //sanity check
+ int layer=4-((data[atest+1]&0x06)>>1);
+ if (layer==4) {atest++;continue;} //sanity check
- int bitrate_index=(data[test+2]&0xf0)>>4;
- if (bitrate_index==0x0f || bitrate_index==0x0) {test++;continue;} //sanity check
+ int bitrate_index=(data[atest+2]&0xf0)>>4;
+ if (bitrate_index==0x0f || bitrate_index==0x0) {atest++;continue;} //sanity check
- int samplerate_index=(data[test+2]&0x0C)>>2;
- if (samplerate_index==0x03) {test++;continue;} //sanity check
+ int samplerate_index=(data[atest+2]&0x0C)>>2;
+ if (samplerate_index==0x03) {atest++;continue;} //sanity check
- int padding=(data[test+2]&2)>>1;
- if (0x10 & data[test+1]) {
- lsf=((data[test+1]) &0x8)?0:1;
+ int padding=(data[atest+2]&2)>>1;
+ if (0x10 & data[atest+1]) {
+ lsf=((data[atest+1]) &0x8)?0:1;
mpeg2=0;
} else {
lsf=1;
frame_size=(temp_frame_size*144000)/(sample_rate<<lsf);
frame_size=frame_size+padding;
}
- unsigned int sameheadertest=(data[test]<<24)|(data[test+1]<<16) |(data[test+2]<<8);
+ unsigned int sameheadertest=(data[atest]<<24)|(data[atest+1]<<16) |(data[atest+2]<<8);
const unsigned mask=(0xffe00000 | (3 << 17) | (3 << 10) | (3 << 19)); // from libav
if (!mp3sameheader) {
mp3sameheader=sameheadertest;
mp3sameheader=sameheadertest;
//Log::getInstance()->log("Audio", Log::DEBUG, "FRAME: %d %d %d %d %d %d %d",lsf,layer,bitrate_index,sample_rate,padding,temp_frame_size, frame_size);
- //Log::getInstance()->log("Audio", Log::DEBUG, "FRAME DIAG: %x %x %x %d",data[test],data[test+1],data[test+2],mp3sameheadercount);
+ //Log::getInstance()->log("Audio", Log::DEBUG, "FRAME DIAG: %x %x %x %d",data[atest],data[atest+1],data[atest+2],mp3sameheadercount);
if (mp3sameheadercount>4) {
*framesize=frame_size;
- return test; // probably FrameSync
+ return atest; // probably FrameSync
} //skip it if the header changes too frequently
}
- test++;
+ atest++;
}
return size;
}
160, 160, 192, 192, 224, 224, 256, 256, 320, 320, 384, 384, 448,
448, 512, 512, 640, 640, 768, 768, 896, 896, 1024, 1024, 1152,
1152, 1280, 1280, };
- unsigned int test=0;
+ unsigned int atest=0;
*framesize=20000; //if we do not find a start code do not decompress
- while (test+4<size) {
- if (data[test]==0x0B && data[test+1]==0x77) {
+ while (atest+4<size) {
+ if (data[atest]==0x0B && data[atest+1]==0x77) {
// now figure out the length of the frame
- unsigned char code=data[test+4];
+ unsigned char code=data[atest+4];
unsigned char fscod=(code& 0xC0)>>6;
unsigned char frmsize=(code &0x3f);
if (fscod!=0) Log::getInstance()->log("Audio", Log::DEBUG, "warning we only support 48 KHz sampling rate");
*framesize=frm_size_tab[frmsize]*2;
- return test; // probably FrameSync
+ return atest; // probably FrameSync
}
- test++;
+ atest++;
}
return size;
}
unsigned int AudioOMX::AdvanceAacLatmAudioSync(const UCHAR *data,unsigned int size,unsigned int *framesize)
{
if (size<=4) return size; // silly;
- unsigned int test=0;
+ unsigned int atest=0;
*framesize=20000; //if we do not find a start code do not decompress
- while (test+4<size) {
- if (data[test] ==0x56 && (data[test+1]& 0xe0)==0xe0) {
+ while (atest+4<size) {
+ if (data[atest] ==0x56 && (data[atest+1]& 0xe0)==0xe0) {
// now figure out the length of the frame
- unsigned int length= ((0x1f & data[test+1])<<8) | data[test+2];
+ unsigned int length= ((0x1f & data[atest+1])<<8) | data[atest+2];
*framesize=length+3;
- return test; // probably FrameSync
+ return atest; // probably FrameSync
}
- test++;
+ atest++;
}
return size;
}
VideoOMX *vw = (VideoOMX*) Video::getInstance();
bool achange=false;
OMX_ERRORTYPE error;
- Log *logger=Log::getInstance();
+ //Log *logger=Log::getInstance();
if (vw->InIframemode()) {
samplepos = 0;
MILLISLEEP(10);
firstsynched = false;
decompress_buffer_filled=0;
if (cur_input_buf_omx) {
- OMX_ERRORTYPE error = vw->ProtOMXEmptyThisBuffer(omx_aud_rend/*dec*/,
+ error = vw->ProtOMXEmptyThisBuffer(omx_aud_rend/*dec*/,
cur_input_buf_omx);
if (error != OMX_ErrorNone) {
Log::getInstance()->log("Audio", Log::DEBUG,
decompress_buffer_filled=0;
if (cur_input_buf_omx) {
- OMX_ERRORTYPE error = vw->ProtOMXEmptyThisBuffer(omx_aud_rend/*dec*/,
+ error = vw->ProtOMXEmptyThisBuffer(omx_aud_rend/*dec*/,
cur_input_buf_omx);
if (error != OMX_ErrorNone) {
Log::getInstance()->log("Audio", Log::DEBUG,
if (packet.synched) {
if (cur_input_buf_omx) {
//cur_input_buf_omx->nFlags |= OMX_BUFFERFLAG_ENDOFFRAME;
- OMX_ERRORTYPE error = vw->ProtOMXEmptyThisBuffer(omx_aud_rend/*dec*/,
+ error = vw->ProtOMXEmptyThisBuffer(omx_aud_rend/*dec*/,
cur_input_buf_omx);
if (error != OMX_ErrorNone) {
Log::getInstance()->log("Audio", Log::DEBUG,
}
break;
};
- if (adv!=haveToCopy) {
+ if (adv != (int)haveToCopy) {
lsync=false;
haveToCopy-=adv;
*samplepos+=adv;
// Log::getInstance()->log("Audio", Log::DEBUG,"libav out");
int save_size=incoming_paket_libav.size;
- if (gotframesize<=incoming_paket_libav.size) {
+ if ((int)gotframesize <= incoming_paket_libav.size) {
if (gotframesize>0) incoming_paket_libav.size=gotframesize;
len = avcodec_decode_audio4(current_context, decode_frame_libav,
&gotta, &incoming_paket_libav);
// I doubt that this will ever happen
// Log::getInstance()->log("Audio", Log::DEBUG,
// "P 2 Time code %lld pts %lld", lastreftimeOMX, packet.pts);
- OMX_ERRORTYPE error = vw->ProtOMXEmptyThisBuffer(omx_aud_rend/*dec*/,
+ error = vw->ProtOMXEmptyThisBuffer(omx_aud_rend/*dec*/,
cur_input_buf_omx);
if (error != OMX_ErrorNone) {
Log::getInstance()->log("Audio", Log::DEBUG,
int InitDecoderLibAV();
void DeinitDecoderLibAV();
+ char L_VPE_OMX_AUDIO_REND[128];
+
};
#endif
buf_head_egl=NULL;
curformat = Unsupported;
+
+ strcpy(L_VPE_OMX_IMAGE_DECODER, VPE_OMX_IMAGE_DECODER);
+ strcpy(L_VPE_OMX_EGL_REND, VPE_OMX_EGL_REND);
}
ImageOMX::~ImageOMX()
video->LockClock();
- error = OMX_GetHandle(&omx_imag_decode, VPE_OMX_IMAGE_DECODER, NULL, &callbacks);
+ error = OMX_GetHandle(&omx_imag_decode, L_VPE_OMX_IMAGE_DECODER, NULL, &callbacks);
if (error != OMX_ErrorNone) {
Log::getInstance()->log("Image", Log::DEBUG,
"Init OMX Image decoder failed %x", error);
break;
case PNG: ft_type.eCompressionFormat=OMX_IMAGE_CodingPNG;
break;
+
+ case Unsupported:
+ ;
}
VideoOMX *video=(VideoOMX*)Video::getInstance();
- if (!pictcreat) return false;
+ if (!pictcreat) return NULL;
int oldcancelstate;
int oldcanceltype;
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &oldcancelstate);
DeAllocateCodecsOMX();
pthread_setcancelstate(oldcancelstate, NULL);
pthread_setcanceltype(oldcanceltype, NULL);
- return false;
+ return NULL;
}
bool ret=intDecodePicture(index, buffer, length, pictcreat, video);
DeAllocateCodecsOMX();
port_def_type.format.image.nFrameHeight+=-(port_def_type.format.image.nFrameHeight%32); // The OpenMax png part is broken for the last slice
// so we cut the broken part, not nice but works
break;
+
+ case Unsupported:
+ ;
}
// Log::getInstance()->log("Image", Log::DEBUG,
// "decodePicture 5 6");
- error=OMX_GetHandle(&omx_egl_render,VPE_OMX_EGL_REND,NULL,&callbacks);
+ error=OMX_GetHandle(&omx_egl_render,L_VPE_OMX_EGL_REND,NULL,&callbacks);
if (error!=OMX_ErrorNone){
Log::getInstance()->log("Image", Log::DEBUG, "Init OMX EGL renderer failed %x", error);
OMX_ERRORTYPE error;
input_bufs_omx_mutex.Lock();
- for (int i=0; i< input_bufs_omx_all.size();i++) {
+ for (UINT i=0; i< input_bufs_omx_all.size();i++) {
Log::getInstance()->log("Image", Log::DEBUG, "OMX_FreeBuffer mark");
//if (input_bufs_omx_all[i]->pBuffer) free(input_bufs_omx_all[i]->pBuffer);
input_bufs_omx_all[i]->pBuffer=NULL;
input_bufs_omx_free.clear();
input_bufs_omx_mutex.Unlock();
+ return 1;
}
int ImageOMX::DestroyInputBufsOMXwhilePlaying() //call with clock mutex locked
{
- OMX_ERRORTYPE error;
+ //OMX_ERRORTYPE error;
input_bufs_omx_mutex.Lock();
while (input_bufs_omx_all.size()>0) {
}
- error=OMX_SetupTunnel(omx_imag_decode,omx_image_output_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_imag_decode,omx_image_output_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Image", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
}
- error=OMX_SetupTunnel(omx_egl_render,omx_egl_input_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_egl_render,omx_egl_input_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Image", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
int initted;
+ char L_VPE_OMX_IMAGE_DECODER[128];
+ char L_VPE_OMX_EGL_REND[128];
+
protected:
OsdVector::PictureInfo pictInf;
bool pictInfValid;
if (level == DEBUG) strcpy(levelString, "[debug] ");
#ifndef WIN32
- spaceLeft -= SNPRINTF(&buffer[150-spaceLeft], spaceLeft, "%s %d %s - ", levelString, getpid(), fromModule);
+ spaceLeft -= SNPRINTF(&buffer[150-spaceLeft], spaceLeft, "%s %lu %s - ", levelString, pthread_self(), fromModule);
#else
spaceLeft -= SNPRINTF(&buffer[150-spaceLeft], spaceLeft, "%s %s - ", levelString, fromModule);
#endif
mode=0;
aspect_correction=1.;
- bcm_backres=NULL;
+ bcm_backres = 0;
freetype_inited=false;
wait_id=1;
{
if (initted) return 0;
reader.init();
- Video* video = Video::getInstance();
+ //Video* video = Video::getInstance();
//window=*((HWND*)device);
// May be this device specific part should go to a device specific child class
return 0;
}
Log::getInstance()->log("OSD", Log::NOTICE, "Displaysize is %d x %d ",display_width, display_height);
- VC_RECT_T dst_rect ={0,0,display_width,display_height};
+ VC_RECT_T dst_rect = {0, 0, (int32_t)display_width, (int32_t)display_height};
VC_RECT_T src_rect={0,0,BACKBUFFER_WIDTH <<16,BACKBUFFER_HEIGHT<<16};
VC_RECT_T src_rect_bg={0,0,16<<16,16<<16};
- VC_RECT_T src_rect_im={0,0,16,16};
+// VC_RECT_T src_rect_im={0,0,16,16};
uint32_t back_image_ptr;
bcm_backres=vc_dispmanx_resource_create(VC_IMAGE_RGBX32,16,16,&back_image_ptr);
}
monobitmaps.clear();
- /*map<string,ImageIndex>::iterator jitty=jpegs.begin();
+ / *map<string,ImageIndex>::iterator jitty=jpegs.begin();
while (jitty!=jpegs.end()) {
vgDestroyImage((VGImage)(*jitty).second);
jitty++;
}
- jpegs.clear();*
+ jpegs.clear();* /
map<TVMediaInfo,ImageIndex>::iterator titty=tvmedias.begin();
while (titty!=tvmedias.end()) {
vc_dispmanx_element_remove(bcm_update,bcm_background);
vc_dispmanx_update_submit_sync(bcm_update);
vc_dispmanx_resource_delete(bcm_backres);
- bcm_backres=NULL;
+ bcm_backres = 0;
vc_dispmanx_display_close(bcm_display);
while (true)
{
ts=1;
- unsigned int waittime=1;
+ //unsigned int waittime=1;
if (initted) {
const char *tags=ot.tags;
const short* cont=ot.contours;
short n_cont=ot.n_contours;
- short n_point=ot.n_points;
- short last_cont=0;
+ //short n_point=ot.n_points;
+ //short last_cont=0;
for (short point=0;n_cont!=0;cont++,n_cont--) {
short next_cont=*cont+1;
bool first=true;
}
vgAppendPathData(path,segments.size(),&segments[0],&coord[0]);
- int n=0;
/* for (int m=0;m<segments.size();m++) {
+ int n=0;
switch (segments[m])
{
case VG_MOVE_TO:
vgSeti(VG_SCISSORING,VG_FALSE);
else vgSeti(VG_SCISSORING,VG_TRUE);
} break;
+
+ case DrawImageLoading:
+ case DrawNoop:
+ {}
}
}
//int imcount=0;// this is debug code and should not go into release
case DrawStyle::Color: {
vgSetParameteri(handle, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR);
vgSetColor(handle,command.param1);
- VGuint rgba;
- rgba = vgGetColor((VGPaint)handle);
+ //VGuint rgba;
+ //rgba = vgGetColor((VGPaint)handle);
//Log::getInstance()->log("OSD", Log::DEBUG, "Draw Paint %d %x %x",handle,command.param1,rgba);
} break;
case DrawStyle::GradientLinear: {
} break;
+ case OVGimageUploadLine:
+ {}
+
}
+
+ return 0;
}
bool OsdOpenVG::processTasks()
signalon=false;
outputinterlaced=0;
+ strcpy(L_VPE_OMX_CLOCK, VPE_OMX_CLOCK);
+ strcpy(L_VPE_OMX_H264_DECODER, VPE_OMX_H264_DECODER);
+ strcpy(L_VPE_OMX_MPEG2_DECODER, VPE_OMX_MPEG2_DECODER);
+ strcpy(L_VPE_OMX_VIDEO_SCHED, VPE_OMX_VIDEO_SCHED);
+ strcpy(L_VPE_OMX_VIDEO_REND, VPE_OMX_VIDEO_REND);
+ strcpy(L_VPE_OMX_VIDEO_DEINTERLACE, VPE_OMX_VIDEO_DEINTERLACE);
}
VideoOMX::~VideoOMX()
HDMI_RES_GROUP_T pref_group;
TV_SUPPORTED_MODE_T *mymode=NULL;
TV_SUPPORTED_MODE_T *mymode_second_best=NULL;
- bool got_optimum=false;
+ // bool got_optimum=false;
uint32_t pref_mode;
HDMI_RES_GROUP_T group=HDMI_RES_GROUP_CEA;
int all_my_modes=vc_tv_hdmi_get_supported_modes(HDMI_RES_GROUP_CEA,
curmode->height==native_height &&
curmode->frame_rate==target_fps) {
if(curmode->scan_mode==interlaced) {
- got_optimum=true;
+ //got_optimum=true;
mymode=curmode;
Log::getInstance()->log("Video", Log::NOTICE, "Found optimum mode %dx%d %d Hz i: %d",
mymode->width,mymode->height,mymode->frame_rate,mymode->scan_mode);
omx_events.clear();
omx_event_mutex.Unlock();
- error=OMX_GetHandle(&omx_clock,VPE_OMX_CLOCK,NULL,&callbacks);
+ error=OMX_GetHandle(&omx_clock,L_VPE_OMX_CLOCK,NULL,&callbacks);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Video", Log::DEBUG, "Init OMX clock failed %x", error);
clock_mutex.Lock();
if (h264) {
- error=OMX_GetHandle(&omx_vid_dec,VPE_OMX_H264_DECODER,NULL,&callbacks);
+ error=OMX_GetHandle(&omx_vid_dec,L_VPE_OMX_H264_DECODER,NULL,&callbacks);
} else {
- error=OMX_GetHandle(&omx_vid_dec,VPE_OMX_MPEG2_DECODER,NULL,&callbacks);
+ error=OMX_GetHandle(&omx_vid_dec,L_VPE_OMX_MPEG2_DECODER,NULL,&callbacks);
}
if (error!=OMX_ErrorNone){
}
if (dodeint) {
- error = OMX_GetHandle(&omx_vid_deint, VPE_OMX_VIDEO_DEINTERLACE, NULL,
+ error = OMX_GetHandle(&omx_vid_deint, L_VPE_OMX_VIDEO_DEINTERLACE, NULL,
&callbacks);
if (error != OMX_ErrorNone) {
Log::getInstance()->log("Video", Log::DEBUG,
}
- error=OMX_GetHandle(&omx_vid_sched,VPE_OMX_VIDEO_SCHED,NULL,&callbacks);
+ error=OMX_GetHandle(&omx_vid_sched,L_VPE_OMX_VIDEO_SCHED,NULL,&callbacks);
if (error!=OMX_ErrorNone){
Log::getInstance()->log("Video", Log::DEBUG, "Init OMX video scheduler failed %x", error);
clock_mutex.Unlock();
}
- error=OMX_GetHandle(&omx_vid_rend,VPE_OMX_VIDEO_REND,NULL,&callbacks);
+ error=OMX_GetHandle(&omx_vid_rend,L_VPE_OMX_VIDEO_REND,NULL,&callbacks);
if (error!=OMX_ErrorNone){
Log::getInstance()->log("Video", Log::DEBUG, "Init OMX video rend failed %x", error);
clock_mutex.Unlock();
int VideoOMX::idleClock()
{
- OMX_ERRORTYPE error;
+ //OMX_ERRORTYPE error;
OMX_STATETYPE temp_state;
clock_mutex.Lock();
OMX_GetState(omx_clock,&temp_state);
cur_input_buf_omx=NULL;
input_bufs_omx_mutex.Lock();
- for (int i=0; i< input_bufs_omx_all.size();i++) {
+ for (UINT i=0; i< input_bufs_omx_all.size();i++) {
// free(input_bufs_omx_all[i]->pBuffer);
// input_bufs_omx_all[i]->pBuffer=NULL;
error=OMX_FreeBuffer(omx_vid_dec,omx_codec_input_port,input_bufs_omx_all[i]);
input_bufs_omx_free.clear();
input_bufs_omx_mutex.Unlock();
+ return 1;
}
"flush cmd shed 12 failed");
}
-
-
}
Log::getInstance()->log("Video", Log::DEBUG,
"flush cmd shed rend failed");
}
+
+ return 1;
}
if (cur_input_buf_omx) {
cur_input_buf_omx->nFlags|=OMX_BUFFERFLAG_EOS;
- OMX_ERRORTYPE error=ProtOMXEmptyThisBuffer(omx_vid_dec,cur_input_buf_omx);
+ error=ProtOMXEmptyThisBuffer(omx_vid_dec,cur_input_buf_omx);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Video", Log::DEBUG, "OMX_EmptyThisBuffer failed %x", error);
}
- error=OMX_SetupTunnel(omx_vid_dec,omx_codec_output_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_vid_dec,omx_codec_output_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Video", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
}
if (dodeint) {
- error=OMX_SetupTunnel(omx_vid_deint,omx_deint_input_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_vid_deint,omx_deint_input_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Video", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
}
- error=OMX_SetupTunnel(omx_vid_deint,omx_deint_output_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_vid_deint,omx_deint_output_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Video", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
}
}
- error=OMX_SetupTunnel(omx_vid_sched,omx_shed_input_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_vid_sched,omx_shed_input_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Video", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
}
- error=OMX_SetupTunnel(omx_vid_sched,omx_shed_output_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_vid_sched,omx_shed_output_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Video", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
}
- error=OMX_SetupTunnel(omx_vid_rend,omx_rend_input_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_vid_rend,omx_rend_input_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Video", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
}
- error=OMX_SetupTunnel(omx_clock,omx_clock_output_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_clock,omx_clock_output_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Video", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
}
- error=OMX_SetupTunnel(omx_vid_sched,omx_shed_clock_port,NULL,NULL);
+ error=OMX_SetupTunnel(omx_vid_sched,omx_shed_clock_port,NULL,0);
if (error!=OMX_ErrorNone) {
Log::getInstance()->log("Video", Log::DEBUG, "OMX_Setup tunnel teardown failed %x", error);
UINT VideoOMX::DeliverMediaSample(UCHAR* buffer, UINT *samplepos)
{
int consumed=0;
- while (consumed<mediapackets.size()) {
+ while (consumed < (int)mediapackets.size()) {
DeliverMediaPacket(mediapackets[consumed], buffer, samplepos);
if (*samplepos == mediapackets[consumed].length) {
*samplepos = 0;
//Log::getInstance()->log("Video", Log::DEBUG, "DeliverMediaPacketOMX time %lld",packet.presentation_time);
-
- OMX_ERRORTYPE error;
-
/*First Check, if we have an video sample*/
if (iframemode) {
//samplepos=0;
if (!iframemode)
EnterIframePlayback();
- int haveToCopy = length;
+ //int haveToCopy = length;
if (!cur_input_buf_omx) {
input_bufs_omx_mutex.Lock();
}
//Now we strip the pes header
pattern = (buffer[0] << 16) | (buffer[1] << 8) | (buffer[2]);
- while (read_pos + 7 <= length) {
+ while ((read_pos + 7) <= (int)length) {
pattern = ((pattern << 8) & 0xFFFFFFFF) | buffer[read_pos + 3];
if (pattern < 0x000001E0 || pattern > 0x000001EF) {
read_pos++;
vector<MediaPacket> mediapackets;
-
-
+ char L_VPE_OMX_CLOCK[128];
+ char L_VPE_OMX_H264_DECODER[128];
+ char L_VPE_OMX_MPEG2_DECODER[128];
+ char L_VPE_OMX_VIDEO_SCHED[128];
+ char L_VPE_OMX_VIDEO_REND[128];
+ char L_VPE_OMX_VIDEO_DEINTERLACE[128];
};