/* */ pic_parameter_set* get_pps(int id) { return pps[id].get(); }
const pic_parameter_set* get_pps(int id) const { return pps[id].get(); }
+ std::shared_ptr<const pic_parameter_set> get_shared_pps(int id) { return pps[id]; }
+
/*
const slice_segment_header* get_SliceHeader_atCtb(int ctb) {
return img->slices[img->get_SliceHeaderIndex_atIndex(ctb)];
imgdata->shdr.slice_loop_filter_across_slices_enabled_flag = false;
imgdata->shdr.compute_derived_values(pps.get());
- imgdata->shdr.pps = &get_pps();
+ imgdata->shdr.pps = pps;
//shdr.slice_pic_order_cnt_lsb = poc & 0xFF;
void* pixels[3];
int stride[3];
- const pic_parameter_set* pps = shdr->pps;
+ const pic_parameter_set* pps = shdr->pps.get();
const seq_parameter_set* sps = &img->get_sps();
const int SubWidthC = sps->SubWidthC;
return DE265_OK;
}
- pps = ctx->get_pps(slice_pic_parameter_set_id);
+ pps = ctx->get_shared_pps(slice_pic_parameter_set_id);
const seq_parameter_set* sps = pps->sps;
if (!sps->sps_read) {
}
- compute_derived_values(pps);
+ compute_derived_values(pps.get());
*continueDecoding = true;
return DE265_OK;
#include <vector>
#include <string.h>
+#include <memory>
#define MAX_NUM_REF_PICS 16
int slice_index; // index through all slices in a picture (internal only)
- const pic_parameter_set* pps;
+ std::shared_ptr<const pic_parameter_set> pps;
char first_slice_segment_in_pic_flag;