@@ -37,11 +37,11 @@ TORCH_LIBRARY(torchcodec_ns, m) {
3737 m.def (
3838 " _encode_audio_to_file_like(Tensor samples, int sample_rate, str format, int file_like_context, int? bit_rate=None, int? num_channels=None, int? desired_sample_rate=None) -> ()" );
3939 m.def (
40- " encode_video_to_file(Tensor frames, int frame_rate, str filename, str? codec=None, str? pixel_format=None, float? crf=None, str? preset=None, str[]? extra_options=None) -> ()" );
40+ " encode_video_to_file(Tensor frames, int frame_rate, str filename, str device= \" cpu \" , str ? codec=None, str? pixel_format=None, float? crf=None, str? preset=None, str[]? extra_options=None) -> ()" );
4141 m.def (
42- " encode_video_to_tensor(Tensor frames, int frame_rate, str format, str? codec=None, str? pixel_format=None, float? crf=None, str? preset=None, str[]? extra_options=None) -> Tensor" );
42+ " encode_video_to_tensor(Tensor frames, int frame_rate, str format, str device= \" cpu \" , str ? codec=None, str? pixel_format=None, float? crf=None, str? preset=None, str[]? extra_options=None) -> Tensor" );
4343 m.def (
44- " _encode_video_to_file_like(Tensor frames, int frame_rate, str format, int file_like_context, str? codec=None, str? pixel_format=None, float? crf=None, str? preset=None, str[]? extra_options=None) -> ()" );
44+ " _encode_video_to_file_like(Tensor frames, int frame_rate, str format, int file_like_context, str device= \" cpu \" ,str ? codec=None, str? pixel_format=None, float? crf=None, str? preset=None, str[]? extra_options=None) -> ()" );
4545 m.def (
4646 " create_from_tensor(Tensor video_tensor, str? seek_mode=None) -> Tensor" );
4747 m.def (
@@ -641,6 +641,7 @@ void encode_video_to_file(
641641 const at::Tensor& frames,
642642 int64_t frame_rate,
643643 std::string_view file_name,
644+ std::string_view device = " cpu" ,
644645 std::optional<std::string_view> codec = std::nullopt ,
645646 std::optional<std::string_view> pixel_format = std::nullopt ,
646647 std::optional<double > crf = std::nullopt ,
@@ -650,6 +651,8 @@ void encode_video_to_file(
650651 videoStreamOptions.codec = std::move (codec);
651652 videoStreamOptions.pixelFormat = std::move (pixel_format);
652653 videoStreamOptions.crf = crf;
654+
655+ videoStreamOptions.device = torch::Device (std::string (device));
653656 videoStreamOptions.preset = preset;
654657
655658 if (extra_options.has_value ()) {
@@ -669,6 +672,7 @@ at::Tensor encode_video_to_tensor(
669672 const at::Tensor& frames,
670673 int64_t frame_rate,
671674 std::string_view format,
675+ std::string_view device = " cpu" ,
672676 std::optional<std::string_view> codec = std::nullopt ,
673677 std::optional<std::string_view> pixel_format = std::nullopt ,
674678 std::optional<double > crf = std::nullopt ,
@@ -679,6 +683,8 @@ at::Tensor encode_video_to_tensor(
679683 videoStreamOptions.codec = std::move (codec);
680684 videoStreamOptions.pixelFormat = std::move (pixel_format);
681685 videoStreamOptions.crf = crf;
686+
687+ videoStreamOptions.device = torch::Device (std::string (device));
682688 videoStreamOptions.preset = preset;
683689
684690 if (extra_options.has_value ()) {
@@ -700,6 +706,7 @@ void _encode_video_to_file_like(
700706 int64_t frame_rate,
701707 std::string_view format,
702708 int64_t file_like_context,
709+ std::string_view device = " cpu" ,
703710 std::optional<std::string_view> codec = std::nullopt ,
704711 std::optional<std::string_view> pixel_format = std::nullopt ,
705712 std::optional<double > crf = std::nullopt ,
@@ -715,6 +722,7 @@ void _encode_video_to_file_like(
715722 videoStreamOptions.codec = std::move (codec);
716723 videoStreamOptions.pixelFormat = std::move (pixel_format);
717724 videoStreamOptions.crf = crf;
725+ videoStreamOptions.device = torch::Device (std::string (device));
718726 videoStreamOptions.preset = preset;
719727
720728 if (extra_options.has_value ()) {
0 commit comments