File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -1430,6 +1430,32 @@ enum heif_channel_datatype heif_image_get_datatype(const struct heif_image* imag
1430
1430
}
1431
1431
1432
1432
1433
+ int heif_image_list_channels (struct heif_image * image,
1434
+ enum heif_channel** out_channels)
1435
+ {
1436
+ if (!image || !out_channels) {
1437
+ return 0 ;
1438
+ }
1439
+
1440
+ auto channels = image->image ->get_channel_set ();
1441
+
1442
+ *out_channels = new heif_channel[channels.size ()];
1443
+ heif_channel* p = *out_channels;
1444
+ for (heif_channel c : channels) {
1445
+ *p++ = c;
1446
+ }
1447
+
1448
+ return channels.size ();
1449
+ }
1450
+
1451
+
1452
+ void heif_channel_release_list (enum heif_channel** channels)
1453
+ {
1454
+ delete[] channels;
1455
+ }
1456
+
1457
+
1458
+
1433
1459
#define heif_image_get_channel_X (name, type, datatype, bits ) \
1434
1460
const type* heif_image_get_channel_ ## name ## _readonly(const struct heif_image * image, \
1435
1461
enum heif_channel channel, \
Original file line number Diff line number Diff line change @@ -1662,6 +1662,14 @@ uint8_t* heif_image_get_plane(struct heif_image*,
1662
1662
int * out_stride );
1663
1663
1664
1664
1665
+ LIBHEIF_API
1666
+ int heif_image_list_channels (struct heif_image * ,
1667
+ enum heif_channel * * out_channels );
1668
+
1669
+ LIBHEIF_API
1670
+ void heif_channel_release_list (enum heif_channel * * channels );
1671
+
1672
+
1665
1673
struct heif_complex32 {
1666
1674
float real , imaginary ;
1667
1675
};
You can’t perform that action at this time.
0 commit comments