MCPcopy Create free account
hub / github.com/WiVRn/WiVRn / decoder

Method decoder

client/decoder/ffmpeg/ffmpeg_decoder.cpp:102–195  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

100};
101
102decoder::decoder(
103 vk::raii::Device & device,
104 vk::raii::PhysicalDevice & physical_device,
105 const wivrn::to_headset::video_stream_description & description,
106 uint8_t stream_index,
107 std::weak_ptr<scenes::stream> scene,
108 shard_accumulator * accumulator) :
109 device(device),
110 codec(nullptr, free_codec_context),
111 sws(nullptr, sws_freeContext),
112 weak_scene(scene),
113 accumulator(accumulator),
114 extent{
115 .width = description.width,
116 .height = description.height / (stream_index == 2 ? 2u : 1u),
117 }
118{
119 free_images.resize(image_count);
120
121 for (int i = 0; i < image_count; i++)
122 {
123 free_images[i] = i;
124
125 vk::ImageCreateInfo image_info{
126 .imageType = vk::ImageType::e2D,
127 .format = vk::Format::eA8B8G8R8SrgbPack32,
128 .extent = {
129 .width = extent.width,
130 .height = extent.height,
131 .depth = 1,
132 },
133 .mipLevels = 1,
134 .arrayLayers = 1,
135 .samples = vk::SampleCountFlagBits::e1,
136 .tiling = vk::ImageTiling::eLinear,
137 .usage = vk::ImageUsageFlagBits::eSampled,
138 .initialLayout = vk::ImageLayout::eUndefined,
139 };
140
141 VmaAllocationCreateInfo alloc_info{
142 .requiredFlags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT};
143
144 decoded_images[i].image = image_allocation(device, image_info, alloc_info);
145
146 decoded_images[i].image.map();
147
148 vk::ImageSubresource resource;
149 resource.aspectMask = vk::ImageAspectFlagBits::eColor;
150
151 decoded_images[i].layout = decoded_images[i].image->getSubresourceLayout(resource);
152
153 decoded_images[i].image_view = vk::raii::ImageView(
154 device,
155 {
156 .image = (vk::Image)decoded_images[i].image,
157 .viewType = vk::ImageViewType::e2D,
158 .format = image_info.format,
159 .subresourceRange = {

Callers

nothing calls this directly

Calls 6

ImageViewClass · 0.85
codec_idFunction · 0.85
resizeMethod · 0.45
mapMethod · 0.45
resetMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected