rx-player 3.33.4-dev.2024083000 → 3.33.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.prettierignore +1 -0
- package/.prettierrc +4 -0
- package/.vscode/settings.json +9 -0
- package/CHANGELOG.md +1662 -1076
- package/MAINTAINERS.md +9 -12
- package/README.md +111 -127
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/add_class_name.js +4 -3
- package/dist/_esm5.processed/compat/add_text_track.d.ts +1 -1
- package/dist/_esm5.processed/compat/add_text_track.js +4 -4
- package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +2 -1
- package/dist/_esm5.processed/compat/browser_compatibility_types.js +15 -10
- package/dist/_esm5.processed/compat/browser_detection.d.ts +3 -1
- package/dist/_esm5.processed/compat/browser_detection.js +18 -10
- package/dist/_esm5.processed/compat/can_reuse_media_keys.d.ts +4 -0
- package/dist/_esm5.processed/compat/can_reuse_media_keys.js +6 -2
- package/dist/_esm5.processed/compat/change_source_buffer_type.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/close_session.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/close_session.js +17 -13
- package/dist/_esm5.processed/compat/eme/custom_key_system_access.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +8 -9
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +3 -2
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +7 -9
- package/dist/_esm5.processed/compat/eme/custom_media_keys/types.d.ts +4 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.d.ts +2 -2
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +6 -12
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts +2 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +3 -3
- package/dist/_esm5.processed/compat/eme/eme-api-implementation.d.ts +4 -4
- package/dist/_esm5.processed/compat/eme/eme-api-implementation.js +26 -11
- package/dist/_esm5.processed/compat/eme/generate_key_request.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/generate_key_request.js +17 -20
- package/dist/_esm5.processed/compat/eme/get_init_data.d.ts +3 -1
- package/dist/_esm5.processed/compat/eme/get_init_data.js +7 -9
- package/dist/_esm5.processed/compat/eme/get_uuid_kid_from_keystatus_kid.js +2 -3
- package/dist/_esm5.processed/compat/eme/get_webkit_fairplay_initdata.js +12 -13
- package/dist/_esm5.processed/compat/eme/index.d.ts +8 -5
- package/dist/_esm5.processed/compat/eme/index.js +1 -1
- package/dist/_esm5.processed/compat/eme/load_session.d.ts +1 -1
- package/dist/_esm5.processed/compat/enable_audio_track.d.ts +1 -1
- package/dist/_esm5.processed/compat/event_listeners.d.ts +26 -24
- package/dist/_esm5.processed/compat/event_listeners.js +14 -29
- package/dist/_esm5.processed/compat/fullscreen.d.ts +1 -1
- package/dist/_esm5.processed/compat/fullscreen.js +1 -1
- package/dist/_esm5.processed/compat/generate_init_data.js +3 -5
- package/dist/_esm5.processed/compat/index.d.ts +6 -3
- package/dist/_esm5.processed/compat/index.js +2 -2
- package/dist/_esm5.processed/compat/is_vtt_cue.d.ts +1 -1
- package/dist/_esm5.processed/compat/make_vtt_cue.d.ts +1 -1
- package/dist/_esm5.processed/compat/on_height_width_change.d.ts +2 -2
- package/dist/_esm5.processed/compat/on_height_width_change.js +3 -2
- package/dist/_esm5.processed/compat/patch_webkit_source_buffer.js +28 -29
- package/dist/_esm5.processed/compat/should_favour_custom_safari_EME.js +2 -2
- package/dist/_esm5.processed/compat/should_reload_media_source_on_decipherability_update.js +1 -2
- package/dist/_esm5.processed/config.d.ts +1 -1
- package/dist/_esm5.processed/config.js +0 -15
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +7 -6
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +45 -22
- package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.js +11 -10
- package/dist/_esm5.processed/core/adaptive/guess_based_chooser.d.ts +4 -4
- package/dist/_esm5.processed/core/adaptive/guess_based_chooser.js +7 -6
- package/dist/_esm5.processed/core/adaptive/index.d.ts +3 -2
- package/dist/_esm5.processed/core/adaptive/network_analyzer.d.ts +4 -4
- package/dist/_esm5.processed/core/adaptive/network_analyzer.js +43 -38
- package/dist/_esm5.processed/core/adaptive/utils/bandwidth_estimator.js +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/ewma.js +1 -2
- package/dist/_esm5.processed/core/adaptive/utils/filter_by_bitrate.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/filter_by_width.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/filter_by_width.js +3 -6
- package/dist/_esm5.processed/core/adaptive/utils/get_buffer_levels.js +7 -4
- package/dist/_esm5.processed/core/adaptive/utils/last_estimate_storage.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/pending_requests_store.d.ts +2 -1
- package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.js +8 -5
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +5 -3
- package/dist/_esm5.processed/core/api/debug/buffer_graph.d.ts +1 -1
- package/dist/_esm5.processed/core/api/debug/buffer_graph.js +3 -8
- package/dist/_esm5.processed/core/api/debug/buffer_size_graph.js +1 -2
- package/dist/_esm5.processed/core/api/debug/modules/general_info.d.ts +2 -2
- package/dist/_esm5.processed/core/api/debug/modules/general_info.js +17 -13
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.d.ts +3 -3
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +4 -2
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.d.ts +2 -2
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +1 -1
- package/dist/_esm5.processed/core/api/debug/render.d.ts +2 -2
- package/dist/_esm5.processed/core/api/debug/utils.d.ts +5 -5
- package/dist/_esm5.processed/core/api/index.d.ts +1 -1
- package/dist/_esm5.processed/core/api/option_utils.d.ts +3 -3
- package/dist/_esm5.processed/core/api/option_utils.js +85 -48
- package/dist/_esm5.processed/core/api/playback_observer.d.ts +16 -18
- package/dist/_esm5.processed/core/api/playback_observer.js +65 -42
- package/dist/_esm5.processed/core/api/public_api.d.ts +10 -9
- package/dist/_esm5.processed/core/api/public_api.js +103 -94
- package/dist/_esm5.processed/core/api/tracks_management/media_element_track_choice_manager.d.ts +1 -1
- package/dist/_esm5.processed/core/api/tracks_management/media_element_track_choice_manager.js +25 -14
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.d.ts +3 -3
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.js +72 -80
- package/dist/_esm5.processed/core/api/utils.d.ts +5 -5
- package/dist/_esm5.processed/core/api/utils.js +5 -8
- package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.d.ts +12 -54
- package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +55 -66
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.d.ts +10 -5
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +16 -8
- package/dist/_esm5.processed/core/decrypt/content_decryptor.d.ts +11 -2
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +136 -65
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.d.ts +5 -4
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +18 -7
- package/dist/_esm5.processed/core/decrypt/create_session.d.ts +5 -4
- package/dist/_esm5.processed/core/decrypt/create_session.js +6 -12
- package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +1 -2
- package/dist/_esm5.processed/core/decrypt/find_key_system.d.ts +13 -3
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +45 -22
- package/dist/_esm5.processed/core/decrypt/get_key_system_configuration.js +1 -2
- package/dist/_esm5.processed/core/decrypt/get_media_keys.d.ts +9 -4
- package/dist/_esm5.processed/core/decrypt/get_media_keys.js +17 -6
- package/dist/_esm5.processed/core/decrypt/init_media_keys.d.ts +3 -3
- package/dist/_esm5.processed/core/decrypt/session_events_listener.d.ts +2 -2
- package/dist/_esm5.processed/core/decrypt/session_events_listener.js +12 -16
- package/dist/_esm5.processed/core/decrypt/set_server_certificate.d.ts +3 -3
- package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +6 -7
- package/dist/_esm5.processed/core/decrypt/types.d.ts +11 -5
- package/dist/_esm5.processed/core/decrypt/utils/are_init_values_compatible.js +20 -12
- package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.d.ts +2 -2
- package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.js +5 -4
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_stored_persistent_info.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.js +16 -9
- package/dist/_esm5.processed/core/decrypt/utils/is_session_usable.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/is_session_usable.js +1 -2
- package/dist/_esm5.processed/core/decrypt/utils/key_session_record.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/key_session_record.js +1 -2
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.d.ts +11 -13
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +13 -13
- package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.d.ts +8 -3
- package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.js +1 -2
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.d.ts +3 -3
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +27 -16
- package/dist/_esm5.processed/core/decrypt/utils/serializable_bytes.js +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/server_certificate_store.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/server_certificate_store.js +19 -12
- package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.d.ts +2 -2
- package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.js +5 -6
- package/dist/_esm5.processed/core/fetchers/index.d.ts +6 -3
- package/dist/_esm5.processed/core/fetchers/index.js +1 -1
- package/dist/_esm5.processed/core/fetchers/manifest/index.d.ts +3 -2
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +2 -2
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +68 -61
- package/dist/_esm5.processed/core/fetchers/segment/index.d.ts +4 -3
- package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.d.ts +4 -3
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +9 -8
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +41 -29
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +5 -5
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +2 -3
- package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.d.ts +1 -1
- package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.js +19 -18
- package/dist/_esm5.processed/core/fetchers/utils/error_selector.d.ts +1 -1
- package/dist/_esm5.processed/core/fetchers/utils/error_selector.js +1 -1
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.d.ts +3 -3
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +25 -25
- package/dist/_esm5.processed/core/init/directfile_content_initializer.d.ts +4 -4
- package/dist/_esm5.processed/core/init/directfile_content_initializer.js +21 -17
- package/dist/_esm5.processed/core/init/index.d.ts +2 -1
- package/dist/_esm5.processed/core/init/index.js +1 -1
- package/dist/_esm5.processed/core/init/media_source_content_initializer.d.ts +9 -9
- package/dist/_esm5.processed/core/init/media_source_content_initializer.js +64 -32
- package/dist/_esm5.processed/core/init/types.d.ts +10 -12
- package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.d.ts +6 -5
- package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +20 -19
- package/dist/_esm5.processed/core/init/utils/create_media_source.d.ts +1 -1
- package/dist/_esm5.processed/core/init/utils/create_media_source.js +2 -3
- package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.d.ts +6 -6
- package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.js +5 -3
- package/dist/_esm5.processed/core/init/utils/end_of_stream.d.ts +1 -1
- package/dist/_esm5.processed/core/init/utils/get_initial_time.d.ts +1 -1
- package/dist/_esm5.processed/core/init/utils/get_initial_time.js +12 -15
- package/dist/_esm5.processed/core/init/utils/get_loaded_reference.d.ts +3 -3
- package/dist/_esm5.processed/core/init/utils/get_loaded_reference.js +1 -2
- package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.d.ts +9 -9
- package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +39 -3
- package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.d.ts +9 -8
- package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.js +12 -9
- package/dist/_esm5.processed/core/init/utils/media_source_duration_updater.js +10 -7
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +7 -6
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +24 -24
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/are_same_stream_events.js +1 -3
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/index.d.ts +1 -1
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.d.ts +2 -2
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +14 -6
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.d.ts +3 -3
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.js +12 -19
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/types.d.ts +1 -1
- package/dist/_esm5.processed/core/init/utils/throw_on_media_error.d.ts +1 -1
- package/dist/_esm5.processed/core/init/utils/throw_on_media_error.js +11 -6
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.d.ts +6 -6
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +12 -13
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.d.ts +3 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +6 -9
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +3 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +2 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +7 -7
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.d.ts +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +4 -4
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/update_proportional_elements.js +1 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.d.ts +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +2 -6
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +2 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +2 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/parsers.d.ts +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +5 -7
- package/dist/_esm5.processed/core/segment_buffers/implementations/utils/manual_time_ranges.js +1 -1
- package/dist/_esm5.processed/core/segment_buffers/index.d.ts +8 -4
- package/dist/_esm5.processed/core/segment_buffers/index.js +2 -2
- package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.d.ts +1 -1
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.d.ts +6 -4
- package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.d.ts +4 -4
- package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +63 -54
- package/dist/_esm5.processed/core/segment_buffers/inventory/types.d.ts +1 -1
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +17 -23
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +3 -3
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +49 -22
- package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +8 -7
- package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.d.ts +7 -6
- package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.js +2 -1
- package/dist/_esm5.processed/core/stream/index.d.ts +6 -5
- package/dist/_esm5.processed/core/stream/orchestrator/get_time_ranges_for_content.d.ts +3 -3
- package/dist/_esm5.processed/core/stream/orchestrator/get_time_ranges_for_content.js +2 -2
- package/dist/_esm5.processed/core/stream/orchestrator/index.d.ts +3 -2
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +9 -7
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +47 -34
- package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +3 -3
- package/dist/_esm5.processed/core/stream/period/period_stream.js +49 -16
- package/dist/_esm5.processed/core/stream/period/types.d.ts +15 -12
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +9 -9
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +26 -25
- package/dist/_esm5.processed/core/stream/representation/representation_stream.d.ts +3 -3
- package/dist/_esm5.processed/core/stream/representation/representation_stream.js +47 -23
- package/dist/_esm5.processed/core/stream/representation/types.d.ts +9 -8
- package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.d.ts +4 -4
- package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.js +10 -7
- package/dist/_esm5.processed/core/stream/representation/utils/check_for_discontinuity.d.ts +4 -3
- package/dist/_esm5.processed/core/stream/representation/utils/check_for_discontinuity.js +16 -18
- package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.d.ts +7 -6
- package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.js +11 -11
- package/dist/_esm5.processed/core/stream/representation/utils/force_garbage_collection.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/representation/utils/force_garbage_collection.js +6 -8
- package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.d.ts +5 -4
- package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.js +40 -19
- package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.d.ts +4 -3
- package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.js +27 -28
- package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.d.ts +6 -5
- package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.js +7 -5
- package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.d.ts +8 -7
- package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +13 -10
- package/dist/_esm5.processed/default_config.js +20 -16
- package/dist/_esm5.processed/errors/encrypted_media_error.d.ts +2 -2
- package/dist/_esm5.processed/errors/encrypted_media_error.js +1 -1
- package/dist/_esm5.processed/errors/error_codes.d.ts +1 -1
- package/dist/_esm5.processed/errors/error_codes.js +1 -1
- package/dist/_esm5.processed/errors/format_error.d.ts +2 -2
- package/dist/_esm5.processed/errors/format_error.js +1 -2
- package/dist/_esm5.processed/errors/index.d.ts +6 -3
- package/dist/_esm5.processed/errors/index.js +2 -2
- package/dist/_esm5.processed/errors/is_known_error.d.ts +1 -1
- package/dist/_esm5.processed/errors/is_known_error.js +2 -2
- package/dist/_esm5.processed/errors/media_error.d.ts +3 -3
- package/dist/_esm5.processed/errors/media_error.js +4 -7
- package/dist/_esm5.processed/errors/network_error.d.ts +2 -2
- package/dist/_esm5.processed/errors/network_error.js +3 -3
- package/dist/_esm5.processed/errors/other_error.d.ts +1 -1
- package/dist/_esm5.processed/errors/other_error.js +1 -1
- package/dist/_esm5.processed/errors/request_error.d.ts +1 -1
- package/dist/_esm5.processed/experimental/features/dash_wasm.d.ts +2 -2
- package/dist/_esm5.processed/experimental/features/debug_element.d.ts +1 -1
- package/dist/_esm5.processed/experimental/features/local.d.ts +1 -1
- package/dist/_esm5.processed/experimental/features/metaplaylist.d.ts +1 -1
- package/dist/_esm5.processed/experimental/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/index.js +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/dash.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/metaplaylist.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/index.js +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.d.ts +3 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +7 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +1 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.d.ts +3 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +12 -18
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +13 -23
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +8 -7
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.js +9 -13
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +4 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +5 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.js +10 -47
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts +2 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +8 -5
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.d.ts +2 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +21 -13
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.d.ts +2 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +22 -18
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +4 -7
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts +2 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +3 -5
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +4 -10
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.d.ts +2 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +2 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.d.ts +2 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +2 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.d.ts +2 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/utils.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/utils.js +6 -6
- package/dist/_esm5.processed/experimental/tools/parseBIFThumbnails.js +5 -4
- package/dist/_esm5.processed/features/add_features.d.ts +1 -1
- package/dist/_esm5.processed/features/features_object.d.ts +1 -1
- package/dist/_esm5.processed/features/features_object.js +4 -3
- package/dist/_esm5.processed/features/index.d.ts +3 -2
- package/dist/_esm5.processed/features/index.js +1 -1
- package/dist/_esm5.processed/features/list/bif_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/dash.d.ts +1 -1
- package/dist/_esm5.processed/features/list/directfile.d.ts +1 -1
- package/dist/_esm5.processed/features/list/eme.d.ts +1 -1
- package/dist/_esm5.processed/features/list/html_sami_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/html_srt_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/html_text_buffer.d.ts +1 -1
- package/dist/_esm5.processed/features/list/html_ttml_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/html_vtt_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/image_buffer.d.ts +1 -1
- package/dist/_esm5.processed/features/list/native_sami_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/native_srt_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/native_text_buffer.d.ts +1 -1
- package/dist/_esm5.processed/features/list/native_ttml_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/native_vtt_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/smooth.d.ts +1 -1
- package/dist/_esm5.processed/features/types.d.ts +11 -11
- package/dist/_esm5.processed/manifest/adaptation.d.ts +3 -3
- package/dist/_esm5.processed/manifest/adaptation.js +24 -14
- package/dist/_esm5.processed/manifest/index.d.ts +9 -5
- package/dist/_esm5.processed/manifest/index.js +4 -8
- package/dist/_esm5.processed/manifest/manifest.d.ts +8 -7
- package/dist/_esm5.processed/manifest/manifest.js +37 -33
- package/dist/_esm5.processed/manifest/period.d.ts +4 -4
- package/dist/_esm5.processed/manifest/period.js +7 -14
- package/dist/_esm5.processed/manifest/representation.d.ts +4 -4
- package/dist/_esm5.processed/manifest/representation.js +5 -5
- package/dist/_esm5.processed/manifest/representation_index/index.d.ts +3 -2
- package/dist/_esm5.processed/manifest/representation_index/index.js +1 -1
- package/dist/_esm5.processed/manifest/representation_index/static.d.ts +1 -1
- package/dist/_esm5.processed/manifest/representation_index/static.js +6 -2
- package/dist/_esm5.processed/manifest/representation_index/types.d.ts +6 -5
- package/dist/_esm5.processed/manifest/update_period_in_place.d.ts +3 -3
- package/dist/_esm5.processed/manifest/update_period_in_place.js +9 -9
- package/dist/_esm5.processed/manifest/update_periods.d.ts +2 -2
- package/dist/_esm5.processed/manifest/update_periods.js +6 -3
- package/dist/_esm5.processed/manifest/utils.d.ts +4 -4
- package/dist/_esm5.processed/manifest/utils.js +6 -4
- package/dist/_esm5.processed/parsers/containers/isobmff/create_box.d.ts +1 -1
- package/dist/_esm5.processed/parsers/containers/isobmff/create_box.js +5 -4
- package/dist/_esm5.processed/parsers/containers/isobmff/drm/playready.js +2 -3
- package/dist/_esm5.processed/parsers/containers/isobmff/get_box.js +3 -5
- package/dist/_esm5.processed/parsers/containers/isobmff/index.d.ts +5 -4
- package/dist/_esm5.processed/parsers/containers/isobmff/index.js +4 -4
- package/dist/_esm5.processed/parsers/containers/isobmff/read.d.ts +1 -1
- package/dist/_esm5.processed/parsers/containers/isobmff/read.js +9 -9
- package/dist/_esm5.processed/parsers/containers/isobmff/take_pssh_out.js +3 -4
- package/dist/_esm5.processed/parsers/containers/isobmff/utils.js +51 -41
- package/dist/_esm5.processed/parsers/containers/matroska/index.d.ts +2 -1
- package/dist/_esm5.processed/parsers/containers/matroska/index.js +1 -1
- package/dist/_esm5.processed/parsers/containers/matroska/utils.js +29 -16
- package/dist/_esm5.processed/parsers/images/bif.js +15 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/attach_trickmode_track.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.js +1 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_hdr_information.js +4 -12
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.js +4 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_minimum_and_maximum_positions.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +5 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.js +5 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/index.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +34 -28
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.js +7 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -11
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/index.d.ts +10 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +30 -18
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +56 -55
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +2 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +11 -15
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +12 -9
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +29 -19
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/index.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +6 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +73 -59
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.js +2 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.js +7 -8
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +52 -50
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_availability_start_time.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +6 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +52 -31
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +41 -30
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +63 -64
- package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +73 -37
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/EventStream.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/EventStream.js +13 -7
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Initialization.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Initialization.js +5 -3
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/MPD.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/MPD.js +44 -27
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Period.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Period.js +14 -8
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +36 -18
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +36 -18
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentList.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +17 -8
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.js +9 -5
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +8 -26
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +6 -12
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +9 -4
- package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/index.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +29 -16
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +22 -35
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +3 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +2 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Label.d.ts +3 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Label.js +9 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +5 -5
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +9 -6
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +8 -16
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +5 -10
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +11 -18
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +2 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +5 -5
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.js +5 -6
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/utils.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/utils.js +2 -4
- package/dist/_esm5.processed/parsers/manifest/local/index.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.js +25 -16
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +5 -10
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/index.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +33 -29
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +9 -7
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +136 -109
- package/dist/_esm5.processed/parsers/manifest/smooth/get_codecs.js +3 -3
- package/dist/_esm5.processed/parsers/manifest/smooth/index.d.ts +4 -2
- package/dist/_esm5.processed/parsers/manifest/smooth/index.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/parse_C_nodes.js +6 -6
- package/dist/_esm5.processed/parsers/manifest/smooth/parse_protection_node.js +12 -8
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +48 -53
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +10 -7
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/tokens.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/tokens.js +2 -3
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/utils/check_manifest_ids.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +9 -6
- package/dist/_esm5.processed/parsers/manifest/utils/get_first_time_from_adaptation.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/get_first_time_from_adaptation.js +5 -4
- package/dist/_esm5.processed/parsers/manifest/utils/get_last_time_from_adaptation.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/get_last_time_from_adaptation.js +5 -4
- package/dist/_esm5.processed/parsers/manifest/utils/get_maximum_positions.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/get_maximum_positions.js +10 -16
- package/dist/_esm5.processed/parsers/manifest/utils/get_minimum_position.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/get_minimum_position.js +4 -10
- package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.js +4 -5
- package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.js +18 -18
- package/dist/_esm5.processed/parsers/texttracks/index.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/sami/html.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/sami/html.js +15 -15
- package/dist/_esm5.processed/parsers/texttracks/sami/native.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/sami/native.js +7 -14
- package/dist/_esm5.processed/parsers/texttracks/srt/html.js +6 -6
- package/dist/_esm5.processed/parsers/texttracks/srt/native.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/srt/native.js +1 -7
- package/dist/_esm5.processed/parsers/texttracks/srt/parse_cue.js +4 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_parameters.js +4 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_time_delimiters.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_time_delimiters.js +6 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +2 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +2 -6
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_font_size.js +3 -4
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +2 -6
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_padding.js +2 -6
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.d.ts +2 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.js +22 -21
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/generate_css_test_outline.js +2 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_cue.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_cue.js +5 -3
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_ttml_to_div.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +34 -19
- package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_cue.d.ts +2 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_cue.js +9 -10
- package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_ttml_to_vtt.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/parse_ttml.d.ts +3 -3
- package/dist/_esm5.processed/parsers/texttracks/ttml/parse_ttml.js +28 -16
- package/dist/_esm5.processed/parsers/texttracks/ttml/resolve_styles_inheritance.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/time_parsing.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/time_parsing.js +2 -2
- package/dist/_esm5.processed/parsers/texttracks/types.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/get_cue_blocks.js +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/get_style_blocks.js +2 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/convert_payload_to_html.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_default_style_elements.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_style_attribute.js +6 -12
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_styled_element.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_styled_element.js +7 -8
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/index.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_style_block.js +4 -4
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_webvtt_to_div.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.js +4 -10
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/parse_vtt_to_cues.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +2 -6
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/set_settings_on_cue.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/to_native_cue.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/to_native_cue.js +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_cue_block.js +2 -4
- package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_timestamp.js +1 -2
- package/dist/_esm5.processed/parsers/texttracks/webvtt/utils.js +6 -6
- package/dist/_esm5.processed/public_types.d.ts +13 -11
- package/dist/_esm5.processed/tools/TextTrackRenderer/index.d.ts +3 -2
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.d.ts +2 -2
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +15 -10
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +2 -3
- package/dist/_esm5.processed/transports/dash/construct_segment_url.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/construct_segment_url.js +5 -3
- package/dist/_esm5.processed/transports/dash/extract_complete_chunks.js +2 -2
- package/dist/_esm5.processed/transports/dash/get_events_out_of_emsgs.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/get_events_out_of_emsgs.js +9 -10
- package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +3 -3
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +32 -19
- package/dist/_esm5.processed/transports/dash/init_segment_loader.d.ts +3 -3
- package/dist/_esm5.processed/transports/dash/init_segment_loader.js +46 -22
- package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.js +13 -9
- package/dist/_esm5.processed/transports/dash/manifest_parser.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +35 -22
- package/dist/_esm5.processed/transports/dash/pipelines.d.ts +1 -1
- package/dist/_esm5.processed/transports/dash/pipelines.js +11 -15
- package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +4 -4
- package/dist/_esm5.processed/transports/dash/segment_loader.js +30 -21
- package/dist/_esm5.processed/transports/dash/segment_parser.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/segment_parser.js +47 -21
- package/dist/_esm5.processed/transports/dash/text_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/text_loader.js +19 -19
- package/dist/_esm5.processed/transports/dash/text_parser.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/text_parser.js +45 -24
- package/dist/_esm5.processed/transports/local/pipelines.d.ts +1 -1
- package/dist/_esm5.processed/transports/local/pipelines.js +7 -8
- package/dist/_esm5.processed/transports/local/segment_loader.d.ts +3 -3
- package/dist/_esm5.processed/transports/local/segment_loader.js +14 -6
- package/dist/_esm5.processed/transports/local/segment_parser.d.ts +1 -1
- package/dist/_esm5.processed/transports/local/segment_parser.js +31 -13
- package/dist/_esm5.processed/transports/local/text_parser.d.ts +1 -1
- package/dist/_esm5.processed/transports/local/text_parser.js +44 -19
- package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.d.ts +4 -4
- package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.js +9 -5
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.d.ts +1 -1
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +25 -18
- package/dist/_esm5.processed/transports/smooth/extract_timings_infos.d.ts +2 -2
- package/dist/_esm5.processed/transports/smooth/extract_timings_infos.js +16 -15
- package/dist/_esm5.processed/transports/smooth/isobmff/create_audio_init_segment.js +3 -3
- package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.js +14 -32
- package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.js +2 -2
- package/dist/_esm5.processed/transports/smooth/isobmff/create_traf_box.js +2 -2
- package/dist/_esm5.processed/transports/smooth/isobmff/get_aaces_header.js +4 -16
- package/dist/_esm5.processed/transports/smooth/isobmff/index.d.ts +4 -2
- package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfrf.js +2 -2
- package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfxd.js +1 -1
- package/dist/_esm5.processed/transports/smooth/isobmff/patch_segment.js +11 -10
- package/dist/_esm5.processed/transports/smooth/pipelines.d.ts +1 -1
- package/dist/_esm5.processed/transports/smooth/pipelines.js +121 -79
- package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +3 -3
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +53 -27
- package/dist/_esm5.processed/transports/smooth/utils.d.ts +2 -2
- package/dist/_esm5.processed/transports/smooth/utils.js +7 -5
- package/dist/_esm5.processed/transports/types.d.ts +11 -25
- package/dist/_esm5.processed/transports/utils/byte_range.js +1 -2
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.d.ts +3 -3
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +13 -7
- package/dist/_esm5.processed/transports/utils/check_isobmff_integrity.js +3 -3
- package/dist/_esm5.processed/transports/utils/find_complete_box.js +3 -2
- package/dist/_esm5.processed/transports/utils/generate_manifest_loader.d.ts +3 -3
- package/dist/_esm5.processed/transports/utils/generate_manifest_loader.js +18 -6
- package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.d.ts +2 -2
- package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.js +12 -11
- package/dist/_esm5.processed/transports/utils/infer_segment_container.d.ts +1 -1
- package/dist/_esm5.processed/transports/utils/infer_segment_container.js +1 -3
- package/dist/_esm5.processed/transports/utils/parse_text_track.d.ts +4 -4
- package/dist/_esm5.processed/transports/utils/parse_text_track.js +9 -6
- package/dist/_esm5.processed/utils/are_codecs_compatible.js +5 -1
- package/dist/_esm5.processed/utils/array_includes.js +2 -6
- package/dist/_esm5.processed/utils/assert.js +3 -4
- package/dist/_esm5.processed/utils/base64.js +87 -29
- package/dist/_esm5.processed/utils/byte_parsing.js +60 -56
- package/dist/_esm5.processed/utils/cancellable_sleep.d.ts +1 -1
- package/dist/_esm5.processed/utils/create_cancellable_promise.d.ts +1 -1
- package/dist/_esm5.processed/utils/deep_merge.js +4 -4
- package/dist/_esm5.processed/utils/event_emitter.d.ts +1 -1
- package/dist/_esm5.processed/utils/get_fuzzed_delay.js +1 -1
- package/dist/_esm5.processed/utils/hash_buffer.js +1 -1
- package/dist/_esm5.processed/utils/initialization_segment_cache.d.ts +2 -2
- package/dist/_esm5.processed/utils/languages/index.d.ts +4 -2
- package/dist/_esm5.processed/utils/languages/index.js +2 -2
- package/dist/_esm5.processed/utils/languages/normalize.d.ts +2 -1
- package/dist/_esm5.processed/utils/languages/normalize.js +5 -3
- package/dist/_esm5.processed/utils/logger.js +7 -14
- package/dist/_esm5.processed/utils/object_assign.js +5 -5
- package/dist/_esm5.processed/utils/object_values.d.ts +1 -1
- package/dist/_esm5.processed/utils/object_values.js +2 -3
- package/dist/_esm5.processed/utils/ranges.d.ts +2 -1
- package/dist/_esm5.processed/utils/ranges.js +19 -23
- package/dist/_esm5.processed/utils/reference.d.ts +3 -3
- package/dist/_esm5.processed/utils/reference.js +1 -3
- package/dist/_esm5.processed/utils/request/fetch.d.ts +1 -1
- package/dist/_esm5.processed/utils/request/fetch.js +34 -23
- package/dist/_esm5.processed/utils/request/index.d.ts +6 -3
- package/dist/_esm5.processed/utils/request/index.js +2 -2
- package/dist/_esm5.processed/utils/request/xhr.d.ts +1 -1
- package/dist/_esm5.processed/utils/request/xhr.js +28 -17
- package/dist/_esm5.processed/utils/retry_promise_with_backoff.d.ts +2 -2
- package/dist/_esm5.processed/utils/slice_uint8array.js +3 -3
- package/dist/_esm5.processed/utils/starts_with.js +3 -3
- package/dist/_esm5.processed/utils/string_parsing.js +16 -18
- package/dist/_esm5.processed/utils/task_canceller.js +1 -2
- package/dist/_esm5.processed/utils/uniq.d.ts +1 -1
- package/dist/_esm5.processed/utils/uniq.js +4 -3
- package/dist/_esm5.processed/utils/weak_map_memory.js +0 -1
- package/dist/_esm5.processed/utils/wrapInPromise.d.ts +1 -1
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +345 -236
- package/dist/rx-player.min.js +1 -1
- package/experimental/features/index.d.ts-E +16 -0
- package/experimental/features/index.js-E +16 -0
- package/experimental/index.d.ts +1 -1
- package/experimental/index.d.ts-E +16 -0
- package/experimental/index.js +1 -1
- package/experimental/index.js-E +16 -0
- package/experimental/tools/VideoThumbnailLoader/index.d.ts-E +18 -0
- package/experimental/tools/VideoThumbnailLoader/index.js-E +18 -0
- package/experimental/tools/index.d.ts-E +16 -0
- package/experimental/tools/index.js-E +16 -0
- package/features/index.d.ts-E +16 -0
- package/features/index.js-E +16 -0
- package/logger/index.d.ts-E +17 -0
- package/logger/index.js-E +17 -0
- package/minimal/index.d.ts-E +17 -0
- package/minimal/index.js-E +17 -0
- package/package.json +29 -14
- package/tools/TextTrackRenderer.d.ts-E +18 -0
- package/tools/TextTrackRenderer.js-E +18 -0
- package/tools/index.d.ts-E +16 -0
- package/tools/index.js-E +16 -0
- package/tools/string-utils.d.ts-E +18 -0
- package/tools/string-utils.js-E +18 -0
- package/types/index.d.ts-E +16 -0
- package/types/index.js-E +15 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,1816 +1,2402 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## v3.33.4 (
|
|
3
|
+
## v3.33.4 (2024-10-16)
|
|
4
4
|
|
|
5
5
|
### Bug fixes
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- Compat: Fix autoPlay on Tizen when the content starts on a discontinuity [#1500]
|
|
8
|
+
- Work-around the "hulu issue" seen on firefox 129 and 130 (`1911283` and `1912238` on
|
|
9
|
+
bugzilla) which also impacted the RxPlayer [#1544]
|
|
10
|
+
- Fix rare cases where the active Period would not be advertised by the RxPlayer [#1534]
|
|
11
|
+
- DRM/Compat: Re-create MediaKeys for each content on Philips' NETTV and `KSTB40xx`
|
|
12
|
+
set-top boxes [#1519, #1538]
|
|
13
|
+
- Fix some issues that may arise on BUFFER_FULL situations [#1566]
|
|
14
|
+
- Directfile/Compat: Fix `startAt.fromLastPosition` handling on Safari when playing
|
|
15
|
+
directfile contents [#1574]
|
|
16
|
+
- Consider `stpp.ttml` codec for text format [#1567]
|
|
17
|
+
- DRM/Compat: Re-create MediaKeys for each content on Philips' NETTV, and `KSTB40XX`
|
|
18
|
+
set-top boxes [#1519, #1538]
|
|
19
|
+
- DRM/Compat: fix content not starting on Safari because key are never considered usable
|
|
20
|
+
[#1535]
|
|
21
|
+
- DASH_WASM: fix `Label` element never being parsed [#1543]
|
|
22
|
+
- Fix an off by one issue when relying on keySystems[].maxSessionCacheSize [#1579]
|
|
8
23
|
|
|
9
24
|
### Other improvements
|
|
10
25
|
|
|
11
|
-
-
|
|
26
|
+
- DASH: provide a more precize calculation for the timeshift buffer depth [#1492]
|
|
27
|
+
- Handle `hev1` codec and `hvc1` codecs as part of the same family of codecs when trying
|
|
28
|
+
to check for compatibility between the two [#1536]
|
|
29
|
+
- Better handle `QuotaExceededError` issue after `appendBuffer` MSE calls when
|
|
30
|
+
`wantedBufferAhead` is set to `Infinity` [#1566]
|
|
31
|
+
- Bring prettier to the v3 [#1545]
|
|
12
32
|
|
|
13
|
-
## v3.33.3
|
|
33
|
+
## v3.33.3 (2024-07-08)
|
|
14
34
|
|
|
15
35
|
### Bug fixes
|
|
16
36
|
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
+
- DASH: support absolute path in URL resolution with RFC 3986 implementation [#1446]
|
|
38
|
+
- DASH: fix cases of blinking subtitles [#1447]
|
|
39
|
+
- Fix precision issues of the `maxVideoBufferSize` API [#1448]
|
|
40
|
+
- DASH: Prevent multiple loading of the same segment for some DASH low-latency contents
|
|
41
|
+
[#1449]
|
|
42
|
+
- Await some delay before re-attempting to push a segment following an error [#1411]
|
|
43
|
+
- DRM/Compat: on Edge test comprehensively KeySystems before considering them as usable
|
|
44
|
+
[#1450]
|
|
45
|
+
- DRM/DASH: Ignore `0x0` key id found in DASH initialization segments are they are often
|
|
46
|
+
linked to unencrypted data. [#1466, #1458]
|
|
47
|
+
- DRM/Compat: On the PlayStation 5, reload directly when a decryption key become unusable
|
|
48
|
+
to prevent fatal errors [#1451]
|
|
49
|
+
- Directfile/Compat: On safari on iOS no longer stay stuck in buffering when `autoPlay` is
|
|
50
|
+
set to `false` or not set and the video element has the attribute "playsinline" [#1406,
|
|
51
|
+
#1404, #1390]
|
|
52
|
+
- Directfile/compat: On safari mobile in directfile mode, do not stay in an infinite
|
|
53
|
+
`LOADING` state if the `duration` is set to `NaN` (rare issue in a normally-unsupported
|
|
54
|
+
multiple RxPlayer-per-media-element scenario) [#1452]
|
|
55
|
+
- Fix RxPlay error messages not properly displaying in Chrome's inspector since Chrome 126
|
|
56
|
+
[#1474]
|
|
37
57
|
|
|
38
58
|
### Other improvements
|
|
39
59
|
|
|
40
|
-
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
`"und"` for better ISO 639-3 compatibility [#1454]
|
|
60
|
+
- Signal an error if multiple active RxPlayer are linked to the same media element [#1453]
|
|
61
|
+
- Undetermined audio and text track language now have a `normalized` property equal to
|
|
62
|
+
`"und"` for better ISO 639-3 compatibility [#1454]
|
|
44
63
|
|
|
45
64
|
## v3.33.2 (2024-02-27)
|
|
46
65
|
|
|
47
66
|
### Bug fixes
|
|
48
67
|
|
|
49
|
-
-
|
|
50
|
-
|
|
68
|
+
- dash: Don't unnecessarily reload external `<UTCTiming>` resources at each refresh if it
|
|
69
|
+
failed for the first request of the Manifest [#1370]
|
|
70
|
+
- dash: The `DASH_WASM` feature do not rely on WebAssembly's sign-extension operators
|
|
71
|
+
anymore as that is poorly supported on older Samsung and LG TVs [#1372]
|
|
51
72
|
|
|
52
73
|
### Other improvements
|
|
53
74
|
|
|
54
|
-
-
|
|
55
|
-
|
|
56
|
-
-
|
|
75
|
+
- build: automatically install Rust and WASM toolchain locally if unavailable when
|
|
76
|
+
building the RxPlayer WebAssembly file
|
|
77
|
+
- doc: Update our documentation generator and fix all invalid anchors in it
|
|
78
|
+
- npm: prevent the publishing of unnecessary files on the npm registry [#1377, #1378]
|
|
57
79
|
|
|
58
80
|
## v3.33.0 (2024-01-24)
|
|
59
81
|
|
|
60
82
|
### Features
|
|
61
83
|
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
84
|
+
- Add `getLivePosition` RxPlayer method [#1300]
|
|
85
|
+
- Add `startAt.fromLivePosition` `loadVideo` option [#1300]
|
|
86
|
+
- Add the possibility to set a new `keySystems` option on the `reload` API [#1308]
|
|
65
87
|
|
|
66
88
|
### Bug fixes
|
|
67
89
|
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
|
|
75
|
-
-
|
|
90
|
+
- Fix subtitles "blinking" in some specific conditions, especially with some DASH
|
|
91
|
+
low-latency contents [#1314]
|
|
92
|
+
- DASH: Fix Period overlap resolution logic for when the first Period is removed [#1311]
|
|
93
|
+
- TTML: Fix handling of the `tts:lineHeight` attribute [#1320]
|
|
94
|
+
- Fix import of the `LOCAL_MANIFEST` experimental feature
|
|
95
|
+
- Avoid very rarely skipping segments which initially were too big to be pushed due to
|
|
96
|
+
memory limitations [#1323]
|
|
97
|
+
- Fix issue arising when using track APIs at the exact last possible position of a Period
|
|
98
|
+
with no consecutive Period [#1337]
|
|
99
|
+
- Starting at the end (through a `startAt` `loadVideo` option) or reloading at the end led
|
|
100
|
+
to the restart of the content [#1338]
|
|
101
|
+
- DRM/Safari: also perform Safari DRM work-arounds when the page is launched from the dock
|
|
102
|
+
[#1351, #1356]
|
|
76
103
|
|
|
77
104
|
### Other improvements
|
|
78
105
|
|
|
79
|
-
-
|
|
80
|
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
|
|
106
|
+
- DASH: rely on SCTE214 `supplementalCodecs` instead of `codecs` if it's supported to
|
|
107
|
+
better support backward compatible Dolby Vision contents [#1307]
|
|
108
|
+
- DASH: Provide better support of the `availabilityTimeOffset` attribute [#1300]
|
|
109
|
+
- DEBUG_ELEMENT: Add unsupported and undecipherable bitrates to the debug element [#1321]
|
|
110
|
+
- DEBUG_ELEMENT: update buffer graph maximum size so it becomes more readable for lengthy
|
|
111
|
+
contents [#1316]
|
|
112
|
+
- DEBUG_ELEMENT: always synchronize inventory of segments before rendering it [#1317]
|
|
113
|
+
- Remove remaining RxPlayer dependency removing possibility of some application-side
|
|
114
|
+
bundling errors [#1312]
|
|
115
|
+
- Add exception to text Garbage collection logic to avoid unnecessarily reload text
|
|
116
|
+
segments frequently [#1325]
|
|
117
|
+
- Avoid logging too much the buffer's content when our debugging UI or the demo is used
|
|
118
|
+
[#1341]
|
|
119
|
+
- Demo: Fix reporting of live position in demo page [#1313]
|
|
88
120
|
|
|
89
121
|
## v3.32.1 (2023-10-19)
|
|
90
122
|
|
|
91
123
|
### Features
|
|
92
124
|
|
|
93
|
-
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
-
|
|
125
|
+
- DASH: add optional `isSpatialAudio` boolean property to Representation returned by
|
|
126
|
+
`getAvailableAudioTracks`, `getAudioTrack`, corresponding events, and `trackInfo`
|
|
127
|
+
optional property of `MediaError` objects to signal Dolby Atmos techology [#1275]
|
|
128
|
+
- `LOCAL`: add `isSpatialAudio` property to Representation of the experiment `"local"`
|
|
129
|
+
transport (used for offline playback) [#1275]
|
|
130
|
+
- `addFeatures` static method is now available on all RxPlayer builds. It was previously
|
|
131
|
+
only in the minimal (`rx-player/minimal` import path) [#1287]
|
|
132
|
+
- The `NATIVE_TEXT_BUFFER`, `HTML_TEXT_BUFFER` and `IMAGE_BUFFER` features are now totally
|
|
133
|
+
optional [#1287, #1293]
|
|
97
134
|
|
|
98
135
|
### Bug fixes
|
|
99
136
|
|
|
100
|
-
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
-
|
|
137
|
+
- Fix `setVideoBitrate` and `setAudioBitrate` API which may have led to a higher quality
|
|
138
|
+
than wanted in the default `"seamless"` `manualBitrateSwitchingMode` if our buffer-based
|
|
139
|
+
adaptive logic decided to [#1267, #1271]
|
|
140
|
+
- On the PlayStation 5, only switch to the `"LOADED"` state once the HTMLMediaElement's
|
|
141
|
+
`readyState` of `4` has been reached, as it seems to switch to `3` too soon there
|
|
142
|
+
[#1257]
|
|
143
|
+
- DASH: Fix potential track duplication if more than two `AdaptationSet` have an
|
|
144
|
+
`adaptation-set-switching` `<SupplementalProperty>` between one another [#1279]
|
|
145
|
+
- DASH-WASM: availabilityTimeOffset is actually a floating number [#1278]
|
|
104
146
|
|
|
105
147
|
### Other improvements
|
|
106
148
|
|
|
107
|
-
-
|
|
108
|
-
|
|
109
|
-
-
|
|
110
|
-
-
|
|
111
|
-
|
|
112
|
-
-
|
|
113
|
-
-
|
|
114
|
-
-
|
|
149
|
+
- Do not load the last text segment if the current position goes after it as it is
|
|
150
|
+
unnecessary [#1256]
|
|
151
|
+
- Implement better `NetworkError` messages [#1274]
|
|
152
|
+
- Set a better error message for when no `keySystems` option is set when playing an
|
|
153
|
+
encrypted content
|
|
154
|
+
- Fix very small memory leak when reloading a content [#1286]
|
|
155
|
+
- Re-check for segments to load immediately after the manifest has been refreshed [#1282]
|
|
156
|
+
- When "fallbacking" an undecipherable Representation, now empty the whole buffer if we
|
|
157
|
+
can't make out where content was in the buffer [#1283]
|
|
158
|
+
- Improve segment start detection in buffer when there's unknown data buffered before it
|
|
159
|
+
[#1284]
|
|
160
|
+
- DRM: Selection of alternative EME API like those used on IE11 or Safari has been
|
|
161
|
+
refactored to facilitate future developments [#1261]
|
|
115
162
|
|
|
116
163
|
### Deprecated
|
|
117
164
|
|
|
118
|
-
-
|
|
119
|
-
|
|
165
|
+
- Deprecate the `manifestUpdateUrl` `loadVideo` option as it doesn't seem used anymore
|
|
166
|
+
[#1288]
|
|
167
|
+
- Deprecate the `NATIVE_TEXT_BUFFER`, `HTML_TEXT_BUFFER` and `IMAGE_BUFFER` features as
|
|
168
|
+
they are now unneeded [#1287, #1293]
|
|
120
169
|
|
|
121
170
|
## v3.31.0 (2023-06-14)
|
|
122
171
|
|
|
123
172
|
### Features
|
|
124
173
|
|
|
125
|
-
-
|
|
126
|
-
|
|
127
|
-
-
|
|
174
|
+
- Add `isContentLoaded`, `isBuffering`, `isPaused`, and `getLastStoredContentPosition`
|
|
175
|
+
methods [#1248]
|
|
176
|
+
- Add `play` and `paused` events [#1253]
|
|
177
|
+
- Add `trackInfo` property to some `MediaError` to expose information on the track that
|
|
178
|
+
caused the error [#1241]
|
|
128
179
|
|
|
129
180
|
### Bug fixes
|
|
130
181
|
|
|
131
|
-
-
|
|
132
|
-
|
|
133
|
-
-
|
|
134
|
-
|
|
182
|
+
- DASH: Fix issue which could lead to infinite rebuffering when switching between multiple
|
|
183
|
+
Periods [#1232]
|
|
184
|
+
- Return actual ending duration through the `getVideoDuration` method when playing dynamic
|
|
185
|
+
contents whose future end is already known [#1235]
|
|
186
|
+
- DASH/WASM: actually reject the `DASH_WASM.initialize`'s Promise if it fails [#1238]
|
|
187
|
+
- On the PlayStation 5, set `Infinity` MediaSource duration for live contents to prevent
|
|
188
|
+
playback issues [#1250]
|
|
135
189
|
|
|
136
190
|
### Other improvements
|
|
137
191
|
|
|
138
|
-
-
|
|
139
|
-
|
|
140
|
-
-
|
|
141
|
-
|
|
142
|
-
-
|
|
192
|
+
- adaptive: Perform various adaptive tweaks to avoid switching too much between qualities
|
|
193
|
+
in some conditions [#1237]
|
|
194
|
+
- Directfile: Detect "forced" subtitles on Safari when playing directfile contents (such
|
|
195
|
+
as HLS) [#1239]
|
|
196
|
+
- Improve `"direct"` `audioTrackSwitchingMode` compatibility by re-seeking [#1246]
|
|
197
|
+
- The `DEBUG_ELEMENT` feature now uses the `monospace` fallback font as a default for a
|
|
198
|
+
better rendering on apple devices
|
|
199
|
+
- doc: externalize documentation-generator code
|
|
143
200
|
|
|
144
201
|
## v3.30.0 (2023-03-07)
|
|
145
202
|
|
|
146
203
|
### Features
|
|
147
204
|
|
|
148
|
-
-
|
|
149
|
-
|
|
150
|
-
-
|
|
151
|
-
|
|
205
|
+
- Add `updateContentUrls` API, allowing to update the Manifest's URL during playback
|
|
206
|
+
[#1182]
|
|
207
|
+
- DASH: implement forced-subtitles, adding the `forced` property to the audio tracks API
|
|
208
|
+
and selecting by default a forced text track linked to the audio track's language if
|
|
209
|
+
present [#1187]
|
|
210
|
+
- DRM: add the `getKeySystemConfiguration` method to the RxPlayer [#1202]
|
|
211
|
+
- add experimental `DEBUG_ELEMENT` feature and `createDebugElement` method to render a
|
|
212
|
+
default debugging HTML element [#1200]
|
|
152
213
|
|
|
153
214
|
### Deprecated
|
|
154
215
|
|
|
155
|
-
-
|
|
156
|
-
|
|
157
|
-
-
|
|
158
|
-
|
|
216
|
+
- Deprecate the `getVideoLoadedTime` method which can be easily replaced (see Deprecated
|
|
217
|
+
method documentation)
|
|
218
|
+
- Deprecate the `getVideoPlayedTime` method which can be easily replaced (see Deprecated
|
|
219
|
+
method documentation)
|
|
220
|
+
- Deprecate the `transportOptions.aggressiveMode` option
|
|
221
|
+
- DRM: Deprecate the `keySystems[].onKeyStatusesChange` callback as no good use case was
|
|
222
|
+
found for it.
|
|
159
223
|
|
|
160
224
|
### Bug fixes
|
|
161
225
|
|
|
162
|
-
-
|
|
163
|
-
|
|
164
|
-
-
|
|
165
|
-
|
|
166
|
-
-
|
|
226
|
+
- Fix segment requesting error when playing a DASH content without an url and without
|
|
227
|
+
BaseURL elements [#1192]
|
|
228
|
+
- API: Stop sending events if the content is stopped due to a side-effect of one of the
|
|
229
|
+
event handler [#1197]
|
|
230
|
+
- text-tracks/ttml: fix inconsistent line spacing when resizing the `textTrackElement`
|
|
231
|
+
[#1191]
|
|
232
|
+
- DRM: Fix race condition leading to a JS error instead of a `NO_PLAYABLE_REPRESENTATION`
|
|
233
|
+
[#1201]
|
|
234
|
+
- DRM/Compat: Renew MediaKeys at each `loadVideo` on all WebOS (LG TV) platforms to work
|
|
235
|
+
around issues [#1188]
|
|
167
236
|
|
|
168
237
|
### Other improvements
|
|
169
238
|
|
|
170
|
-
-
|
|
171
|
-
-
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
-
|
|
175
|
-
-
|
|
176
|
-
|
|
177
|
-
-
|
|
178
|
-
|
|
239
|
+
- DASH: better detect closed captions [#1187]
|
|
240
|
+
- DASH: handle `endNumber` DASH attribute [#1186]
|
|
241
|
+
- DASH: Do not merge AdaptationSet with role "main" anymore [#1214]
|
|
242
|
+
- DASH: parse `transferCharacteristics` property in the MPD to better detect hdr [#1212]
|
|
243
|
+
- Support encrypted contents on Panasonic 2019 TVs [#1226]
|
|
244
|
+
- Better handle SourceBuffer's QuotaExceededError, responsible for `MediaError` with the
|
|
245
|
+
`BUFFER_FULL_ERROR` code [#1221]
|
|
246
|
+
- API: send available...TracksChange events in the very unlikely scenario where tracks are
|
|
247
|
+
added after a manifest update [#1197]
|
|
248
|
+
- Completely remove RxJS dependency from the RxPlayer's source code [#1193]
|
|
249
|
+
- DRM: Request PR recommendation when PlayReady is asked and try default recommendation
|
|
250
|
+
robustnesses [#1189]
|
|
179
251
|
|
|
180
252
|
## v3.29.0 (2022-11-16)
|
|
181
253
|
|
|
182
254
|
### Features
|
|
183
255
|
|
|
184
|
-
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
-
|
|
188
|
-
|
|
256
|
+
- add `networkConfig.segmentRequestTimeout` and `networkConfig.manifestRequestTimeout`
|
|
257
|
+
options to loadVideo to configure the timeout of respectively segment and manifest
|
|
258
|
+
requests [#1156]
|
|
259
|
+
- add `timeout` property to the first argument communicated to a `segmentLoader` (from
|
|
260
|
+
`loadVideo`'s `transportOptions`) [#1156]
|
|
261
|
+
- add `timeout` property to a new third argument communicated to a `manifestLoader` (from
|
|
262
|
+
`loadVideo`'s `transportOptions`) [#1156]
|
|
263
|
+
- DRM: add `keySystems[].onKeyExpiration` to `loadVideo` options to configure the behavior
|
|
264
|
+
the RxPlayer should have on key expiration [#1157]
|
|
265
|
+
- DRM: add `keyStatuses` property to an `EncryptedMediaError` with the
|
|
266
|
+
`KEY_STATUS_CHANGE_ERROR` code to communicate which key id and key statuses caused
|
|
267
|
+
issues. [#1157]
|
|
189
268
|
|
|
190
269
|
### Deprecated
|
|
191
270
|
|
|
192
|
-
-
|
|
271
|
+
- DRM: Deprecate `keySystems[].throwOnLicenseExpiration` `loadVideo` option as this
|
|
272
|
+
boolean can be replaced with more customizability by the new
|
|
273
|
+
`keySystems[].onKeyExpiration` `loadVideo` option [#1157]
|
|
193
274
|
|
|
194
275
|
### Bug fixes
|
|
195
276
|
|
|
196
|
-
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
-
|
|
200
|
-
|
|
201
|
-
-
|
|
202
|
-
|
|
203
|
-
-
|
|
204
|
-
|
|
205
|
-
-
|
|
277
|
+
- Directfile: Fix long-running issues with rare "directfile" contents and some
|
|
278
|
+
browsers/platforms (seen on Chrome PC and PlayStation 5) where playback would stay in
|
|
279
|
+
`LOADING` state indefinitely despite playing [#1174]
|
|
280
|
+
- DRM: Fix undocumented `keySystems[].videoRobustnesses` `loadVideo` option.
|
|
281
|
+
`audioRobustnesses` was previously used even for video capabilities [#1171]
|
|
282
|
+
- Compat/Directfile: Fix an issue with WebOS (LG TVs) when playing multiple directfile
|
|
283
|
+
contents with the `stopAtEnd` player option set to `true` [#1154]
|
|
284
|
+
- Compat/DRM: Fix infinite loading on WebOS (LG TVs) 2021 and 2022 when loading more than
|
|
285
|
+
once an encrypted content by resetting decryption capabilities each time [#1175]
|
|
286
|
+
- Compat: To work around an issue on WebOS (LG TVs), also specify a request timeout
|
|
287
|
+
manually through a `setTimeout` call when XMLHttpRequests are created for Manifest and
|
|
288
|
+
segment requests [#1152]
|
|
289
|
+
- Compat/Directfile: Fix an issue on Tizen (Samsung TVs) where playing directfile contents
|
|
290
|
+
could randomly lead to not having audio [#1170]
|
|
291
|
+
- Compat: Fix issue with Tizen (Samsung TVs) where starting playback on a discontinuity
|
|
292
|
+
could lead to infinite rebuffering [#1140, #1176]
|
|
293
|
+
- Compat/Directfile: For `"directfile"` contents, also consider `AudioTrack` with a
|
|
294
|
+
`description` (without an "s") as audio-description audio tracks to work-around what
|
|
295
|
+
seems to be a Safari typo [#1160]
|
|
296
|
+
- DRM: When using persistent licenses, create new MediaKeySession when `load` resolves
|
|
297
|
+
with `false`, instead of relying the same, to fix issues with such persistent sessions
|
|
298
|
+
if the browser cleaned it up [#1139]
|
|
299
|
+
- Only call "MediaSource.endOfStream" once, the most visible side-effect should have been
|
|
300
|
+
repeated logs [#1163]
|
|
206
301
|
|
|
207
302
|
### Other improvements
|
|
208
303
|
|
|
209
|
-
-
|
|
210
|
-
|
|
211
|
-
-
|
|
212
|
-
|
|
304
|
+
- DASH: Improve multi-CDN configurations, by smartly selecting the right CDN depending on
|
|
305
|
+
past status [#1165]
|
|
306
|
+
- Allow reverse playback use cases by not skipping gaps and most discontinuities when the
|
|
307
|
+
playback rate has been set to `0` or a negative value [#1138]
|
|
308
|
+
- In the experimental "local" transport, add `incomingRanges` property to signal the time
|
|
309
|
+
ranges of remaining data, allowing better discontinuity handling and duration estimates
|
|
310
|
+
for sill-loading dowloaded contents [#1151]
|
|
311
|
+
- Only send, through `"warning"` events, one `EncryptedMediaError` with a
|
|
312
|
+
`KEY_STATUS_CHANGE_ERROR` code when multiple ones arises at the same time [#1157]
|
|
213
313
|
|
|
214
314
|
## v3.28.0 (2022-07-12)
|
|
215
315
|
|
|
216
316
|
### Features
|
|
217
317
|
|
|
218
|
-
-
|
|
219
|
-
|
|
318
|
+
- Add `label` to audio, video and text track APIs (such as `getAvailableAudioTracks`)
|
|
319
|
+
which gives a human-readable description of the corresponding track, if available in the
|
|
320
|
+
Manifest [#1105, #1109]
|
|
321
|
+
- Automatically set the LogLevel to `"DEBUG"` if a global `__RX_PLAYER_DEBUG_MODE__`
|
|
322
|
+
constant is set to `true`, to simplify debugging [#1115]
|
|
220
323
|
|
|
221
324
|
### Bug fixes
|
|
222
325
|
|
|
223
|
-
-
|
|
224
|
-
|
|
225
|
-
-
|
|
226
|
-
|
|
227
|
-
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
-
|
|
231
|
-
|
|
232
|
-
-
|
|
233
|
-
|
|
234
|
-
|
|
326
|
+
- Use the first **compatible** codec of the current AdaptationSet when creating a
|
|
327
|
+
SourceBuffer [#1094]
|
|
328
|
+
- DASH/DRM: Fix potential infinite rebuffering when a KID is not announced in the MPD
|
|
329
|
+
[#1113]
|
|
330
|
+
- DRM: Fix quality fallback when loading a content whose license has been cached under an
|
|
331
|
+
extended `singleLicensePer` setting and when starting (and staying) with a quality whose
|
|
332
|
+
key id is not in it [#1133]
|
|
333
|
+
- DASH: Avoid infinite loop due to rounding errors while parsing multi-Periods MPDs
|
|
334
|
+
[#1111, #1110]
|
|
335
|
+
- After a `RELOADING` state, stay in `PAUSED` if the media element was paused
|
|
336
|
+
synchronously before the side-effect which triggered the reloading (usually coming from
|
|
337
|
+
the API) was perform [#1132]
|
|
338
|
+
- Fix issue with `maxVideoBufferSize` setting which could lead to too much data being
|
|
339
|
+
buffered [#1125]
|
|
340
|
+
- Prevent possibility of requests loops and infinite rebuffering when a pushed segment is
|
|
341
|
+
always completely and immediately garbage collected by the browser [#1123]
|
|
342
|
+
- DASH: Fix potential rare memory leak when stopping the content after it has reloaded at
|
|
343
|
+
least once [#1135]
|
|
344
|
+
- Directfile: Properly announce the audio track's `audioDescription` accessibility
|
|
345
|
+
attribute in directfile mode on Safari [#1136]
|
|
346
|
+
- DASH: Fix issues that could arise if a segment is calculated to start at a negative
|
|
347
|
+
position [#1122]
|
|
348
|
+
- DASH: Fix possibility of wrong segments being requested when a SegmentTimeline in a
|
|
349
|
+
given Period (whose Period@end is set) had an S@r set to `-1` at its end [#1098]
|
|
350
|
+
- DASH: If the first `<S>` has its S@t attribute not set, make as if it is set to `0`
|
|
351
|
+
[#1118]
|
|
235
352
|
|
|
236
353
|
### Other improvements
|
|
237
354
|
|
|
238
|
-
-
|
|
239
|
-
-
|
|
240
|
-
|
|
241
|
-
-
|
|
242
|
-
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
-
|
|
355
|
+
- TTML: Add support for percent based thickness for textOutline in TTML Subtitles [#1108]
|
|
356
|
+
- Improve TypeScript's language servers auto import feature with the RxPlayer by better
|
|
357
|
+
redirecting to the exported type [#1126]
|
|
358
|
+
- If seeking after the last potential position, load last segments before ending [#1097]
|
|
359
|
+
- The duration set on the media element is now only relative to the current chosen tracks
|
|
360
|
+
(it was previously relative to all potential track). This allows to seek later when
|
|
361
|
+
switching e.g. to a longer video track [#1102]
|
|
362
|
+
- Errors coming from an HTMLMediaElement now have the browser's error message if it exists
|
|
363
|
+
[#1112]
|
|
364
|
+
- TTML: Better handle EBU-TT subtitles by handling the `tt` XML namespace in our TTML
|
|
365
|
+
parser [#1131]
|
|
366
|
+
- DRM: Information on persisted DRM sessions are now automatically updated to their last
|
|
367
|
+
version when possible [#1096]
|
|
368
|
+
- Only log values which are relatively inexpensive to stringify to reduce the difference
|
|
369
|
+
between debugging sessions and what is usually seen in production [#1116]
|
|
246
370
|
|
|
247
371
|
## v3.27.0 (2022-03-31)
|
|
248
372
|
|
|
249
373
|
### Features
|
|
250
374
|
|
|
251
|
-
-
|
|
252
|
-
|
|
253
|
-
-
|
|
375
|
+
- Add a `maxVideoBufferSize` constructor option and `{get,set}MaxVideoBufferSize` methods
|
|
376
|
+
to limit the size of loaded video data buffered at the same time [#1041, #1054]
|
|
377
|
+
- DRM: Add a `"periods"` mode to the `keySystems[].singleLicensePer` `loadVideo` option,
|
|
378
|
+
allowing to obtain decryption license for groups of Periods allowing a compromise
|
|
379
|
+
between optimization, features and compatibility [#1028, #1061]
|
|
380
|
+
- Add a `"reload"` `audioTrackSwitchingMode` to work-around rare compatibility issues when
|
|
381
|
+
switching audio tracks [#1089]
|
|
254
382
|
|
|
255
383
|
### Bug fixes
|
|
256
384
|
|
|
257
|
-
-
|
|
258
|
-
|
|
259
|
-
-
|
|
260
|
-
|
|
261
|
-
-
|
|
262
|
-
|
|
263
|
-
-
|
|
264
|
-
-
|
|
265
|
-
-
|
|
266
|
-
|
|
267
|
-
-
|
|
385
|
+
- subtitles: Fix rare issue where subtitles could be skipped due to a rounding error
|
|
386
|
+
[#1064]
|
|
387
|
+
- DASH: fix issue where the wrong segments would be requested on $Number$-based MPD with a
|
|
388
|
+
SegmentTimeline older than the `timeShiftBufferDepth` [#1052, #1060]
|
|
389
|
+
- directfile: disable all audio tracks before enabling one to work-around Safari issue on
|
|
390
|
+
MacOS Monterey [#1067]
|
|
391
|
+
- avoid performing a small seek when changing the audio track [#1080]
|
|
392
|
+
- api: allow switching to RELOADING state synchronously after LOADED [#1083]
|
|
393
|
+
- Safari Mobile: Improve decryption support on Safari mobile by relying on the vendored
|
|
394
|
+
`WebKitMediaKeys` API [#1072]
|
|
395
|
+
- DASH: Fix issue which prevented the integrity check of most MP4 DASH segments when
|
|
396
|
+
`transportOptions.checkMediaSegmentIntegrity` was set to `true`
|
|
397
|
+
- avoid unnecessary warning logs when loading some initialization segments [#1049]
|
|
398
|
+
- TypeScript: Add forgotten TypeScript types in the exposed segment and manifest loader
|
|
399
|
+
APIs [#1057]
|
|
400
|
+
- DRM: Avoid decryption issues when a license is persisted in a `singleLicensePer`
|
|
401
|
+
`"init-data"` mode but loaded in a `"content"` mode [#1031, #1042]
|
|
402
|
+
- DRM: Totally avoid the theoretical possibility of leaking MediaKeySessions when a
|
|
403
|
+
`generateRequest` or `load` call takes multiple seconds [#1093]
|
|
268
404
|
|
|
269
405
|
### Other improvements
|
|
270
406
|
|
|
271
|
-
-
|
|
272
|
-
|
|
273
|
-
-
|
|
274
|
-
|
|
275
|
-
-
|
|
276
|
-
|
|
277
|
-
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
-
|
|
407
|
+
- DASH: always consider that the non-last Period is finished when it contains
|
|
408
|
+
SegmentTimeline elements [#1047]
|
|
409
|
+
- add better buffer cleaning logic on a browser's `QuotaExceededError` to better handle
|
|
410
|
+
memory limitations [#1065]
|
|
411
|
+
- DASH: Prioritize selectionPriority attribute over a "main" Role when ordering
|
|
412
|
+
AdaptationSets [#1082]
|
|
413
|
+
- directfile/Safari: use the `getStartDate` method in `getWallClockTime`, `seekTo` and the
|
|
414
|
+
`positionUpdate` event when available to obtain true offseted "wall-clock" times when
|
|
415
|
+
playing HLS contents on Safari [#1055]
|
|
416
|
+
- DRM: Improve DRM Session caches performance when `singleLicensePer` is set to
|
|
417
|
+
`"content"`
|
|
418
|
+
- DRM: Stop retrying closing MediaKeySessions multiple times when it fails, instead doing
|
|
419
|
+
it only once when it should work [#1093]
|
|
420
|
+
- TypeScript: Add IBitrateEstimate, IPositionUpdate and IPlayerState types to the exported
|
|
421
|
+
types [#1084]
|
|
422
|
+
- Remove dependency on pinkie's promise ponyfill [#1058, #1090]
|
|
423
|
+
- tests: add performance tests, to better catch and avoid performance regressions [#1053, #1062]
|
|
424
|
+
- DRM: Refactor DRM logic for better maintainability. DRM-linked logs are now prefixed by
|
|
425
|
+
`DRM:` instead of `EME:` like previously [#1042]
|
|
281
426
|
|
|
282
427
|
## v3.26.2 (2022-01-11)
|
|
283
428
|
|
|
284
429
|
### Bug fixes
|
|
285
430
|
|
|
286
|
-
-
|
|
287
|
-
|
|
288
|
-
-
|
|
289
|
-
|
|
290
|
-
-
|
|
291
|
-
|
|
431
|
+
- API: re-switch to SEEKING state instead of BUFFERING when seeking to already-buffered
|
|
432
|
+
data [#1015]
|
|
433
|
+
- DASH: provide default startNumber attribute for number-based SegmentTemplate indexes
|
|
434
|
+
with a SegmentTimeline [#1009]
|
|
435
|
+
- TTML (subtitles): interpret percentages as relative to the computed cell size and not as
|
|
436
|
+
the percentage of the inherited font size in the page [#1013]
|
|
437
|
+
- subtitles: Work-around recent Chrome issue where the content of a native `<track>`
|
|
438
|
+
element would still be visible despite being removed from the DOM (issue only
|
|
439
|
+
reproducible in the `"native"` `textTrackMode`) [#1039]
|
|
440
|
+
- API: Fix rare issue happening when switching rapidly between Representations, which led
|
|
441
|
+
to multiple APIs such as `getAvailableVideoBitrate` or `getAvailableAudioTracks`
|
|
442
|
+
returning either incorrect or empty results [#1018]
|
|
443
|
+
- Improve prevention of rare segment-loading loops by fixing an issue with the clean-up of
|
|
444
|
+
the short-term buffer history we maintain [#1045]
|
|
292
445
|
|
|
293
446
|
### Other improvements
|
|
294
447
|
|
|
295
|
-
-
|
|
296
|
-
|
|
297
|
-
-
|
|
298
|
-
-
|
|
299
|
-
|
|
300
|
-
-
|
|
301
|
-
|
|
302
|
-
-
|
|
303
|
-
-
|
|
304
|
-
|
|
305
|
-
-
|
|
306
|
-
|
|
307
|
-
|
|
448
|
+
- DASH-LL: Improve adaptive bitrate logic on low-latency contents by implementing a
|
|
449
|
+
specific algorithm for those [#1025, #1036]
|
|
450
|
+
- DASH-LL: Improve handling of $Time$-based DASH-LL contents [#1020]
|
|
451
|
+
- DASH: Support UTCTiming element with the `urn:mpeg:dash:utc:http-xsdate:2014` scheme
|
|
452
|
+
[#1021]
|
|
453
|
+
- DOC: Important refactoring of the RxPlayer API documentation to improve readability,
|
|
454
|
+
discoverability and to add search capability to it [#1016]
|
|
455
|
+
- DASH: handle ContentProtection elements that have been defined at the
|
|
456
|
+
Representation-level (and not at the AdaptationSet-level, as defined by the DASH-IF IOP)
|
|
457
|
+
[#1027]
|
|
458
|
+
- DASH: Be resilient when the resource behind an UTCTiming element leads to an error
|
|
459
|
+
(usually due to an HTTP-related issue) - instead of failing with an error like now
|
|
460
|
+
[#1026]
|
|
461
|
+
- Better estimate the duration of ISOBMFF segments with multiple moof boxes [#1037]
|
|
462
|
+
- EME: Add hex-encoded key id to the `KEY_STATUS_CHANGE_ERROR` error message so we can
|
|
463
|
+
know which key we're talking about when debugging [#1033]
|
|
464
|
+
- dev/scripts: for the "modular" (a.k.a. minimal) RxPlayer build now rely on TypeScript's
|
|
465
|
+
const enums, instead of uglily using sed, to replace compile-time constants. [#1014]
|
|
466
|
+
- dev/scripts: remove reliance on environment variables when running the RxPlayer build
|
|
467
|
+
scripts [#1004]
|
|
468
|
+
- dev/scripts: add esbuild devdependency and add "s" script to allow faster checks for
|
|
469
|
+
RxPlayer developpers [#1003]
|
|
470
|
+
- CI: Rely on Github actions instead of Travis for most CI-related matters [#1046]
|
|
471
|
+
- code/refacto: replace central `Clock` concept (Observable bringing media-related updates
|
|
472
|
+
to the RxPlayer at a regular pace) by a more flexible `PlaybackObserver` class [#1002]
|
|
308
473
|
|
|
309
474
|
## v3.26.1 (2021-09-14)
|
|
310
475
|
|
|
311
476
|
### Bug fixes
|
|
312
477
|
|
|
313
|
-
-
|
|
314
|
-
|
|
315
|
-
-
|
|
316
|
-
|
|
317
|
-
-
|
|
318
|
-
|
|
319
|
-
-
|
|
320
|
-
|
|
321
|
-
-
|
|
478
|
+
- ttml: Do not throw if a TTML subtitles file doesn't contain any `<body>` tag, just
|
|
479
|
+
ignore it [#993]
|
|
480
|
+
- Auto-detect when playback is unexplicably frozen and try to unlock it through a small
|
|
481
|
+
seek [#982]
|
|
482
|
+
- Properly send `available{Audio,Video}BitratesChange` event for multi-Period contents
|
|
483
|
+
[#983]
|
|
484
|
+
- DASH/MetaPlaylist/Local: fix rare infinite rebuffering issue which could happen when
|
|
485
|
+
changing or disabling the track of a future Period [#1000]
|
|
486
|
+
- compat: Prevent rare segment-loading loops by automatically detecting when segments are
|
|
487
|
+
garbage collected by the browser immediately after being pushed [#987, #990]
|
|
488
|
+
- compat/DRM: In some Safari versions, communicating a license as a JS `ArrayBuffer` could
|
|
489
|
+
throw, this is now fixed [#974]
|
|
490
|
+
- DASH_WASM: Don't stop with a fatal error if an expected ISO8601 duration value is empty
|
|
491
|
+
in the MPD
|
|
492
|
+
- DASH_WASM: Parse `<Event>` elements which contain an XML namespace defined outside that
|
|
493
|
+
element [#981]
|
|
494
|
+
- DASH_WASM: Drastically reduce wasm compilation time and file size [#980]
|
|
322
495
|
|
|
323
496
|
### Other improvements
|
|
324
497
|
|
|
325
|
-
-
|
|
326
|
-
|
|
327
|
-
-
|
|
328
|
-
|
|
329
|
-
-
|
|
330
|
-
-
|
|
331
|
-
-
|
|
332
|
-
-
|
|
498
|
+
- Request initialization segment and the first media segments at the same time when
|
|
499
|
+
possible, potentially reducing loading times [#973]
|
|
500
|
+
- Remove cached segment request detection in the adaptive logic, as it is sensible to
|
|
501
|
+
false positives, leading to a poor bitrate in some short contents [#977]
|
|
502
|
+
- Export more needed types through the `rx-player/types` path [#972, #976]
|
|
503
|
+
- demo: Expose some player options in the demo page [#999]
|
|
504
|
+
- dev: Rewrite build logic from bash to node.js to improve its maintainability
|
|
505
|
+
- dev: Replace internal `info` script by more helpful and interactive `list` script [#991]
|
|
506
|
+
- dev/code: Forbid the usage of TypeScript's type `any` in most of the RxPlayer's code -
|
|
507
|
+
performing runtime type-checking in some cases (in DEV mode only) [#994]
|
|
508
|
+
- dev/code: Remove RxJS from the transports code [#962]
|
|
333
509
|
|
|
334
510
|
## v3.26.0 (2021-06-10)
|
|
335
511
|
|
|
336
512
|
### Features
|
|
337
513
|
|
|
338
|
-
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
-
|
|
343
|
-
|
|
344
|
-
-
|
|
345
|
-
|
|
346
|
-
-
|
|
347
|
-
|
|
514
|
+
- Add HDR information through the `hdrInfo` property on video Representation/tracks as
|
|
515
|
+
returned by APIs such as `getVideoTrack`, `getAvailableVideoTracks`, the
|
|
516
|
+
`videoTrackChange` event, `getManifest`, `getCurrentAdaptations` and
|
|
517
|
+
`getCurrentRepresentations` [#946]
|
|
518
|
+
- Add the `DASH_WASM` experimental feature, allowing faster MPD parsing using WebAssembly
|
|
519
|
+
[#937]
|
|
520
|
+
- Add the experimental `VideoThumbnailLoader` tool, which uses "trickmodes" DASH
|
|
521
|
+
AdaptationSet to generate thumbnails [#647]
|
|
522
|
+
- Add `preferTrickModeTracks` option to `setPlaybackRate`, to switch on or off trickmode
|
|
523
|
+
tracks when available on the Manifest [#940]
|
|
524
|
+
- Add `areTrickModeTracksEnabled` method to indicate whether the RxPlayer is using
|
|
525
|
+
trickmode tracks in priority [#940]
|
|
526
|
+
- Add `trickModeTracks` and `isTrickModeTrack` properties to video tracks as returned by
|
|
527
|
+
the `getVideoTrack` and `getAvailableVideoTracks` method and by the `videoTrackChange`
|
|
528
|
+
event [#940]
|
|
529
|
+
- Add `maxSessionCacheSize` `keySystems` option, to configure the maximum number of
|
|
530
|
+
decryption sessions that can be kept alive at the same time in a cache [#938]
|
|
531
|
+
- The `manifestLoader` callback defined in `transportOptions` can now ask for a request to
|
|
532
|
+
be retried [#964]
|
|
533
|
+
- `initialManifest` now accepts the Manifest as an `ArrayBuffer` [#937]
|
|
534
|
+
- The `manifestLoader` callback defined in `transportOptions` can now send the Manifest as
|
|
535
|
+
an `ArrayBuffer` [#937]
|
|
348
536
|
|
|
349
537
|
### Bug fixes
|
|
350
538
|
|
|
351
|
-
-
|
|
352
|
-
|
|
353
|
-
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
-
|
|
539
|
+
- DASH: don't ignore new EventStream elements that weren't in the previous MPD update for
|
|
540
|
+
a given Period [#956]
|
|
541
|
+
- DASH: fix fatal error linked to the `duration` of the `MediaSource` happening when
|
|
542
|
+
playing a multi-Period live DASH content whose previous (before updating) last Period's
|
|
543
|
+
segments had been fully generated and fully pushed. [#952]
|
|
544
|
+
- DASH: Avoid loading plain-text subtitles in a loop when playing before the first cue
|
|
545
|
+
starts or after the last cue ends [#945, #948]
|
|
546
|
+
- DASH: Avoid loading plain-text subtitles in a loop when the
|
|
547
|
+
`transportOptions.checkMediaSegmentIntegrity` is set to `true` [#947]
|
|
548
|
+
- DASH: avoid ending a dynamic stream if new Periods may be added later to the MPD [#959]
|
|
549
|
+
- DASH: avoid unnecessarily refresh a MPD based on SegmentList elements when they don't
|
|
550
|
+
perfectly align with the pushed data [#963]
|
|
357
551
|
|
|
358
552
|
### Other improvements
|
|
359
553
|
|
|
360
|
-
-
|
|
361
|
-
|
|
362
|
-
-
|
|
363
|
-
|
|
364
|
-
-
|
|
365
|
-
-
|
|
554
|
+
- Improve `audioTrackSwitchingMode` `"direct"` mode by avoiding unnecessary reloading
|
|
555
|
+
cases [#872, #887, #943]
|
|
556
|
+
- When seeking after the end of an ended content, actually seek just a little before to
|
|
557
|
+
avoid subtle issues [#941]
|
|
558
|
+
- DASH: limit the postponment of a Manifest refresh due to poor MPD-parsing performance to
|
|
559
|
+
6-times the "regular" delay (not impacted by
|
|
560
|
+
`tansportOptions.minimumManifestUpdateInterval`) [#958]
|
|
561
|
+
- DASH: Avoid loading two times a segment instead of once when that segment is not
|
|
562
|
+
anounced in the MPD through a SegmentBase, SegmentList nor SegmentTemplate element but
|
|
563
|
+
just through the Representation's BaseURL. [#949]
|
|
564
|
+
- Update used RxJS version to 7.0.0, which might bring with it a smaller size and better
|
|
565
|
+
performances [#954]
|
|
566
|
+
- demo: remove Chart.js dependency (we found that its new API documentation and errors
|
|
567
|
+
were too impenetrable) and replace the "Buffer Size" chart by a homemade one. [#955, #957]
|
|
366
568
|
|
|
367
569
|
## v3.24.0 (2021-04-01)
|
|
368
570
|
|
|
369
571
|
### Features
|
|
370
572
|
|
|
371
|
-
-
|
|
372
|
-
-
|
|
373
|
-
|
|
573
|
+
- Add `inbandEvent` event for when an event is encountered in a media segment [#892]
|
|
574
|
+
- DRM: Add `singleLicensePer` `keySystems` option to be able to signal in advance that the
|
|
575
|
+
current content has a single license, even if it has multiple encryption keys [#863, #904]
|
|
576
|
+
- DRM: Add `keySystems[].licenseStorage.disableRetroCompatibility` boolean to unlock
|
|
577
|
+
optimizations when compatibility with EME sessions persisted in older RxPlayer versions
|
|
578
|
+
is not important [#919]
|
|
374
579
|
|
|
375
580
|
### Bug fixes
|
|
376
581
|
|
|
377
|
-
-
|
|
378
|
-
|
|
379
|
-
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
-
|
|
383
|
-
-
|
|
384
|
-
|
|
385
|
-
-
|
|
386
|
-
|
|
582
|
+
- DASH: Fix rounding error that could cause infinite buffering issues when going from a
|
|
583
|
+
DASH Period to the next [#897, #899]
|
|
584
|
+
- DRM: Always pass on server certificate before any challenge is generated. Contents with
|
|
585
|
+
multiple licenses previously could lead to the latter being done before the former.
|
|
586
|
+
[#895]
|
|
587
|
+
- DRM: Fix possible leaks of MediaKeySessions if closed at the wrong time [#920]
|
|
588
|
+
- Fix issue making sudden and acute fall in bandwidth not being considered soon enough
|
|
589
|
+
[#906]
|
|
590
|
+
- On some devices when `maxBufferAhead` is set, avoid removing the initially loaded data
|
|
591
|
+
if done before the initial seek could be performed [#907]
|
|
592
|
+
- Avoid cases of infinite rebuffering on Tizen 4 by avoiding pushing segments "on top of
|
|
593
|
+
others" too close to the current position [#925]
|
|
594
|
+
- Avoid seeking issues on Tizen by not seeking over discontinuities that will be already
|
|
595
|
+
handled by the browser [#922]
|
|
596
|
+
- Fix initial seek on Tizen (Samsung TVs) on live contents by setting a much lower
|
|
597
|
+
duration (to work-around a Tizen overflow) [#914]
|
|
598
|
+
- DASH: Consider multiple defined `<Accessibility>` tags for a single AdaptationSet [#903]
|
|
599
|
+
- Fix error that could be thrown on Safari when calling the `getStatusForHDCP` method from
|
|
600
|
+
the experimental `MediaCapabilitiesProber` tool [#927]
|
|
387
601
|
|
|
388
602
|
### Other improvements
|
|
389
603
|
|
|
390
|
-
-
|
|
391
|
-
|
|
392
|
-
-
|
|
393
|
-
-
|
|
394
|
-
|
|
395
|
-
-
|
|
396
|
-
|
|
397
|
-
-
|
|
398
|
-
|
|
399
|
-
-
|
|
400
|
-
|
|
401
|
-
-
|
|
402
|
-
|
|
403
|
-
-
|
|
404
|
-
|
|
405
|
-
-
|
|
604
|
+
- Avoid to push on top of the current position if there's already a segment there as it
|
|
605
|
+
can provoke minor decoding issues on some devices [#925]
|
|
606
|
+
- Update video element's duration if the content duration changes [#917]
|
|
607
|
+
- DASH: Improve loading time with encrypted contents by only using the encrypted
|
|
608
|
+
initialization data found in the Manifest when found in it [#911, #919]
|
|
609
|
+
- Record redirections made on a `manifestUpdateUrl` to request directly the right URL on
|
|
610
|
+
next update. [#929]
|
|
611
|
+
- Improve loading time when a `serverCertificate` is given by calling the
|
|
612
|
+
`setServerCertificate` API earlier [#895]
|
|
613
|
+
- Improve loading time when switching contents by fetching the Manifest at the same time
|
|
614
|
+
the previous content is cleaned-up [#894]
|
|
615
|
+
- Improve loading time on some CPU-constrained devices by not running unnecessary playback
|
|
616
|
+
checks on the "progress" HTMLMediaElement event anymore [#893]
|
|
617
|
+
- DASH: Consider DASH audio AdaptationSet with a "urn:mpeg:dash:role:2011" schemeIdUri and
|
|
618
|
+
a "description" role as `audioDescription` tracks [#903]
|
|
619
|
+
- Warn through the logger when the autoplay attribute is enabled on the media element but
|
|
620
|
+
not on RxPlayer [#924]
|
|
621
|
+
- Avoid switching to a SEEKING state if the seek operation was performed inside the
|
|
622
|
+
RxPlayer's code [#872, #887]
|
|
623
|
+
- DRM: Wait up to 100 milliseconds after a persistent MediaKeySession has been loaded to
|
|
624
|
+
wait for possibly late `keyStatuses` updates [#928]
|
|
625
|
+
- DRM: Only store persistent MediaKeySession once at least one key is known [#926]
|
|
626
|
+
- DRM: Reconsider Representations that have been fallbacked from if they become
|
|
627
|
+
decipherable [#905]
|
|
628
|
+
- DRM: Lower the maximum size of the MediaKeySession cache from 50 to 15 to improve
|
|
629
|
+
compatibility, even more now that license with multiple keys are properly handled
|
|
630
|
+
- Doc: Move architecture documentation closer to the code it documents [#764, #900]
|
|
631
|
+
- Doc: add "Quick links" to the top of the API documentation [#909]
|
|
406
632
|
|
|
407
633
|
## v3.23.1 (2021-02-01)
|
|
408
634
|
|
|
409
635
|
### Bug fixes
|
|
410
636
|
|
|
411
|
-
-
|
|
637
|
+
- Fix support of encrypted contents on Safari (v3.23.0 regression)
|
|
412
638
|
|
|
413
639
|
## v3.23.0 (2021-02-01)
|
|
414
640
|
|
|
415
641
|
### Features
|
|
416
642
|
|
|
417
|
-
-
|
|
418
|
-
|
|
419
|
-
-
|
|
420
|
-
|
|
643
|
+
- Add the `reload` method to be able to re-load the last loaded content as fast as
|
|
644
|
+
possible (e.g. after fatal errors) [#859, #867]
|
|
645
|
+
- Add `onCodecSwitch` loadVideo option, to select a strategy when a new incompatible codec
|
|
646
|
+
is encountered [#856]
|
|
647
|
+
- Emit `DISCONTINUITY_ENCOUNTERED` warnings when a discontinuity has been seeked over
|
|
648
|
+
[#862]
|
|
649
|
+
- Add minAudioBitrate and minVideoBitrate constructor options and the
|
|
650
|
+
{set,get}Minimum{Audio,Video}Bitrate methods to define the minimum quality reachable
|
|
651
|
+
through adaptive streaming [#876]
|
|
421
652
|
|
|
422
653
|
### Bug fixes
|
|
423
654
|
|
|
424
|
-
-
|
|
425
|
-
|
|
426
|
-
-
|
|
427
|
-
-
|
|
428
|
-
-
|
|
429
|
-
|
|
430
|
-
-
|
|
655
|
+
- Fix impossibility to fallback to another Representation (with the
|
|
656
|
+
`keySystems[].fallbackOn` `loadVideo` options) when a decryption key has been found to
|
|
657
|
+
be non-usable [#889]
|
|
658
|
+
- Fix DRM-related events being sent twice in a row instead of just once [#850]
|
|
659
|
+
- Stop and throw `MANIFEST_PARSE_ERROR` error again when either audio or video has only
|
|
660
|
+
unsupported codecs (instead of just playing the other type) [#864]
|
|
661
|
+
- Avoid re-downloading a segment that ends a lot before its expected end [#846]
|
|
662
|
+
- In "native" `textTrackMode`, avoid requesting text segments in a loop [#878]
|
|
663
|
+
- Disable effects of `throttleVideoBitrateWhenHidden`, `limitVideoWidth` and
|
|
664
|
+
`throttleVideoBitrate` player options on Firefox >= 67 due to how Picture in Picture
|
|
665
|
+
mode is currently handled in them [#874]
|
|
666
|
+
- Work-around race condition in old Chromium versions where loading a persistent
|
|
667
|
+
MediaKeySession led to no key statuses right away [#847]
|
|
431
668
|
|
|
432
669
|
### Other improvements
|
|
433
670
|
|
|
434
|
-
-
|
|
435
|
-
|
|
436
|
-
-
|
|
437
|
-
|
|
438
|
-
-
|
|
439
|
-
|
|
440
|
-
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
-
|
|
671
|
+
- Skip over most audio or video discontinuities in the stream, even those not announced in
|
|
672
|
+
the Manifest [#862]
|
|
673
|
+
- When track or bitrate switching lead to a reload, seek back a consistent number of
|
|
674
|
+
milliseconds to give back context [#848]
|
|
675
|
+
- Don't call `setServerCertificate` API when `keySystems[].serverCertificate` option is
|
|
676
|
+
set to `null` [#849]
|
|
677
|
+
- On the rare platforms where an undefined initialization data type can be received on
|
|
678
|
+
encrypted events, retry `generateRequest` with a default "cenc" value if the first one
|
|
679
|
+
fails due to it being empty [#870]
|
|
680
|
+
- Re-add debug logs logging the principal media properties at each clock tick [#844]
|
|
681
|
+
- Use TextEncoder and TextDecoder interfaces when available to speed-up string conversions
|
|
682
|
+
[#843, #875]
|
|
683
|
+
- Throw a better error when no EME API is found
|
|
684
|
+
- Reduce default bundles size by switching to webpack 5 to generate them
|
|
685
|
+
- tests: Add conformance tests on the initial seek to help debugging related issues on new
|
|
686
|
+
platforms [#873]
|
|
687
|
+
- lint/code: Use eslint code linter even for the TypeScript code [#842]
|
|
444
688
|
|
|
445
689
|
## v3.22.0 (2020-11-17)
|
|
446
690
|
|
|
447
691
|
### Features
|
|
448
692
|
|
|
449
|
-
-
|
|
450
|
-
|
|
451
|
-
-
|
|
452
|
-
|
|
453
|
-
-
|
|
454
|
-
|
|
693
|
+
- Add `audioTrackSwitchingMode` `loadVideo` option to allow different strategies when
|
|
694
|
+
switching between audio tracks [#801, #806]
|
|
695
|
+
- Add `enableFastSwitching` `loadVideo` option to enable or disable optimizations doing
|
|
696
|
+
segment replacement in the browser's buffer [#779, #780]
|
|
697
|
+
- Add `initialManifest` `loadVideo` option to provide the Manifest to the RxPlayer when it
|
|
698
|
+
has already been loaded [#807]
|
|
699
|
+
- tools: Add `StringUtils` utilitary functions to tools to convert bytes to strings and
|
|
700
|
+
the other way around [#809]
|
|
701
|
+
- tools: The `TextTrackRenderer` tool is not experimental anymore: it now has a stable API
|
|
702
|
+
[#810]
|
|
703
|
+
- experimental/local-manifest: The RxPlayer now (only) plays the new `"0.2"` format
|
|
704
|
+
version of the "LocalManifest" (in the experimental `"local"` transport) [#810]
|
|
455
705
|
|
|
456
706
|
### Bug fixes
|
|
457
707
|
|
|
458
|
-
-
|
|
459
|
-
|
|
460
|
-
-
|
|
461
|
-
-
|
|
462
|
-
|
|
463
|
-
-
|
|
464
|
-
|
|
465
|
-
-
|
|
466
|
-
|
|
467
|
-
-
|
|
708
|
+
- directfile: Fix impossibility to play an encrypted content in directfile mode
|
|
709
|
+
(regression brought in v3.21.1) [#827, #830]
|
|
710
|
+
- subtitles: Display multiple cues with overlapping times [#829]
|
|
711
|
+
- smooth: Fix minimum position in a Smooth live content when fewer segments than the dvr
|
|
712
|
+
window length are available [#826]
|
|
713
|
+
- dash/metaplaylist: Fix possible playback issues on multi-Period contents, where segments
|
|
714
|
+
from multiple Periods overlap [#837]
|
|
715
|
+
- Fix very rare race condition which triggered a "setting priority of null" error after
|
|
716
|
+
synchronous segment requests were done [#817]
|
|
717
|
+
- local-manifest: LocalManifest that transition from not finished to finished while
|
|
718
|
+
playing now end properly [#818]
|
|
719
|
+
- local-manifest: Fix and clarify the duration and maximum position reported for a playing
|
|
720
|
+
LocalManifest [#818]
|
|
721
|
+
- compatibility/drm: On some webkit-based browsers, do not require the use of a server
|
|
722
|
+
certificate for DRM if the key system used is not FairPlay [#833]
|
|
723
|
+
- drm: Properly update to a different server certificate on the MediaKeys or remove it if
|
|
724
|
+
needed [#835]
|
|
725
|
+
- drm: throw MEDIA_IS_ENCRYPTED_ERROR again when playing an encrypted event without either
|
|
726
|
+
the `EME` feature, EME APIs or a `keySystems` option [#841]
|
|
468
727
|
|
|
469
728
|
### Other improvements
|
|
470
729
|
|
|
471
|
-
-
|
|
472
|
-
|
|
473
|
-
-
|
|
474
|
-
|
|
475
|
-
-
|
|
476
|
-
|
|
477
|
-
-
|
|
478
|
-
-
|
|
479
|
-
|
|
480
|
-
-
|
|
481
|
-
-
|
|
482
|
-
-
|
|
730
|
+
- subtitles/ttml: Apply default position to TTML subtitles in `"html"` `textTrackMode`
|
|
731
|
+
when no style is found [#815]
|
|
732
|
+
- subtitles/ttml: Set default text color to white to TTML subtitles in `"html"`
|
|
733
|
+
textTrackMode [#832]
|
|
734
|
+
- drm: Avoid re-setting a server certificate we know has already been pushed to improve
|
|
735
|
+
loading performance [#824, #835]
|
|
736
|
+
- dash: Always prefer a "main" AdaptationSet when hesitating between multiple ones [#828]
|
|
737
|
+
- dash: Improve minimum position precision for dynamic DASH contents when less segments
|
|
738
|
+
are available than what would be guessed from the timeShiftBufferDepth [#826]
|
|
739
|
+
- drm/logs: Better log why a MediaKeySession is not considered as "usable" [#822]
|
|
740
|
+
- drm/logs: Be more verbose with DRM-related logs, even at lower logger levels [#821]
|
|
741
|
+
- tests/conformance: Add "conformance tests", to quickly test the capabilities of new
|
|
742
|
+
devices and targets [#814]
|
|
743
|
+
- code: avoid circular dependency in `src/features` in original typescript source files
|
|
744
|
+
[#805]
|
|
745
|
+
- demo: Fix default position for the video track select element in the demo to always be
|
|
746
|
+
at the currently selected video track [#813]
|
|
747
|
+
- demo/code: Better integrate the RxPlayer to the demo: through a simple import, instead
|
|
748
|
+
of adding a script tag for the bundled version [#811]
|
|
749
|
+
- dev: Remove all enforced git-hooks (on pre-commit and pre-push) [#808]
|
|
483
750
|
|
|
484
751
|
## v3.21.1 (2020-09-21)
|
|
485
752
|
|
|
486
753
|
### Bug fixes
|
|
487
754
|
|
|
488
|
-
-
|
|
489
|
-
-
|
|
490
|
-
-
|
|
491
|
-
|
|
492
|
-
-
|
|
493
|
-
|
|
494
|
-
-
|
|
495
|
-
|
|
755
|
+
- compatibility/drm: make switching the current `MediaKeys` work on most platforms by
|
|
756
|
+
re-ordering browser API calls [#766, #744]
|
|
757
|
+
- compatibility/drm: in Edge and IE11, fix behavior which could lead to not fallbacking
|
|
758
|
+
from a non-decryptable quality due to a badly parsed key ID [#790]
|
|
759
|
+
- dash: when a Representation depends on multiple SegmentTemplate at the same time, merge
|
|
760
|
+
all corresponding information instead of just relying on the last one [#767, #768]
|
|
761
|
+
- smooth: skip discontinuity when seeking in the middle of one when playing a smooth
|
|
762
|
+
content [#792]
|
|
763
|
+
- api: fix `getUrl` and the minimum position calculation after playing for some time a
|
|
764
|
+
live content with a set `manifestUpdateUrl` [#775, #776]
|
|
765
|
+
- drm/subtitles: better handle UTF-8 and UTF-16 characters in an encrypted initialization
|
|
766
|
+
data or in subtitles [#791]
|
|
767
|
+
- requests: still retry all the other segment's URLs when a non-retryable error happen on
|
|
768
|
+
the request for one of them [#798]
|
|
769
|
+
- dash: fix infinite rebuffering when playing multi-Period DASH contents for some time
|
|
770
|
+
with a `manifestUpdateUrl` set [#797]
|
|
496
771
|
|
|
497
772
|
### Other improvements
|
|
498
773
|
|
|
499
|
-
-
|
|
500
|
-
|
|
501
|
-
-
|
|
502
|
-
|
|
503
|
-
-
|
|
504
|
-
|
|
505
|
-
-
|
|
506
|
-
|
|
507
|
-
-
|
|
508
|
-
|
|
509
|
-
-
|
|
510
|
-
|
|
774
|
+
- improve seek latency in some rare cases where we could profit from cancelling a request
|
|
775
|
+
for a needed segment [#752, #769]
|
|
776
|
+
- requests: only download an initialization segment when media segments for that
|
|
777
|
+
Representation are needed [#773]
|
|
778
|
+
- requests: avoid unnecessary segment requests when segments loaded don't exactly align
|
|
779
|
+
with what is expected if contiguous segments exist [#772, #771]
|
|
780
|
+
- better time quality switches to avoid having to re-download segments in the new quality
|
|
781
|
+
[#781, #782, #783]
|
|
782
|
+
- adaptive: limit bandwidth oscillations when the buffer level is low by choosing a lower
|
|
783
|
+
bitrate by default and limiting fall in bandwidth when in "starvation mode" [#796]
|
|
784
|
+
- compatibility/drm: filter out badly-formed CENC PSSH when found, if some well-formed
|
|
785
|
+
exist [#788]
|
|
786
|
+
- isobmff: support rare but possible occurence where an ISOBMFF box size is stored on 8
|
|
787
|
+
bytes [#784]
|
|
788
|
+
- logs: when logs are set to `"DEBUG"`, now regularly print visual representations of
|
|
789
|
+
which segments live currently in the buffer(s) [#795]
|
|
790
|
+
- demo: change separator in the demo's generated links from "\" to "!" to not change its
|
|
791
|
+
form when percent-encoded [#758, #759]
|
|
792
|
+
- project: better document changes in changelog and release notes, mostly by linking to
|
|
793
|
+
related issues and PRs
|
|
794
|
+
- code: rename "Buffer" module to "Stream" in the code, documentation and logs to better
|
|
795
|
+
reflect what that code does [#793]
|
|
796
|
+
- tests: add "global" unit tests for a more a module-oriented testing strategy (when
|
|
797
|
+
compared to our existing function-oriented unit tests) to our EME (DRM) related code
|
|
798
|
+
[#753]
|
|
511
799
|
|
|
512
800
|
## v3.21.0 (2020-06-17)
|
|
513
801
|
|
|
514
802
|
### Features
|
|
515
803
|
|
|
516
|
-
-
|
|
517
|
-
-
|
|
518
|
-
|
|
519
|
-
-
|
|
520
|
-
|
|
521
|
-
-
|
|
804
|
+
- api/events: add `"streamEvent"` event for when a DASH EventStream's event is reached
|
|
805
|
+
- api/events: add `"streamEventSkip"` event for when a DASH EventStream's event is
|
|
806
|
+
"skipped"
|
|
807
|
+
- types/events: add `IStreamEvent` and `IStreamEventData` - which define the payload
|
|
808
|
+
emitted by both a `"streamEvent"` and `"streamEventSkip"` events to the exported types
|
|
809
|
+
- api/tracks: add second argument to `setPreferredAudioTracks`, `setPreferredTextTracks`
|
|
810
|
+
and `setPreferredVideoTracks` to be able to also apply them to the currently loaded
|
|
811
|
+
Periods / content
|
|
812
|
+
- text/webvtt: parse settings attributes of WebVTT subtitles when in HTML mode
|
|
813
|
+
- api/tracks: add codec information to `getAvailableAudioTracks` and `getAudioTrack`
|
|
522
814
|
|
|
523
815
|
### Bug fixes
|
|
524
816
|
|
|
525
|
-
-
|
|
526
|
-
|
|
527
|
-
-
|
|
528
|
-
-
|
|
529
|
-
|
|
530
|
-
-
|
|
531
|
-
-
|
|
532
|
-
|
|
533
|
-
-
|
|
817
|
+
- dash: do not reduce the minimum position when using the `manifestUpdateUrl`
|
|
818
|
+
`transportOptions` in `loadVideo`
|
|
819
|
+
- local-manifest: consider `language` property from a "local" Manifest
|
|
820
|
+
- local-manifest: refresh the Manifest even if we dont have a Manifest URL, as is often
|
|
821
|
+
the case when playing locally-stored contents
|
|
822
|
+
- local-manifest: allow the "expired" property of a local-manifest to be updated
|
|
823
|
+
- compat/eme/fairplay: for fairplay contents, better format the initialization data given
|
|
824
|
+
to the CDM. The previous behavior could lead to invalid license requests
|
|
825
|
+
- eme: re-allow serialization into a JSON string of the persisted session data, as
|
|
826
|
+
presented in the DRM tutorial
|
|
827
|
+
- compat/low-latency: fix compilation of async/await when playing low-latency contents
|
|
828
|
+
with the default bundled builds
|
|
829
|
+
- eme: ensure that the previous MediaKeySystemAccess used had `persistentState` to
|
|
830
|
+
"required" when a new content needs it to be
|
|
831
|
+
- eme: fix `closeSessionsOnStop` `keySystems` option actually not removing any
|
|
832
|
+
MediaKeySession when stopping a content (v3.20.1 regression).
|
|
534
833
|
|
|
535
834
|
### Other improvements
|
|
536
835
|
|
|
537
|
-
-
|
|
538
|
-
|
|
539
|
-
-
|
|
540
|
-
|
|
541
|
-
-
|
|
836
|
+
- dash: emit minor errors arising when parsing the DASH MPD through warning events (whose
|
|
837
|
+
payload will be an error with the `PIPELINE_PARSE_ERROR` code)
|
|
838
|
+
- dash: consider AdaptationSet@selectionPriority in our initial track choice if the user
|
|
839
|
+
preferences lead to multiple compatible tracks
|
|
840
|
+
- misc: do not download video segments when playing on an "audio" element.
|
|
841
|
+
- eme: replace the MediaKeySession's cache entry based on the least recently used instead
|
|
842
|
+
of on the least recently created to improve cache effectiveness.
|
|
843
|
+
- eme/persistent sessions: Limit the maximum of stored persistent MediaKeySessions to 1000
|
|
844
|
+
to avoid the storage to grow indefinitely (higher than that, the least-recently used
|
|
845
|
+
will be evicted)
|
|
542
846
|
|
|
543
847
|
## v3.20.1 (2020-05-06)
|
|
544
848
|
|
|
545
849
|
### Bug fixes
|
|
546
850
|
|
|
547
|
-
-
|
|
548
|
-
-
|
|
549
|
-
|
|
550
|
-
-
|
|
551
|
-
|
|
552
|
-
-
|
|
851
|
+
- eme: fix `OTHER_ERROR` issue arising when loading a new encrypted media when a previous
|
|
852
|
+
since-disposed instance of the RxPlayer played encrypted contents on the same media
|
|
853
|
+
element
|
|
854
|
+
- eme: fix `OTHER_ERROR` issue arising on Internet Explorer 11 when playing more than one
|
|
855
|
+
encrypted content
|
|
856
|
+
- eme: fix issue where more than 50 active MediaKeySessions at the same time could lead to
|
|
857
|
+
infinite rebuffering when playing back a previous content with multiple encryption keys
|
|
858
|
+
- directfile: for directfile contents, don't reset to the preferred audio, text or video
|
|
859
|
+
track when the track list changes
|
|
860
|
+
- eme: remove any possibility of collision in the storage of EME initialization data. The
|
|
861
|
+
previous behavior could theorically lead some initialization data to be ignored.
|
|
862
|
+
- eme: fix typo which conflated an EME "internal-error" key status and an
|
|
863
|
+
"output-restricted" one.
|
|
553
864
|
|
|
554
865
|
## v3.20.0 (2020-04-22)
|
|
555
866
|
|
|
556
867
|
### Features
|
|
557
868
|
|
|
558
|
-
-
|
|
559
|
-
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
-
|
|
869
|
+
- api: add `disableVideoTrack` method
|
|
870
|
+
- api: add the `preferredVideoTrack` constructor option and `setPreferredVideoTracks` /
|
|
871
|
+
`getPreferredVideoTracks` methods to set a video track preference (or to start with the
|
|
872
|
+
video track disabled).
|
|
873
|
+
- api: add optional `codec` property to preferred audio tracks APIs, allowing applications
|
|
874
|
+
to communicate a codec preference.
|
|
875
|
+
- api: make the `language` and `audioDescription` properties in `preferredAudioTracks`'
|
|
876
|
+
objects optional.
|
|
877
|
+
- api: add `signInterpreted` to `getVideoTrack` and `getAvailableVideoTracks` return
|
|
878
|
+
objects to know when a track contains sign language interpretation
|
|
563
879
|
|
|
564
880
|
### Deprecated
|
|
565
881
|
|
|
566
|
-
-
|
|
567
|
-
-
|
|
568
|
-
-
|
|
882
|
+
- api: deprecate the `getManifest()` method
|
|
883
|
+
- api: deprecate the `getCurrentAdaptations()` method
|
|
884
|
+
- api: deprecate the `getCurrentRepresentations()` method
|
|
569
885
|
|
|
570
886
|
### Bug fixes
|
|
571
887
|
|
|
572
|
-
-
|
|
573
|
-
|
|
574
|
-
-
|
|
888
|
+
- compat/eme: Set proper EME Safari implementation, to play contents with DRM on it
|
|
889
|
+
without issues
|
|
890
|
+
- compat/directfile/iOS: On Safari iOS, fix auto-play warnings when a directfile content
|
|
891
|
+
is played with the `playsinline` attribute set.
|
|
892
|
+
- directfile: In Directfile mode, always disable the current text track when a `null` is
|
|
893
|
+
encountered in the preferredTextTracks array
|
|
575
894
|
|
|
576
895
|
### Other improvements
|
|
577
896
|
|
|
578
|
-
-
|
|
579
|
-
-
|
|
897
|
+
- abr: ignore requests that may have directly hit the cache in our adaptive logic
|
|
898
|
+
- dash/perf: improve parsing efficiency for very large MPDs, at the expense of a very
|
|
899
|
+
small risk of de-synchronization. Mechanisms still allow for regular re-synchronization.
|
|
580
900
|
|
|
581
901
|
## v3.19.0 (2020-03-11)
|
|
582
902
|
|
|
583
903
|
### Features
|
|
584
904
|
|
|
585
|
-
-
|
|
586
|
-
|
|
587
|
-
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
-
|
|
905
|
+
- dash: handle multiple URL per segment announced through multiple BaseURL elements in the
|
|
906
|
+
MPD
|
|
907
|
+
- dash/smooth/metaplaylist: add `manifestUpdateUrl` to loadVideo's `transportOptions` to
|
|
908
|
+
provide a shorter version of the Manifest, used for more resource-efficient Manifest
|
|
909
|
+
updates
|
|
910
|
+
- tools/createMetaplaylist: add the experimental `createMetaplaylist` tool, which allows
|
|
911
|
+
to generate Metaplaylist contents from given Manifests
|
|
912
|
+
- tools/TextTrackRenderer: add the optional `language` property to the `setTextTrack`
|
|
913
|
+
method of the experimental `TextTrackRenderer` tool as it could be needed when parsing
|
|
914
|
+
SAMI subtitles
|
|
915
|
+
- types: export IAvailableAudioTrack, IAvailableTextTrack and IAvailableVideoTrack types
|
|
916
|
+
- types: export IAudioTrack, ITextTrack and IVideoTrack types
|
|
591
917
|
|
|
592
918
|
### Bug fixes
|
|
593
919
|
|
|
594
|
-
-
|
|
595
|
-
|
|
596
|
-
-
|
|
920
|
+
- dash/smooth: fix segment url resolution when there is query parameters in the Manifest
|
|
921
|
+
URL and/or segment path, themselves containing "/" characters
|
|
922
|
+
- local-manifest: fix videoElement's duration and `getVideoDuration` for contents in the
|
|
923
|
+
experimental `local` transport
|
|
924
|
+
- tools/parseBifThumbnails: do not return an un-displayable ArrayBuffer of the whole thing
|
|
925
|
+
in each `image` property in the experimental `parseBifThumbnails` function
|
|
597
926
|
|
|
598
927
|
### Other improvements
|
|
599
928
|
|
|
600
|
-
-
|
|
601
|
-
|
|
602
|
-
-
|
|
603
|
-
-
|
|
604
|
-
|
|
605
|
-
-
|
|
929
|
+
- compat: avoid pushing a segment on top of the current position in Safari, as it can
|
|
930
|
+
sometime lead to green macro-blocks
|
|
931
|
+
- dash: add multiple performance improvements related to MPD parsing on embedded devices
|
|
932
|
+
- dash/smooth/metaplaylist/local: refresh less often the Manifest when parsing it takes
|
|
933
|
+
too much time to improve performance
|
|
934
|
+
- smooth: filter unsupported video and audio QualityLevels when parsing a Smooth Manifest
|
|
935
|
+
- build: greatly reduce the time needed to produce a modular build through the
|
|
936
|
+
`npm run build:modular` script
|
|
937
|
+
- build: remove Object.assign dependency
|
|
606
938
|
|
|
607
939
|
## v3.18.0 (2020-01-30)
|
|
608
940
|
|
|
609
941
|
### Features
|
|
610
942
|
|
|
611
|
-
-
|
|
612
|
-
-
|
|
613
|
-
-
|
|
614
|
-
-
|
|
615
|
-
|
|
616
|
-
-
|
|
617
|
-
-
|
|
618
|
-
|
|
943
|
+
- directfile: support most audio tracks API when playing a directfile content
|
|
944
|
+
- directfile: support most text tracks API when playing a directfile content
|
|
945
|
+
- directfile: support most video tracks API when playing a directfile content
|
|
946
|
+
- api: add `seeking` and `seeked` events which announce the beginning and end of a seek,
|
|
947
|
+
even when seeking to an already buffered part
|
|
948
|
+
- subtitles/ttml: handle styles inheriting other styles in TTML subtitles
|
|
949
|
+
- local-manifest: add experimental `local` transport to allow the playback of downloaded
|
|
950
|
+
contents (even when offline)
|
|
951
|
+
- tools: add the experimental `TextTrackRenderer` tool to be able to add a custom text
|
|
952
|
+
track to any content
|
|
953
|
+
- tools: add the experimental `parseBifThumbnails` tool to easily parse thumbnails in the
|
|
954
|
+
BIF format
|
|
619
955
|
|
|
620
956
|
### Deprecated
|
|
621
957
|
|
|
622
|
-
-
|
|
623
|
-
|
|
624
|
-
-
|
|
625
|
-
|
|
626
|
-
-
|
|
958
|
+
- api: deprecate the `supplementaryTextTracks` loadVideo option in profit of the external
|
|
959
|
+
TextTrackRenderer tool
|
|
960
|
+
- api: aeprecate the `supplementaryImageTracks` loadVideo option in profit of the external
|
|
961
|
+
parseBifThumbnails tool
|
|
962
|
+
- api: deprecate the `getImageTrackData` method in profit of the external
|
|
963
|
+
`parseBifThumbnails` tool
|
|
964
|
+
- api: deprecate the `imageTrackUpdate` event in profit of the external
|
|
965
|
+
`parseBifThumbnails` tool
|
|
966
|
+
- api: deprecate `hideNativeSubtitles` (officially)
|
|
627
967
|
|
|
628
968
|
### Bug fixes
|
|
629
969
|
|
|
630
|
-
-
|
|
631
|
-
|
|
970
|
+
- subtitles/ttml: Correctly handle alpha information in the rgba values included in a TTML
|
|
971
|
+
file
|
|
972
|
+
- images/bif: fix sometimes incorrect "ts" value on thumbnails returned by the
|
|
973
|
+
`getImageTrackData` method and the `imageTrackUpdate` event
|
|
632
974
|
|
|
633
975
|
### Other improvements
|
|
634
976
|
|
|
635
|
-
-
|
|
636
|
-
-
|
|
637
|
-
-
|
|
638
|
-
|
|
977
|
+
- node: allow the RxPlayer to be imported from Node.js for server-side-rendering
|
|
978
|
+
- images/bif: throw a better error when an invalid BIF file is received
|
|
979
|
+
- api: be more "generous" with player events by ditching the deep-equal npm module due to
|
|
980
|
+
package size and some edge-case behavior
|
|
981
|
+
- demo: avoid re-rendering multiple ui components when unnecessary
|
|
639
982
|
|
|
640
983
|
## v3.17.1 (2019-12-20)
|
|
641
984
|
|
|
642
985
|
### Bug fixes
|
|
643
986
|
|
|
644
|
-
-
|
|
645
|
-
|
|
646
|
-
-
|
|
987
|
+
- dash/metaplaylist: fix infinite rebuffering issue when refreshing multi-Period contents
|
|
988
|
+
under specific conditions
|
|
989
|
+
- buffer: be less aggressive when garbage collecting subtitles (if the
|
|
990
|
+
maxBufferAhead/maxBufferBehind options are set) to avoid useful subtitles being removed
|
|
991
|
+
- directfile/compat: for directfile contents, trigger directly the LOADED state on
|
|
992
|
+
iOS/iPad/iPod browsers as those are not preloaded there
|
|
647
993
|
|
|
648
994
|
### Other improvements
|
|
649
995
|
|
|
650
|
-
-
|
|
651
|
-
|
|
996
|
+
- demo: display clickable "play" button on the video element when autoplay is blocked due
|
|
997
|
+
to browser policies - to help users unlock the situation
|
|
998
|
+
- demo: add "Other" key system to allow specifying a custom key system in the demo page
|
|
652
999
|
|
|
653
1000
|
## v3.17.0 (2019-12-09)
|
|
654
1001
|
|
|
655
1002
|
### Features
|
|
656
1003
|
|
|
657
|
-
-
|
|
658
|
-
|
|
659
|
-
-
|
|
660
|
-
|
|
661
|
-
-
|
|
662
|
-
|
|
663
|
-
-
|
|
664
|
-
-
|
|
665
|
-
|
|
666
|
-
-
|
|
1004
|
+
- eme/api: add keySystems.fallbackOn property to `loadVideo` to allow fallbacking to other
|
|
1005
|
+
qualities when encountering various key errors
|
|
1006
|
+
- eme/api: allow to set `fallbackOnLastTry` on a `getLicense` Error to be able to fallback
|
|
1007
|
+
on other qualities when a license request is on error
|
|
1008
|
+
- eme/api: add `NO_PLAYABLE_REPRESENTATION` `MediaError` for when every video or audio
|
|
1009
|
+
quality cannot be played
|
|
1010
|
+
- manifest/api: add `decipherable` property to a Representation object
|
|
1011
|
+
- api: add `decipherabilityUpdate` event triggered when a Representation's decipherability
|
|
1012
|
+
status is updated
|
|
1013
|
+
- languages/api: add `dub` boolean to audio tracks (through `getAudioTrack` and
|
|
1014
|
+
`getAvailableAudioTracks`) to tell if this is a dubbed track
|
|
1015
|
+
- languages/ttml: with TTML subtitles, support length relative to the Computed Cell Size
|
|
1016
|
+
for `tts:fontSize`, `tts:padding`, `tts:extent`, `tts:origin` and `tts:lineHeight`
|
|
1017
|
+
- transports/api: add `checkMediaSegmentIntegrity` `transportOptions` to automatically
|
|
1018
|
+
retry media segments which appear corrupted
|
|
1019
|
+
- transports/api: add `minimumManifestUpdateInterval` `transportOptions` to limit the
|
|
1020
|
+
Manifest update frequency
|
|
1021
|
+
- transports/api: add "progress" callback to a custom segmentLoader to improve adaptive
|
|
1022
|
+
streaming when an external segment loader is used
|
|
667
1023
|
|
|
668
1024
|
### Bug fixes
|
|
669
1025
|
|
|
670
|
-
-
|
|
671
|
-
|
|
672
|
-
-
|
|
673
|
-
|
|
674
|
-
-
|
|
675
|
-
|
|
676
|
-
-
|
|
677
|
-
|
|
678
|
-
|
|
1026
|
+
- dash/metaplaylist: download the first segment of a new Period when the last downloaded
|
|
1027
|
+
segment from the previous Period ends after that segment ends
|
|
1028
|
+
- smooth/metaplaylist: consider `serverSyncInfos` `transportOptions` for Smooth and
|
|
1029
|
+
MetaPlaylist contents
|
|
1030
|
+
- buffers: completely clean a previous audio/text track from the SourceBuffer when
|
|
1031
|
+
switching to a different audio/text track
|
|
1032
|
+
- dash: avoid requesting an inexistent segment when downloading a multi-Period DASH
|
|
1033
|
+
content with a number-based SegmentTemplate with the `agressiveMode` option set to
|
|
1034
|
+
`true`
|
|
1035
|
+
- eme: do not wait for a previous invalid MediaKeySession to be closed before re-creating
|
|
1036
|
+
a valid one for the same content, to work around a widevine issue
|
|
1037
|
+
- eme: avoid race condition issue arising when multiple init data are received before the
|
|
1038
|
+
MediaKeys have been attached to the media element
|
|
1039
|
+
- dash: do not consider "trickmodes" AdaptationSet as directly playable video tracks
|
|
1040
|
+
- directfile: begin directly at the end (instead of the beginning) when setting a
|
|
1041
|
+
`startAt` loadVideo option with a `fromLastPosition` property set to `0` on directfile
|
|
1042
|
+
contents
|
|
1043
|
+
- metaplaylist: fix playback for non-live MetaPlaylist contents not starting at a `0` time
|
|
679
1044
|
|
|
680
1045
|
### Other improvements
|
|
681
1046
|
|
|
682
|
-
-
|
|
683
|
-
-
|
|
684
|
-
|
|
685
|
-
-
|
|
686
|
-
|
|
687
|
-
-
|
|
1047
|
+
- abr: better estimate a lower bitrate after a sudden fall in bandwidth
|
|
1048
|
+
- dash/low-latency: properly use @availabilityTimeOffset when playing a low-latency DASH
|
|
1049
|
+
content
|
|
1050
|
+
- code: use only strict boolean expressions in the code (do not rely on falsy or truthy
|
|
1051
|
+
values anymore).
|
|
1052
|
+
- demo: add buffer content graphs to the demo page to vizualize exactly what have been
|
|
1053
|
+
buffered
|
|
1054
|
+
- demo: improve accessibility of the demo page for the english-speaking visually impaired
|
|
1055
|
+
- misc: replace uglifyJS by terser for minification purposes
|
|
688
1056
|
|
|
689
1057
|
## v3.16.1 (2019-10-03)
|
|
690
1058
|
|
|
691
1059
|
### Bug fixes
|
|
692
1060
|
|
|
693
|
-
-
|
|
694
|
-
-
|
|
695
|
-
|
|
696
|
-
-
|
|
697
|
-
|
|
698
|
-
-
|
|
699
|
-
|
|
1061
|
+
- dash: update timeshiftBufferDepth considered when refreshing the MPD
|
|
1062
|
+
- dash: fix infinite rebuffering issue when refreshing a Multi-Period MPD with the oldest
|
|
1063
|
+
Periods removed
|
|
1064
|
+
- api: go to `"SEEKING"` state instead of `"BUFFERING"` when seeking while the player is
|
|
1065
|
+
in the "BUFFERING" state
|
|
1066
|
+
- api: Avoid reinitializing the video, audio and text track choice after a `"RELOADING"`
|
|
1067
|
+
state
|
|
1068
|
+
- api: When going back to a Period on which `disableTextTracks` was called, keep the text
|
|
1069
|
+
track disabled even if different `preferredTextTracks` are set
|
|
1070
|
+
- smooth: Replace `{CustomAttributes}` token in a segment URL
|
|
1071
|
+
- dash: load the last segment of a Period when it is declared in a SegmentTemplate (with
|
|
1072
|
+
no SegmentTimeline) and when its end is exactly equal to the end of the Period
|
|
700
1073
|
|
|
701
1074
|
### Other improvements
|
|
702
1075
|
|
|
703
|
-
-
|
|
704
|
-
|
|
705
|
-
-
|
|
706
|
-
-
|
|
707
|
-
|
|
708
|
-
-
|
|
709
|
-
|
|
710
|
-
-
|
|
711
|
-
-
|
|
712
|
-
-
|
|
713
|
-
|
|
714
|
-
-
|
|
715
|
-
|
|
716
|
-
-
|
|
1076
|
+
- dash/metaplaylist: be more tolerant with the appendWindows set as the previous behavior
|
|
1077
|
+
could lead to infinite rebuffering and segments re-downloading
|
|
1078
|
+
- dash/metaplaylist/smooth: Better handle discontinuities in a VoD content
|
|
1079
|
+
- dash/metaplaylist: Handle discontinuities between DASH Periods and between MetaPlaylist
|
|
1080
|
+
contents
|
|
1081
|
+
- dash/smooth: Avoid requesting multiple time the last segment when the duration given in
|
|
1082
|
+
the Manifest are inexact
|
|
1083
|
+
- smooth: Skip without throwing Manifest's StreamIndex with an unrecognized type
|
|
1084
|
+
- dash: Improve prediction of when to update a dynamic MPD with xlinks
|
|
1085
|
+
- dash: Be more tolerant of differences between a segment's time announced by the Manifest
|
|
1086
|
+
and the reality to avoid multiple cases of segment re-downloading
|
|
1087
|
+
- dash: Guess initialization range for segments defined in a SegmentBase without an
|
|
1088
|
+
Initialization element
|
|
1089
|
+
- dash: Throw better error when a sidx with a reference_type `1` is encountered
|
|
1090
|
+
- api: Throw a better error when setting a `preferredAudioTracks` or `preferredTextTracks`
|
|
1091
|
+
value in the wrong format
|
|
1092
|
+
- demo: Allow to export and share demo links with custom contents
|
|
1093
|
+
- demo: Fix video track switching in the demo page
|
|
1094
|
+
- demo: Fix spinner not hiding when playing on very specific conditions
|
|
1095
|
+
- demo: reset playback rate before loading a content
|
|
717
1096
|
|
|
718
1097
|
## v3.16.0 (2019-09-16)
|
|
719
1098
|
|
|
720
1099
|
### Features
|
|
721
1100
|
|
|
722
|
-
-
|
|
723
|
-
-
|
|
724
|
-
-
|
|
725
|
-
|
|
1101
|
+
- dash: add `lowLatencyMode` `loadVideo` option to play low-latency DASH contents with
|
|
1102
|
+
chunk-encoded CMAF and chunked transfer encoding close to the live edge efficiently
|
|
1103
|
+
- metaplaylist: add the experimental `metaplaylist` transport, which allows to smoothly
|
|
1104
|
+
play a concatenation of multiple contents
|
|
1105
|
+
- api: add `serverSyncInfos` to `transportOptions` (`loadVideo` option)
|
|
1106
|
+
- errors: add `code` property to a `NetworkError` indicating the corresponding HTTP status
|
|
726
1107
|
|
|
727
1108
|
### Bug fixes
|
|
728
1109
|
|
|
729
|
-
-
|
|
730
|
-
|
|
731
|
-
-
|
|
1110
|
+
- dash: fix minimum time calculation for Multi-Period MPDs with SegmentTemplate segment
|
|
1111
|
+
indexes but no SegmentTimeline
|
|
1112
|
+
- dash: play static MPD not declaring any segment for a time of 0 seconds at the minimum
|
|
1113
|
+
possible time by default
|
|
1114
|
+
- dash: fix maximum position calculation for live Multi-Period contents where the
|
|
1115
|
+
currently generated period is not the last one declared in the MPD
|
|
732
1116
|
|
|
733
1117
|
### Other improvements
|
|
734
1118
|
|
|
735
|
-
-
|
|
736
|
-
|
|
737
|
-
-
|
|
738
|
-
|
|
739
|
-
-
|
|
740
|
-
|
|
741
|
-
-
|
|
742
|
-
|
|
1119
|
+
- api: authorize to set no `url` to `loadVideo` if the `manifestLoader` `transportOption`
|
|
1120
|
+
is set
|
|
1121
|
+
- smooth: the `aggressiveMode` option now only allows requests for segments which had time
|
|
1122
|
+
to at least begin to be generated to avoid too much HTTP 412
|
|
1123
|
+
- dash: the `aggressiveMode` now also have an effect for some SegmentTemplate DASH
|
|
1124
|
+
contents (download segments even if they're not finished)
|
|
1125
|
+
- code: add pre-commit and pre-push git hooks to automate checking and facilitate
|
|
1126
|
+
bisecting
|
|
1127
|
+
- dash: better handle live Multi-Period contents where the currently broadcasted period is
|
|
1128
|
+
not the last one declared in the MPD
|
|
1129
|
+
- dash: better infer the end of a Period if the start of the next one is defined
|
|
1130
|
+
- api: always start live contents at the live edge if one is defined and not just before
|
|
1131
|
+
the last available segments
|
|
1132
|
+
- ci: run integration tests with Travis and appveyor again
|
|
743
1133
|
|
|
744
1134
|
## v3.15.1 (2019-08-07)
|
|
745
1135
|
|
|
746
1136
|
### Bug fixes
|
|
747
1137
|
|
|
748
|
-
-
|
|
749
|
-
|
|
750
|
-
-
|
|
1138
|
+
- api: fix `networkConfig.segmentRetry` `loadVideo` option. Due to a typo, it was forced
|
|
1139
|
+
to the default value (4)
|
|
1140
|
+
- api/abr: when the `throttleVideoBitrateWhenHidden` option is set to true, wait 60
|
|
1141
|
+
seconds (as documented) after the page is hidden before switching to a lower bitrate
|
|
1142
|
+
- dash: fix segment indexing for SegmentList-based MPD with a period start different than
|
|
1143
|
+
0
|
|
751
1144
|
|
|
752
1145
|
### Other improvements
|
|
753
1146
|
|
|
754
|
-
-
|
|
755
|
-
|
|
756
|
-
-
|
|
757
|
-
|
|
1147
|
+
- dash/smooth: check if the segment should still be available before retrying it (avoid
|
|
1148
|
+
unnecessary HTTP 404 errors)
|
|
1149
|
+
- dash/smooth: the Manifest can now be refreshed due to unexpected 404 HTTP errors on a
|
|
1150
|
+
segment request (only on particular conditions)
|
|
1151
|
+
- dash: better handle segments overlapping multiple periods by using the data that is only
|
|
1152
|
+
within the concerned Period's bounds
|
|
1153
|
+
- demo: authorize to play stored contents with an HTTP Manifest in the HTTPS demo
|
|
758
1154
|
|
|
759
1155
|
## v3.15.0 (2019-07-24)
|
|
760
1156
|
|
|
761
1157
|
### Features
|
|
762
1158
|
|
|
763
|
-
-
|
|
764
|
-
|
|
765
|
-
-
|
|
766
|
-
|
|
1159
|
+
- eme: add `getLicenseConfig` property to the `keySystems` `loadVideo` option, to be able
|
|
1160
|
+
to have much more control over getLicense's behavior
|
|
1161
|
+
- eme: add `noRetry` to `getLicense` errors to abort retries when the licence request
|
|
1162
|
+
fails
|
|
1163
|
+
- eme: add `message` to `getLicense` and `onKeyStatusesChange` errors to allow custom
|
|
1164
|
+
errors when the license request fails
|
|
1165
|
+
- eme: add a new `ENCRYPTED_MEDIA_ERROR` with the code `CREATE_MEDIA_KEYS_ERROR` for when
|
|
1166
|
+
we cannot create a MediaKeys instance (seen on some Android devices).
|
|
767
1167
|
|
|
768
1168
|
### Bug fixes
|
|
769
1169
|
|
|
770
|
-
-
|
|
771
|
-
|
|
772
|
-
-
|
|
773
|
-
|
|
774
|
-
-
|
|
775
|
-
|
|
776
|
-
-
|
|
777
|
-
|
|
778
|
-
-
|
|
779
|
-
|
|
1170
|
+
- api: avoid sending {audio,video...}BitrateChange with a `-1` value when starting to play
|
|
1171
|
+
a content
|
|
1172
|
+
- api/abr: a call to `setAudioBitrate` or `setVideoBitrate` could be ignored for a content
|
|
1173
|
+
if it was still loading. This is now fixed.
|
|
1174
|
+
- api/abr: a call to `setMaxAutoBitrate` or `setMaxVideoBitrate` could be ignored for a
|
|
1175
|
+
content if it was still loading. This is now fixed.
|
|
1176
|
+
- dash: fix maximum position calculation when refreshing a live MPD with a UTCTiming
|
|
1177
|
+
element and no SegmentTimeline.
|
|
1178
|
+
- dash/smooth: a MPD/Manifest request failing could still be retried when loading another
|
|
1179
|
+
content
|
|
1180
|
+
- eme/compat: on Safari, depend on WebKitMediaKeys even if MediaKeys is defined because of
|
|
1181
|
+
differences of implementations
|
|
1182
|
+
- pipelines: always send `PIPELINE_LOAD_ERROR` warnings when a segment request or a
|
|
1183
|
+
Manifest request is retried
|
|
1184
|
+
- errors: replace undocumented `PIPELINE_RESOLVE_ERROR` code into the proper documented
|
|
1185
|
+
`PIPELINE_LOAD_ERROR` code
|
|
1186
|
+
- errors: replace undocumented `PIPELINE_PARSING_ERROR` code into the proper documented
|
|
1187
|
+
`PIPELINE_PARSE_ERROR` code
|
|
1188
|
+
- errors: add to the `ErrorCodes` static property the previously forgotten `NONE`,
|
|
1189
|
+
`INVALID_KEY_SYSTEM` and `INVALID_ENCRYPTED_EVENT` codes.
|
|
780
1190
|
|
|
781
1191
|
### Other improvements
|
|
782
1192
|
|
|
783
|
-
-
|
|
784
|
-
|
|
785
|
-
-
|
|
786
|
-
|
|
787
|
-
-
|
|
1193
|
+
- abr: make use of another adaptive algorithm, buffer-based, when enough buffer has been
|
|
1194
|
+
built.
|
|
1195
|
+
- demo: allow the user to save custom contents to local storage to be able to reuse them
|
|
1196
|
+
when the page is refreshed
|
|
1197
|
+
- eme: throw a better error in `onKeyStatusesChange` if the Promise is rejected without an
|
|
1198
|
+
Error
|
|
1199
|
+
- errors: refactore error management to better correlate the `fatal` boolean to a playback
|
|
1200
|
+
stop and to better ensure a documented error is always thrown
|
|
1201
|
+
- scripts: make our build script compatible with MacOS (handle BSD sed)
|
|
788
1202
|
|
|
789
1203
|
## v3.14.0 (2019-06-26)
|
|
790
1204
|
|
|
791
1205
|
### Features
|
|
792
1206
|
|
|
793
|
-
-
|
|
1207
|
+
- api/abr: add `throttleVideoBitrateWhenHidden` which unlike `throttleWhenHidden` does not
|
|
1208
|
+
throttle the video bitrate if the media element is in picture-in-picture mode
|
|
794
1209
|
|
|
795
1210
|
### Deprecated
|
|
796
1211
|
|
|
797
|
-
-
|
|
1212
|
+
- api/abr: deprecate `throttleWhenHidden` in profit of `throttleVideoBitrateWhenHidden`
|
|
1213
|
+
which has a better API definition for some edge cases
|
|
798
1214
|
|
|
799
1215
|
### Bug fixes
|
|
800
1216
|
|
|
801
|
-
-
|
|
802
|
-
-
|
|
803
|
-
|
|
804
|
-
-
|
|
805
|
-
|
|
806
|
-
-
|
|
1217
|
+
- api/abr: `limitVideoWidth` now also considers if the video is in picture-in-picture mode
|
|
1218
|
+
- buffer: better prevent the `BUFFER_FULL_ERROR` `MediaError` on some memory-constrained
|
|
1219
|
+
devices
|
|
1220
|
+
- dash: consider the buffer depth as infinite (until `availabilityStartTime`) if the
|
|
1221
|
+
`timeShiftBufferDepth` is not set
|
|
1222
|
+
- smooth: consider the buffer depth as infinite if the `DVRWindowLength` is not set or set
|
|
1223
|
+
to 0
|
|
1224
|
+
- init: start live contents that just began (less than 10 seconds ago) at the minimum
|
|
1225
|
+
position instead of throwing a STARTING_TIME_NOT_FOUND MEDIA_ERROR.
|
|
1226
|
+
- tests: use web server (local by default) instead of stubbed XHRs to serve tests contents
|
|
1227
|
+
to our integration and memory tests
|
|
807
1228
|
|
|
808
1229
|
## v3.13.0 (2019-05-15)
|
|
809
1230
|
|
|
810
1231
|
### Features
|
|
811
1232
|
|
|
812
|
-
-
|
|
1233
|
+
- eme: add `disableMediaKeysAttachmentLock` key system option to bypass a deadlock (with
|
|
1234
|
+
possible tradeoffs) when playing encrypted contents on some peculiar devices
|
|
813
1235
|
|
|
814
1236
|
### Bug fixes
|
|
815
1237
|
|
|
816
|
-
-
|
|
817
|
-
|
|
818
|
-
-
|
|
1238
|
+
- dash/smooth: never rely on Date.now when calculating time differences to avoid issues
|
|
1239
|
+
when the user adjusts the system clock while playing a live content
|
|
1240
|
+
- eme: throw a better error (avoid `toString is not a function` messages) for a
|
|
1241
|
+
`KEY_LOAD_ERROR` when the `getLicense` function provided fails without a proper error
|
|
1242
|
+
- api: fix rare situation with DASH multi-period contents where we reported no available
|
|
1243
|
+
bitrate, Adaptation nor Representation when switching to another Period.
|
|
819
1244
|
|
|
820
1245
|
### Other improvements
|
|
821
1246
|
|
|
822
|
-
-
|
|
823
|
-
|
|
824
|
-
-
|
|
1247
|
+
- eme: add other default contentTypes when calling requestMediaKeySystemAccess to improve
|
|
1248
|
+
device support
|
|
1249
|
+
- demo: update the demo UI
|
|
1250
|
+
- code: change indentation style of a big chunk of the code to increase readability
|
|
825
1251
|
|
|
826
1252
|
## v3.12.0 (2019-04-10)
|
|
827
1253
|
|
|
828
1254
|
### Features
|
|
829
1255
|
|
|
830
|
-
-
|
|
831
|
-
-
|
|
832
|
-
-
|
|
1256
|
+
- dash: add UTCTiming support
|
|
1257
|
+
- smooth: add `aggressiveMode` transportOption to requests segments in advance
|
|
1258
|
+
- dash/smooth: add `referenceDateTime` transportOption to set a default reference time for
|
|
1259
|
+
live contents
|
|
833
1260
|
|
|
834
1261
|
### Bug fixes
|
|
835
1262
|
|
|
836
|
-
-
|
|
1263
|
+
- buffer: work around firefox bug leading to infinite rebuffering when seeking many times
|
|
1264
|
+
in a content
|
|
837
1265
|
|
|
838
1266
|
### Other improvements
|
|
839
1267
|
|
|
840
|
-
-
|
|
841
|
-
|
|
842
|
-
-
|
|
1268
|
+
- dash/smooth: add optional `url`, `sendingTime` and `receivingTime` properties in the
|
|
1269
|
+
response given by manifestLoader transportOption
|
|
1270
|
+
- misc: deploy documentation pages and demos from our previous versions
|
|
1271
|
+
- misc: add new RxPlayer logo to README.md and the demo
|
|
843
1272
|
|
|
844
1273
|
## v3.11.1 (2019-03-11)
|
|
845
1274
|
|
|
846
1275
|
### Bug fixes
|
|
847
1276
|
|
|
848
|
-
-
|
|
1277
|
+
- npm: publish package again. An error in the previous release led to some files missing
|
|
1278
|
+
on npm
|
|
849
1279
|
|
|
850
1280
|
## v3.11.0 (2019-03-07)
|
|
851
1281
|
|
|
852
1282
|
### Features
|
|
853
1283
|
|
|
854
|
-
-
|
|
855
|
-
-
|
|
856
|
-
|
|
857
|
-
-
|
|
858
|
-
|
|
859
|
-
-
|
|
1284
|
+
- languages/api: add `preferredAudioTracks` and `preferredTextTracks` player options
|
|
1285
|
+
- languages/api: add `setPreferredAudioTracks`, `getPreferredAudioTracks`,
|
|
1286
|
+
`setPreferredTextTracks` and `getPreferredTextTracks` methods
|
|
1287
|
+
- languages/api: add `availableAudioTracksChange`, `availableTextTracksChange` and
|
|
1288
|
+
`availableVideoTracksChange` events
|
|
1289
|
+
- abr/api: add `availableAudioBitratesChange` and `availableVideoBitratesChange` events
|
|
1290
|
+
- eme: allow playback of mixed encrypted and unencrypted contents on Chrome
|
|
1291
|
+
- types: export the new `IAudioTrackPreference` and `ITextTrackPreference` types
|
|
860
1292
|
|
|
861
1293
|
### Deprecated
|
|
862
1294
|
|
|
863
|
-
-
|
|
864
|
-
|
|
1295
|
+
- languages/api: deprecate the `defaultAudioTrack` `loadVideo` option in favor of the
|
|
1296
|
+
`preferredAudioTracks` player option.
|
|
1297
|
+
- languages/api: deprecate the `defaultTextTrack` `loadVideo` option in favor of the
|
|
1298
|
+
`preferredTextTracks` player option.
|
|
865
1299
|
|
|
866
1300
|
### Bug fixes
|
|
867
1301
|
|
|
868
|
-
-
|
|
869
|
-
-
|
|
870
|
-
-
|
|
871
|
-
|
|
872
|
-
-
|
|
1302
|
+
- dash: fix `minimumUpdatePeriod` management for DASH contents
|
|
1303
|
+
- smooth: better prevent 412 HTTP errors for smooth streaming contents
|
|
1304
|
+
- subtitles: ensure subtitles are not visible in Firefox when disabling them in the
|
|
1305
|
+
`"native"` textTrack mode.
|
|
1306
|
+
- errors: avoid sending multiple `MEDIA_TIME_BEFORE_MANIFEST` or
|
|
1307
|
+
`MEDIA_TIME_AFTER_MANIFEST` warnings instead of just one
|
|
1308
|
+
- api: fix (deprecated) option `hideNativeSubtitles`
|
|
873
1309
|
|
|
874
1310
|
### Other improvements
|
|
875
1311
|
|
|
876
|
-
-
|
|
877
|
-
-
|
|
878
|
-
|
|
1312
|
+
- errors: set a readable error message for every error and warnings thrown
|
|
1313
|
+
- tools/mediaCapabilitiesProber: set logs about unimportant missing APIs as debug-level
|
|
1314
|
+
instead of warn-level
|
|
1315
|
+
- types: provide type safety to `addEventListener` and `removeEventListener`
|
|
879
1316
|
|
|
880
1317
|
## v3.10.3 (2019-01-30)
|
|
881
1318
|
|
|
882
1319
|
### Bug fixes
|
|
883
1320
|
|
|
884
|
-
-
|
|
885
|
-
|
|
886
|
-
-
|
|
887
|
-
-
|
|
888
|
-
-
|
|
889
|
-
|
|
890
|
-
-
|
|
891
|
-
|
|
892
|
-
-
|
|
893
|
-
|
|
894
|
-
-
|
|
1321
|
+
- dash/api: fix `getMinimumPosition` for MPDs with an availabilityStartTime superior to
|
|
1322
|
+
unix epoch
|
|
1323
|
+
- smooth: be more tolerant on downloaded segments (accept ISOBMFF with boxes in any order)
|
|
1324
|
+
- buffers/abr: fix issue infrequently leading to a delay in quality changes
|
|
1325
|
+
- buffers: improve synchronisation to the SourceBuffer's buffer to avoid cases where the
|
|
1326
|
+
same segment could be downloaded multiple times
|
|
1327
|
+
- subtitles: fix bug in the clean-up logic of subtitles in the `"html"` texttrack mode
|
|
1328
|
+
that would lead to removed subtitles still being displayed
|
|
1329
|
+
- pipelines: retry a segment request with a backoff instead of stopping when receiving a
|
|
1330
|
+
HTTP 412
|
|
1331
|
+
- compat/subtitles: work-around firefox issue in the `"native"` texttrack mode to ensure
|
|
1332
|
+
track cues are removed when the content is stopped
|
|
1333
|
+
- subtitles/webvtt: support default classes in the WebVTT specification
|
|
1334
|
+
- subtitles/webvtt: multiple styles for the same element are now merged into one (instead
|
|
1335
|
+
of considering only the last one)
|
|
1336
|
+
- subtitles/webvtt: fix styling issues when both styles applied globally and styles
|
|
1337
|
+
applied on a selector are defined
|
|
1338
|
+
- subtitles/webvtt: do not remove whitespaces in styles to keep a sane formatting for some
|
|
1339
|
+
complex values
|
|
895
1340
|
|
|
896
1341
|
### Other improvements
|
|
897
1342
|
|
|
898
|
-
-
|
|
899
|
-
-
|
|
900
|
-
|
|
901
|
-
-
|
|
902
|
-
|
|
1343
|
+
- dash: warn through logs when fields are not in the expected format
|
|
1344
|
+
- drm: throw more explicative error messages when DRM are not supported in the current
|
|
1345
|
+
target
|
|
1346
|
+
- dash/smooth: get more precize duration from ISOBMFF by better handling the default
|
|
1347
|
+
duration taken from the tfhd box
|
|
1348
|
+
- tests: continue unit test coverage improvements (from 22% in the `v3.10.2` to 33.6%)
|
|
1349
|
+
- demo: fix initial text-track selection
|
|
903
1350
|
|
|
904
1351
|
## v3.10.2 (2019-01-08)
|
|
905
1352
|
|
|
906
1353
|
### Bug fixes
|
|
907
1354
|
|
|
908
|
-
-
|
|
909
|
-
|
|
910
|
-
-
|
|
1355
|
+
- dash/smooth: fix manifest updates for some DASH contents (SegmentTimeline without
|
|
1356
|
+
SegmentTemplate) and for some Smooth usages
|
|
1357
|
+
- compat/drm: adopt a new strategy for malfunctioning CENC PSSH on Edge by moving them at
|
|
1358
|
+
the end of the initialization data
|
|
1359
|
+
- dash/smooth: update deprecated Manifest.adaptations property when updating the manifest
|
|
911
1360
|
|
|
912
1361
|
## Other improvements
|
|
913
1362
|
|
|
914
|
-
-
|
|
915
|
-
-
|
|
916
|
-
-
|
|
917
|
-
-
|
|
918
|
-
|
|
1363
|
+
- dash: refresh the MPD less often
|
|
1364
|
+
- dash/smooth: improve precision of `getMaximumPosition` when the Manifest is updated
|
|
1365
|
+
- tests: use the Jest library for unit tests
|
|
1366
|
+
- tests: add a lot of unit tests to sensitive code (from a coverage of 13% in the v3.10.1
|
|
1367
|
+
to 22% in the v3.10.2)
|
|
1368
|
+
- npm: reduce size of the npm package
|
|
919
1369
|
|
|
920
1370
|
## v3.10.1 (2019-01-03)
|
|
921
1371
|
|
|
922
1372
|
### Bug fixes
|
|
923
1373
|
|
|
924
|
-
-
|
|
925
|
-
-
|
|
926
|
-
-
|
|
927
|
-
-
|
|
928
|
-
-
|
|
929
|
-
|
|
1374
|
+
- abr: always consider the last quality estimation
|
|
1375
|
+
- drm: work-arround Edge bug where the browser does not accept a valid CENC PSSH
|
|
1376
|
+
(DRM-related information in an ISOBMFF)
|
|
1377
|
+
- dash: handle `S` nodes (segments) with an @r attribute at `-1` in an MPD
|
|
1378
|
+
- dash: handle `SegmentTimeline` which have as a first `S` node (segment) an undefined @t
|
|
1379
|
+
attribute in an MPD
|
|
1380
|
+
- dash: Representation.index.getLastPosition() for SegmentBase-based DASH Representations
|
|
1381
|
+
now returns the end of the last segment (it returned the start of the last segment
|
|
1382
|
+
before)
|
|
1383
|
+
- dash/smooth: throw better error (`MANIFEST_PARSE_ERROR`) if none of the audio or video
|
|
1384
|
+
tracks of a content can be played (e.g. none have supported codecs)
|
|
930
1385
|
|
|
931
1386
|
### Other improvements
|
|
932
1387
|
|
|
933
|
-
-
|
|
934
|
-
-
|
|
935
|
-
-
|
|
936
|
-
|
|
1388
|
+
- manifest: better infer the minimum time of a Manifest
|
|
1389
|
+
- code: refresh code architecture (rename and move modules, remove some dependencies...)
|
|
1390
|
+
- tests: add coverage reports for both unit and "integration" tests, to check where tests
|
|
1391
|
+
are lacking and better pin down our hot-spots
|
|
1392
|
+
- tests: add appveyor countinous integration service for unit tests
|
|
937
1393
|
|
|
938
1394
|
## v3.10.0 (2018-12-11)
|
|
939
1395
|
|
|
940
1396
|
### Features
|
|
941
1397
|
|
|
942
|
-
-
|
|
943
|
-
-
|
|
944
|
-
|
|
945
|
-
-
|
|
946
|
-
|
|
1398
|
+
- dash: Manage xlinks in "onLoad" resolution model
|
|
1399
|
+
- dash: Implement AdaptationSet switching by merging similar and switchable AdaptationSet
|
|
1400
|
+
into a single track
|
|
1401
|
+
- compat: add `MEDIA_ERR_METADATA_NOT_LOADED` warning, triggered when the browser has
|
|
1402
|
+
issues with loading the initial data (only seen on the Samsung mobile browser in
|
|
1403
|
+
directfile mode)
|
|
1404
|
+
- compat: add `MEDIA_ERR_PLAY_NOT_ALLOWED` warning, triggered when the application tries
|
|
1405
|
+
to `play` but the current browser doesn't allow it (often due to autoplay policy)
|
|
1406
|
+
- api: the `play` API now returns a Promise, mirroring the original browser's `play` API
|
|
947
1407
|
|
|
948
1408
|
### Deprecated
|
|
949
1409
|
|
|
950
|
-
-
|
|
1410
|
+
- api: The `xhr` property from a `NetworkError` is now deprecated
|
|
951
1411
|
|
|
952
1412
|
### Bug fixes
|
|
953
1413
|
|
|
954
|
-
-
|
|
955
|
-
|
|
956
|
-
-
|
|
957
|
-
-
|
|
958
|
-
|
|
959
|
-
-
|
|
960
|
-
|
|
961
|
-
-
|
|
962
|
-
|
|
1414
|
+
- compat/smooth: fix fatal error `BUFFER_APPEND_ERROR` happening on some HSS contents with
|
|
1415
|
+
Edge
|
|
1416
|
+
- dash/smooth: never refresh the manifest if its content is not dynamic
|
|
1417
|
+
- dash/smooth: use new URL if the initial manifest request is redirected (again :/ -
|
|
1418
|
+
thanks @fnatte)
|
|
1419
|
+
- api: do not go out of the `LOADING` state if the metadata could not be fetched (even if
|
|
1420
|
+
the browser tells us otherwise) - to work around Samsung Browser bug
|
|
1421
|
+
- api: avoid going out of the `LOADED` state until the initial seek is done and metadata
|
|
1422
|
+
is fetched
|
|
1423
|
+
- compat: use Promise ponyfill to improve IE11 compatibility with the
|
|
1424
|
+
MediaCapabilitiesProber and some EME functionalities
|
|
1425
|
+
- api: translate most IETF language tags into corresponding ISO639-3 codes for the
|
|
1426
|
+
`normalizedLanguage` property - given from APIs such as `getAvailableAudioTracks`
|
|
1427
|
+
- tools: fix `mediaCapabilitiesProber.getCompatibleDRMConfigurations` experimental tool on
|
|
1428
|
+
Safari
|
|
1429
|
+
- api: filter out duplicates in `getAvailableVideoBitrates` and
|
|
1430
|
+
`getAvailableAudioBitrates`
|
|
963
1431
|
|
|
964
1432
|
### Other improvements
|
|
965
1433
|
|
|
966
|
-
-
|
|
967
|
-
-
|
|
968
|
-
|
|
969
|
-
-
|
|
970
|
-
|
|
971
|
-
-
|
|
1434
|
+
- dash: better infer unknown Period durations
|
|
1435
|
+
- dash: better manage overlapping Periods by giving more importance to the last
|
|
1436
|
+
chronological one
|
|
1437
|
+
- memory: clean-up `Adaptation` and `Representation` information on Periods which are not
|
|
1438
|
+
considered anymore
|
|
1439
|
+
- log: warn through our logs every time a warning event is sent by the API
|
|
1440
|
+
- demo: authorize DRMs in IE11 or Safari when in HTTP in the demo page
|
|
1441
|
+
- demo: fix time indication for non-live contents
|
|
972
1442
|
|
|
973
1443
|
## v3.9.3 (2018-11-23)
|
|
974
1444
|
|
|
975
1445
|
### Bug fixes
|
|
976
1446
|
|
|
977
|
-
-
|
|
978
|
-
|
|
979
|
-
-
|
|
1447
|
+
- compat: fix `undefined Object.values function` issue happening in some older browsers
|
|
1448
|
+
(mainly encountered in IE11 and old webkit versions)
|
|
1449
|
+
- compat: remove side-effects relative to DRM on Safari
|
|
1450
|
+
- tools: fix issue about an undefined Array.prototype.find method in some older browsers
|
|
1451
|
+
when calling mediaCapabilitiesProber.getCompatibleDRMConfigurations (mainly encountered
|
|
1452
|
+
in IE11)
|
|
980
1453
|
|
|
981
1454
|
### Other improvements
|
|
982
1455
|
|
|
983
|
-
-
|
|
984
|
-
-
|
|
985
|
-
|
|
1456
|
+
- eme: activate MediaKeys caching on Edge
|
|
1457
|
+
- compat: add in our validation process a ban of methods and functions unavailable in
|
|
1458
|
+
older browsers
|
|
1459
|
+
- tests/smooth: reinforce our Smooth Streaming integration tests
|
|
986
1460
|
|
|
987
1461
|
## v3.9.2 (2018-11-14)
|
|
988
1462
|
|
|
989
1463
|
### Bug fixes
|
|
990
1464
|
|
|
991
|
-
-
|
|
1465
|
+
- smooth: authorize empty tracks ("StreamIndex") in Smooth manifests
|
|
992
1466
|
|
|
993
1467
|
## v3.9.1 (2018-11-13)
|
|
994
1468
|
|
|
995
1469
|
### Bug fixes
|
|
996
1470
|
|
|
997
|
-
-
|
|
998
|
-
-
|
|
1471
|
+
- smooth: fix issue preventing emergency manifest updates
|
|
1472
|
+
- dash: fix timeout for minimumUpdatePeriod in cases where the time at which the manifest
|
|
1473
|
+
was last requested is not known (like when setting a customManifestLoader argument)
|
|
999
1474
|
|
|
1000
1475
|
### Other improvements
|
|
1001
1476
|
|
|
1002
|
-
-
|
|
1003
|
-
-
|
|
1477
|
+
- smooth: keep supplementary segment information when updating the manifest
|
|
1478
|
+
- smooth: when updating segment information, perform garbage-collection of those
|
|
1479
|
+
concerning unreachable segments
|
|
1004
1480
|
|
|
1005
1481
|
## v3.9.0 (2018-11-08)
|
|
1006
1482
|
|
|
1007
1483
|
### Features
|
|
1008
1484
|
|
|
1009
|
-
-
|
|
1010
|
-
-
|
|
1011
|
-
|
|
1485
|
+
- dash: consider `minimumUpdatePeriod` attribute in MPDs
|
|
1486
|
+
- buffer: add codec-switching for browsers supporting the
|
|
1487
|
+
`SourceBuffer.prototype.changeType` API
|
|
1488
|
+
- dash/smooth: accept and parse segments with a "stpp.ttml.im1t" codec (TTML IMSC1 in MP4)
|
|
1012
1489
|
|
|
1013
1490
|
### Bug fixes
|
|
1014
1491
|
|
|
1015
|
-
-
|
|
1016
|
-
|
|
1017
|
-
-
|
|
1018
|
-
-
|
|
1019
|
-
-
|
|
1492
|
+
- smooth: fix calculations of the initial time, duration and minimum position for HSS VOD
|
|
1493
|
+
contents not starting at a '0' time
|
|
1494
|
+
- buffer: fix priority updates for segment requests
|
|
1495
|
+
- dash: calculate VOD duration from the last period if undefined in the MPD's root
|
|
1496
|
+
- dash: remove possibility of obtaining two periods with the same id
|
|
1497
|
+
- typings: make `manualBitrateSwitchingMode` `loadVideo` option an optional TypeScript
|
|
1498
|
+
typing (thanks @fnatte again!)
|
|
1020
1499
|
|
|
1021
1500
|
### Other improvements
|
|
1022
1501
|
|
|
1023
|
-
-
|
|
1024
|
-
-
|
|
1025
|
-
-
|
|
1026
|
-
|
|
1027
|
-
-
|
|
1028
|
-
|
|
1029
|
-
-
|
|
1030
|
-
|
|
1502
|
+
- abr: do not always cancel pending requests when switching to a new bitrate
|
|
1503
|
+
- abr: re-estimate the bandwidth immediately after each request
|
|
1504
|
+
- buffer: remove automatic garbage-collection of the "image" source-buffer (its rules
|
|
1505
|
+
should be more complex than those in place)
|
|
1506
|
+
- tools/mediaCapabilitiesProber: Make `getCompatibleDRMConfigurations` work under IE11 and
|
|
1507
|
+
old webkit versions
|
|
1508
|
+
- tools/mediaCapabilitiesProber: Add a multitude of bug fixes to the experimental
|
|
1509
|
+
mediaCapabilitiesProber
|
|
1510
|
+
- package: divide by more than 2 the size of our package published in `npm` (thanks
|
|
1511
|
+
@necccc)
|
|
1512
|
+
- tests: add memory tests to detect memory leaks
|
|
1513
|
+
- demo: add 'favicon' to the demo page
|
|
1031
1514
|
|
|
1032
1515
|
## v3.8.1 (2018-10-17)
|
|
1033
1516
|
|
|
1034
1517
|
### Bug fixes
|
|
1035
1518
|
|
|
1036
|
-
-
|
|
1037
|
-
-
|
|
1519
|
+
- abr: fix memory leak in ABR Management
|
|
1520
|
+
- eme: avoid re-attaching a server certificate at each encrypted event
|
|
1038
1521
|
|
|
1039
1522
|
### Other improvements
|
|
1040
1523
|
|
|
1041
|
-
-
|
|
1042
|
-
-
|
|
1043
|
-
|
|
1044
|
-
-
|
|
1045
|
-
|
|
1046
|
-
-
|
|
1524
|
+
- buffer: lower the "paddings" applied to the video buffer when raising the quality
|
|
1525
|
+
- abr: when pratical, avoid relying on the "Content-Length" header to protect against
|
|
1526
|
+
miscalculations when downloading from misconfigured servers
|
|
1527
|
+
- abr: lower the minimum number of bytes we wait to download before we evaluate the
|
|
1528
|
+
bandwidth
|
|
1529
|
+
- abr: use performance.now instead of Date.now for better precision
|
|
1530
|
+
- module: move express from the dependencies to the devDependencies
|
|
1531
|
+
- demo: fix standalone demo and add possibility to launch it via HTTPS
|
|
1047
1532
|
|
|
1048
1533
|
## v3.8.0 (2018-10-11)
|
|
1049
1534
|
|
|
1050
1535
|
### Features
|
|
1051
1536
|
|
|
1052
|
-
-
|
|
1053
|
-
|
|
1054
|
-
-
|
|
1055
|
-
|
|
1537
|
+
- api/dash/smooth: add representationFilter API to prevent Representations (i.e. media
|
|
1538
|
+
qualities) from being played
|
|
1539
|
+
- api/buffer: add `manualBitrateSwitchingMode` option to allow a direct representation
|
|
1540
|
+
switch when calling `setVideoBitrate` and `setAudioBitrate`
|
|
1541
|
+
- api/buffer: emit a `MEDIA_TIME_BEFORE_MANIFEST` warning when the wanted time is before
|
|
1542
|
+
what is announced in the manifest
|
|
1543
|
+
- api/buffer: emit a `MEDIA_TIME_AFTER_MANIFEST` warning when the wanted time is after
|
|
1544
|
+
what is announced in the manifest
|
|
1056
1545
|
|
|
1057
1546
|
### Bug fixes
|
|
1058
1547
|
|
|
1059
|
-
-
|
|
1548
|
+
- remove export of undeclared `ICompatVTTCue` from modular build
|
|
1060
1549
|
|
|
1061
1550
|
### Other improvements
|
|
1062
1551
|
|
|
1063
|
-
-
|
|
1064
|
-
|
|
1065
|
-
-
|
|
1066
|
-
-
|
|
1552
|
+
- buffer: to avoid taking too much memory, regularly clean-up text and image buffer 5
|
|
1553
|
+
hours ahead/behind the current position (customizable)
|
|
1554
|
+
- demo: add HTTPS capabilities on local full demo
|
|
1555
|
+
- rxjs: update rxjs to 6.3.3
|
|
1556
|
+
- typescript: update typescript to 3.1.2
|
|
1067
1557
|
|
|
1068
1558
|
## v3.7.0 (2018-09-21)
|
|
1069
1559
|
|
|
1070
1560
|
### Features
|
|
1071
1561
|
|
|
1072
|
-
-
|
|
1073
|
-
|
|
1074
|
-
-
|
|
1075
|
-
|
|
1562
|
+
- eme: add `throwOnLicenseExpiration` boolean to `keySystems` (`loadVideo` option) to
|
|
1563
|
+
allow better expiration management
|
|
1564
|
+
- eme: in the `getLicense` property of `keySystems` (`loadVideo` option), it is now
|
|
1565
|
+
possible to resolve with `null` to avoid a license update.
|
|
1566
|
+
- eme: in the `onKeyStatusesChange` property of `keySystems` (`loadVideo` option), it is
|
|
1567
|
+
now possible to resolve with `null` to avoid a license update.
|
|
1568
|
+
- tools: replace experimental tool `mediaCapabilitiesProber.isDRMSupported` by the more
|
|
1569
|
+
useful `mediaCapabilitiesProber.getCompatibleDRMConfigurations`
|
|
1076
1570
|
|
|
1077
1571
|
### Deprecated
|
|
1078
1572
|
|
|
1079
|
-
-
|
|
1080
|
-
|
|
1081
|
-
-
|
|
1573
|
+
- smooth: giving a WSX URL instead of the Manifest URL for a smooth content is now
|
|
1574
|
+
deprecated.
|
|
1575
|
+
- smooth: giving a _publishing point definition_ URL (.isml) instead of the Manifest URL
|
|
1576
|
+
for a smooth content is now deprecated.
|
|
1577
|
+
- smooth: giving a _Smooth Streaming server manifest_ URL (.ism) instead of the Manifest
|
|
1578
|
+
URL for a smooth content is now deprecated.
|
|
1082
1579
|
|
|
1083
1580
|
### Bug fixes
|
|
1084
1581
|
|
|
1085
|
-
-
|
|
1086
|
-
|
|
1087
|
-
-
|
|
1088
|
-
|
|
1089
|
-
-
|
|
1090
|
-
-
|
|
1582
|
+
- api: switch state to "ENDED" if seeking to the end while the player is in the "LOADED"
|
|
1583
|
+
state.
|
|
1584
|
+
- api: switch state to "SEEKING" if seeking in the content while the player is in the
|
|
1585
|
+
"LOADED" state.
|
|
1586
|
+
- dash: consider multiple `Role` nodes for an AdaptationSet.
|
|
1587
|
+
- typescript: fix typings error when an application build us without the `skipLibCheck`
|
|
1588
|
+
TypeScript option enabled.
|
|
1589
|
+
- smooth: fix Manifest URL generation when a ".ism" or a ".isml" URL is given.
|
|
1590
|
+
- doc: document deprecation of the `adaptations` property returned from a `Manifest`
|
|
1591
|
+
object (as returned from the `getManifest` method).
|
|
1091
1592
|
|
|
1092
1593
|
### Other improvements
|
|
1093
1594
|
|
|
1094
|
-
-
|
|
1095
|
-
-
|
|
1096
|
-
-
|
|
1097
|
-
-
|
|
1098
|
-
-
|
|
1595
|
+
- doc: add quick start tutorial.
|
|
1596
|
+
- doc: add player states documentation.
|
|
1597
|
+
- demo: add possibility to play encrypted contents.
|
|
1598
|
+
- demo: update demo page.
|
|
1599
|
+
- tests: consolidate our integration tests.
|
|
1099
1600
|
|
|
1100
1601
|
## v3.6.1 (2018-09-03)
|
|
1101
1602
|
|
|
1102
1603
|
### Bug fixes
|
|
1103
1604
|
|
|
1104
|
-
-
|
|
1105
|
-
-
|
|
1106
|
-
-
|
|
1107
|
-
-
|
|
1605
|
+
- directfile: send `LOADED` event again for directfile contents - thanks @Fnatte
|
|
1606
|
+
- dash: don't merge "main" AdaptationSet if they are not of a video type
|
|
1607
|
+
- eme: fix bug which prevented the `closeSessionsOnStop` keySystem option to work properly
|
|
1608
|
+
- typescript: export types compatible with project references
|
|
1108
1609
|
|
|
1109
1610
|
### Other improvements
|
|
1110
1611
|
|
|
1111
|
-
-
|
|
1112
|
-
-
|
|
1113
|
-
-
|
|
1612
|
+
- directfile/tests: add basic directfile integration tests
|
|
1613
|
+
- build: update to Babel 7
|
|
1614
|
+
- rxjs: update to RxJS 6.3.1
|
|
1114
1615
|
|
|
1115
1616
|
## v3.6.0 (2018-08-24)
|
|
1116
1617
|
|
|
1117
1618
|
### Features
|
|
1118
1619
|
|
|
1119
|
-
-
|
|
1120
|
-
-
|
|
1121
|
-
-
|
|
1122
|
-
-
|
|
1123
|
-
-
|
|
1124
|
-
-
|
|
1125
|
-
-
|
|
1126
|
-
-
|
|
1620
|
+
- api: add video track switching
|
|
1621
|
+
- dash: add webm support
|
|
1622
|
+
- api: Emit warning if autoPlay is blocked on the current browser
|
|
1623
|
+
- api: add `getAvailableVideoTracks` method to retrieve every video tracks
|
|
1624
|
+
- api: add `getVideoTrack` method to get the active video track
|
|
1625
|
+
- api: add `setVideoTrack` method to switch the video track
|
|
1626
|
+
- api: add `videoTrackChange` event to know when a video track has been switched
|
|
1627
|
+
- api: add `RELOADING` event for cases where the player needs to reload (such as during a
|
|
1628
|
+
video track switch)
|
|
1127
1629
|
|
|
1128
1630
|
### Deprecated
|
|
1129
1631
|
|
|
1130
|
-
-
|
|
1131
|
-
-
|
|
1132
|
-
-
|
|
1133
|
-
-
|
|
1134
|
-
-
|
|
1135
|
-
-
|
|
1632
|
+
- api: the method `isFullscreen` has been deprecated
|
|
1633
|
+
- api: the method `setFullscreen` has been deprecated
|
|
1634
|
+
- api: the method `exitFullscreen` has been deprecated
|
|
1635
|
+
- api: the method `getNativeTextTrack` has been deprecated
|
|
1636
|
+
- api: the event `fullscreenChange` has been deprecated
|
|
1637
|
+
- api: the event `nativeTextTrackChange` has been deprecated
|
|
1136
1638
|
|
|
1137
1639
|
### Bug Fixes
|
|
1138
1640
|
|
|
1139
|
-
-
|
|
1140
|
-
-
|
|
1141
|
-
-
|
|
1142
|
-
|
|
1641
|
+
- ttml: display forbidden characters (such as ">") in a `"native"` `textTrackMode`
|
|
1642
|
+
- ttml: process `xml:space` even if it is not defined at the top level
|
|
1643
|
+
- buffer: perform a better clean-up of previous media in a SourceBuffer when switching
|
|
1644
|
+
audio or text track
|
|
1645
|
+
- manifest/dash: throw a MANIFEST_PARSE_ERROR when no AdaptationSet of a given type in a
|
|
1646
|
+
Period is in a compatible codec
|
|
1143
1647
|
|
|
1144
1648
|
### Other improvements
|
|
1145
1649
|
|
|
1146
|
-
-
|
|
1147
|
-
|
|
1148
|
-
-
|
|
1149
|
-
-
|
|
1650
|
+
- types: export and document main typings used internally such as ILoadVideoOptions (the
|
|
1651
|
+
loadVideo argument)
|
|
1652
|
+
- misc: log every fatal errors
|
|
1653
|
+
- misc: remove dumb npm inclusion as a project dependency
|
|
1654
|
+
- doc: improve architecture documentation
|
|
1150
1655
|
|
|
1151
1656
|
## v3.5.2 (2018-08-06)
|
|
1152
1657
|
|
|
1153
1658
|
### Bug fixes
|
|
1154
1659
|
|
|
1155
|
-
-
|
|
1156
|
-
|
|
1157
|
-
-
|
|
1158
|
-
-
|
|
1660
|
+
- dash: Manage presentationTimeOffset completely (allow advanced multi-period
|
|
1661
|
+
configurations)
|
|
1662
|
+
- dash: Fix Adaptations bug when the first DASH adaptation was a "main" one
|
|
1663
|
+
- smooth: Remove the limitation of a minimum bitrate in Smooth Streaming
|
|
1664
|
+
- dash: Fix condition which prevented to play audio-only live DASH streams
|
|
1159
1665
|
|
|
1160
1666
|
### Other improvements
|
|
1161
1667
|
|
|
1162
|
-
-
|
|
1163
|
-
-
|
|
1164
|
-
-
|
|
1165
|
-
-
|
|
1166
|
-
-
|
|
1668
|
+
- typescript: add typescript declaration files
|
|
1669
|
+
- abr: update ABR mechanisms when the estimated bandtwidth fall suddenly
|
|
1670
|
+
- api: warn in the log when the browser reject a wanted autoplay
|
|
1671
|
+
- drm: Add keyId information to the internal Manifest structure
|
|
1672
|
+
- typescript: update typescript to v3.0.1
|
|
1167
1673
|
|
|
1168
1674
|
## v3.5.1 (2018-07-11)
|
|
1169
1675
|
|
|
1170
1676
|
### Bug fixes
|
|
1171
1677
|
|
|
1172
|
-
-
|
|
1173
|
-
-
|
|
1678
|
+
- parsers: fix wrong computation of segment time in template index
|
|
1679
|
+
- abr: get concerned request in starvation mode
|
|
1174
1680
|
|
|
1175
1681
|
## v3.5.0 (2018-07-03)
|
|
1176
1682
|
|
|
1177
1683
|
### Added
|
|
1178
1684
|
|
|
1179
|
-
-
|
|
1180
|
-
-
|
|
1181
|
-
-
|
|
1182
|
-
-
|
|
1685
|
+
- tools: add `mediaCapabilitiesProber` tool as an experimental tool
|
|
1686
|
+
- builds: add minimal import with feature selection (allowing cleaner feature switching or
|
|
1687
|
+
lazy-loading)
|
|
1688
|
+
- dash: allow multiple "main" adaptation
|
|
1689
|
+
- api: add static `version` property to the RxPlayer API
|
|
1183
1690
|
|
|
1184
1691
|
### Bug fixes
|
|
1185
1692
|
|
|
1186
|
-
-
|
|
1187
|
-
-
|
|
1188
|
-
-
|
|
1189
|
-
-
|
|
1190
|
-
-
|
|
1693
|
+
- vtt: fix `line` setting for vtt tracks in `"native"` textTrackMode
|
|
1694
|
+
- dash: always play "main" adaptation first
|
|
1695
|
+
- misc: don't interfere with a client's RxJS implementation by switching to RxJS 6
|
|
1696
|
+
- dash: presentationTimeOffset doesn't have an influence on requested segment anymore
|
|
1697
|
+
- smooth/dash: throw a `"MANIFEST_PARSE_ERROR"` if no audio and video
|
|
1698
|
+
adaptations/StreamIndex are available in the current content
|
|
1191
1699
|
|
|
1192
1700
|
### Other improvements
|
|
1193
1701
|
|
|
1194
|
-
-
|
|
1195
|
-
-
|
|
1196
|
-
-
|
|
1197
|
-
-
|
|
1198
|
-
-
|
|
1199
|
-
-
|
|
1200
|
-
-
|
|
1201
|
-
-
|
|
1202
|
-
-
|
|
1203
|
-
-
|
|
1204
|
-
-
|
|
1702
|
+
- builds: Reduce size of the builds
|
|
1703
|
+
- builds: use uglifyJS instead of Closure-compiler
|
|
1704
|
+
- builds: update to typescript 2.9
|
|
1705
|
+
- rxjs: update to RxJS version 6 (v6.2.1)
|
|
1706
|
+
- code: set complete URL in segment's media property
|
|
1707
|
+
- demo: add time indicator on the progress bar
|
|
1708
|
+
- demo: update fullscreen mode to also display the text track element
|
|
1709
|
+
- misc: moved demo server scripts to the respective demo directories
|
|
1710
|
+
- misc: moved manifest parsers to the `src/parsers` directory
|
|
1711
|
+
- misc: moved scripts from `./tools` to `./scripts`
|
|
1712
|
+
- misc: moved webpack configs to the root of the project
|
|
1205
1713
|
|
|
1206
1714
|
## v3.4.1 (2018-05-31)
|
|
1207
1715
|
|
|
1208
1716
|
### Bug fixes
|
|
1209
1717
|
|
|
1210
|
-
-
|
|
1211
|
-
|
|
1212
|
-
-
|
|
1213
|
-
|
|
1214
|
-
-
|
|
1215
|
-
|
|
1216
|
-
-
|
|
1718
|
+
- buffer: fix several bugs happening when calling `endOfStream` to announce the end of the
|
|
1719
|
+
current content. Especially prevalent on Chrome.
|
|
1720
|
+
- net: use redirected URL as a base for further requests when the manifest request led to
|
|
1721
|
+
a HTTP redirect.
|
|
1722
|
+
- vtt/srt: ignore silently (do not throw) when an unknown block has been detected in a vtt
|
|
1723
|
+
or srt file
|
|
1724
|
+
- vtt/srt: support styling spans (like b, i and u XML tags) spanning multiple lines
|
|
1725
|
+
- api: `getAvailableTextTracks` and `getAvailableAudioTracks` now always return an array
|
|
1726
|
+
(and never null) as announced in the API documentation
|
|
1727
|
+
- api: set default log level to `"NONE"` instead of `"INFO"`
|
|
1728
|
+
- misc: remove development-only code from the non-minified code
|
|
1217
1729
|
|
|
1218
1730
|
### Other improvements
|
|
1219
1731
|
|
|
1220
|
-
-
|
|
1732
|
+
- misc: move some dev dependencies from `dependencies` to `devDependencies` in
|
|
1733
|
+
`package.json`
|
|
1221
1734
|
|
|
1222
1735
|
## v3.4.0 (2018-05-17)
|
|
1223
1736
|
|
|
1224
1737
|
### Added
|
|
1225
1738
|
|
|
1226
|
-
-
|
|
1227
|
-
-
|
|
1739
|
+
- eme: allow multiple licenses per content
|
|
1740
|
+
- eme: allow different MediaKeys to be attached on multiple media elements
|
|
1228
1741
|
|
|
1229
1742
|
### Bug fixes
|
|
1230
1743
|
|
|
1231
|
-
-
|
|
1232
|
-
-
|
|
1233
|
-
-
|
|
1744
|
+
- eme: limit simultaneous loaded MediaKeySession to 50 by default (configurable)
|
|
1745
|
+
- source-buffer: clean properly the text SourceBuffer on deactivation
|
|
1746
|
+
- buffer: perform discontinuity seeks only for native source buffers
|
|
1234
1747
|
|
|
1235
1748
|
### Other improvements
|
|
1236
1749
|
|
|
1237
|
-
-
|
|
1238
|
-
-
|
|
1239
|
-
-
|
|
1240
|
-
-
|
|
1241
|
-
-
|
|
1750
|
+
- doc: generate documentation pages
|
|
1751
|
+
- misc: add sonarqube quality pass
|
|
1752
|
+
- code: set a clearer private state for the API
|
|
1753
|
+
- tools: update to webpack v4.8.3
|
|
1754
|
+
- tools: update to typescript v2.8.3
|
|
1242
1755
|
|
|
1243
1756
|
## v3.3.2 (2018-04-17)
|
|
1244
1757
|
|
|
1245
1758
|
### Bug Fixes
|
|
1246
1759
|
|
|
1247
|
-
-
|
|
1248
|
-
|
|
1249
|
-
-
|
|
1250
|
-
|
|
1251
|
-
-
|
|
1760
|
+
- api: emit SEEKING state instead of BUFFERING when the user seeks to an unbuffered part
|
|
1761
|
+
just after resuming playback
|
|
1762
|
+
- api: work around bug found in old versions of Chrome where the ENDED state would never
|
|
1763
|
+
be triggered at the end of the stream
|
|
1764
|
+
- api/language: fix bug where an audio or text language would not be switched to on
|
|
1765
|
+
certain conditions in live contents
|
|
1766
|
+
- smooth: fix frequent manifest refreshing happening immediately when changing audio/text
|
|
1767
|
+
language
|
|
1768
|
+
- eme/error: fix reason string and error message for KEY_STATUS_CHANGE_ERROR
|
|
1252
1769
|
|
|
1253
1770
|
### Other improvements
|
|
1254
1771
|
|
|
1255
|
-
-
|
|
1256
|
-
|
|
1257
|
-
-
|
|
1772
|
+
- buffer: update download queue immediately when seeking to an already-buffered part, to
|
|
1773
|
+
always prioritize needed segments
|
|
1774
|
+
- buffer: schedule segments per level of priority to lower some buffering/seeking/loading
|
|
1775
|
+
time
|
|
1776
|
+
- demo: fix "Big Buck Bunny WEBM"'s URL
|
|
1258
1777
|
|
|
1259
1778
|
## v3.3.1 (2018-03-13)
|
|
1260
1779
|
|
|
1261
1780
|
### Bug Fixes
|
|
1262
1781
|
|
|
1263
|
-
-
|
|
1264
|
-
-
|
|
1782
|
+
- misc: fix missing browser API on IE11
|
|
1783
|
+
- buffer: end correctly streams which experienced a custom sourcebuffer (text/image) crash
|
|
1265
1784
|
|
|
1266
1785
|
### Other improvements
|
|
1267
1786
|
|
|
1268
|
-
-
|
|
1787
|
+
- tools: support development on windows
|
|
1269
1788
|
|
|
1270
1789
|
## v3.3.0 (2018-03-05)
|
|
1271
1790
|
|
|
1272
1791
|
### Added
|
|
1273
1792
|
|
|
1274
|
-
-
|
|
1793
|
+
- api: add directfile API to allow the playback of files natively managed by the browser
|
|
1275
1794
|
|
|
1276
1795
|
### Bug Fixes
|
|
1277
1796
|
|
|
1278
|
-
-
|
|
1279
|
-
-
|
|
1280
|
-
-
|
|
1797
|
+
- api: fix player state when seeking after the video ended
|
|
1798
|
+
- text/api: fix getTextTrack API which could return the current audio track instead
|
|
1799
|
+
- text: clean-up custom HTML text track SourceBuffer's buffered when the text track is
|
|
1800
|
+
disabled
|
|
1281
1801
|
|
|
1282
1802
|
## v3.2.0 (2018-02-23)
|
|
1283
1803
|
|
|
1284
1804
|
### Added
|
|
1285
1805
|
|
|
1286
|
-
-
|
|
1287
|
-
-
|
|
1288
|
-
-
|
|
1289
|
-
-
|
|
1806
|
+
- dash: Handle multi-periods DASH manifests
|
|
1807
|
+
- api: add `periodChange` event
|
|
1808
|
+
- api: add `stopAtEnd` option to the constructor, to deactivate automatic content
|
|
1809
|
+
un-loading when it ends
|
|
1810
|
+
- api: add `manifestLoader` to the `transportOptions` of a `loadVideo` call
|
|
1290
1811
|
|
|
1291
1812
|
### Bug Fixes
|
|
1292
1813
|
|
|
1293
|
-
-
|
|
1294
|
-
|
|
1295
|
-
-
|
|
1296
|
-
|
|
1297
|
-
-
|
|
1298
|
-
|
|
1814
|
+
- stream: call `endOfStream` for better end detection and to allow the Chrome browser to
|
|
1815
|
+
display the last frames of a video
|
|
1816
|
+
- buffer: always play the last possible milliseconds of a content (removed END_OF_PLAY
|
|
1817
|
+
config attribute)
|
|
1818
|
+
- eme: workaround a bug found on Chrome where setting a `keySystems` option in `loadVideo`
|
|
1819
|
+
would always throw on HTTP (not HTTPS) pages.
|
|
1820
|
+
- vtt: fix WebVTT parsing when the last line of a WebVTT file is not a new line
|
|
1821
|
+
- dash: ignore availabilityStartTime settings for a static MPD
|
|
1822
|
+
- buffer: ignore segments for a duration inferior to the MINIMUM_SEGMENT_SIZE (200ms by
|
|
1823
|
+
default) to avoid infinite re-downloading
|
|
1299
1824
|
|
|
1300
1825
|
### Other improvements
|
|
1301
1826
|
|
|
1302
|
-
-
|
|
1303
|
-
-
|
|
1827
|
+
- update RxJS to v5.5.6
|
|
1828
|
+
- update TypeScript to v2.7.2
|
|
1304
1829
|
|
|
1305
1830
|
## v3.1.0 (2018-01-30)
|
|
1306
1831
|
|
|
1307
1832
|
### Added
|
|
1308
1833
|
|
|
1309
|
-
-
|
|
1310
|
-
-
|
|
1834
|
+
- api: add `networkConfig` to `loadVideo` options
|
|
1835
|
+
- eme: add `closeSessionsOnStop` to the `keySystems` `loadVideo` option
|
|
1311
1836
|
|
|
1312
1837
|
### Bug Fixes
|
|
1313
1838
|
|
|
1314
|
-
-
|
|
1315
|
-
-
|
|
1839
|
+
- dash: fix Range request ranges for representations based on a SegmentList index
|
|
1840
|
+
- smooth: allows smooth Manifests for non-live contents to begin at a timestamp != 0
|
|
1316
1841
|
|
|
1317
1842
|
## v3.0.7 (2018-01-19)
|
|
1318
1843
|
|
|
1319
1844
|
### Bug fixes
|
|
1320
1845
|
|
|
1321
|
-
-
|
|
1846
|
+
- eme: fix bug which prevented to play encrypted contents on IE11
|
|
1322
1847
|
|
|
1323
1848
|
## v3.0.6 (2018-01-11)
|
|
1324
1849
|
|
|
1325
1850
|
### Bug Fixes
|
|
1326
1851
|
|
|
1327
|
-
-
|
|
1328
|
-
|
|
1329
|
-
-
|
|
1330
|
-
-
|
|
1852
|
+
- buffer: fix issue which could led to multiple video or audio segments being downloaded
|
|
1853
|
+
at the same time
|
|
1854
|
+
- dash/text: support MPD AdaptationSet with a "caption" Role as text Adaptations
|
|
1855
|
+
- dash/text: remove offset set for subtitles on live contents, which led to unsynchronized
|
|
1856
|
+
subtitles
|
|
1857
|
+
- dash: fix issue which could led to segments being re-downloaded too much in a
|
|
1858
|
+
SegmentTemplate scheme
|
|
1331
1859
|
|
|
1332
1860
|
### Other improvements
|
|
1333
1861
|
|
|
1334
|
-
-
|
|
1862
|
+
- demo: set "html" textTrackMode by default to have a better stylization of closed
|
|
1863
|
+
captions.
|
|
1335
1864
|
|
|
1336
1865
|
## v3.0.5 (2017-12-11)
|
|
1337
1866
|
|
|
1338
1867
|
### Bug Fixes
|
|
1339
1868
|
|
|
1340
|
-
-
|
|
1869
|
+
- eme: consider unknown errors (e.g. errors coming from the user of the library) as fatal
|
|
1870
|
+
eme errors
|
|
1341
1871
|
|
|
1342
1872
|
## v3.0.4 (2017-12-05)
|
|
1343
1873
|
|
|
1344
1874
|
### Bug Fixes
|
|
1345
1875
|
|
|
1346
|
-
-
|
|
1347
|
-
-
|
|
1876
|
+
- text/webvtt: authorize header options without parsing them
|
|
1877
|
+
- text/webvtt: authorize timestamps without hours
|
|
1348
1878
|
|
|
1349
1879
|
### Other improvements
|
|
1350
1880
|
|
|
1351
|
-
-
|
|
1352
|
-
-
|
|
1881
|
+
- misc: remove multiple unneeded assertions in DEV mode
|
|
1882
|
+
- misc: update DEV mode default debug level from DEBUG to INFO
|
|
1353
1883
|
|
|
1354
1884
|
## v3.0.3 (2017-11-24)
|
|
1355
1885
|
|
|
1356
1886
|
### Bug Fixes
|
|
1357
1887
|
|
|
1358
|
-
-
|
|
1359
|
-
-
|
|
1888
|
+
- text/ttml: apply correctly a style if directly set on an attribute
|
|
1889
|
+
- eme: load new video even if the last EME clean-up failed
|
|
1360
1890
|
|
|
1361
1891
|
### Other improvements
|
|
1362
1892
|
|
|
1363
|
-
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
-
|
|
1893
|
+
- misc: set better work arround for typescript issue
|
|
1894
|
+
[20104](https://github.com/Microsoft/TypeScript/issues/20104) to make building npm
|
|
1895
|
+
scripts usable again
|
|
1896
|
+
- tools: update the update-version npm script
|
|
1897
|
+
- demo: `npm run start` and `npm run standalone` now build the rx-player in the
|
|
1898
|
+
"development" environment
|
|
1899
|
+
- tools: add more logs in DEBUG mode
|
|
1367
1900
|
|
|
1368
1901
|
## v3.0.2 (2017-11-17)
|
|
1369
1902
|
|
|
1370
1903
|
### Bug Fixes
|
|
1371
1904
|
|
|
1372
|
-
-
|
|
1905
|
+
- misc: work around typescript issue
|
|
1906
|
+
[20104](https://github.com/Microsoft/TypeScript/issues/20104) temporarly to launch in
|
|
1907
|
+
Chrome in HTTP
|
|
1373
1908
|
|
|
1374
1909
|
## v3.0.1 (2017-11-17)
|
|
1375
1910
|
|
|
1376
1911
|
### Bug Fixes
|
|
1377
1912
|
|
|
1378
|
-
-
|
|
1379
|
-
-
|
|
1913
|
+
- abr: adopt a less agressive strategy to avoid re-bufferings
|
|
1914
|
+
- smooth: avoid most of the manifest refresh requests
|
|
1380
1915
|
|
|
1381
1916
|
### Other improvements
|
|
1382
1917
|
|
|
1383
|
-
-
|
|
1384
|
-
-
|
|
1918
|
+
- Switch codebase to TypeScript
|
|
1919
|
+
- Add Travis CI
|
|
1385
1920
|
|
|
1386
1921
|
## v3.0.0 (2017-11-10)
|
|
1387
1922
|
|
|
1388
1923
|
### Added
|
|
1389
1924
|
|
|
1390
|
-
-
|
|
1391
|
-
|
|
1392
|
-
-
|
|
1393
|
-
-
|
|
1394
|
-
|
|
1395
|
-
-
|
|
1396
|
-
-
|
|
1397
|
-
|
|
1398
|
-
-
|
|
1399
|
-
|
|
1400
|
-
-
|
|
1401
|
-
-
|
|
1402
|
-
-
|
|
1403
|
-
-
|
|
1404
|
-
|
|
1405
|
-
-
|
|
1406
|
-
-
|
|
1407
|
-
-
|
|
1408
|
-
-
|
|
1409
|
-
|
|
1410
|
-
-
|
|
1411
|
-
-
|
|
1412
|
-
-
|
|
1413
|
-
|
|
1414
|
-
-
|
|
1925
|
+
- misc: add possibility to do custom builds through environment variables, to remove
|
|
1926
|
+
unwanted features from minified code.
|
|
1927
|
+
- languages: add support for segmented VTT subtitles
|
|
1928
|
+
- languages/dash: add support for plain text TTML, SAMI, SRT, VTT and MP4-embedded VTT
|
|
1929
|
+
subtitles in DASH manifests
|
|
1930
|
+
- languages/smooth: add support for MP4-embedded VTT subtitles in Smooth manifests
|
|
1931
|
+
- languages: add possibility to show fragmented or not TTML, SAMI, SRT and VTT text tracks
|
|
1932
|
+
in a <track> element, even for browser that do not support the VTTCue API
|
|
1933
|
+
- languages: add possibility to show TTML, SRT, VTT and SAMI text tracks in HTML tags for
|
|
1934
|
+
richer stylisation.
|
|
1935
|
+
- api: add `textTrackElement` option to `loadVideo`
|
|
1936
|
+
- api: add `textTrackMode` option to `loadVideo`
|
|
1937
|
+
- api: add `nativeTextTracksChange` event
|
|
1938
|
+
- eme: it is now possible to directly set the reverse domain name of the wanted key system
|
|
1939
|
+
in the `type` property of `loadVideo`'s `keySystems` option.
|
|
1940
|
+
- api: add property `percentage` to the `startAt` argument of `loadVideo`.
|
|
1941
|
+
- abr: add `bitrateEstimationChange` event
|
|
1942
|
+
- api: add `LogLevel` static property
|
|
1943
|
+
- api: a Date object can now be given to the `loadVideo` argument `startAt.wallClockTime`.
|
|
1944
|
+
It will be automatically converted into seconds.
|
|
1945
|
+
- languages: add `normalizedLanguage` property in manifest-related-APIs to expose the ISO
|
|
1946
|
+
639-3 language code of the audio and text tracks
|
|
1947
|
+
- languages: add `normalized` property in language-related-API to expose the ISO 639-3
|
|
1948
|
+
language code of the audio and text tracks
|
|
1949
|
+
- loadVideo: add `codecs` property to supplementaryTextTracks
|
|
1950
|
+
- api: add `wantedBufferAhead` constructor option
|
|
1951
|
+
- api: add `maxBufferAhead` constructor option
|
|
1952
|
+
- api: add `maxBufferBehind` constructor option
|
|
1953
|
+
- api: add `getVideoBufferGap` method
|
|
1954
|
+
- api: add `isMute` method
|
|
1955
|
+
- api: add `getManualAudioBitrate` method
|
|
1956
|
+
- api: add `getManualVideoBitrate` method
|
|
1957
|
+
- config: add a global config file (src/config.js) to easily tweak the player behavior
|
|
1415
1958
|
|
|
1416
1959
|
### Changed
|
|
1417
1960
|
|
|
1418
|
-
-
|
|
1419
|
-
-
|
|
1420
|
-
|
|
1421
|
-
-
|
|
1422
|
-
-
|
|
1423
|
-
-
|
|
1424
|
-
|
|
1425
|
-
-
|
|
1426
|
-
|
|
1427
|
-
-
|
|
1428
|
-
|
|
1429
|
-
-
|
|
1430
|
-
-
|
|
1961
|
+
- languages: switch from ISO 639-2 to ISO 639-3 language codes in various APIs
|
|
1962
|
+
- languages: the `language` property returned by language and manifest related APIs now
|
|
1963
|
+
reflect the exact language as set in the manifest
|
|
1964
|
+
- api: `setVideoBitrate` can now be called even when no content is playing
|
|
1965
|
+
- api: `setAudioBitrate` can now be called even when no content is playing
|
|
1966
|
+
- api: `setVideoBitrate` can now be called even when no video track has the exact same
|
|
1967
|
+
bitrate
|
|
1968
|
+
- api: `setAudioBitrate` can now be called even when no audio track has the exact same
|
|
1969
|
+
bitrate
|
|
1970
|
+
- api: giving a number to `seekTo` now has the same effect than setting a position option
|
|
1971
|
+
in argument (`seekTo({ position }) === seekTo(position)`)
|
|
1972
|
+
- api: `getUrl` now do not throw if no content is playing
|
|
1973
|
+
- api: `isLive` now do not throw if no content is playing
|
|
1974
|
+
- api: `loadVideo` does not return anything anymore
|
|
1975
|
+
- api: private (undocumented) variables have been isolated on a player instance to a
|
|
1976
|
+
`_priv` object.
|
|
1977
|
+
- api: the constructor option `throttleWhenHidden` is now set to false by default
|
|
1978
|
+
- api: the constructor option `limitVideoWidth` is now set to false by default
|
|
1431
1979
|
|
|
1432
1980
|
### Removed
|
|
1433
1981
|
|
|
1434
|
-
-
|
|
1435
|
-
-
|
|
1436
|
-
-
|
|
1437
|
-
-
|
|
1438
|
-
-
|
|
1439
|
-
|
|
1440
|
-
-
|
|
1441
|
-
-
|
|
1442
|
-
-
|
|
1443
|
-
-
|
|
1444
|
-
-
|
|
1445
|
-
-
|
|
1446
|
-
-
|
|
1447
|
-
-
|
|
1448
|
-
-
|
|
1449
|
-
-
|
|
1450
|
-
-
|
|
1451
|
-
-
|
|
1452
|
-
-
|
|
1453
|
-
-
|
|
1454
|
-
-
|
|
1455
|
-
-
|
|
1456
|
-
-
|
|
1457
|
-
-
|
|
1458
|
-
-
|
|
1459
|
-
|
|
1460
|
-
-
|
|
1461
|
-
|
|
1462
|
-
-
|
|
1463
|
-
-
|
|
1464
|
-
-
|
|
1465
|
-
-
|
|
1466
|
-
-
|
|
1467
|
-
-
|
|
1468
|
-
-
|
|
1469
|
-
-
|
|
1470
|
-
-
|
|
1471
|
-
-
|
|
1472
|
-
-
|
|
1473
|
-
|
|
1474
|
-
-
|
|
1475
|
-
|
|
1476
|
-
-
|
|
1477
|
-
-
|
|
1478
|
-
-
|
|
1479
|
-
-
|
|
1982
|
+
- api: remove `defaultAudioTrack` constructor option
|
|
1983
|
+
- api: remove `defaultTextTrack` constructor option
|
|
1984
|
+
- api: remove `transportOptions` constructor option
|
|
1985
|
+
- api: remove `transport` constructor option
|
|
1986
|
+
- api: remove `nativeTextTrackChange` event in favor of `nativeTextTracksChange` event
|
|
1987
|
+
(notice the "s")
|
|
1988
|
+
- api: remove `goToStart` method
|
|
1989
|
+
- api: remove `getStartTime` method
|
|
1990
|
+
- api: remove `getEndTime` method
|
|
1991
|
+
- api: remove `toggleDebug` method
|
|
1992
|
+
- api: remove `hideDebug` method
|
|
1993
|
+
- api: remove `showDebug` method
|
|
1994
|
+
- api: remove `getDebug` method
|
|
1995
|
+
- api: remove `getImageTrack` method
|
|
1996
|
+
- api: remove `setVideoBufferSize` method in favor of `setWantedBufferAhead` method
|
|
1997
|
+
- api: remove `getVideoBufferSize` method in favor of `getWantedBufferAhead` method
|
|
1998
|
+
- api: remove `setAudioBufferSize` method in favor of `setWantedBufferAhead` method
|
|
1999
|
+
- api: remove `getAudioBufferSize` method in favor of `getWantedBufferAhead` method
|
|
2000
|
+
- api: remove `maximumBufferTime` property from `positionUpdate` events
|
|
2001
|
+
- api: remove `getCurrentTime` method
|
|
2002
|
+
- api: remove `asObservable` method
|
|
2003
|
+
- api: remove `loadVideo` option `manifests` in favor of `url` and `keySystems` options
|
|
2004
|
+
- api: remove `loadVideo` option `subtitles` in favor of `supplementaryTextTracks` option
|
|
2005
|
+
- api: remove `loadVideo` option `images` in favor of `supplementaryImageTracks` option
|
|
2006
|
+
- api: remove constructor option `initVideoBitrate` in favor of `initialVideoBitrate`
|
|
2007
|
+
option
|
|
2008
|
+
- api: remove constructor option `initAudioBitrate` in favor of `initialVideoBitrate`
|
|
2009
|
+
option
|
|
2010
|
+
- api: remove constructor option `defaultLanguage` in favor of `defaultAudioTrack` option
|
|
2011
|
+
- api: remove constructor option `defaultSubtitle` in favor of `defaultTextTrack` option
|
|
2012
|
+
- position: remove `subtitleChange` event
|
|
2013
|
+
- position: remove `languageChange` event
|
|
2014
|
+
- position: remove `progress` event
|
|
2015
|
+
- position: remove `currentTimeChange` event in favor of `positionUpdate` event
|
|
2016
|
+
- adaptive: remove `getMetrics` method
|
|
2017
|
+
- adaptive: remove `getAverageBitrates` method
|
|
2018
|
+
- adaptive: remove `getVideoMaxBitrate` method in favor of `getMaxVideoBitrate` method
|
|
2019
|
+
- adaptive: remove `getAudioMaxBitrate` method in favor of `getMaxAudioBitrate` method
|
|
2020
|
+
- errors: remove static method `getErrorTypes` in favor of the static property
|
|
2021
|
+
`errorTypes`
|
|
2022
|
+
- errors: remove static method `getErrorCodes` in favor of the static property
|
|
2023
|
+
`errorCodes`
|
|
2024
|
+
- languages: remove `normalizeLanguageCode` method
|
|
2025
|
+
- languages: remove `getAvailableLanguages` method
|
|
2026
|
+
- languages: remove `getAvailableSubtitles` method
|
|
2027
|
+
- languages: remove `isLanguageAvailable` method
|
|
2028
|
+
- languages: remove `isSubtitleAvailable` method
|
|
2029
|
+
- languages: remove `getLanguage` method
|
|
2030
|
+
- languages: remove `getSubtitle` method
|
|
2031
|
+
- languages: remove `setLanguage` method
|
|
2032
|
+
- languages: remove `setSubtitle` method
|
|
1480
2033
|
|
|
1481
2034
|
### Bug Fixes:
|
|
1482
2035
|
|
|
1483
|
-
-
|
|
1484
|
-
|
|
1485
|
-
-
|
|
1486
|
-
-
|
|
1487
|
-
|
|
1488
|
-
-
|
|
1489
|
-
-
|
|
1490
|
-
|
|
1491
|
-
-
|
|
1492
|
-
|
|
1493
|
-
-
|
|
1494
|
-
-
|
|
1495
|
-
|
|
1496
|
-
-
|
|
1497
|
-
-
|
|
1498
|
-
-
|
|
1499
|
-
|
|
1500
|
-
-
|
|
1501
|
-
-
|
|
2036
|
+
- dash: fix bug that prevented to play most dash contents with SegmentTemplate-based
|
|
2037
|
+
manifests
|
|
2038
|
+
- dash: it's now possible to play SegmentTimeline-based contents with a numbering scheme
|
|
2039
|
+
- dash/text: calculate the text track time offset for dynamic DASH contents (prevented
|
|
2040
|
+
most text tracks from live DASH contents to be displayed)
|
|
2041
|
+
- eme: fix EME issues when loading multiple videos in IE/Edge
|
|
2042
|
+
- api: The state of the player when ready to play with autoPlay === false is now
|
|
2043
|
+
`"LOADED"` and not `"PAUSED"`
|
|
2044
|
+
- api: fix infinite loading bug when a new content is synchronously launched as soon as
|
|
2045
|
+
the previous one is ended or fell on error
|
|
2046
|
+
- dash: allow absolute BaseURL in Periods
|
|
2047
|
+
- languages: avoid excessive re-downloads if a `supplementaryTextTracks` is provided and
|
|
2048
|
+
either a `maxBufferBehind` or a `maxBufferAhead` is set.
|
|
2049
|
+
- eme: the `reason` for the eme error `KEY_STATUS_CHANGE_ERROR` is now correctly filled in
|
|
2050
|
+
- eme: do not set widevine robustnesses for non-widevine key systems
|
|
2051
|
+
- languages: fix bug which led the text buffer to _crash_ when the `wantedBufferBehind`
|
|
2052
|
+
option is set
|
|
2053
|
+
- languages: fix bug which led to TextTracks chunks being re-downloaded multiple times
|
|
2054
|
+
- speed: fix playback rate bug when setting it while the player is stalled
|
|
2055
|
+
- smooth: fix "fallback" callback in the segmentLoader API for smooth contents.
|
|
2056
|
+
- smooth: fix some minor risks of infinite rebuffering for live contents, when the
|
|
2057
|
+
isobmff's tfrf box is not well parsed.
|
|
2058
|
+
- buffer: avoid infinite player rebuffering when the manifest is not exactly aligned with
|
|
2059
|
+
the real duration of the content
|
|
2060
|
+
- buffer: avoid multiple causes of infinite player rebuffering by managing segment garbage
|
|
2061
|
+
collection
|
|
2062
|
+
- languages: getAudioTrack now always returns the currently set audio track
|
|
2063
|
+
- languages: getTextTrack now always returns the currently set text track
|
|
1502
2064
|
|
|
1503
2065
|
### Other improvements
|
|
1504
2066
|
|
|
1505
|
-
-
|
|
1506
|
-
-
|
|
1507
|
-
|
|
1508
|
-
-
|
|
1509
|
-
-
|
|
1510
|
-
|
|
1511
|
-
-
|
|
1512
|
-
|
|
1513
|
-
-
|
|
2067
|
+
- manifest: improve manifest refreshing logic, by not downloading it when unnecessary
|
|
2068
|
+
- smooth: begin to play arround 10s before the live edge instead of 20 seconds for smooth
|
|
2069
|
+
contents
|
|
2070
|
+
- network: the backoff algorithm has been refactored for better network error resilience
|
|
2071
|
+
- adaptive: improved ABR management to provide a better, faster and more stable bandwidth
|
|
2072
|
+
estimation
|
|
2073
|
+
- adaptive: add strategies for abrupt changes of bandwidth to avoid excessive re-buffering
|
|
2074
|
+
on network fluctuations
|
|
2075
|
+
- adaptive: the adaptive algorithm now take into account the current playback rate
|
|
2076
|
+
- doc: added file architecture documentation
|
|
2077
|
+
- tests: fixed and added integration tests
|
|
2078
|
+
- demo: the demo now manages most languages defined by in the ISO 639-3 standard
|
|
1514
2079
|
|
|
1515
2080
|
## v2.3.2 (2017-07-25)
|
|
1516
2081
|
|
|
1517
2082
|
### Bug Fixes
|
|
1518
2083
|
|
|
1519
|
-
-
|
|
2084
|
+
- eme: update EME workflow to improve support (especially chromebooks)
|
|
1520
2085
|
|
|
1521
2086
|
## v2.3.1 (2017-07-10)
|
|
1522
2087
|
|
|
1523
2088
|
### Bug Fixes
|
|
1524
2089
|
|
|
1525
|
-
-
|
|
2090
|
+
- buffer: improve buffer ranges "bookeeping" logic to avoid re-downloading the same
|
|
2091
|
+
segments
|
|
1526
2092
|
|
|
1527
2093
|
## v2.3.0 (2017-07-07)
|
|
1528
2094
|
|
|
1529
2095
|
### Added
|
|
1530
2096
|
|
|
1531
|
-
-
|
|
1532
|
-
|
|
1533
|
-
-
|
|
1534
|
-
|
|
1535
|
-
-
|
|
1536
|
-
-
|
|
2097
|
+
- eme: add audioRobustnesses to loadVideo's keySystems argument (/!\ undocumented API -
|
|
2098
|
+
can break without official notice)
|
|
2099
|
+
- eme: add videoRobustnesses to loadVideo's keySystems argument (/!\ undocumented API -
|
|
2100
|
+
can break without official notice)
|
|
2101
|
+
- eme: add serverCertificate to loadVideo's keySystems argument
|
|
2102
|
+
- buffer: add {set,get}MaxBufferAhead methods
|
|
2103
|
+
- buffer: add {set,get}MaxBufferBehind methods
|
|
2104
|
+
- buffer: add {set,get}WantedBufferAhead methods replacing the deprecated buffer size
|
|
2105
|
+
methods
|
|
1537
2106
|
|
|
1538
2107
|
### Deprecated
|
|
1539
2108
|
|
|
1540
|
-
-
|
|
1541
|
-
-
|
|
1542
|
-
-
|
|
1543
|
-
-
|
|
2109
|
+
- setVideoBufferSize has been deprecated in favor of setWantedBufferAhead
|
|
2110
|
+
- getVideoBufferSize has been deprecated in favor of getWantedBufferAhead
|
|
2111
|
+
- setAudioBufferSize has been deprecated in favor of setWantedBufferAhead
|
|
2112
|
+
- getAudioBufferSize has been deprecated in favor of getWantedBufferAhead
|
|
1544
2113
|
|
|
1545
2114
|
### Bug Fixes
|
|
1546
2115
|
|
|
1547
|
-
-
|
|
1548
|
-
-
|
|
1549
|
-
-
|
|
1550
|
-
|
|
2116
|
+
- buffer: avoid some infinite re-buffering by re-calculating buffer ranges at every tick
|
|
2117
|
+
- eme: add eme support for some legacy browser without video or audio capabilities
|
|
2118
|
+
- general: add support for older browsers (which does not support
|
|
2119
|
+
array.prototype.{find,findIndex,includes})
|
|
2120
|
+
- general: use Object.assign ponyfill instead of the previous polyfill to avoid malicious
|
|
2121
|
+
interferences with other codebases
|
|
1551
2122
|
|
|
1552
2123
|
## v2.2.1 (2017-06-27)
|
|
1553
2124
|
|
|
1554
2125
|
### Bug fixes
|
|
1555
2126
|
|
|
1556
|
-
-
|
|
2127
|
+
- adaptive: fix width limitation bug. Impacted limitVideoWidth + setMaxVideoBitrate APIs
|
|
1557
2128
|
|
|
1558
2129
|
## v2.2.0 (2017-06-19)
|
|
1559
2130
|
|
|
1560
2131
|
### Added
|
|
1561
2132
|
|
|
1562
|
-
-
|
|
2133
|
+
- position: add maximumBufferPosition to the positionUpdate event's payload to replace the
|
|
2134
|
+
previous "liveGap" from currentTimeChange event
|
|
1563
2135
|
|
|
1564
2136
|
### Bug fixes
|
|
1565
2137
|
|
|
1566
|
-
-
|
|
1567
|
-
-
|
|
2138
|
+
- upgrade to rxjs 5.4.1 to escape memory leak
|
|
2139
|
+
- position: "liveGap" from currentTimeChange event now means the difference to the maximum
|
|
2140
|
+
"bufferisable" position to keep compatibility with the old API
|
|
1568
2141
|
|
|
1569
2142
|
## v2.1.3 (2017-06-15)
|
|
1570
2143
|
|
|
1571
2144
|
### Bug fixes
|
|
1572
2145
|
|
|
1573
|
-
-
|
|
2146
|
+
- api: fix timeFragment.start handling
|
|
1574
2147
|
|
|
1575
2148
|
## v2.1.2 (2017-06-14)
|
|
1576
2149
|
|
|
1577
2150
|
### Bug fixes
|
|
1578
2151
|
|
|
1579
|
-
-
|
|
1580
|
-
|
|
1581
|
-
-
|
|
1582
|
-
-
|
|
1583
|
-
|
|
1584
|
-
-
|
|
1585
|
-
|
|
2152
|
+
- stream: the BUFFER_APPEND_ERROR error, happening when a SourceBuffer.appendBuffer failed
|
|
2153
|
+
for an unknown reason, is now a fatal error for audio/video segments
|
|
2154
|
+
- eme: fix rxjs timeout management which prevented from playing DRM-protected contents
|
|
2155
|
+
- api: add securities to avoid useless errors to be thrown when the player (already)
|
|
2156
|
+
encounter an error
|
|
2157
|
+
- position: fix bug which prevented to seek at the beginning of the content with the new
|
|
2158
|
+
api
|
|
2159
|
+
- position: fix typo which prevented to perform absolute seeks with the new api
|
|
2160
|
+
- buffer: automatically seek if there is discontinuity in a live stream
|
|
2161
|
+
- adaptive: take the lowest bitrate (instead of the initial/default one) when the player
|
|
2162
|
+
is not displayed/too small
|
|
1586
2163
|
|
|
1587
2164
|
## v2.1.1 (2017-06-02)
|
|
1588
2165
|
|
|
1589
2166
|
### Bug fixes
|
|
1590
2167
|
|
|
1591
|
-
-
|
|
1592
|
-
-
|
|
1593
|
-
-
|
|
1594
|
-
-
|
|
1595
|
-
-
|
|
1596
|
-
-
|
|
1597
|
-
-
|
|
1598
|
-
-
|
|
1599
|
-
-
|
|
1600
|
-
-
|
|
2168
|
+
- hotfix: fixed rxjs imports
|
|
2169
|
+
- hotfix: the player can now be imported through a commonjs require
|
|
2170
|
+
- hotfix: the player could not play if the video element's width was too short
|
|
2171
|
+
- manifest: segment id were not always the same on a segmentLoader and on the API calls.
|
|
2172
|
+
- adaptive: setVideoBitrate now throw a more meaningful error if no content is playing
|
|
2173
|
+
- adaptive: setAudioBitrate now throw a more meaningful error if no content is playing
|
|
2174
|
+
- language: setSubtitle now throw a more meaningful error if no content is playing
|
|
2175
|
+
- language: setLanguage now throw a more meaningful error if no content is playing
|
|
2176
|
+
- language: isLanguageAvailable do not throw and return false if no content is playing
|
|
2177
|
+
- language: isSubtitleAvailable do not throw and return false if no content is playing
|
|
1601
2178
|
|
|
1602
2179
|
### Other improvements
|
|
1603
2180
|
|
|
1604
|
-
-
|
|
1605
|
-
-
|
|
1606
|
-
-
|
|
2181
|
+
- api: deprecated api now only warn once
|
|
2182
|
+
- tests: integration tests have been added
|
|
2183
|
+
- manifest: the manifest object and the management of its index has been refactored for
|
|
2184
|
+
future improvements
|
|
1607
2185
|
|
|
1608
2186
|
## v2.1.0 (2017-05-29)
|
|
1609
2187
|
|
|
1610
2188
|
### Added
|
|
1611
2189
|
|
|
1612
|
-
-
|
|
1613
|
-
-
|
|
1614
|
-
-
|
|
1615
|
-
-
|
|
1616
|
-
-
|
|
1617
|
-
-
|
|
1618
|
-
-
|
|
1619
|
-
-
|
|
1620
|
-
-
|
|
1621
|
-
-
|
|
1622
|
-
-
|
|
1623
|
-
-
|
|
1624
|
-
-
|
|
1625
|
-
-
|
|
1626
|
-
-
|
|
1627
|
-
-
|
|
1628
|
-
-
|
|
1629
|
-
-
|
|
1630
|
-
|
|
1631
|
-
-
|
|
1632
|
-
|
|
1633
|
-
-
|
|
1634
|
-
-
|
|
1635
|
-
-
|
|
1636
|
-
-
|
|
1637
|
-
-
|
|
1638
|
-
-
|
|
1639
|
-
-
|
|
1640
|
-
-
|
|
1641
|
-
-
|
|
2190
|
+
- images/dash: add BIF support in DASH MPD
|
|
2191
|
+
- subtitles/smooth: add support for closed captions in smooth manifest
|
|
2192
|
+
- subtitles: add closed caption support in supplementaryTextTracks loadVideo arguments
|
|
2193
|
+
- position: add getMinimumPosition and getMaximumPosition methods
|
|
2194
|
+
- position: add startAt loadVideo argument (replace the timeFragment API)
|
|
2195
|
+
- position: add positionUpdate event
|
|
2196
|
+
- images: add getImageTrackData method
|
|
2197
|
+
- images: add imageTrackUpdate event
|
|
2198
|
+
- position: add possibility to use relative, absolute and wall-clock time on seekTo API
|
|
2199
|
+
- transport: add segmentLoader transportOption for constructor and loadVideo API
|
|
2200
|
+
- api: add setMaxAudioBitrate and setMaxVideoBitrate method
|
|
2201
|
+
- api: add exitFullscreen method
|
|
2202
|
+
- api: add ErrorTypes and ErrorCodes static properties
|
|
2203
|
+
- api: add getPosition method
|
|
2204
|
+
- api: add getWallClockTime method
|
|
2205
|
+
- manifest: add getCurrentRepresentations method
|
|
2206
|
+
- manifest: add getCurrentAdaptations method
|
|
2207
|
+
- api: add throttleWhenHidden option to constructor (to disable throttling when the
|
|
2208
|
+
current page is hidden for an extended time)
|
|
2209
|
+
- api: add limitVideoWidth option to constructor (to disable throttling to match the video
|
|
2210
|
+
element's width)
|
|
2211
|
+
- api: add initialAudioBitrate and initialVideoBitrate to constructor's options
|
|
2212
|
+
- api: add defaultTextTrack and defaultAudioTrack to loadVideo and constructor's options
|
|
2213
|
+
- languages: add getAvailableAudioTracks method with audio description support
|
|
2214
|
+
- languages: add getAvailableTextTracks method with closed caption support
|
|
2215
|
+
- languages: add getAudioTrack method with audio description support
|
|
2216
|
+
- languages: add getTextTrack method with closed caption support
|
|
2217
|
+
- languages: add setAudioTrack method with audio description support
|
|
2218
|
+
- languages: add setTextTrack method with closed caption support
|
|
2219
|
+
- audiotrack/dash: add audio description support in DASH MPD
|
|
2220
|
+
- subtitles/dash: add closed captions support in DASH MPD
|
|
2221
|
+
- subtitles/dash: add subtitles support in DASH MPD (only ttml for now)
|
|
1642
2222
|
|
|
1643
2223
|
### Deprecated
|
|
1644
2224
|
|
|
1645
|
-
-
|
|
1646
|
-
|
|
1647
|
-
-
|
|
1648
|
-
-
|
|
1649
|
-
-
|
|
1650
|
-
-
|
|
1651
|
-
-
|
|
1652
|
-
-
|
|
1653
|
-
-
|
|
1654
|
-
-
|
|
1655
|
-
-
|
|
1656
|
-
-
|
|
1657
|
-
-
|
|
1658
|
-
-
|
|
1659
|
-
-
|
|
1660
|
-
-
|
|
1661
|
-
-
|
|
1662
|
-
-
|
|
1663
|
-
-
|
|
1664
|
-
-
|
|
1665
|
-
-
|
|
1666
|
-
-
|
|
1667
|
-
-
|
|
1668
|
-
-
|
|
1669
|
-
|
|
1670
|
-
-
|
|
1671
|
-
|
|
1672
|
-
-
|
|
1673
|
-
|
|
1674
|
-
-
|
|
1675
|
-
|
|
1676
|
-
-
|
|
1677
|
-
-
|
|
1678
|
-
-
|
|
2225
|
+
- position: the timeFragment API is deprecated (loadVideo's timeFragment argument,
|
|
2226
|
+
getStartTime, getEndTime and goToStart)
|
|
2227
|
+
- api: currentTimeChange event is replaced by the positionUpdate event
|
|
2228
|
+
- api: progress event is deprecated and not replaced
|
|
2229
|
+
- api: getImageTrack is replaced by the imageTrackUpdate event
|
|
2230
|
+
- api: loadVideo parameter subtitles is replaced by supplementaryTextTracks
|
|
2231
|
+
- api: loadVideo parameter images is replaced by supplementaryImageTracks
|
|
2232
|
+
- api: getVideoMaxBitrate is replaced by getMaxVideoBitrate
|
|
2233
|
+
- api: getAudioMaxBitrate is replaced by getMaxAudioBitrate
|
|
2234
|
+
- api: toggleDebug is deprecated and not replaced
|
|
2235
|
+
- api: hideDebug is deprecated and not replaced
|
|
2236
|
+
- api: showDebug is deprecated and not replaced
|
|
2237
|
+
- api: getDebug is deprecated and not replaced
|
|
2238
|
+
- api: asObservable is deprecated and not replaced
|
|
2239
|
+
- api: getAverageBitrates is deprecated and not replaced
|
|
2240
|
+
- api: getMetrics is deprecated and not replaced
|
|
2241
|
+
- position: using seekTo with a Number argument is deprecated.
|
|
2242
|
+
- position: getCurrentTime is deprecated in favor of getWallClockTime
|
|
2243
|
+
- api: setVideoMaxBitrate is replaced by setMaxVideoBitrate
|
|
2244
|
+
- api: setAudioMaxBitrate is replaced by setMaxAudioBitrate
|
|
2245
|
+
- api: using setFullscreen(false) is replaced by exitFullscreen
|
|
2246
|
+
- api: getErrorTypes method has been deprecated in favor of the ErrorTypes property
|
|
2247
|
+
- api: getErrorCodes method has been deprecated in favor of the ErrorCodes property
|
|
2248
|
+
- languages: initAudioBitrate option in constructor is deprecated in favor of
|
|
2249
|
+
initialAudioBitrate
|
|
2250
|
+
- languages: initVideoBitrate option in constructor is deprecated in favor of
|
|
2251
|
+
initialVideoBitrate
|
|
2252
|
+
- languages: defaultSubtitle option in constructor and loadVideo is deprecated in favor of
|
|
2253
|
+
defaultTextTrack
|
|
2254
|
+
- languages: defaultLanguage option in constructor and loadVideo is deprecated in favor of
|
|
2255
|
+
defaultAudioTrack
|
|
2256
|
+
- languages: getAvailableLanguages is deprecated in favor of getAvailableAudioTracks
|
|
2257
|
+
- languages: getAvailableSubtitles is deprecated in favor of getAvailableTextTracks
|
|
2258
|
+
- languages: getLanguage is deprecated in favor of getAudioTrack
|
|
2259
|
+
- languages: getSubtitle is deprecated in favor of getTextTrack
|
|
2260
|
+
- languages: isLanguageAvailable is deprecated and not replaced
|
|
2261
|
+
- languages: isSubtitleAvailable is deprecated and not replaced
|
|
2262
|
+
- languages: setLanguage is deprecated in favor of setAudioTrack
|
|
2263
|
+
- languages: setSubtitle is deprecated in favor of setTextTrack
|
|
1679
2264
|
|
|
1680
2265
|
### Bug fixes
|
|
1681
2266
|
|
|
1682
|
-
-
|
|
1683
|
-
|
|
1684
|
-
-
|
|
1685
|
-
-
|
|
1686
|
-
-
|
|
1687
|
-
-
|
|
1688
|
-
|
|
1689
|
-
-
|
|
1690
|
-
-
|
|
1691
|
-
-
|
|
1692
|
-
|
|
1693
|
-
-
|
|
1694
|
-
-
|
|
1695
|
-
-
|
|
1696
|
-
-
|
|
1697
|
-
-
|
|
1698
|
-
-
|
|
1699
|
-
-
|
|
2267
|
+
- adaptive: fix a bug where it was impossible to switch between multiple videos
|
|
2268
|
+
representations with the same width
|
|
2269
|
+
- languages: fix bug where the user could switch to a closed caption track unknowngly
|
|
2270
|
+
- languages: fix bug where the user could switch to an audio description track unknowngly
|
|
2271
|
+
- manifest: improved and documented getManifest's return value
|
|
2272
|
+
- manifest: defined and documented a generic manifest object structure (slowly replacing
|
|
2273
|
+
the old object).
|
|
2274
|
+
- images: image playlists are now not re-fetched if the request failed (no retry)
|
|
2275
|
+
- dash: lowered security time raising the startup time for SegmentTemplate-based contents
|
|
2276
|
+
- api: getLanguage/getSubtitle returns now the language of the last chunk received, not
|
|
2277
|
+
the last set
|
|
2278
|
+
- manifest: fixed manifest-refreshing logic (mainly for live contents)
|
|
2279
|
+
- dash: fixed support for dash SegmentTimeline-based contents
|
|
2280
|
+
- api: differentiate unset default languages from empty strings
|
|
2281
|
+
- languages: handle undefined languages (to an empty string)
|
|
2282
|
+
- api: allow the player to be instanciated with no option
|
|
2283
|
+
- mp4: fix minor bugs with isobmff parsing
|
|
2284
|
+
- images: keep externally-given BIF track when the manifest is refreshed
|
|
2285
|
+
- timings: fix timeFragment arguments RegExp
|
|
2286
|
+
- subtitles: fix webVTT management for unsupported user agents
|
|
2287
|
+
- timings: fix calculation of the position and duration for non-dynamic contetns
|
|
1700
2288
|
|
|
1701
2289
|
### Other improvements
|
|
1702
2290
|
|
|
1703
|
-
-
|
|
1704
|
-
-
|
|
1705
|
-
-
|
|
1706
|
-
-
|
|
1707
|
-
-
|
|
1708
|
-
-
|
|
1709
|
-
-
|
|
2291
|
+
- documentation: The API documentation has been completely rewritten
|
|
2292
|
+
- manifest: The DASH manifest handling has been refactored
|
|
2293
|
+
- smooth: Smooth index handling has been completely separated from the DASH logic
|
|
2294
|
+
- tests: fix and re-wrote unit tests
|
|
2295
|
+
- documentation: Code documentation has been added
|
|
2296
|
+
- demo: The Demo has been completely rewritten
|
|
2297
|
+
- demo: The bundle has been removed from the code committed.
|
|
1710
2298
|
|
|
1711
2299
|
## v2.0.0-alpha1 (2016-02-09)
|
|
1712
2300
|
|
|
1713
|
-
-
|
|
1714
|
-
-
|
|
1715
|
-
on promises
|
|
2301
|
+
- RxJS: use RxJS5.beta1
|
|
2302
|
+
- Promise: remove es6-promise dependency and stop relying completely on promises
|
|
1716
2303
|
|
|
1717
|
-
-
|
|
1718
|
-
-
|
|
1719
|
-
-
|
|
1720
|
-
-
|
|
1721
|
-
-
|
|
1722
|
-
-
|
|
1723
|
-
-
|
|
1724
|
-
-
|
|
1725
|
-
-
|
|
2304
|
+
- eme: improve IE11 and Edge support on EME
|
|
2305
|
+
- smooth: activate patch in place on non IE targets for less memory allocation
|
|
2306
|
+
- player: deprecate directFile api and skip MediaSource assert for directfile
|
|
2307
|
+
- player: clone array for getAvailableBitrates methods
|
|
2308
|
+
- player: fix when no adaptation or no representation
|
|
2309
|
+
- player: record subtitle state as empty string
|
|
2310
|
+
- buffer: start with buffer infos to cache infos asap
|
|
2311
|
+
- stream: start stalling system after having first metadata
|
|
2312
|
+
- refacto: clean pipelined objects and POO where needed
|
|
1726
2313
|
|
|
1727
|
-
-
|
|
2314
|
+
- lint: add new rules (no-var, prefer-const, enforce brackets)
|
|
1728
2315
|
|
|
1729
2316
|
## v1.4.0 (2016-01-26)
|
|
1730
2317
|
|
|
1731
2318
|
### Added
|
|
1732
2319
|
|
|
1733
|
-
-
|
|
1734
|
-
-
|
|
1735
|
-
-
|
|
1736
|
-
-
|
|
2320
|
+
- buffer: add garbage collector
|
|
2321
|
+
- player: emit currentTimeChange synchronously
|
|
2322
|
+
- player: add {defaultLanguage,defaultSubtitle} api
|
|
2323
|
+
- log: warn to info for some logs
|
|
1737
2324
|
|
|
1738
2325
|
### Bug fixes
|
|
1739
2326
|
|
|
1740
|
-
-
|
|
1741
|
-
-
|
|
1742
|
-
-
|
|
1743
|
-
-
|
|
1744
|
-
-
|
|
1745
|
-
-
|
|
1746
|
-
-
|
|
2327
|
+
- player: fix getAvailable\* for direct files
|
|
2328
|
+
- player: fix subtle race on loadedmetadata after retry
|
|
2329
|
+
- eme: remove compat code for old chrome versions with eme flags
|
|
2330
|
+
- eme: always ask for temporary session type
|
|
2331
|
+
- eme: fix template error message
|
|
2332
|
+
- eme: improve persistent license support and compat
|
|
2333
|
+
- smooth: fix index timeline if no duration
|
|
1747
2334
|
|
|
1748
2335
|
## Demo
|
|
1749
2336
|
|
|
1750
|
-
-
|
|
2337
|
+
- allow to pass query parameters
|
|
1751
2338
|
|
|
1752
2339
|
## v1.3.1 (2015-10-14)
|
|
1753
2340
|
|
|
1754
2341
|
### Bug fixes
|
|
1755
2342
|
|
|
1756
|
-
-
|
|
2343
|
+
- smooth: fix parseBoolean causing isLive to be always true
|
|
1757
2344
|
|
|
1758
2345
|
## v1.3.0 (2015-10-14)
|
|
1759
2346
|
|
|
1760
2347
|
### Added
|
|
1761
2348
|
|
|
1762
|
-
-
|
|
1763
|
-
-
|
|
1764
|
-
-
|
|
2349
|
+
- eme: license persistency support
|
|
2350
|
+
- timings: add progress sampling
|
|
2351
|
+
- compat: add firefox workaround for autoplay
|
|
1765
2352
|
|
|
1766
2353
|
## v1.2.1 (2015-09-23)
|
|
1767
2354
|
|
|
1768
2355
|
### Bug fixes
|
|
1769
2356
|
|
|
1770
|
-
-
|
|
2357
|
+
- stream: do not stall on loadedmetadata event
|
|
1771
2358
|
|
|
1772
2359
|
## v1.2.0 (2015-09-23)
|
|
1773
2360
|
|
|
1774
|
-
This release introduces the use of ES6 classes for all modules that
|
|
1775
|
-
|
|
1776
|
-
RxJSv3.1.1.
|
|
2361
|
+
This release introduces the use of ES6 classes for all modules that depends on a sort of
|
|
2362
|
+
class hierarchy. It comes with an upgrade of RxJSv3.1.1.
|
|
1777
2363
|
|
|
1778
2364
|
We also started using eslint as our main linter instead of jshint.
|
|
1779
2365
|
|
|
1780
2366
|
### Added
|
|
1781
2367
|
|
|
1782
|
-
-
|
|
1783
|
-
-
|
|
1784
|
-
-
|
|
1785
|
-
-
|
|
1786
|
-
-
|
|
2368
|
+
- smooth: customizable parser (7b50ce9)
|
|
2369
|
+
- smooth: add application/smil as SAMI content-type (e0aa2bb)
|
|
2370
|
+
- improve video start time by ticking on loadedmetadata (27bd43c)
|
|
2371
|
+
- dash: incremental id from adaptations/representations (c24fecb)
|
|
2372
|
+
- stream: discontinuity check on each stalled tick (3a5b796)
|
|
1787
2373
|
|
|
1788
2374
|
### Bug fixes
|
|
1789
2375
|
|
|
1790
|
-
-
|
|
1791
|
-
-
|
|
1792
|
-
-
|
|
1793
|
-
-
|
|
1794
|
-
-
|
|
1795
|
-
-
|
|
1796
|
-
-
|
|
1797
|
-
-
|
|
2376
|
+
- fix missing new on Promise (4679632)
|
|
2377
|
+
- compat: fix IE11 compat for setMediaKeys (2ccb11f)
|
|
2378
|
+
- player: fix synchronous dispose on loadVideo (dc79bd1)
|
|
2379
|
+
- pipelines: fix audio/video init segment caches (ea3422f)
|
|
2380
|
+
- stream: remove initial seek hack (ae0ac23)
|
|
2381
|
+
- player: fix getVideoLoaded/PlayedTime (63bf304)
|
|
2382
|
+
- player: fix getUrl (577ce87)
|
|
2383
|
+
- manifest: enforce id setting to parsers (927d275)
|
|
1798
2384
|
|
|
1799
2385
|
## v1.1.0 (2015-08-14)
|
|
1800
2386
|
|
|
1801
2387
|
### Added
|
|
1802
2388
|
|
|
1803
|
-
-
|
|
1804
|
-
-
|
|
1805
|
-
-
|
|
1806
|
-
-
|
|
2389
|
+
- smoothstreaming transport support
|
|
2390
|
+
- api for initial aubio/video bitrate choice
|
|
2391
|
+
- simplify WebVTT support and implementation
|
|
2392
|
+
- allow percentage values on start/end time values
|
|
1807
2393
|
|
|
1808
2394
|
### Bug fixes
|
|
1809
2395
|
|
|
1810
|
-
-
|
|
1811
|
-
-
|
|
1812
|
-
-
|
|
1813
|
-
-
|
|
2396
|
+
- fix local buffer representation out-of-sync with native ones
|
|
2397
|
+
- fix no retry for > 500 http codes
|
|
2398
|
+
- fix no MediaKeySession reuse on Chrome
|
|
2399
|
+
- fix quota error with MediaKeys attached to multiple video elements on Chrome
|
|
1814
2400
|
|
|
1815
2401
|
## v1.0.0 (2015-06-16)
|
|
1816
2402
|
|