@@ -377,6 +377,7 @@ def decode_webp(
377377    return  torch .ops .image .decode_webp (input , mode .value )
378378
379379
380+ # TODO: remove this, and the associated avif decoder 
380381def  _decode_avif (
381382    input : torch .Tensor ,
382383    mode : ImageReadMode  =  ImageReadMode .UNCHANGED ,
@@ -408,6 +409,7 @@ def _decode_avif(
408409    return  torch .ops .image .decode_avif (input , mode .value )
409410
410411
412+ # TODO: remove this, and the associated heic decoder 
411413def  _decode_heic (input : torch .Tensor , mode : ImageReadMode  =  ImageReadMode .UNCHANGED ) ->  torch .Tensor :
412414    """ 
413415    Decode an HEIC image into a 3 dimensional RGB[A] Tensor. 
@@ -434,3 +436,32 @@ def _decode_heic(input: torch.Tensor, mode: ImageReadMode = ImageReadMode.UNCHAN
434436    if  isinstance (mode , str ):
435437        mode  =  ImageReadMode [mode .upper ()]
436438    return  torch .ops .image .decode_heic (input , mode .value )
439+ 
440+ 
441+ _EXTRA_DECODERS_ALREADY_LOADED  =  False 
442+ 
443+ 
444+ def  _load_extra_decoders_once ():
445+     global  _EXTRA_DECODERS_ALREADY_LOADED 
446+     if  _EXTRA_DECODERS_ALREADY_LOADED :
447+         return 
448+ 
449+     try :
450+         import  torchvision_extra_decoders 
451+     except  ImportError  as  e :
452+         raise  RuntimeError ("You need to pip install torchvision-extra-decoders blah blah blah" ) from  e 
453+ 
454+     # This will expose torch.ops.extra_decoders_ns.decode_avif and torch.ops.extra_decoders_ns.decode_heic 
455+     torchvision_extra_decoders .expose_extra_decoders ()
456+ 
457+     _EXTRA_DECODERS_ALREADY_LOADED  =  True 
458+ 
459+ 
460+ def  decode_avif (input : torch .Tensor , mode : ImageReadMode  =  ImageReadMode .UNCHANGED ) ->  torch .Tensor :
461+     _load_extra_decoders_once ()
462+     return  torch .ops .extra_decoders_ns .decode_avif (input , mode .value )
463+ 
464+ 
465+ def  decode_heic (input : torch .Tensor , mode : ImageReadMode  =  ImageReadMode .UNCHANGED ) ->  torch .Tensor :
466+     _load_extra_decoders_once ()
467+     return  torch .ops .extra_decoders_ns .decode_heic (input , mode .value )
0 commit comments