rx-player 3.33.4-dev.2024090600 → 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 -1078
- 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.js +8 -9
- package/dist/_esm5.processed/compat/can_reuse_media_keys.js +1 -1
- 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 +334 -234
- 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 +27 -12
- 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,1818 +1,2402 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## v3.33.4 (2024-10-16)
|
|
4
4
|
|
|
5
5
|
### Bug fixes
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
|
|
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]
|
|
10
23
|
|
|
11
24
|
### Other improvements
|
|
12
25
|
|
|
13
|
-
-
|
|
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]
|
|
14
32
|
|
|
15
|
-
## v3.33.3
|
|
33
|
+
## v3.33.3 (2024-07-08)
|
|
16
34
|
|
|
17
35
|
### Bug fixes
|
|
18
36
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
|
|
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]
|
|
39
57
|
|
|
40
58
|
### Other improvements
|
|
41
59
|
|
|
42
|
-
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
`"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]
|
|
46
63
|
|
|
47
64
|
## v3.33.2 (2024-02-27)
|
|
48
65
|
|
|
49
66
|
### Bug fixes
|
|
50
67
|
|
|
51
|
-
-
|
|
52
|
-
|
|
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]
|
|
53
72
|
|
|
54
73
|
### Other improvements
|
|
55
74
|
|
|
56
|
-
-
|
|
57
|
-
|
|
58
|
-
-
|
|
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]
|
|
59
79
|
|
|
60
80
|
## v3.33.0 (2024-01-24)
|
|
61
81
|
|
|
62
82
|
### Features
|
|
63
83
|
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
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]
|
|
67
87
|
|
|
68
88
|
### Bug fixes
|
|
69
89
|
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
|
|
77
|
-
-
|
|
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]
|
|
78
103
|
|
|
79
104
|
### Other improvements
|
|
80
105
|
|
|
81
|
-
-
|
|
82
|
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
|
|
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]
|
|
90
120
|
|
|
91
121
|
## v3.32.1 (2023-10-19)
|
|
92
122
|
|
|
93
123
|
### Features
|
|
94
124
|
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
-
|
|
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]
|
|
99
134
|
|
|
100
135
|
### Bug fixes
|
|
101
136
|
|
|
102
|
-
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
-
|
|
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]
|
|
106
146
|
|
|
107
147
|
### Other improvements
|
|
108
148
|
|
|
109
|
-
-
|
|
110
|
-
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
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]
|
|
117
162
|
|
|
118
163
|
### Deprecated
|
|
119
164
|
|
|
120
|
-
-
|
|
121
|
-
|
|
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]
|
|
122
169
|
|
|
123
170
|
## v3.31.0 (2023-06-14)
|
|
124
171
|
|
|
125
172
|
### Features
|
|
126
173
|
|
|
127
|
-
-
|
|
128
|
-
|
|
129
|
-
-
|
|
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]
|
|
130
179
|
|
|
131
180
|
### Bug fixes
|
|
132
181
|
|
|
133
|
-
-
|
|
134
|
-
|
|
135
|
-
-
|
|
136
|
-
|
|
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]
|
|
137
189
|
|
|
138
190
|
### Other improvements
|
|
139
191
|
|
|
140
|
-
-
|
|
141
|
-
|
|
142
|
-
-
|
|
143
|
-
|
|
144
|
-
-
|
|
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
|
|
145
200
|
|
|
146
201
|
## v3.30.0 (2023-03-07)
|
|
147
202
|
|
|
148
203
|
### Features
|
|
149
204
|
|
|
150
|
-
-
|
|
151
|
-
|
|
152
|
-
-
|
|
153
|
-
|
|
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]
|
|
154
213
|
|
|
155
214
|
### Deprecated
|
|
156
215
|
|
|
157
|
-
-
|
|
158
|
-
|
|
159
|
-
-
|
|
160
|
-
|
|
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.
|
|
161
223
|
|
|
162
224
|
### Bug fixes
|
|
163
225
|
|
|
164
|
-
-
|
|
165
|
-
|
|
166
|
-
-
|
|
167
|
-
|
|
168
|
-
-
|
|
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]
|
|
169
236
|
|
|
170
237
|
### Other improvements
|
|
171
238
|
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
-
|
|
175
|
-
-
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
|
|
179
|
-
-
|
|
180
|
-
|
|
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]
|
|
181
251
|
|
|
182
252
|
## v3.29.0 (2022-11-16)
|
|
183
253
|
|
|
184
254
|
### Features
|
|
185
255
|
|
|
186
|
-
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
-
|
|
190
|
-
|
|
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]
|
|
191
268
|
|
|
192
269
|
### Deprecated
|
|
193
270
|
|
|
194
|
-
-
|
|
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]
|
|
195
274
|
|
|
196
275
|
### Bug fixes
|
|
197
276
|
|
|
198
|
-
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
-
|
|
202
|
-
|
|
203
|
-
-
|
|
204
|
-
|
|
205
|
-
-
|
|
206
|
-
|
|
207
|
-
-
|
|
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]
|
|
208
301
|
|
|
209
302
|
### Other improvements
|
|
210
303
|
|
|
211
|
-
-
|
|
212
|
-
|
|
213
|
-
-
|
|
214
|
-
|
|
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]
|
|
215
313
|
|
|
216
314
|
## v3.28.0 (2022-07-12)
|
|
217
315
|
|
|
218
316
|
### Features
|
|
219
317
|
|
|
220
|
-
-
|
|
221
|
-
|
|
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]
|
|
222
323
|
|
|
223
324
|
### Bug fixes
|
|
224
325
|
|
|
225
|
-
-
|
|
226
|
-
|
|
227
|
-
-
|
|
228
|
-
|
|
229
|
-
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
-
|
|
233
|
-
|
|
234
|
-
-
|
|
235
|
-
|
|
236
|
-
|
|
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]
|
|
237
352
|
|
|
238
353
|
### Other improvements
|
|
239
354
|
|
|
240
|
-
-
|
|
241
|
-
-
|
|
242
|
-
|
|
243
|
-
-
|
|
244
|
-
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
-
|
|
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]
|
|
248
370
|
|
|
249
371
|
## v3.27.0 (2022-03-31)
|
|
250
372
|
|
|
251
373
|
### Features
|
|
252
374
|
|
|
253
|
-
-
|
|
254
|
-
|
|
255
|
-
-
|
|
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]
|
|
256
382
|
|
|
257
383
|
### Bug fixes
|
|
258
384
|
|
|
259
|
-
-
|
|
260
|
-
|
|
261
|
-
-
|
|
262
|
-
|
|
263
|
-
-
|
|
264
|
-
|
|
265
|
-
-
|
|
266
|
-
-
|
|
267
|
-
-
|
|
268
|
-
|
|
269
|
-
-
|
|
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]
|
|
270
404
|
|
|
271
405
|
### Other improvements
|
|
272
406
|
|
|
273
|
-
-
|
|
274
|
-
|
|
275
|
-
-
|
|
276
|
-
|
|
277
|
-
-
|
|
278
|
-
|
|
279
|
-
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
-
|
|
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]
|
|
283
426
|
|
|
284
427
|
## v3.26.2 (2022-01-11)
|
|
285
428
|
|
|
286
429
|
### Bug fixes
|
|
287
430
|
|
|
288
|
-
-
|
|
289
|
-
|
|
290
|
-
-
|
|
291
|
-
|
|
292
|
-
-
|
|
293
|
-
|
|
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]
|
|
294
445
|
|
|
295
446
|
### Other improvements
|
|
296
447
|
|
|
297
|
-
-
|
|
298
|
-
|
|
299
|
-
-
|
|
300
|
-
-
|
|
301
|
-
|
|
302
|
-
-
|
|
303
|
-
|
|
304
|
-
-
|
|
305
|
-
-
|
|
306
|
-
|
|
307
|
-
-
|
|
308
|
-
|
|
309
|
-
|
|
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]
|
|
310
473
|
|
|
311
474
|
## v3.26.1 (2021-09-14)
|
|
312
475
|
|
|
313
476
|
### Bug fixes
|
|
314
477
|
|
|
315
|
-
-
|
|
316
|
-
|
|
317
|
-
-
|
|
318
|
-
|
|
319
|
-
-
|
|
320
|
-
|
|
321
|
-
-
|
|
322
|
-
|
|
323
|
-
-
|
|
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]
|
|
324
495
|
|
|
325
496
|
### Other improvements
|
|
326
497
|
|
|
327
|
-
-
|
|
328
|
-
|
|
329
|
-
-
|
|
330
|
-
|
|
331
|
-
-
|
|
332
|
-
-
|
|
333
|
-
-
|
|
334
|
-
-
|
|
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]
|
|
335
509
|
|
|
336
510
|
## v3.26.0 (2021-06-10)
|
|
337
511
|
|
|
338
512
|
### Features
|
|
339
513
|
|
|
340
|
-
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
-
|
|
345
|
-
|
|
346
|
-
-
|
|
347
|
-
|
|
348
|
-
-
|
|
349
|
-
|
|
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]
|
|
350
536
|
|
|
351
537
|
### Bug fixes
|
|
352
538
|
|
|
353
|
-
-
|
|
354
|
-
|
|
355
|
-
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
-
|
|
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]
|
|
359
551
|
|
|
360
552
|
### Other improvements
|
|
361
553
|
|
|
362
|
-
-
|
|
363
|
-
|
|
364
|
-
-
|
|
365
|
-
|
|
366
|
-
-
|
|
367
|
-
-
|
|
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]
|
|
368
568
|
|
|
369
569
|
## v3.24.0 (2021-04-01)
|
|
370
570
|
|
|
371
571
|
### Features
|
|
372
572
|
|
|
373
|
-
-
|
|
374
|
-
-
|
|
375
|
-
|
|
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]
|
|
376
579
|
|
|
377
580
|
### Bug fixes
|
|
378
581
|
|
|
379
|
-
-
|
|
380
|
-
|
|
381
|
-
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
-
|
|
385
|
-
-
|
|
386
|
-
|
|
387
|
-
-
|
|
388
|
-
|
|
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]
|
|
389
601
|
|
|
390
602
|
### Other improvements
|
|
391
603
|
|
|
392
|
-
-
|
|
393
|
-
|
|
394
|
-
-
|
|
395
|
-
-
|
|
396
|
-
|
|
397
|
-
-
|
|
398
|
-
|
|
399
|
-
-
|
|
400
|
-
|
|
401
|
-
-
|
|
402
|
-
|
|
403
|
-
-
|
|
404
|
-
|
|
405
|
-
-
|
|
406
|
-
|
|
407
|
-
-
|
|
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]
|
|
408
632
|
|
|
409
633
|
## v3.23.1 (2021-02-01)
|
|
410
634
|
|
|
411
635
|
### Bug fixes
|
|
412
636
|
|
|
413
|
-
-
|
|
637
|
+
- Fix support of encrypted contents on Safari (v3.23.0 regression)
|
|
414
638
|
|
|
415
639
|
## v3.23.0 (2021-02-01)
|
|
416
640
|
|
|
417
641
|
### Features
|
|
418
642
|
|
|
419
|
-
-
|
|
420
|
-
|
|
421
|
-
-
|
|
422
|
-
|
|
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]
|
|
423
652
|
|
|
424
653
|
### Bug fixes
|
|
425
654
|
|
|
426
|
-
-
|
|
427
|
-
|
|
428
|
-
-
|
|
429
|
-
-
|
|
430
|
-
-
|
|
431
|
-
|
|
432
|
-
-
|
|
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]
|
|
433
668
|
|
|
434
669
|
### Other improvements
|
|
435
670
|
|
|
436
|
-
-
|
|
437
|
-
|
|
438
|
-
-
|
|
439
|
-
|
|
440
|
-
-
|
|
441
|
-
|
|
442
|
-
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
-
|
|
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]
|
|
446
688
|
|
|
447
689
|
## v3.22.0 (2020-11-17)
|
|
448
690
|
|
|
449
691
|
### Features
|
|
450
692
|
|
|
451
|
-
-
|
|
452
|
-
|
|
453
|
-
-
|
|
454
|
-
|
|
455
|
-
-
|
|
456
|
-
|
|
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]
|
|
457
705
|
|
|
458
706
|
### Bug fixes
|
|
459
707
|
|
|
460
|
-
-
|
|
461
|
-
|
|
462
|
-
-
|
|
463
|
-
-
|
|
464
|
-
|
|
465
|
-
-
|
|
466
|
-
|
|
467
|
-
-
|
|
468
|
-
|
|
469
|
-
-
|
|
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]
|
|
470
727
|
|
|
471
728
|
### Other improvements
|
|
472
729
|
|
|
473
|
-
-
|
|
474
|
-
|
|
475
|
-
-
|
|
476
|
-
|
|
477
|
-
-
|
|
478
|
-
|
|
479
|
-
-
|
|
480
|
-
-
|
|
481
|
-
|
|
482
|
-
-
|
|
483
|
-
-
|
|
484
|
-
-
|
|
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]
|
|
485
750
|
|
|
486
751
|
## v3.21.1 (2020-09-21)
|
|
487
752
|
|
|
488
753
|
### Bug fixes
|
|
489
754
|
|
|
490
|
-
-
|
|
491
|
-
-
|
|
492
|
-
-
|
|
493
|
-
|
|
494
|
-
-
|
|
495
|
-
|
|
496
|
-
-
|
|
497
|
-
|
|
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]
|
|
498
771
|
|
|
499
772
|
### Other improvements
|
|
500
773
|
|
|
501
|
-
-
|
|
502
|
-
|
|
503
|
-
-
|
|
504
|
-
|
|
505
|
-
-
|
|
506
|
-
|
|
507
|
-
-
|
|
508
|
-
|
|
509
|
-
-
|
|
510
|
-
|
|
511
|
-
-
|
|
512
|
-
|
|
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]
|
|
513
799
|
|
|
514
800
|
## v3.21.0 (2020-06-17)
|
|
515
801
|
|
|
516
802
|
### Features
|
|
517
803
|
|
|
518
|
-
-
|
|
519
|
-
-
|
|
520
|
-
|
|
521
|
-
-
|
|
522
|
-
|
|
523
|
-
-
|
|
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`
|
|
524
814
|
|
|
525
815
|
### Bug fixes
|
|
526
816
|
|
|
527
|
-
-
|
|
528
|
-
|
|
529
|
-
-
|
|
530
|
-
-
|
|
531
|
-
|
|
532
|
-
-
|
|
533
|
-
-
|
|
534
|
-
|
|
535
|
-
-
|
|
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).
|
|
536
833
|
|
|
537
834
|
### Other improvements
|
|
538
835
|
|
|
539
|
-
-
|
|
540
|
-
|
|
541
|
-
-
|
|
542
|
-
|
|
543
|
-
-
|
|
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)
|
|
544
846
|
|
|
545
847
|
## v3.20.1 (2020-05-06)
|
|
546
848
|
|
|
547
849
|
### Bug fixes
|
|
548
850
|
|
|
549
|
-
-
|
|
550
|
-
-
|
|
551
|
-
|
|
552
|
-
-
|
|
553
|
-
|
|
554
|
-
-
|
|
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.
|
|
555
864
|
|
|
556
865
|
## v3.20.0 (2020-04-22)
|
|
557
866
|
|
|
558
867
|
### Features
|
|
559
868
|
|
|
560
|
-
-
|
|
561
|
-
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
-
|
|
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
|
|
565
879
|
|
|
566
880
|
### Deprecated
|
|
567
881
|
|
|
568
|
-
-
|
|
569
|
-
-
|
|
570
|
-
-
|
|
882
|
+
- api: deprecate the `getManifest()` method
|
|
883
|
+
- api: deprecate the `getCurrentAdaptations()` method
|
|
884
|
+
- api: deprecate the `getCurrentRepresentations()` method
|
|
571
885
|
|
|
572
886
|
### Bug fixes
|
|
573
887
|
|
|
574
|
-
-
|
|
575
|
-
|
|
576
|
-
-
|
|
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
|
|
577
894
|
|
|
578
895
|
### Other improvements
|
|
579
896
|
|
|
580
|
-
-
|
|
581
|
-
-
|
|
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.
|
|
582
900
|
|
|
583
901
|
## v3.19.0 (2020-03-11)
|
|
584
902
|
|
|
585
903
|
### Features
|
|
586
904
|
|
|
587
|
-
-
|
|
588
|
-
|
|
589
|
-
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
-
|
|
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
|
|
593
917
|
|
|
594
918
|
### Bug fixes
|
|
595
919
|
|
|
596
|
-
-
|
|
597
|
-
|
|
598
|
-
-
|
|
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
|
|
599
926
|
|
|
600
927
|
### Other improvements
|
|
601
928
|
|
|
602
|
-
-
|
|
603
|
-
|
|
604
|
-
-
|
|
605
|
-
-
|
|
606
|
-
|
|
607
|
-
-
|
|
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
|
|
608
938
|
|
|
609
939
|
## v3.18.0 (2020-01-30)
|
|
610
940
|
|
|
611
941
|
### Features
|
|
612
942
|
|
|
613
|
-
-
|
|
614
|
-
-
|
|
615
|
-
-
|
|
616
|
-
-
|
|
617
|
-
|
|
618
|
-
-
|
|
619
|
-
-
|
|
620
|
-
|
|
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
|
|
621
955
|
|
|
622
956
|
### Deprecated
|
|
623
957
|
|
|
624
|
-
-
|
|
625
|
-
|
|
626
|
-
-
|
|
627
|
-
|
|
628
|
-
-
|
|
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)
|
|
629
967
|
|
|
630
968
|
### Bug fixes
|
|
631
969
|
|
|
632
|
-
-
|
|
633
|
-
|
|
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
|
|
634
974
|
|
|
635
975
|
### Other improvements
|
|
636
976
|
|
|
637
|
-
-
|
|
638
|
-
-
|
|
639
|
-
-
|
|
640
|
-
|
|
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
|
|
641
982
|
|
|
642
983
|
## v3.17.1 (2019-12-20)
|
|
643
984
|
|
|
644
985
|
### Bug fixes
|
|
645
986
|
|
|
646
|
-
-
|
|
647
|
-
|
|
648
|
-
-
|
|
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
|
|
649
993
|
|
|
650
994
|
### Other improvements
|
|
651
995
|
|
|
652
|
-
-
|
|
653
|
-
|
|
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
|
|
654
999
|
|
|
655
1000
|
## v3.17.0 (2019-12-09)
|
|
656
1001
|
|
|
657
1002
|
### Features
|
|
658
1003
|
|
|
659
|
-
-
|
|
660
|
-
|
|
661
|
-
-
|
|
662
|
-
|
|
663
|
-
-
|
|
664
|
-
|
|
665
|
-
-
|
|
666
|
-
-
|
|
667
|
-
|
|
668
|
-
-
|
|
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
|
|
669
1023
|
|
|
670
1024
|
### Bug fixes
|
|
671
1025
|
|
|
672
|
-
-
|
|
673
|
-
|
|
674
|
-
-
|
|
675
|
-
|
|
676
|
-
-
|
|
677
|
-
|
|
678
|
-
-
|
|
679
|
-
|
|
680
|
-
|
|
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
|
|
681
1044
|
|
|
682
1045
|
### Other improvements
|
|
683
1046
|
|
|
684
|
-
-
|
|
685
|
-
-
|
|
686
|
-
|
|
687
|
-
-
|
|
688
|
-
|
|
689
|
-
-
|
|
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
|
|
690
1056
|
|
|
691
1057
|
## v3.16.1 (2019-10-03)
|
|
692
1058
|
|
|
693
1059
|
### Bug fixes
|
|
694
1060
|
|
|
695
|
-
-
|
|
696
|
-
-
|
|
697
|
-
|
|
698
|
-
-
|
|
699
|
-
|
|
700
|
-
-
|
|
701
|
-
|
|
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
|
|
702
1073
|
|
|
703
1074
|
### Other improvements
|
|
704
1075
|
|
|
705
|
-
-
|
|
706
|
-
|
|
707
|
-
-
|
|
708
|
-
-
|
|
709
|
-
|
|
710
|
-
-
|
|
711
|
-
|
|
712
|
-
-
|
|
713
|
-
-
|
|
714
|
-
-
|
|
715
|
-
|
|
716
|
-
-
|
|
717
|
-
|
|
718
|
-
-
|
|
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
|
|
719
1096
|
|
|
720
1097
|
## v3.16.0 (2019-09-16)
|
|
721
1098
|
|
|
722
1099
|
### Features
|
|
723
1100
|
|
|
724
|
-
-
|
|
725
|
-
-
|
|
726
|
-
-
|
|
727
|
-
|
|
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
|
|
728
1107
|
|
|
729
1108
|
### Bug fixes
|
|
730
1109
|
|
|
731
|
-
-
|
|
732
|
-
|
|
733
|
-
-
|
|
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
|
|
734
1116
|
|
|
735
1117
|
### Other improvements
|
|
736
1118
|
|
|
737
|
-
-
|
|
738
|
-
|
|
739
|
-
-
|
|
740
|
-
|
|
741
|
-
-
|
|
742
|
-
|
|
743
|
-
-
|
|
744
|
-
|
|
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
|
|
745
1133
|
|
|
746
1134
|
## v3.15.1 (2019-08-07)
|
|
747
1135
|
|
|
748
1136
|
### Bug fixes
|
|
749
1137
|
|
|
750
|
-
-
|
|
751
|
-
|
|
752
|
-
-
|
|
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
|
|
753
1144
|
|
|
754
1145
|
### Other improvements
|
|
755
1146
|
|
|
756
|
-
-
|
|
757
|
-
|
|
758
|
-
-
|
|
759
|
-
|
|
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
|
|
760
1154
|
|
|
761
1155
|
## v3.15.0 (2019-07-24)
|
|
762
1156
|
|
|
763
1157
|
### Features
|
|
764
1158
|
|
|
765
|
-
-
|
|
766
|
-
|
|
767
|
-
-
|
|
768
|
-
|
|
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).
|
|
769
1167
|
|
|
770
1168
|
### Bug fixes
|
|
771
1169
|
|
|
772
|
-
-
|
|
773
|
-
|
|
774
|
-
-
|
|
775
|
-
|
|
776
|
-
-
|
|
777
|
-
|
|
778
|
-
-
|
|
779
|
-
|
|
780
|
-
-
|
|
781
|
-
|
|
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.
|
|
782
1190
|
|
|
783
1191
|
### Other improvements
|
|
784
1192
|
|
|
785
|
-
-
|
|
786
|
-
|
|
787
|
-
-
|
|
788
|
-
|
|
789
|
-
-
|
|
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)
|
|
790
1202
|
|
|
791
1203
|
## v3.14.0 (2019-06-26)
|
|
792
1204
|
|
|
793
1205
|
### Features
|
|
794
1206
|
|
|
795
|
-
-
|
|
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
|
|
796
1209
|
|
|
797
1210
|
### Deprecated
|
|
798
1211
|
|
|
799
|
-
-
|
|
1212
|
+
- api/abr: deprecate `throttleWhenHidden` in profit of `throttleVideoBitrateWhenHidden`
|
|
1213
|
+
which has a better API definition for some edge cases
|
|
800
1214
|
|
|
801
1215
|
### Bug fixes
|
|
802
1216
|
|
|
803
|
-
-
|
|
804
|
-
-
|
|
805
|
-
|
|
806
|
-
-
|
|
807
|
-
|
|
808
|
-
-
|
|
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
|
|
809
1228
|
|
|
810
1229
|
## v3.13.0 (2019-05-15)
|
|
811
1230
|
|
|
812
1231
|
### Features
|
|
813
1232
|
|
|
814
|
-
-
|
|
1233
|
+
- eme: add `disableMediaKeysAttachmentLock` key system option to bypass a deadlock (with
|
|
1234
|
+
possible tradeoffs) when playing encrypted contents on some peculiar devices
|
|
815
1235
|
|
|
816
1236
|
### Bug fixes
|
|
817
1237
|
|
|
818
|
-
-
|
|
819
|
-
|
|
820
|
-
-
|
|
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.
|
|
821
1244
|
|
|
822
1245
|
### Other improvements
|
|
823
1246
|
|
|
824
|
-
-
|
|
825
|
-
|
|
826
|
-
-
|
|
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
|
|
827
1251
|
|
|
828
1252
|
## v3.12.0 (2019-04-10)
|
|
829
1253
|
|
|
830
1254
|
### Features
|
|
831
1255
|
|
|
832
|
-
-
|
|
833
|
-
-
|
|
834
|
-
-
|
|
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
|
|
835
1260
|
|
|
836
1261
|
### Bug fixes
|
|
837
1262
|
|
|
838
|
-
-
|
|
1263
|
+
- buffer: work around firefox bug leading to infinite rebuffering when seeking many times
|
|
1264
|
+
in a content
|
|
839
1265
|
|
|
840
1266
|
### Other improvements
|
|
841
1267
|
|
|
842
|
-
-
|
|
843
|
-
|
|
844
|
-
-
|
|
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
|
|
845
1272
|
|
|
846
1273
|
## v3.11.1 (2019-03-11)
|
|
847
1274
|
|
|
848
1275
|
### Bug fixes
|
|
849
1276
|
|
|
850
|
-
-
|
|
1277
|
+
- npm: publish package again. An error in the previous release led to some files missing
|
|
1278
|
+
on npm
|
|
851
1279
|
|
|
852
1280
|
## v3.11.0 (2019-03-07)
|
|
853
1281
|
|
|
854
1282
|
### Features
|
|
855
1283
|
|
|
856
|
-
-
|
|
857
|
-
-
|
|
858
|
-
|
|
859
|
-
-
|
|
860
|
-
|
|
861
|
-
-
|
|
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
|
|
862
1292
|
|
|
863
1293
|
### Deprecated
|
|
864
1294
|
|
|
865
|
-
-
|
|
866
|
-
|
|
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.
|
|
867
1299
|
|
|
868
1300
|
### Bug fixes
|
|
869
1301
|
|
|
870
|
-
-
|
|
871
|
-
-
|
|
872
|
-
-
|
|
873
|
-
|
|
874
|
-
-
|
|
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`
|
|
875
1309
|
|
|
876
1310
|
### Other improvements
|
|
877
1311
|
|
|
878
|
-
-
|
|
879
|
-
-
|
|
880
|
-
|
|
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`
|
|
881
1316
|
|
|
882
1317
|
## v3.10.3 (2019-01-30)
|
|
883
1318
|
|
|
884
1319
|
### Bug fixes
|
|
885
1320
|
|
|
886
|
-
-
|
|
887
|
-
|
|
888
|
-
-
|
|
889
|
-
-
|
|
890
|
-
-
|
|
891
|
-
|
|
892
|
-
-
|
|
893
|
-
|
|
894
|
-
-
|
|
895
|
-
|
|
896
|
-
-
|
|
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
|
|
897
1340
|
|
|
898
1341
|
### Other improvements
|
|
899
1342
|
|
|
900
|
-
-
|
|
901
|
-
-
|
|
902
|
-
|
|
903
|
-
-
|
|
904
|
-
|
|
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
|
|
905
1350
|
|
|
906
1351
|
## v3.10.2 (2019-01-08)
|
|
907
1352
|
|
|
908
1353
|
### Bug fixes
|
|
909
1354
|
|
|
910
|
-
-
|
|
911
|
-
|
|
912
|
-
-
|
|
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
|
|
913
1360
|
|
|
914
1361
|
## Other improvements
|
|
915
1362
|
|
|
916
|
-
-
|
|
917
|
-
-
|
|
918
|
-
-
|
|
919
|
-
-
|
|
920
|
-
|
|
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
|
|
921
1369
|
|
|
922
1370
|
## v3.10.1 (2019-01-03)
|
|
923
1371
|
|
|
924
1372
|
### Bug fixes
|
|
925
1373
|
|
|
926
|
-
-
|
|
927
|
-
-
|
|
928
|
-
-
|
|
929
|
-
-
|
|
930
|
-
-
|
|
931
|
-
|
|
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)
|
|
932
1385
|
|
|
933
1386
|
### Other improvements
|
|
934
1387
|
|
|
935
|
-
-
|
|
936
|
-
-
|
|
937
|
-
-
|
|
938
|
-
|
|
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
|
|
939
1393
|
|
|
940
1394
|
## v3.10.0 (2018-12-11)
|
|
941
1395
|
|
|
942
1396
|
### Features
|
|
943
1397
|
|
|
944
|
-
-
|
|
945
|
-
-
|
|
946
|
-
|
|
947
|
-
-
|
|
948
|
-
|
|
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
|
|
949
1407
|
|
|
950
1408
|
### Deprecated
|
|
951
1409
|
|
|
952
|
-
-
|
|
1410
|
+
- api: The `xhr` property from a `NetworkError` is now deprecated
|
|
953
1411
|
|
|
954
1412
|
### Bug fixes
|
|
955
1413
|
|
|
956
|
-
-
|
|
957
|
-
|
|
958
|
-
-
|
|
959
|
-
-
|
|
960
|
-
|
|
961
|
-
-
|
|
962
|
-
|
|
963
|
-
-
|
|
964
|
-
|
|
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`
|
|
965
1431
|
|
|
966
1432
|
### Other improvements
|
|
967
1433
|
|
|
968
|
-
-
|
|
969
|
-
-
|
|
970
|
-
|
|
971
|
-
-
|
|
972
|
-
|
|
973
|
-
-
|
|
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
|
|
974
1442
|
|
|
975
1443
|
## v3.9.3 (2018-11-23)
|
|
976
1444
|
|
|
977
1445
|
### Bug fixes
|
|
978
1446
|
|
|
979
|
-
-
|
|
980
|
-
|
|
981
|
-
-
|
|
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)
|
|
982
1453
|
|
|
983
1454
|
### Other improvements
|
|
984
1455
|
|
|
985
|
-
-
|
|
986
|
-
-
|
|
987
|
-
|
|
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
|
|
988
1460
|
|
|
989
1461
|
## v3.9.2 (2018-11-14)
|
|
990
1462
|
|
|
991
1463
|
### Bug fixes
|
|
992
1464
|
|
|
993
|
-
-
|
|
1465
|
+
- smooth: authorize empty tracks ("StreamIndex") in Smooth manifests
|
|
994
1466
|
|
|
995
1467
|
## v3.9.1 (2018-11-13)
|
|
996
1468
|
|
|
997
1469
|
### Bug fixes
|
|
998
1470
|
|
|
999
|
-
-
|
|
1000
|
-
-
|
|
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)
|
|
1001
1474
|
|
|
1002
1475
|
### Other improvements
|
|
1003
1476
|
|
|
1004
|
-
-
|
|
1005
|
-
-
|
|
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
|
|
1006
1480
|
|
|
1007
1481
|
## v3.9.0 (2018-11-08)
|
|
1008
1482
|
|
|
1009
1483
|
### Features
|
|
1010
1484
|
|
|
1011
|
-
-
|
|
1012
|
-
-
|
|
1013
|
-
|
|
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)
|
|
1014
1489
|
|
|
1015
1490
|
### Bug fixes
|
|
1016
1491
|
|
|
1017
|
-
-
|
|
1018
|
-
|
|
1019
|
-
-
|
|
1020
|
-
-
|
|
1021
|
-
-
|
|
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!)
|
|
1022
1499
|
|
|
1023
1500
|
### Other improvements
|
|
1024
1501
|
|
|
1025
|
-
-
|
|
1026
|
-
-
|
|
1027
|
-
-
|
|
1028
|
-
|
|
1029
|
-
-
|
|
1030
|
-
|
|
1031
|
-
-
|
|
1032
|
-
|
|
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
|
|
1033
1514
|
|
|
1034
1515
|
## v3.8.1 (2018-10-17)
|
|
1035
1516
|
|
|
1036
1517
|
### Bug fixes
|
|
1037
1518
|
|
|
1038
|
-
-
|
|
1039
|
-
-
|
|
1519
|
+
- abr: fix memory leak in ABR Management
|
|
1520
|
+
- eme: avoid re-attaching a server certificate at each encrypted event
|
|
1040
1521
|
|
|
1041
1522
|
### Other improvements
|
|
1042
1523
|
|
|
1043
|
-
-
|
|
1044
|
-
-
|
|
1045
|
-
|
|
1046
|
-
-
|
|
1047
|
-
|
|
1048
|
-
-
|
|
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
|
|
1049
1532
|
|
|
1050
1533
|
## v3.8.0 (2018-10-11)
|
|
1051
1534
|
|
|
1052
1535
|
### Features
|
|
1053
1536
|
|
|
1054
|
-
-
|
|
1055
|
-
|
|
1056
|
-
-
|
|
1057
|
-
|
|
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
|
|
1058
1545
|
|
|
1059
1546
|
### Bug fixes
|
|
1060
1547
|
|
|
1061
|
-
-
|
|
1548
|
+
- remove export of undeclared `ICompatVTTCue` from modular build
|
|
1062
1549
|
|
|
1063
1550
|
### Other improvements
|
|
1064
1551
|
|
|
1065
|
-
-
|
|
1066
|
-
|
|
1067
|
-
-
|
|
1068
|
-
-
|
|
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
|
|
1069
1557
|
|
|
1070
1558
|
## v3.7.0 (2018-09-21)
|
|
1071
1559
|
|
|
1072
1560
|
### Features
|
|
1073
1561
|
|
|
1074
|
-
-
|
|
1075
|
-
|
|
1076
|
-
-
|
|
1077
|
-
|
|
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`
|
|
1078
1570
|
|
|
1079
1571
|
### Deprecated
|
|
1080
1572
|
|
|
1081
|
-
-
|
|
1082
|
-
|
|
1083
|
-
-
|
|
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.
|
|
1084
1579
|
|
|
1085
1580
|
### Bug fixes
|
|
1086
1581
|
|
|
1087
|
-
-
|
|
1088
|
-
|
|
1089
|
-
-
|
|
1090
|
-
|
|
1091
|
-
-
|
|
1092
|
-
-
|
|
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).
|
|
1093
1592
|
|
|
1094
1593
|
### Other improvements
|
|
1095
1594
|
|
|
1096
|
-
-
|
|
1097
|
-
-
|
|
1098
|
-
-
|
|
1099
|
-
-
|
|
1100
|
-
-
|
|
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.
|
|
1101
1600
|
|
|
1102
1601
|
## v3.6.1 (2018-09-03)
|
|
1103
1602
|
|
|
1104
1603
|
### Bug fixes
|
|
1105
1604
|
|
|
1106
|
-
-
|
|
1107
|
-
-
|
|
1108
|
-
-
|
|
1109
|
-
-
|
|
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
|
|
1110
1609
|
|
|
1111
1610
|
### Other improvements
|
|
1112
1611
|
|
|
1113
|
-
-
|
|
1114
|
-
-
|
|
1115
|
-
-
|
|
1612
|
+
- directfile/tests: add basic directfile integration tests
|
|
1613
|
+
- build: update to Babel 7
|
|
1614
|
+
- rxjs: update to RxJS 6.3.1
|
|
1116
1615
|
|
|
1117
1616
|
## v3.6.0 (2018-08-24)
|
|
1118
1617
|
|
|
1119
1618
|
### Features
|
|
1120
1619
|
|
|
1121
|
-
-
|
|
1122
|
-
-
|
|
1123
|
-
-
|
|
1124
|
-
-
|
|
1125
|
-
-
|
|
1126
|
-
-
|
|
1127
|
-
-
|
|
1128
|
-
-
|
|
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)
|
|
1129
1629
|
|
|
1130
1630
|
### Deprecated
|
|
1131
1631
|
|
|
1132
|
-
-
|
|
1133
|
-
-
|
|
1134
|
-
-
|
|
1135
|
-
-
|
|
1136
|
-
-
|
|
1137
|
-
-
|
|
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
|
|
1138
1638
|
|
|
1139
1639
|
### Bug Fixes
|
|
1140
1640
|
|
|
1141
|
-
-
|
|
1142
|
-
-
|
|
1143
|
-
-
|
|
1144
|
-
|
|
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
|
|
1145
1647
|
|
|
1146
1648
|
### Other improvements
|
|
1147
1649
|
|
|
1148
|
-
-
|
|
1149
|
-
|
|
1150
|
-
-
|
|
1151
|
-
-
|
|
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
|
|
1152
1655
|
|
|
1153
1656
|
## v3.5.2 (2018-08-06)
|
|
1154
1657
|
|
|
1155
1658
|
### Bug fixes
|
|
1156
1659
|
|
|
1157
|
-
-
|
|
1158
|
-
|
|
1159
|
-
-
|
|
1160
|
-
-
|
|
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
|
|
1161
1665
|
|
|
1162
1666
|
### Other improvements
|
|
1163
1667
|
|
|
1164
|
-
-
|
|
1165
|
-
-
|
|
1166
|
-
-
|
|
1167
|
-
-
|
|
1168
|
-
-
|
|
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
|
|
1169
1673
|
|
|
1170
1674
|
## v3.5.1 (2018-07-11)
|
|
1171
1675
|
|
|
1172
1676
|
### Bug fixes
|
|
1173
1677
|
|
|
1174
|
-
-
|
|
1175
|
-
-
|
|
1678
|
+
- parsers: fix wrong computation of segment time in template index
|
|
1679
|
+
- abr: get concerned request in starvation mode
|
|
1176
1680
|
|
|
1177
1681
|
## v3.5.0 (2018-07-03)
|
|
1178
1682
|
|
|
1179
1683
|
### Added
|
|
1180
1684
|
|
|
1181
|
-
-
|
|
1182
|
-
-
|
|
1183
|
-
-
|
|
1184
|
-
-
|
|
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
|
|
1185
1690
|
|
|
1186
1691
|
### Bug fixes
|
|
1187
1692
|
|
|
1188
|
-
-
|
|
1189
|
-
-
|
|
1190
|
-
-
|
|
1191
|
-
-
|
|
1192
|
-
-
|
|
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
|
|
1193
1699
|
|
|
1194
1700
|
### Other improvements
|
|
1195
1701
|
|
|
1196
|
-
-
|
|
1197
|
-
-
|
|
1198
|
-
-
|
|
1199
|
-
-
|
|
1200
|
-
-
|
|
1201
|
-
-
|
|
1202
|
-
-
|
|
1203
|
-
-
|
|
1204
|
-
-
|
|
1205
|
-
-
|
|
1206
|
-
-
|
|
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
|
|
1207
1713
|
|
|
1208
1714
|
## v3.4.1 (2018-05-31)
|
|
1209
1715
|
|
|
1210
1716
|
### Bug fixes
|
|
1211
1717
|
|
|
1212
|
-
-
|
|
1213
|
-
|
|
1214
|
-
-
|
|
1215
|
-
|
|
1216
|
-
-
|
|
1217
|
-
|
|
1218
|
-
-
|
|
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
|
|
1219
1729
|
|
|
1220
1730
|
### Other improvements
|
|
1221
1731
|
|
|
1222
|
-
-
|
|
1732
|
+
- misc: move some dev dependencies from `dependencies` to `devDependencies` in
|
|
1733
|
+
`package.json`
|
|
1223
1734
|
|
|
1224
1735
|
## v3.4.0 (2018-05-17)
|
|
1225
1736
|
|
|
1226
1737
|
### Added
|
|
1227
1738
|
|
|
1228
|
-
-
|
|
1229
|
-
-
|
|
1739
|
+
- eme: allow multiple licenses per content
|
|
1740
|
+
- eme: allow different MediaKeys to be attached on multiple media elements
|
|
1230
1741
|
|
|
1231
1742
|
### Bug fixes
|
|
1232
1743
|
|
|
1233
|
-
-
|
|
1234
|
-
-
|
|
1235
|
-
-
|
|
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
|
|
1236
1747
|
|
|
1237
1748
|
### Other improvements
|
|
1238
1749
|
|
|
1239
|
-
-
|
|
1240
|
-
-
|
|
1241
|
-
-
|
|
1242
|
-
-
|
|
1243
|
-
-
|
|
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
|
|
1244
1755
|
|
|
1245
1756
|
## v3.3.2 (2018-04-17)
|
|
1246
1757
|
|
|
1247
1758
|
### Bug Fixes
|
|
1248
1759
|
|
|
1249
|
-
-
|
|
1250
|
-
|
|
1251
|
-
-
|
|
1252
|
-
|
|
1253
|
-
-
|
|
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
|
|
1254
1769
|
|
|
1255
1770
|
### Other improvements
|
|
1256
1771
|
|
|
1257
|
-
-
|
|
1258
|
-
|
|
1259
|
-
-
|
|
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
|
|
1260
1777
|
|
|
1261
1778
|
## v3.3.1 (2018-03-13)
|
|
1262
1779
|
|
|
1263
1780
|
### Bug Fixes
|
|
1264
1781
|
|
|
1265
|
-
-
|
|
1266
|
-
-
|
|
1782
|
+
- misc: fix missing browser API on IE11
|
|
1783
|
+
- buffer: end correctly streams which experienced a custom sourcebuffer (text/image) crash
|
|
1267
1784
|
|
|
1268
1785
|
### Other improvements
|
|
1269
1786
|
|
|
1270
|
-
-
|
|
1787
|
+
- tools: support development on windows
|
|
1271
1788
|
|
|
1272
1789
|
## v3.3.0 (2018-03-05)
|
|
1273
1790
|
|
|
1274
1791
|
### Added
|
|
1275
1792
|
|
|
1276
|
-
-
|
|
1793
|
+
- api: add directfile API to allow the playback of files natively managed by the browser
|
|
1277
1794
|
|
|
1278
1795
|
### Bug Fixes
|
|
1279
1796
|
|
|
1280
|
-
-
|
|
1281
|
-
-
|
|
1282
|
-
-
|
|
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
|
|
1283
1801
|
|
|
1284
1802
|
## v3.2.0 (2018-02-23)
|
|
1285
1803
|
|
|
1286
1804
|
### Added
|
|
1287
1805
|
|
|
1288
|
-
-
|
|
1289
|
-
-
|
|
1290
|
-
-
|
|
1291
|
-
-
|
|
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
|
|
1292
1811
|
|
|
1293
1812
|
### Bug Fixes
|
|
1294
1813
|
|
|
1295
|
-
-
|
|
1296
|
-
|
|
1297
|
-
-
|
|
1298
|
-
|
|
1299
|
-
-
|
|
1300
|
-
|
|
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
|
|
1301
1824
|
|
|
1302
1825
|
### Other improvements
|
|
1303
1826
|
|
|
1304
|
-
-
|
|
1305
|
-
-
|
|
1827
|
+
- update RxJS to v5.5.6
|
|
1828
|
+
- update TypeScript to v2.7.2
|
|
1306
1829
|
|
|
1307
1830
|
## v3.1.0 (2018-01-30)
|
|
1308
1831
|
|
|
1309
1832
|
### Added
|
|
1310
1833
|
|
|
1311
|
-
-
|
|
1312
|
-
-
|
|
1834
|
+
- api: add `networkConfig` to `loadVideo` options
|
|
1835
|
+
- eme: add `closeSessionsOnStop` to the `keySystems` `loadVideo` option
|
|
1313
1836
|
|
|
1314
1837
|
### Bug Fixes
|
|
1315
1838
|
|
|
1316
|
-
-
|
|
1317
|
-
-
|
|
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
|
|
1318
1841
|
|
|
1319
1842
|
## v3.0.7 (2018-01-19)
|
|
1320
1843
|
|
|
1321
1844
|
### Bug fixes
|
|
1322
1845
|
|
|
1323
|
-
-
|
|
1846
|
+
- eme: fix bug which prevented to play encrypted contents on IE11
|
|
1324
1847
|
|
|
1325
1848
|
## v3.0.6 (2018-01-11)
|
|
1326
1849
|
|
|
1327
1850
|
### Bug Fixes
|
|
1328
1851
|
|
|
1329
|
-
-
|
|
1330
|
-
|
|
1331
|
-
-
|
|
1332
|
-
-
|
|
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
|
|
1333
1859
|
|
|
1334
1860
|
### Other improvements
|
|
1335
1861
|
|
|
1336
|
-
-
|
|
1862
|
+
- demo: set "html" textTrackMode by default to have a better stylization of closed
|
|
1863
|
+
captions.
|
|
1337
1864
|
|
|
1338
1865
|
## v3.0.5 (2017-12-11)
|
|
1339
1866
|
|
|
1340
1867
|
### Bug Fixes
|
|
1341
1868
|
|
|
1342
|
-
-
|
|
1869
|
+
- eme: consider unknown errors (e.g. errors coming from the user of the library) as fatal
|
|
1870
|
+
eme errors
|
|
1343
1871
|
|
|
1344
1872
|
## v3.0.4 (2017-12-05)
|
|
1345
1873
|
|
|
1346
1874
|
### Bug Fixes
|
|
1347
1875
|
|
|
1348
|
-
-
|
|
1349
|
-
-
|
|
1876
|
+
- text/webvtt: authorize header options without parsing them
|
|
1877
|
+
- text/webvtt: authorize timestamps without hours
|
|
1350
1878
|
|
|
1351
1879
|
### Other improvements
|
|
1352
1880
|
|
|
1353
|
-
-
|
|
1354
|
-
-
|
|
1881
|
+
- misc: remove multiple unneeded assertions in DEV mode
|
|
1882
|
+
- misc: update DEV mode default debug level from DEBUG to INFO
|
|
1355
1883
|
|
|
1356
1884
|
## v3.0.3 (2017-11-24)
|
|
1357
1885
|
|
|
1358
1886
|
### Bug Fixes
|
|
1359
1887
|
|
|
1360
|
-
-
|
|
1361
|
-
-
|
|
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
|
|
1362
1890
|
|
|
1363
1891
|
### Other improvements
|
|
1364
1892
|
|
|
1365
|
-
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
-
|
|
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
|
|
1369
1900
|
|
|
1370
1901
|
## v3.0.2 (2017-11-17)
|
|
1371
1902
|
|
|
1372
1903
|
### Bug Fixes
|
|
1373
1904
|
|
|
1374
|
-
-
|
|
1905
|
+
- misc: work around typescript issue
|
|
1906
|
+
[20104](https://github.com/Microsoft/TypeScript/issues/20104) temporarly to launch in
|
|
1907
|
+
Chrome in HTTP
|
|
1375
1908
|
|
|
1376
1909
|
## v3.0.1 (2017-11-17)
|
|
1377
1910
|
|
|
1378
1911
|
### Bug Fixes
|
|
1379
1912
|
|
|
1380
|
-
-
|
|
1381
|
-
-
|
|
1913
|
+
- abr: adopt a less agressive strategy to avoid re-bufferings
|
|
1914
|
+
- smooth: avoid most of the manifest refresh requests
|
|
1382
1915
|
|
|
1383
1916
|
### Other improvements
|
|
1384
1917
|
|
|
1385
|
-
-
|
|
1386
|
-
-
|
|
1918
|
+
- Switch codebase to TypeScript
|
|
1919
|
+
- Add Travis CI
|
|
1387
1920
|
|
|
1388
1921
|
## v3.0.0 (2017-11-10)
|
|
1389
1922
|
|
|
1390
1923
|
### Added
|
|
1391
1924
|
|
|
1392
|
-
-
|
|
1393
|
-
|
|
1394
|
-
-
|
|
1395
|
-
-
|
|
1396
|
-
|
|
1397
|
-
-
|
|
1398
|
-
-
|
|
1399
|
-
|
|
1400
|
-
-
|
|
1401
|
-
|
|
1402
|
-
-
|
|
1403
|
-
-
|
|
1404
|
-
-
|
|
1405
|
-
-
|
|
1406
|
-
|
|
1407
|
-
-
|
|
1408
|
-
-
|
|
1409
|
-
-
|
|
1410
|
-
-
|
|
1411
|
-
|
|
1412
|
-
-
|
|
1413
|
-
-
|
|
1414
|
-
-
|
|
1415
|
-
|
|
1416
|
-
-
|
|
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
|
|
1417
1958
|
|
|
1418
1959
|
### Changed
|
|
1419
1960
|
|
|
1420
|
-
-
|
|
1421
|
-
-
|
|
1422
|
-
|
|
1423
|
-
-
|
|
1424
|
-
-
|
|
1425
|
-
-
|
|
1426
|
-
|
|
1427
|
-
-
|
|
1428
|
-
|
|
1429
|
-
-
|
|
1430
|
-
|
|
1431
|
-
-
|
|
1432
|
-
-
|
|
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
|
|
1433
1979
|
|
|
1434
1980
|
### Removed
|
|
1435
1981
|
|
|
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
|
-
-
|
|
1480
|
-
-
|
|
1481
|
-
-
|
|
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
|
|
1482
2033
|
|
|
1483
2034
|
### Bug Fixes:
|
|
1484
2035
|
|
|
1485
|
-
-
|
|
1486
|
-
|
|
1487
|
-
-
|
|
1488
|
-
-
|
|
1489
|
-
|
|
1490
|
-
-
|
|
1491
|
-
-
|
|
1492
|
-
|
|
1493
|
-
-
|
|
1494
|
-
|
|
1495
|
-
-
|
|
1496
|
-
-
|
|
1497
|
-
|
|
1498
|
-
-
|
|
1499
|
-
-
|
|
1500
|
-
-
|
|
1501
|
-
|
|
1502
|
-
-
|
|
1503
|
-
-
|
|
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
|
|
1504
2064
|
|
|
1505
2065
|
### Other improvements
|
|
1506
2066
|
|
|
1507
|
-
-
|
|
1508
|
-
-
|
|
1509
|
-
|
|
1510
|
-
-
|
|
1511
|
-
-
|
|
1512
|
-
|
|
1513
|
-
-
|
|
1514
|
-
|
|
1515
|
-
-
|
|
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
|
|
1516
2079
|
|
|
1517
2080
|
## v2.3.2 (2017-07-25)
|
|
1518
2081
|
|
|
1519
2082
|
### Bug Fixes
|
|
1520
2083
|
|
|
1521
|
-
-
|
|
2084
|
+
- eme: update EME workflow to improve support (especially chromebooks)
|
|
1522
2085
|
|
|
1523
2086
|
## v2.3.1 (2017-07-10)
|
|
1524
2087
|
|
|
1525
2088
|
### Bug Fixes
|
|
1526
2089
|
|
|
1527
|
-
-
|
|
2090
|
+
- buffer: improve buffer ranges "bookeeping" logic to avoid re-downloading the same
|
|
2091
|
+
segments
|
|
1528
2092
|
|
|
1529
2093
|
## v2.3.0 (2017-07-07)
|
|
1530
2094
|
|
|
1531
2095
|
### Added
|
|
1532
2096
|
|
|
1533
|
-
-
|
|
1534
|
-
|
|
1535
|
-
-
|
|
1536
|
-
|
|
1537
|
-
-
|
|
1538
|
-
-
|
|
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
|
|
1539
2106
|
|
|
1540
2107
|
### Deprecated
|
|
1541
2108
|
|
|
1542
|
-
-
|
|
1543
|
-
-
|
|
1544
|
-
-
|
|
1545
|
-
-
|
|
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
|
|
1546
2113
|
|
|
1547
2114
|
### Bug Fixes
|
|
1548
2115
|
|
|
1549
|
-
-
|
|
1550
|
-
-
|
|
1551
|
-
-
|
|
1552
|
-
|
|
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
|
|
1553
2122
|
|
|
1554
2123
|
## v2.2.1 (2017-06-27)
|
|
1555
2124
|
|
|
1556
2125
|
### Bug fixes
|
|
1557
2126
|
|
|
1558
|
-
-
|
|
2127
|
+
- adaptive: fix width limitation bug. Impacted limitVideoWidth + setMaxVideoBitrate APIs
|
|
1559
2128
|
|
|
1560
2129
|
## v2.2.0 (2017-06-19)
|
|
1561
2130
|
|
|
1562
2131
|
### Added
|
|
1563
2132
|
|
|
1564
|
-
-
|
|
2133
|
+
- position: add maximumBufferPosition to the positionUpdate event's payload to replace the
|
|
2134
|
+
previous "liveGap" from currentTimeChange event
|
|
1565
2135
|
|
|
1566
2136
|
### Bug fixes
|
|
1567
2137
|
|
|
1568
|
-
-
|
|
1569
|
-
-
|
|
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
|
|
1570
2141
|
|
|
1571
2142
|
## v2.1.3 (2017-06-15)
|
|
1572
2143
|
|
|
1573
2144
|
### Bug fixes
|
|
1574
2145
|
|
|
1575
|
-
-
|
|
2146
|
+
- api: fix timeFragment.start handling
|
|
1576
2147
|
|
|
1577
2148
|
## v2.1.2 (2017-06-14)
|
|
1578
2149
|
|
|
1579
2150
|
### Bug fixes
|
|
1580
2151
|
|
|
1581
|
-
-
|
|
1582
|
-
|
|
1583
|
-
-
|
|
1584
|
-
-
|
|
1585
|
-
|
|
1586
|
-
-
|
|
1587
|
-
|
|
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
|
|
1588
2163
|
|
|
1589
2164
|
## v2.1.1 (2017-06-02)
|
|
1590
2165
|
|
|
1591
2166
|
### Bug fixes
|
|
1592
2167
|
|
|
1593
|
-
-
|
|
1594
|
-
-
|
|
1595
|
-
-
|
|
1596
|
-
-
|
|
1597
|
-
-
|
|
1598
|
-
-
|
|
1599
|
-
-
|
|
1600
|
-
-
|
|
1601
|
-
-
|
|
1602
|
-
-
|
|
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
|
|
1603
2178
|
|
|
1604
2179
|
### Other improvements
|
|
1605
2180
|
|
|
1606
|
-
-
|
|
1607
|
-
-
|
|
1608
|
-
-
|
|
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
|
|
1609
2185
|
|
|
1610
2186
|
## v2.1.0 (2017-05-29)
|
|
1611
2187
|
|
|
1612
2188
|
### Added
|
|
1613
2189
|
|
|
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
|
-
-
|
|
1642
|
-
-
|
|
1643
|
-
-
|
|
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)
|
|
1644
2222
|
|
|
1645
2223
|
### Deprecated
|
|
1646
2224
|
|
|
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
|
-
-
|
|
1679
|
-
-
|
|
1680
|
-
-
|
|
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
|
|
1681
2264
|
|
|
1682
2265
|
### Bug fixes
|
|
1683
2266
|
|
|
1684
|
-
-
|
|
1685
|
-
|
|
1686
|
-
-
|
|
1687
|
-
-
|
|
1688
|
-
-
|
|
1689
|
-
-
|
|
1690
|
-
|
|
1691
|
-
-
|
|
1692
|
-
-
|
|
1693
|
-
-
|
|
1694
|
-
|
|
1695
|
-
-
|
|
1696
|
-
-
|
|
1697
|
-
-
|
|
1698
|
-
-
|
|
1699
|
-
-
|
|
1700
|
-
-
|
|
1701
|
-
-
|
|
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
|
|
1702
2288
|
|
|
1703
2289
|
### Other improvements
|
|
1704
2290
|
|
|
1705
|
-
-
|
|
1706
|
-
-
|
|
1707
|
-
-
|
|
1708
|
-
-
|
|
1709
|
-
-
|
|
1710
|
-
-
|
|
1711
|
-
-
|
|
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.
|
|
1712
2298
|
|
|
1713
2299
|
## v2.0.0-alpha1 (2016-02-09)
|
|
1714
2300
|
|
|
1715
|
-
-
|
|
1716
|
-
-
|
|
1717
|
-
on promises
|
|
2301
|
+
- RxJS: use RxJS5.beta1
|
|
2302
|
+
- Promise: remove es6-promise dependency and stop relying completely on promises
|
|
1718
2303
|
|
|
1719
|
-
-
|
|
1720
|
-
-
|
|
1721
|
-
-
|
|
1722
|
-
-
|
|
1723
|
-
-
|
|
1724
|
-
-
|
|
1725
|
-
-
|
|
1726
|
-
-
|
|
1727
|
-
-
|
|
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
|
|
1728
2313
|
|
|
1729
|
-
-
|
|
2314
|
+
- lint: add new rules (no-var, prefer-const, enforce brackets)
|
|
1730
2315
|
|
|
1731
2316
|
## v1.4.0 (2016-01-26)
|
|
1732
2317
|
|
|
1733
2318
|
### Added
|
|
1734
2319
|
|
|
1735
|
-
-
|
|
1736
|
-
-
|
|
1737
|
-
-
|
|
1738
|
-
-
|
|
2320
|
+
- buffer: add garbage collector
|
|
2321
|
+
- player: emit currentTimeChange synchronously
|
|
2322
|
+
- player: add {defaultLanguage,defaultSubtitle} api
|
|
2323
|
+
- log: warn to info for some logs
|
|
1739
2324
|
|
|
1740
2325
|
### Bug fixes
|
|
1741
2326
|
|
|
1742
|
-
-
|
|
1743
|
-
-
|
|
1744
|
-
-
|
|
1745
|
-
-
|
|
1746
|
-
-
|
|
1747
|
-
-
|
|
1748
|
-
-
|
|
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
|
|
1749
2334
|
|
|
1750
2335
|
## Demo
|
|
1751
2336
|
|
|
1752
|
-
-
|
|
2337
|
+
- allow to pass query parameters
|
|
1753
2338
|
|
|
1754
2339
|
## v1.3.1 (2015-10-14)
|
|
1755
2340
|
|
|
1756
2341
|
### Bug fixes
|
|
1757
2342
|
|
|
1758
|
-
-
|
|
2343
|
+
- smooth: fix parseBoolean causing isLive to be always true
|
|
1759
2344
|
|
|
1760
2345
|
## v1.3.0 (2015-10-14)
|
|
1761
2346
|
|
|
1762
2347
|
### Added
|
|
1763
2348
|
|
|
1764
|
-
-
|
|
1765
|
-
-
|
|
1766
|
-
-
|
|
2349
|
+
- eme: license persistency support
|
|
2350
|
+
- timings: add progress sampling
|
|
2351
|
+
- compat: add firefox workaround for autoplay
|
|
1767
2352
|
|
|
1768
2353
|
## v1.2.1 (2015-09-23)
|
|
1769
2354
|
|
|
1770
2355
|
### Bug fixes
|
|
1771
2356
|
|
|
1772
|
-
-
|
|
2357
|
+
- stream: do not stall on loadedmetadata event
|
|
1773
2358
|
|
|
1774
2359
|
## v1.2.0 (2015-09-23)
|
|
1775
2360
|
|
|
1776
|
-
This release introduces the use of ES6 classes for all modules that
|
|
1777
|
-
|
|
1778
|
-
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.
|
|
1779
2363
|
|
|
1780
2364
|
We also started using eslint as our main linter instead of jshint.
|
|
1781
2365
|
|
|
1782
2366
|
### Added
|
|
1783
2367
|
|
|
1784
|
-
-
|
|
1785
|
-
-
|
|
1786
|
-
-
|
|
1787
|
-
-
|
|
1788
|
-
-
|
|
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)
|
|
1789
2373
|
|
|
1790
2374
|
### Bug fixes
|
|
1791
2375
|
|
|
1792
|
-
-
|
|
1793
|
-
-
|
|
1794
|
-
-
|
|
1795
|
-
-
|
|
1796
|
-
-
|
|
1797
|
-
-
|
|
1798
|
-
-
|
|
1799
|
-
-
|
|
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)
|
|
1800
2384
|
|
|
1801
2385
|
## v1.1.0 (2015-08-14)
|
|
1802
2386
|
|
|
1803
2387
|
### Added
|
|
1804
2388
|
|
|
1805
|
-
-
|
|
1806
|
-
-
|
|
1807
|
-
-
|
|
1808
|
-
-
|
|
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
|
|
1809
2393
|
|
|
1810
2394
|
### Bug fixes
|
|
1811
2395
|
|
|
1812
|
-
-
|
|
1813
|
-
-
|
|
1814
|
-
-
|
|
1815
|
-
-
|
|
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
|
|
1816
2400
|
|
|
1817
2401
|
## v1.0.0 (2015-06-16)
|
|
1818
2402
|
|