void FinishFrameSVC( NAL *Nal, SPS *Sps, PPS *Pps, LIST_MMO *Current_pic, SLICE *Slice, int EndOfSlice, DATA *TabBlbock, RESIDU *Residu, MMO *Mmo) { if (!EndOfSlice && Mmo -> MemoryAllocation){ LAYER_MMO *LayerMmo = &(Mmo->LayerMMO[Nal->LayerId]); DEP_MMO* dep_mmo = LayerMmo->dep_mmo; if ( Nal -> PicToDisplay && Nal->bFinishLayerRepresent){ const int PicWidthInPix = (Sps -> pic_width_in_mbs + 2) << 4; const int PicHeightInPix = (Sps -> pic_height_in_map_units ) << 4; short *mvL0 = Current_pic->mv_memory_l0; short *mvL1 = Current_pic->mv_memory_l1; short *refL0 = Current_pic->ref_memory_l0; short *refL1 = Current_pic->ref_memory_l1; unsigned char *Y = Current_pic->picture_memory_y; unsigned char *U = Current_pic->picture_memory_u; unsigned char *V = Current_pic->picture_memory_v; //Deblocking filter if (!Nal -> DqId){ Loop_filter_avc(Sps, Pps, Slice, Current_pic, LayerMmo->mb_slice_table, TabBlbock, mvL0, mvL1, refL0, refL1, Residu, Y, U, V); }else { Loop_filter_svc(Nal, Sps, Pps, Slice, Current_pic, LayerMmo->mb_slice_table, mvL0, mvL1, refL0, refL1, Residu, Y, U, V); } //Padding for motion interpolation ImageSetEdges(Y, U, V, PicWidthInPix, PicHeightInPix); logStr("add to poc buffer, poc:%d, pic number:%d\tmemory:%x\n",Current_pic->poc, Mmo->nb_img_display - Mmo -> num_free_poc_address,Current_pic->picture_memory_y); StorePicture(&(Mmo->poc_params[Mmo->nb_img_display - Mmo -> num_free_poc_address]), Current_pic,Sps,Nal->DqIdToDisplay); Mmo->num_free_poc_address--; } } }
void CZXingBarcodeReaderAppView::MceoCapturedDataReady( TDesC8* aData ) { SetTitle(_L("Saving picture...")); delete iData; iData = NULL; iData = aData->Alloc(); if (iCameraWrapper) iCameraWrapper->ReleaseImageBuffer(); TRAP_IGNORE(iAppUi->UseOptionsBackCbaL()); StorePicture(iData); }
void display_order (SPS *sps_id, LIST_MMO *Current_pic, DISPLAY_M* display_memory, int *x_size, int *y_size, int *Crop, int *img_to_display, MMO *mmo) { int j; //Store the current picture in the reordoring buffer StorePicture(&mmo -> poc_params[mmo -> nb_img_display - mmo -> num_free_poc_address], Current_pic, sps_id, 0); mmo -> num_free_poc_address --; mmo -> LayerMMO [0] . num_decoded_frame ++; //Display the first picture, and wait after for enough renderer if ( (mmo -> LayerMMO [0] . num_decoded_frame >= mmo -> nb_img_display) || (mmo -> LayerMMO [0] . num_decoded_frame == 1)){ int BestPos; //Find the best picture with the correct poc POC_PARAMS *Frame = FindBestFrame(mmo, mmo -> poc_params, &BestPos, MIN_POC); mmo -> num_free_poc_address ++; //Remove from short or long ref the current picture CurrentDisplay(mmo, &mmo -> LayerMMO[0], Frame -> Picture, display_memory); //printf("%d \n", Frame -> Picture -> poc); *img_to_display = 1; *x_size = Frame -> x_size; *y_size = Frame -> y_size; *Crop = Frame -> Crop; for (j = BestPos; j < mmo -> nb_img_display - mmo -> num_free_poc_address; j++){ memmove(&mmo -> poc_params[j], &mmo -> poc_params[j + 1], 1 * sizeof(POC_PARAMS)); } }else{ *img_to_display = 0; *x_size = (sps_id -> pic_width_in_mbs) << 4; *y_size = (sps_id -> pic_height_in_map_units) << 4; } }