|
6 | 6 |
|
7 | 7 | import contextlib |
8 | 8 | import gc |
9 | | -import json |
10 | 9 | from functools import partial |
11 | | -from unittest.mock import patch |
12 | 10 |
|
13 | 11 | import numpy |
14 | 12 | import pytest |
@@ -877,61 +875,6 @@ def test_get_frames_in_range_slice_indices_syntax(self, device, seek_mode): |
877 | 875 | ).to(device) |
878 | 876 | assert_frames_equal(frames387_None.data, reference_frame387_389) |
879 | 877 |
|
880 | | - @pytest.mark.parametrize("device", all_supported_devices()) |
881 | | - @pytest.mark.parametrize("seek_mode", ("exact", "approximate")) |
882 | | - @patch("torchcodec._core._metadata._get_stream_json_metadata") |
883 | | - def test_get_frames_with_missing_num_frames_metadata( |
884 | | - self, mock_get_stream_json_metadata, device, seek_mode |
885 | | - ): |
886 | | - # Create a mock stream_dict to test that initializing VideoDecoder without |
887 | | - # num_frames_from_header and num_frames_from_content calculates num_frames |
888 | | - # using the average_fps and duration_seconds metadata. |
889 | | - mock_stream_dict = { |
890 | | - "averageFpsFromHeader": 29.97003, |
891 | | - "beginStreamSecondsFromContent": 0.0, |
892 | | - "beginStreamSecondsFromHeader": 0.0, |
893 | | - "bitRate": 128783.0, |
894 | | - "codec": "h264", |
895 | | - "durationSecondsFromHeader": 13.013, |
896 | | - "endStreamSecondsFromContent": 13.013, |
897 | | - "width": 480, |
898 | | - "height": 270, |
899 | | - "mediaType": "video", |
900 | | - "numFramesFromHeader": None, |
901 | | - "numFramesFromContent": None, |
902 | | - "beginStreamSeconds": 0.0, |
903 | | - "durationSeconds": 13.013, |
904 | | - "endStreamSeconds": 13.013, |
905 | | - "numFrames": int(29.97003 * 13.013), # Calculated from fps * duration |
906 | | - "averageFps": 29.97003, |
907 | | - } |
908 | | - # Set the return value of the mock to be the mock_stream_dict |
909 | | - mock_get_stream_json_metadata.return_value = json.dumps(mock_stream_dict) |
910 | | - |
911 | | - decoder, device = make_video_decoder( |
912 | | - NASA_VIDEO.path, |
913 | | - stream_index=3, |
914 | | - device=device, |
915 | | - seek_mode=seek_mode, |
916 | | - ) |
917 | | - |
918 | | - assert decoder.metadata.num_frames_from_header is None |
919 | | - assert decoder.metadata.num_frames_from_content is None |
920 | | - assert decoder.metadata.duration_seconds is not None |
921 | | - assert decoder.metadata.average_fps is not None |
922 | | - assert decoder.metadata.num_frames == int( |
923 | | - decoder.metadata.duration_seconds * decoder.metadata.average_fps |
924 | | - ) |
925 | | - assert len(decoder) == 390 |
926 | | - |
927 | | - # Test get_frames_in_range Python logic which uses the num_frames metadata mocked earlier. |
928 | | - # The frame is read at the C++ level. |
929 | | - ref_frames9 = NASA_VIDEO.get_frame_data_by_range( |
930 | | - start=9, stop=10, stream_index=3 |
931 | | - ).to(device) |
932 | | - frames9 = decoder.get_frames_in_range(start=9, stop=10) |
933 | | - assert_frames_equal(ref_frames9, frames9.data) |
934 | | - |
935 | 878 | @pytest.mark.parametrize("dimension_order", ["NCHW", "NHWC"]) |
936 | 879 | @pytest.mark.parametrize( |
937 | 880 | "frame_getter", |
|
0 commit comments