| 155 | } |
| 156 | |
| 157 | nvimgcodecStatus_t CodeStream::getImageInfo(nvimgcodecImageInfo_t* image_info) { |
| 158 | assert(image_info); |
| 159 | |
| 160 | if (ensureParsed() != NVIMGCODEC_STATUS_SUCCESS) { |
| 161 | return parse_status_; |
| 162 | } |
| 163 | |
| 164 | void* struct_next = image_info->struct_next; |
| 165 | *image_info = image_info_; |
| 166 | image_info->struct_next = struct_next; |
| 167 | |
| 168 | while (struct_next) { |
| 169 | auto* ptr = reinterpret_cast<nvimgcodecImageInfo_t*>(struct_next); |
| 170 | auto* next_struct_next = ptr->struct_next; |
| 171 | switch (ptr->struct_type) { |
| 172 | case NVIMGCODEC_STRUCTURE_TYPE_TILE_GEOMETRY_INFO: |
| 173 | copy(*reinterpret_cast<nvimgcodecTileGeometryInfo_t*>(ptr), tile_geometry_info_); |
| 174 | break; |
| 175 | case NVIMGCODEC_STRUCTURE_TYPE_JPEG_IMAGE_INFO: |
| 176 | copy(*reinterpret_cast<nvimgcodecJpegImageInfo_t*>(ptr), jpeg_info_); |
| 177 | break; |
| 178 | default: |
| 179 | return NVIMGCODEC_STATUS_INVALID_PARAMETER; |
| 180 | } |
| 181 | struct_next = next_struct_next; |
| 182 | } |
| 183 | return NVIMGCODEC_STATUS_SUCCESS; |
| 184 | } |
| 185 | |
| 186 | nvimgcodecStatus_t CodeStream::setImageInfo(const nvimgcodecImageInfo_t* image_info) { |
| 187 | void* tmp_struct_next = image_info_.struct_next; |
no test coverage detected