From d16a9ccb810e088437acf678ea038766691bd650 Mon Sep 17 00:00:00 2001 From: hyue7 <111051566+hyue7@users.noreply.github.com> Date: Tue, 31 Oct 2023 13:21:14 +0800 Subject: [PATCH] Fix review comments (#6) * Codes cleanup * Change message channel Api name * Refactor track type * Rename package name * Update labeler.yml and recipe.yaml * Not return -1 * Return FlutterError if failed --- .github/labeler.yml | 2 + .github/recipe.yaml | 1 + README.md | 4 +- .../.gitignore | 0 .../CHANGELOG.md | 0 .../LICENSE | 0 .../README.md | 18 +-- .../example/.gitignore | 0 .../example/README.md | 4 +- .../example/assets/Audio.mp3 | Bin .../example/assets/Butterfly-209.mp4 | Bin .../integration_test/video_player_test.dart | 2 +- .../example/lib/main.dart | 4 +- .../example/pubspec.yaml | 6 +- .../example/test_driver/integration_test.dart | 0 .../example/tizen/.gitignore | 0 .../example/tizen/App.cs | 0 .../example/tizen/Runner.csproj | 0 .../example/tizen/shared/res/ic_launcher.png | Bin .../example/tizen/tizen-manifest.xml | 6 +- .../lib/src/closed_caption_file.dart | 0 .../lib/src/drm_configs.dart | 0 .../lib/src/hole.dart | 0 .../lib/src/messages.g.dart | 52 +++---- .../lib/src/sub_rip.dart | 0 .../lib/src/tracks.dart | 0 .../lib/src/video_player_tizen.dart | 26 +--- .../lib/src/web_vtt.dart | 0 .../lib/video_player.dart | 0 .../lib/video_player_platform_interface.dart | 0 .../pigeons/messages.dart | 6 +- .../pubspec.yaml | 4 +- .../tizen/.gitignore | 0 .../tizen/inc/boost/any.hpp | 0 .../tizen/inc/boost/config.hpp | 0 .../tizen/inc/boost/config/compiler/clang.hpp | 0 .../tizen/inc/boost/config/platform/linux.hpp | 0 .../tizen/inc/boost/config/posix_features.hpp | 0 .../boost/config/select_compiler_config.hpp | 0 .../boost/config/select_platform_config.hpp | 0 .../inc/boost/config/select_stdlib_config.hpp | 0 .../inc/boost/config/stdlib/libstdcpp3.hpp | 0 .../tizen/inc/boost/config/suffix.hpp | 0 .../tizen/inc/boost/config/user.hpp | 0 .../tizen/inc/boost/core/demangle.hpp | 0 .../tizen/inc/boost/core/enable_if.hpp | 0 .../tizen/inc/boost/core/noncopyable.hpp | 0 .../tizen/inc/boost/current_function.hpp | 0 .../tizen/inc/boost/detail/workaround.hpp | 0 .../tizen/inc/boost/exception/exception.hpp | 0 .../inc/boost/functional/hash/hash_fwd.hpp | 0 .../tizen/inc/boost/functional/hash_fwd.hpp | 0 .../tizen/inc/boost/mpl/aux_/adl_barrier.hpp | 0 .../tizen/inc/boost/mpl/aux_/arity.hpp | 0 .../tizen/inc/boost/mpl/aux_/config/adl.hpp | 0 .../inc/boost/mpl/aux_/config/compiler.hpp | 0 .../tizen/inc/boost/mpl/aux_/config/ctps.hpp | 0 .../tizen/inc/boost/mpl/aux_/config/dtp.hpp | 0 .../tizen/inc/boost/mpl/aux_/config/eti.hpp | 0 .../tizen/inc/boost/mpl/aux_/config/gcc.hpp | 0 .../inc/boost/mpl/aux_/config/integral.hpp | 0 .../tizen/inc/boost/mpl/aux_/config/intel.hpp | 0 .../inc/boost/mpl/aux_/config/lambda.hpp | 0 .../tizen/inc/boost/mpl/aux_/config/msvc.hpp | 0 .../tizen/inc/boost/mpl/aux_/config/nttp.hpp | 0 .../mpl/aux_/config/overload_resolution.hpp | 0 .../boost/mpl/aux_/config/preprocessor.hpp | 0 .../boost/mpl/aux_/config/static_constant.hpp | 0 .../tizen/inc/boost/mpl/aux_/config/ttp.hpp | 0 .../mpl/aux_/config/use_preprocessed.hpp | 0 .../inc/boost/mpl/aux_/config/workaround.hpp | 0 .../boost/mpl/aux_/include_preprocessed.hpp | 0 .../inc/boost/mpl/aux_/integral_wrapper.hpp | 0 .../inc/boost/mpl/aux_/lambda_arity_param.hpp | 0 .../inc/boost/mpl/aux_/lambda_support.hpp | 0 .../tizen/inc/boost/mpl/aux_/na.hpp | 0 .../tizen/inc/boost/mpl/aux_/na_fwd.hpp | 0 .../tizen/inc/boost/mpl/aux_/na_spec.hpp | 0 .../inc/boost/mpl/aux_/nested_type_wknd.hpp | 0 .../tizen/inc/boost/mpl/aux_/nttp_decl.hpp | 0 .../boost/mpl/aux_/preprocessed/gcc/or.hpp | 0 .../mpl/aux_/preprocessor/def_params_tail.hpp | 0 .../inc/boost/mpl/aux_/preprocessor/enum.hpp | 0 .../boost/mpl/aux_/preprocessor/params.hpp | 0 .../tizen/inc/boost/mpl/aux_/static_cast.hpp | 0 .../inc/boost/mpl/aux_/template_arity_fwd.hpp | 0 .../tizen/inc/boost/mpl/aux_/value_wknd.hpp | 0 .../tizen/inc/boost/mpl/bool.hpp | 0 .../tizen/inc/boost/mpl/bool_fwd.hpp | 0 .../tizen/inc/boost/mpl/eval_if.hpp | 0 .../tizen/inc/boost/mpl/identity.hpp | 0 .../tizen/inc/boost/mpl/if.hpp | 0 .../tizen/inc/boost/mpl/int.hpp | 0 .../tizen/inc/boost/mpl/int_fwd.hpp | 0 .../tizen/inc/boost/mpl/integral_c.hpp | 0 .../tizen/inc/boost/mpl/integral_c_fwd.hpp | 0 .../tizen/inc/boost/mpl/integral_c_tag.hpp | 0 .../tizen/inc/boost/mpl/lambda.hpp | 0 .../tizen/inc/boost/mpl/lambda_fwd.hpp | 0 .../tizen/inc/boost/mpl/limits/arity.hpp | 0 .../tizen/inc/boost/mpl/or.hpp | 0 .../tizen/inc/boost/mpl/void_fwd.hpp | 0 .../inc/boost/preprocessor/arithmetic/add.hpp | 0 .../inc/boost/preprocessor/arithmetic/dec.hpp | 0 .../inc/boost/preprocessor/arithmetic/inc.hpp | 0 .../inc/boost/preprocessor/arithmetic/sub.hpp | 0 .../tizen/inc/boost/preprocessor/cat.hpp | 0 .../tizen/inc/boost/preprocessor/comma_if.hpp | 0 .../inc/boost/preprocessor/config/config.hpp | 0 .../preprocessor/control/detail/while.hpp | 0 .../boost/preprocessor/control/expr_if.hpp | 0 .../boost/preprocessor/control/expr_iif.hpp | 0 .../inc/boost/preprocessor/control/if.hpp | 0 .../inc/boost/preprocessor/control/iif.hpp | 0 .../inc/boost/preprocessor/control/while.hpp | 0 .../inc/boost/preprocessor/debug/error.hpp | 0 .../boost/preprocessor/detail/auto_rec.hpp | 0 .../inc/boost/preprocessor/detail/check.hpp | 0 .../boost/preprocessor/detail/is_binary.hpp | 0 .../tizen/inc/boost/preprocessor/empty.hpp | 0 .../boost/preprocessor/facilities/empty.hpp | 0 .../boost/preprocessor/facilities/expand.hpp | 0 .../preprocessor/facilities/identity.hpp | 0 .../preprocessor/facilities/overload.hpp | 0 .../tizen/inc/boost/preprocessor/identity.hpp | 0 .../tizen/inc/boost/preprocessor/inc.hpp | 0 .../tizen/inc/boost/preprocessor/list/adt.hpp | 0 .../list/detail/edg/fold_left.hpp | 0 .../list/detail/edg/fold_right.hpp | 0 .../preprocessor/list/detail/fold_left.hpp | 0 .../preprocessor/list/detail/fold_right.hpp | 0 .../inc/boost/preprocessor/list/fold_left.hpp | 0 .../boost/preprocessor/list/fold_right.hpp | 0 .../inc/boost/preprocessor/list/reverse.hpp | 0 .../inc/boost/preprocessor/logical/and.hpp | 0 .../inc/boost/preprocessor/logical/bitand.hpp | 0 .../inc/boost/preprocessor/logical/bool.hpp | 0 .../inc/boost/preprocessor/logical/compl.hpp | 0 .../boost/preprocessor/punctuation/comma.hpp | 0 .../preprocessor/punctuation/comma_if.hpp | 0 .../tizen/inc/boost/preprocessor/repeat.hpp | 0 .../boost/preprocessor/repetition/repeat.hpp | 0 .../inc/boost/preprocessor/stringize.hpp | 0 .../tuple/detail/is_single_return.hpp | 0 .../inc/boost/preprocessor/tuple/eat.hpp | 0 .../inc/boost/preprocessor/tuple/elem.hpp | 0 .../inc/boost/preprocessor/tuple/rem.hpp | 0 .../inc/boost/preprocessor/variadic/elem.hpp | 0 .../inc/boost/preprocessor/variadic/size.hpp | 0 .../tizen/inc/boost/static_assert.hpp | 0 .../tizen/inc/boost/throw_exception.hpp | 0 .../tizen/inc/boost/type_index.hpp | 0 .../inc/boost/type_index/stl_type_index.hpp | 0 .../boost/type_index/type_index_facade.hpp | 0 .../inc/boost/type_traits/add_pointer.hpp | 0 .../inc/boost/type_traits/add_reference.hpp | 0 .../tizen/inc/boost/type_traits/config.hpp | 0 .../tizen/inc/boost/type_traits/decay.hpp | 0 .../type_traits/detail/bool_trait_def.hpp | 0 .../type_traits/detail/bool_trait_undef.hpp | 0 .../type_traits/detail/cv_traits_impl.hpp | 0 .../boost/type_traits/detail/false_result.hpp | 0 .../inc/boost/type_traits/detail/ice_and.hpp | 0 .../inc/boost/type_traits/detail/ice_eq.hpp | 0 .../inc/boost/type_traits/detail/ice_not.hpp | 0 .../inc/boost/type_traits/detail/ice_or.hpp | 0 .../detail/is_function_ptr_helper.hpp | 0 .../detail/template_arity_spec.hpp | 0 .../type_traits/detail/type_trait_def.hpp | 0 .../type_traits/detail/type_trait_undef.hpp | 0 .../boost/type_traits/detail/yes_no_type.hpp | 0 .../tizen/inc/boost/type_traits/ice.hpp | 0 .../boost/type_traits/integral_constant.hpp | 0 .../tizen/inc/boost/type_traits/is_array.hpp | 0 .../tizen/inc/boost/type_traits/is_const.hpp | 0 .../inc/boost/type_traits/is_function.hpp | 0 .../boost/type_traits/is_lvalue_reference.hpp | 0 .../inc/boost/type_traits/is_reference.hpp | 0 .../boost/type_traits/is_rvalue_reference.hpp | 0 .../tizen/inc/boost/type_traits/is_same.hpp | 0 .../inc/boost/type_traits/is_volatile.hpp | 0 .../inc/boost/type_traits/remove_bounds.hpp | 0 .../tizen/inc/boost/type_traits/remove_cv.hpp | 0 .../boost/type_traits/remove_reference.hpp | 0 .../tizen/inc/boost/utility/enable_if.hpp | 0 .../tizen/inc/plusplayer/appinfo.h | 0 .../tizen/inc/plusplayer/attribute.h | 0 .../tizen/inc/plusplayer/audioeasinginfo.h | 0 .../tizen/inc/plusplayer/drm.h | 0 .../tizen/inc/plusplayer/eventlistener.h | 0 .../tizen/inc/plusplayer/external_drm.h | 0 .../tizen/inc/plusplayer/plusplayer.h | 0 .../tizen/inc/plusplayer/track.h | 0 .../tizen/inc/plusplayer/types/buffer.h | 0 .../tizen/inc/plusplayer/types/display.h | 0 .../tizen/inc/plusplayer/types/error.h | 0 .../tizen/inc/plusplayer/types/event.h | 0 .../tizen/inc/plusplayer/types/latency.h | 0 .../inc/plusplayer/types/picturequality.h | 0 .../tizen/inc/plusplayer/types/resource.h | 0 .../tizen/inc/plusplayer/types/source.h | 0 .../tizen/inc/plusplayer/types/stream.h | 0 .../inc/plusplayer/types/streaming_message.h | 0 .../tizen/inc/plusplayer/types/submitdata.h | 0 .../tizen/inc/video_player_tizen_plugin.h | 0 .../tizen/lib/armel/6.0/libavcodec_common.so | Bin .../tizen/lib/armel/6.0/libavformat_mmdash.so | Bin .../tizen/lib/armel/6.0/libavformat_mmhls.so | Bin .../tizen/lib/armel/6.0/libavformat_mmhttp.so | Bin .../tizen/lib/armel/6.0/libavutil_common.so | Bin .../tizen/lib/armel/6.0/libdash.so | Bin 1173986 -> 1173986 bytes .../lib/armel/6.0/libdashplusplayer_tvplus.so | Bin .../tizen/lib/armel/6.0/libgstdash.so | Bin .../tizen/lib/armel/6.0/libgsthls.so | Bin .../tizen/lib/armel/6.0/libgsthttpdemux.so | Bin .../tizen/lib/armel/6.0/libgstmmhttpsrc.so | Bin .../lib/armel/6.0/libgstsubtitle_tvplus.so | Bin .../armel/6.0/libgstsubtitleparse_tvplus.so | Bin .../tizen/lib/armel/6.0/libhls.so | Bin .../lib/armel/6.0/libplusplayer_tvplus.so | Bin .../lib/armel/6.0/libplusplayercore_tvplus.so | Bin .../lib/armel/6.0/libtracksource_tvplus.so | Bin .../tizen/lib/armel/6.5/libavcodec_common.so | Bin .../tizen/lib/armel/6.5/libavformat_mmdash.so | Bin .../tizen/lib/armel/6.5/libavformat_mmhls.so | Bin .../tizen/lib/armel/6.5/libavformat_mmhttp.so | Bin .../tizen/lib/armel/6.5/libavutil_common.so | Bin .../tizen/lib/armel/6.5/libdash.so | Bin 1173986 -> 1173986 bytes .../lib/armel/6.5/libdashplusplayer_tvplus.so | Bin .../tizen/lib/armel/6.5/libgstdash.so | Bin .../tizen/lib/armel/6.5/libgsthls.so | Bin .../tizen/lib/armel/6.5/libgsthttpdemux.so | Bin .../tizen/lib/armel/6.5/libgstmmhttpsrc.so | Bin .../lib/armel/6.5/libgstsubtitle_tvplus.so | Bin .../armel/6.5/libgstsubtitleparse_tvplus.so | Bin .../tizen/lib/armel/6.5/libhls.so | Bin .../lib/armel/6.5/libplusplayer_tvplus.so | Bin .../lib/armel/6.5/libplusplayercore_tvplus.so | Bin .../lib/armel/6.5/libtracksource_tvplus.so | Bin .../tizen/lib/armel/7.0/libavcodec_common.so | Bin .../tizen/lib/armel/7.0/libavformat_mmdash.so | Bin .../tizen/lib/armel/7.0/libavformat_mmhls.so | Bin .../tizen/lib/armel/7.0/libavformat_mmhttp.so | Bin .../tizen/lib/armel/7.0/libavutil_common.so | Bin .../tizen/lib/armel/7.0/libdash.so | Bin 1173974 -> 1173974 bytes .../lib/armel/7.0/libdashplusplayer_tvplus.so | Bin .../tizen/lib/armel/7.0/libgstdash.so | Bin .../tizen/lib/armel/7.0/libgsthls.so | Bin .../tizen/lib/armel/7.0/libgsthttpdemux.so | Bin .../tizen/lib/armel/7.0/libgstmmhttpsrc.so | Bin .../lib/armel/7.0/libgstsubtitle_tvplus.so | Bin .../armel/7.0/libgstsubtitleparse_tvplus.so | Bin .../tizen/lib/armel/7.0/libhls.so | Bin .../lib/armel/7.0/libplusplayer_tvplus.so | Bin .../lib/armel/7.0/libplusplayercore_tvplus.so | Bin .../lib/armel/7.0/libtracksource_tvplus.so | Bin .../tizen/project_def.prop | 0 .../tizen/res/dash_default_settings.jsonx | 0 .../tizen/src/drm_license_helper.cc | 0 .../tizen/src/drm_license_helper.h | 0 .../tizen/src/drm_manager.cc | 0 .../tizen/src/drm_manager.h | 0 .../tizen/src/drm_manager_proxy.cc | 0 .../tizen/src/drm_manager_proxy.h | 0 .../tizen/src/ecore_wl2_window_proxy.cc | 0 .../tizen/src/ecore_wl2_window_proxy.h | 2 +- .../tizen/src/log.h | 2 +- .../tizen/src/media_player.cc | 73 ++++++---- .../tizen/src/media_player.h | 18 +-- .../tizen/src/media_player_proxy.cc | 32 ++--- .../tizen/src/media_player_proxy.h | 0 .../tizen/src/messages.cc | 86 +++++------ .../tizen/src/messages.h | 86 +++++------ .../tizen/src/pending_call.h | 0 .../tizen/src/plus_player.cc | 135 ++++++++++-------- .../tizen/src/plus_player.h | 24 ++-- .../tizen/src/video_player.cc | 2 +- .../tizen/src/video_player.h | 22 +-- .../tizen/src/video_player_options.h | 0 .../tizen/src/video_player_tizen_plugin.cc | 63 +++++--- 280 files changed, 363 insertions(+), 317 deletions(-) rename packages/{video_player_avplayer => video_player_avplay}/.gitignore (100%) rename packages/{video_player_avplayer => video_player_avplay}/CHANGELOG.md (100%) rename packages/{video_player_avplayer => video_player_avplay}/LICENSE (100%) rename packages/{video_player_avplayer => video_player_avplay}/README.md (83%) rename packages/{video_player_avplayer => video_player_avplay}/example/.gitignore (100%) rename packages/{video_player_avplayer => video_player_avplay}/example/README.md (58%) rename packages/{video_player_avplayer => video_player_avplay}/example/assets/Audio.mp3 (100%) rename packages/{video_player_avplayer => video_player_avplay}/example/assets/Butterfly-209.mp4 (100%) rename packages/{video_player_avplayer => video_player_avplay}/example/integration_test/video_player_test.dart (99%) rename packages/{video_player_avplayer => video_player_avplay}/example/lib/main.dart (99%) rename packages/{video_player_avplayer => video_player_avplay}/example/pubspec.yaml (80%) rename packages/{video_player_avplayer => video_player_avplay}/example/test_driver/integration_test.dart (100%) rename packages/{video_player_avplayer => video_player_avplay}/example/tizen/.gitignore (100%) rename packages/{video_player_avplayer => video_player_avplay}/example/tizen/App.cs (100%) rename packages/{video_player_avplayer => video_player_avplay}/example/tizen/Runner.csproj (100%) rename packages/{video_player_avplayer => video_player_avplay}/example/tizen/shared/res/ic_launcher.png (100%) rename packages/{video_player_avplayer => video_player_avplay}/example/tizen/tizen-manifest.xml (64%) rename packages/{video_player_avplayer => video_player_avplay}/lib/src/closed_caption_file.dart (100%) rename packages/{video_player_avplayer => video_player_avplay}/lib/src/drm_configs.dart (100%) rename packages/{video_player_avplayer => video_player_avplay}/lib/src/hole.dart (100%) rename packages/{video_player_avplayer => video_player_avplay}/lib/src/messages.g.dart (92%) rename packages/{video_player_avplayer => video_player_avplay}/lib/src/sub_rip.dart (100%) rename packages/{video_player_avplayer => video_player_avplay}/lib/src/tracks.dart (100%) rename packages/{video_player_avplayer => video_player_avplay}/lib/src/video_player_tizen.dart (90%) rename packages/{video_player_avplayer => video_player_avplay}/lib/src/web_vtt.dart (100%) rename packages/{video_player_avplayer => video_player_avplay}/lib/video_player.dart (100%) rename packages/{video_player_avplayer => video_player_avplay}/lib/video_player_platform_interface.dart (100%) rename packages/{video_player_avplayer => video_player_avplay}/pigeons/messages.dart (96%) rename packages/{video_player_avplayer => video_player_avplay}/pubspec.yaml (90%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/.gitignore (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/any.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/config.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/config/compiler/clang.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/config/platform/linux.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/config/posix_features.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/config/select_compiler_config.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/config/select_platform_config.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/config/select_stdlib_config.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/config/stdlib/libstdcpp3.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/config/suffix.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/config/user.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/core/demangle.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/core/enable_if.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/core/noncopyable.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/current_function.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/detail/workaround.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/exception/exception.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/functional/hash/hash_fwd.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/functional/hash_fwd.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/adl_barrier.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/arity.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/adl.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/compiler.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/ctps.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/dtp.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/eti.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/gcc.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/integral.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/intel.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/lambda.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/msvc.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/nttp.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/overload_resolution.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/preprocessor.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/static_constant.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/ttp.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/use_preprocessed.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/config/workaround.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/include_preprocessed.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/integral_wrapper.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/lambda_arity_param.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/lambda_support.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/na.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/na_fwd.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/na_spec.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/nested_type_wknd.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/nttp_decl.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/preprocessed/gcc/or.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/preprocessor/def_params_tail.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/preprocessor/enum.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/preprocessor/params.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/static_cast.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/template_arity_fwd.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/aux_/value_wknd.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/bool.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/bool_fwd.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/eval_if.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/identity.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/if.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/int.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/int_fwd.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/integral_c.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/integral_c_fwd.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/integral_c_tag.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/lambda.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/lambda_fwd.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/limits/arity.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/or.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/mpl/void_fwd.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/arithmetic/add.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/arithmetic/dec.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/arithmetic/inc.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/arithmetic/sub.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/cat.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/comma_if.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/config/config.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/control/detail/while.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/control/expr_if.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/control/expr_iif.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/control/if.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/control/iif.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/control/while.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/debug/error.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/detail/auto_rec.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/detail/check.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/detail/is_binary.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/empty.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/facilities/empty.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/facilities/expand.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/facilities/identity.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/facilities/overload.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/identity.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/inc.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/list/adt.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/list/detail/edg/fold_left.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/list/detail/edg/fold_right.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/list/detail/fold_left.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/list/detail/fold_right.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/list/fold_left.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/list/fold_right.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/list/reverse.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/logical/and.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/logical/bitand.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/logical/bool.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/logical/compl.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/punctuation/comma.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/punctuation/comma_if.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/repeat.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/repetition/repeat.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/stringize.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/tuple/detail/is_single_return.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/tuple/eat.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/tuple/elem.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/tuple/rem.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/variadic/elem.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/preprocessor/variadic/size.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/static_assert.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/throw_exception.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_index.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_index/stl_type_index.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_index/type_index_facade.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/add_pointer.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/add_reference.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/config.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/decay.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/bool_trait_def.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/bool_trait_undef.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/cv_traits_impl.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/false_result.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/ice_and.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/ice_eq.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/ice_not.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/ice_or.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/is_function_ptr_helper.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/template_arity_spec.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/type_trait_def.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/type_trait_undef.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/detail/yes_no_type.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/ice.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/integral_constant.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/is_array.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/is_const.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/is_function.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/is_lvalue_reference.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/is_reference.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/is_rvalue_reference.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/is_same.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/is_volatile.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/remove_bounds.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/remove_cv.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/type_traits/remove_reference.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/boost/utility/enable_if.hpp (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/appinfo.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/attribute.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/audioeasinginfo.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/drm.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/eventlistener.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/external_drm.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/plusplayer.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/track.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/types/buffer.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/types/display.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/types/error.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/types/event.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/types/latency.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/types/picturequality.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/types/resource.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/types/source.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/types/stream.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/types/streaming_message.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/plusplayer/types/submitdata.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/inc/video_player_tizen_plugin.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libavcodec_common.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libavformat_mmdash.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libavformat_mmhls.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libavformat_mmhttp.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libavutil_common.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libdash.so (89%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libdashplusplayer_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libgstdash.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libgsthls.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libgsthttpdemux.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libgstmmhttpsrc.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libgstsubtitle_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libgstsubtitleparse_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libhls.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libplusplayer_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libplusplayercore_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.0/libtracksource_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libavcodec_common.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libavformat_mmdash.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libavformat_mmhls.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libavformat_mmhttp.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libavutil_common.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libdash.so (88%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libdashplusplayer_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libgstdash.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libgsthls.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libgsthttpdemux.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libgstmmhttpsrc.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libgstsubtitle_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libgstsubtitleparse_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libhls.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libplusplayer_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libplusplayercore_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/6.5/libtracksource_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libavcodec_common.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libavformat_mmdash.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libavformat_mmhls.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libavformat_mmhttp.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libavutil_common.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libdash.so (88%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libdashplusplayer_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libgstdash.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libgsthls.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libgsthttpdemux.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libgstmmhttpsrc.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libgstsubtitle_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libgstsubtitleparse_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libhls.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libplusplayer_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libplusplayercore_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/lib/armel/7.0/libtracksource_tvplus.so (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/project_def.prop (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/res/dash_default_settings.jsonx (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/drm_license_helper.cc (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/drm_license_helper.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/drm_manager.cc (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/drm_manager.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/drm_manager_proxy.cc (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/drm_manager_proxy.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/ecore_wl2_window_proxy.cc (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/ecore_wl2_window_proxy.h (92%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/log.h (93%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/media_player.cc (92%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/media_player.h (84%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/media_player_proxy.cc (91%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/media_player_proxy.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/messages.cc (93%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/messages.h (84%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/pending_call.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/plus_player.cc (89%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/plus_player.h (86%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/video_player.cc (99%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/video_player.h (82%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/video_player_options.h (100%) rename packages/{video_player_avplayer => video_player_avplay}/tizen/src/video_player_tizen_plugin.cc (84%) diff --git a/.github/labeler.yml b/.github/labeler.yml index 59237e5bc..ec0b3f540 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -67,6 +67,8 @@ - packages/url_launcher/**/* "p: video_player": - packages/video_player/**/* +"p: video_player_avplay": + - packages/video_player_avplay/**/* "p: video_player_videohole": - packages/video_player_videohole/**/* "p: wakelock": diff --git a/.github/recipe.yaml b/.github/recipe.yaml index 0161210ce..14f04ac70 100644 --- a/.github/recipe.yaml +++ b/.github/recipe.yaml @@ -36,6 +36,7 @@ plugins: geolocator: [] in_app_purchase: [] network_info_plus: [] + video_player_avplay: [] video_player_videohole: [] # Only testable with the drive command: https://github.com/flutter-tizen/plugins/issues/272 diff --git a/README.md b/README.md index a87db6183..4fb258cb3 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ The _"non-endorsed"_ status means that the plugin is not endorsed by the origina | [**tizen_package_manager**](packages/tizen_package_manager) | (Tizen-only) | [![pub package](https://img.shields.io/pub/v/tizen_package_manager.svg)](https://pub.dev/packages/tizen_package_manager) | N/A | | [**tizen_rpc_port**](packages/tizen_rpc_port) | (Tizen-only) | [![pub package](https://img.shields.io/pub/v/tizen_rpc_port.svg)](https://pub.dev/packages/tizen_rpc_port) | N/A | | [**url_launcher_tizen**](packages/url_launcher) | [url_launcher](https://pub.dev/packages/url_launcher) (1st-party) | [![pub package](https://img.shields.io/pub/v/url_launcher_tizen.svg)](https://pub.dev/packages/url_launcher_tizen) | No | -| [**video_player_avplayer**](packages/video_player_avplayer) | (Tizen-only) | [![pub package](https://img.shields.io/pub/v/video_player_avplayer.svg)](https://pub.dev/packages/video_player_avplayer) | N/A | +| [**video_player_avplay**](packages/video_player_avplay) | (Tizen-only) | [![pub package](https://img.shields.io/pub/v/video_player_avplay.svg)](https://pub.dev/packages/video_player_avplay) | N/A | | [**video_player_tizen**](packages/video_player) | [video_player](https://pub.dev/packages/video_player) (1st-party) | [![pub package](https://img.shields.io/pub/v/video_player_tizen.svg)](https://pub.dev/packages/video_player_tizen) | No | | [**video_player_videohole**](packages/video_player_videohole) | (Tizen-only) | [![pub package](https://img.shields.io/pub/v/video_player_videohole.svg)](https://pub.dev/packages/video_player_videohole) | N/A | | [**wakelock_tizen**](packages/wakelock) | [wakelock](https://pub.dev/packages/wakelock) (3rd-party) | [![pub package](https://img.shields.io/pub/v/wakelock_tizen.svg)](https://pub.dev/packages/wakelock_tizen) | No | @@ -92,7 +92,7 @@ The _"non-endorsed"_ status means that the plugin is not endorsed by the origina | [**tizen_package_manager**](packages/tizen_package_manager) | ✔️ | ✔️ | ✔️ | ✔️ | | [**tizen_rpc_port**](packages/tizen_rpc_port) | ✔️ | ✔️ | ✔️ | ✔️ | | [**url_launcher_tizen**](packages/url_launcher) | ✔️ | ❌ | ✔️ | ❌ | No browser app | -| [**video_player_avplayer**](packages/video_player_avplayer) | ❌ | ❌ | ✔️ | ⚠️ | See README for details | +| [**video_player_avplay**](packages/video_player_avplay) | ❌ | ❌ | ✔️ | ⚠️ | See README for details | | [**video_player_tizen**](packages/video_player) | ✔️ | ✔️ | ✔️ | ❌ | TV emulator issue | | [**video_player_videohole**](packages/video_player_videohole) | ❌ | ❌ | ✔️ | ⚠️ | See README for details | | [**wakelock_tizen**](packages/wakelock) | ✔️ | ✔️ | ❌ | ❌ | Cannot override system settings | diff --git a/packages/video_player_avplayer/.gitignore b/packages/video_player_avplay/.gitignore similarity index 100% rename from packages/video_player_avplayer/.gitignore rename to packages/video_player_avplay/.gitignore diff --git a/packages/video_player_avplayer/CHANGELOG.md b/packages/video_player_avplay/CHANGELOG.md similarity index 100% rename from packages/video_player_avplayer/CHANGELOG.md rename to packages/video_player_avplay/CHANGELOG.md diff --git a/packages/video_player_avplayer/LICENSE b/packages/video_player_avplay/LICENSE similarity index 100% rename from packages/video_player_avplayer/LICENSE rename to packages/video_player_avplay/LICENSE diff --git a/packages/video_player_avplayer/README.md b/packages/video_player_avplay/README.md similarity index 83% rename from packages/video_player_avplayer/README.md rename to packages/video_player_avplay/README.md index 6e6d3c2b3..24cba16b6 100644 --- a/packages/video_player_avplayer/README.md +++ b/packages/video_player_avplay/README.md @@ -1,6 +1,6 @@ -# video_player_avplayer +# video_player_avplay -[![pub package](https://img.shields.io/pub/v/video_player_avplayer.svg)](https://pub.dev/packages/video_player_avplayer) +[![pub package](https://img.shields.io/pub/v/video_player_avplay.svg)](https://pub.dev/packages/video_player_avplay) A downloadable plugin which supports MMPlayer and PlusPlayer(PlusPlayer is a new multimedia player object-oriented designed) on Tizen TV devices. @@ -8,28 +8,28 @@ This plugin is only supported on Tizen TV devices. If you are targeting other ty ## Usage -To use this package, add `video_player_avplayer` as a dependency in your `pubspec.yaml` file. +To use this package, add `video_player_avplay` as a dependency in your `pubspec.yaml` file. ```yaml dependencies: - video_player_avplayer: ^0.1.0 + video_player_avplay: ^0.1.0 ``` -Then you can import `video_player_avplayer` in your Dart code: +Then you can import `video_player_avplay` in your Dart code: ```dart -import 'package:video_player_avplayer/video_player.dart'; +import 'package:video_player_avplay/video_player.dart'; ``` -Note that `video_player_avplayer` is not compatible with the original `video_player` plugin. If you're writing a cross-platform app for Tizen and other platforms, it is recommended to create two separate source files and import `video_player` and `video_player_avplayer` in the files respectively. +Note that `video_player_avplay` is not compatible with the original `video_player` plugin. If you're writing a cross-platform app for Tizen and other platforms, it is recommended to create two separate source files and import `video_player` and `video_player_avplay` in the files respectively. -Note that `video_player_avplayer` uses a compiled dynamic library, the api-version in tizen-manifest.xml is your TV version. +Note that `video_player_avplay` uses a compiled dynamic library, the api-version in tizen-manifest.xml is your TV version. ### Example ```dart import 'package:flutter/material.dart'; -import 'package:video_player_avplayer/video_player.dart'; +import 'package:video_player_avplay/video_player.dart'; class RemoteVideo extends StatefulWidget { const RemoteVideo({Key? key}) : super(key: key); diff --git a/packages/video_player_avplayer/example/.gitignore b/packages/video_player_avplay/example/.gitignore similarity index 100% rename from packages/video_player_avplayer/example/.gitignore rename to packages/video_player_avplay/example/.gitignore diff --git a/packages/video_player_avplayer/example/README.md b/packages/video_player_avplay/example/README.md similarity index 58% rename from packages/video_player_avplayer/example/README.md rename to packages/video_player_avplay/example/README.md index be5d208f4..555f5d8a0 100644 --- a/packages/video_player_avplayer/example/README.md +++ b/packages/video_player_avplay/example/README.md @@ -1,6 +1,6 @@ -# video_player_avplayer_example +# video_player_avplay_example -Demonstrates how to use the video_player_avplayer plugin. +Demonstrates how to use the video_player_avplay plugin. ## Getting Started diff --git a/packages/video_player_avplayer/example/assets/Audio.mp3 b/packages/video_player_avplay/example/assets/Audio.mp3 similarity index 100% rename from packages/video_player_avplayer/example/assets/Audio.mp3 rename to packages/video_player_avplay/example/assets/Audio.mp3 diff --git a/packages/video_player_avplayer/example/assets/Butterfly-209.mp4 b/packages/video_player_avplay/example/assets/Butterfly-209.mp4 similarity index 100% rename from packages/video_player_avplayer/example/assets/Butterfly-209.mp4 rename to packages/video_player_avplay/example/assets/Butterfly-209.mp4 diff --git a/packages/video_player_avplayer/example/integration_test/video_player_test.dart b/packages/video_player_avplay/example/integration_test/video_player_test.dart similarity index 99% rename from packages/video_player_avplayer/example/integration_test/video_player_test.dart rename to packages/video_player_avplay/example/integration_test/video_player_test.dart index 0b933e3a0..4167278ae 100644 --- a/packages/video_player_avplayer/example/integration_test/video_player_test.dart +++ b/packages/video_player_avplay/example/integration_test/video_player_test.dart @@ -11,7 +11,7 @@ import 'package:flutter/services.dart' show rootBundle; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:video_player_avplayer/video_player.dart'; +import 'package:video_player_avplay/video_player.dart'; const Duration _playDuration = Duration(seconds: 1); diff --git a/packages/video_player_avplayer/example/lib/main.dart b/packages/video_player_avplay/example/lib/main.dart similarity index 99% rename from packages/video_player_avplayer/example/lib/main.dart rename to packages/video_player_avplay/example/lib/main.dart index e511ca4a5..d7431dd13 100644 --- a/packages/video_player_avplayer/example/lib/main.dart +++ b/packages/video_player_avplay/example/lib/main.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:http/http.dart' as http; -import 'package:video_player_avplayer/video_player.dart'; -import 'package:video_player_avplayer/video_player_platform_interface.dart'; +import 'package:video_player_avplay/video_player.dart'; +import 'package:video_player_avplay/video_player_platform_interface.dart'; void main() { runApp( diff --git a/packages/video_player_avplayer/example/pubspec.yaml b/packages/video_player_avplay/example/pubspec.yaml similarity index 80% rename from packages/video_player_avplayer/example/pubspec.yaml rename to packages/video_player_avplay/example/pubspec.yaml index a3efab889..f32e1231a 100644 --- a/packages/video_player_avplayer/example/pubspec.yaml +++ b/packages/video_player_avplay/example/pubspec.yaml @@ -1,5 +1,5 @@ -name: video_player_avplayer_example -description: Demonstrates how to use the video_player_avplayer plugin. +name: video_player_avplay_example +description: Demonstrates how to use the video_player_avplay plugin. publish_to: "none" environment: @@ -10,7 +10,7 @@ dependencies: flutter: sdk: flutter http: ^0.13.0 - video_player_avplayer: + video_player_avplay: path: ../ dev_dependencies: diff --git a/packages/video_player_avplayer/example/test_driver/integration_test.dart b/packages/video_player_avplay/example/test_driver/integration_test.dart similarity index 100% rename from packages/video_player_avplayer/example/test_driver/integration_test.dart rename to packages/video_player_avplay/example/test_driver/integration_test.dart diff --git a/packages/video_player_avplayer/example/tizen/.gitignore b/packages/video_player_avplay/example/tizen/.gitignore similarity index 100% rename from packages/video_player_avplayer/example/tizen/.gitignore rename to packages/video_player_avplay/example/tizen/.gitignore diff --git a/packages/video_player_avplayer/example/tizen/App.cs b/packages/video_player_avplay/example/tizen/App.cs similarity index 100% rename from packages/video_player_avplayer/example/tizen/App.cs rename to packages/video_player_avplay/example/tizen/App.cs diff --git a/packages/video_player_avplayer/example/tizen/Runner.csproj b/packages/video_player_avplay/example/tizen/Runner.csproj similarity index 100% rename from packages/video_player_avplayer/example/tizen/Runner.csproj rename to packages/video_player_avplay/example/tizen/Runner.csproj diff --git a/packages/video_player_avplayer/example/tizen/shared/res/ic_launcher.png b/packages/video_player_avplay/example/tizen/shared/res/ic_launcher.png similarity index 100% rename from packages/video_player_avplayer/example/tizen/shared/res/ic_launcher.png rename to packages/video_player_avplay/example/tizen/shared/res/ic_launcher.png diff --git a/packages/video_player_avplayer/example/tizen/tizen-manifest.xml b/packages/video_player_avplay/example/tizen/tizen-manifest.xml similarity index 64% rename from packages/video_player_avplayer/example/tizen/tizen-manifest.xml rename to packages/video_player_avplay/example/tizen/tizen-manifest.xml index f396efd5d..65da0752a 100644 --- a/packages/video_player_avplayer/example/tizen/tizen-manifest.xml +++ b/packages/video_player_avplay/example/tizen/tizen-manifest.xml @@ -1,8 +1,8 @@ - + - - + + ic_launcher.png diff --git a/packages/video_player_avplayer/lib/src/closed_caption_file.dart b/packages/video_player_avplay/lib/src/closed_caption_file.dart similarity index 100% rename from packages/video_player_avplayer/lib/src/closed_caption_file.dart rename to packages/video_player_avplay/lib/src/closed_caption_file.dart diff --git a/packages/video_player_avplayer/lib/src/drm_configs.dart b/packages/video_player_avplay/lib/src/drm_configs.dart similarity index 100% rename from packages/video_player_avplayer/lib/src/drm_configs.dart rename to packages/video_player_avplay/lib/src/drm_configs.dart diff --git a/packages/video_player_avplayer/lib/src/hole.dart b/packages/video_player_avplay/lib/src/hole.dart similarity index 100% rename from packages/video_player_avplayer/lib/src/hole.dart rename to packages/video_player_avplay/lib/src/hole.dart diff --git a/packages/video_player_avplayer/lib/src/messages.g.dart b/packages/video_player_avplay/lib/src/messages.g.dart similarity index 92% rename from packages/video_player_avplayer/lib/src/messages.g.dart rename to packages/video_player_avplay/lib/src/messages.g.dart index 91c54ce4e..ecb5d8716 100644 --- a/packages/video_player_avplayer/lib/src/messages.g.dart +++ b/packages/video_player_avplay/lib/src/messages.g.dart @@ -141,7 +141,7 @@ class TrackTypeMessage { int playerId; - int trackType; + String trackType; Object encode() { return [ @@ -154,7 +154,7 @@ class TrackTypeMessage { result as List; return TrackTypeMessage( playerId: result[0]! as int, - trackType: result[1]! as int, + trackType: result[1]! as String, ); } } @@ -170,7 +170,7 @@ class SelectedTracksMessage { int trackId; - int trackType; + String trackType; Object encode() { return [ @@ -185,7 +185,7 @@ class SelectedTracksMessage { return SelectedTracksMessage( playerId: result[0]! as int, trackId: result[1]! as int, - trackType: result[2]! as int, + trackType: result[2]! as String, ); } } @@ -332,8 +332,8 @@ class GeometryMessage { } } -class _VideoPlayerVideoholeApiCodec extends StandardMessageCodec { - const _VideoPlayerVideoholeApiCodec(); +class _VideoPlayerAvplayApiCodec extends StandardMessageCodec { + const _VideoPlayerAvplayApiCodec(); @override void writeValue(WriteBuffer buffer, Object? value) { if (value is CreateMessage) { @@ -405,19 +405,19 @@ class _VideoPlayerVideoholeApiCodec extends StandardMessageCodec { } } -class VideoPlayerVideoholeApi { - /// Constructor for [VideoPlayerVideoholeApi]. The [binaryMessenger] named argument is +class VideoPlayerAvplayApi { + /// Constructor for [VideoPlayerAvplayApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - VideoPlayerVideoholeApi({BinaryMessenger? binaryMessenger}) + VideoPlayerAvplayApi({BinaryMessenger? binaryMessenger}) : _binaryMessenger = binaryMessenger; final BinaryMessenger? _binaryMessenger; - static const MessageCodec codec = _VideoPlayerVideoholeApiCodec(); + static const MessageCodec codec = _VideoPlayerAvplayApiCodec(); Future initialize() async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.initialize', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.initialize', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send(null) as List?; if (replyList == null) { @@ -438,7 +438,7 @@ class VideoPlayerVideoholeApi { Future create(CreateMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.create', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.create', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -465,7 +465,7 @@ class VideoPlayerVideoholeApi { Future dispose(PlayerMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.dispose', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.dispose', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -487,7 +487,7 @@ class VideoPlayerVideoholeApi { Future setLooping(LoopingMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.setLooping', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.setLooping', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -509,7 +509,7 @@ class VideoPlayerVideoholeApi { Future setVolume(VolumeMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.setVolume', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.setVolume', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -531,7 +531,7 @@ class VideoPlayerVideoholeApi { Future setPlaybackSpeed(PlaybackSpeedMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.setPlaybackSpeed', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.setPlaybackSpeed', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -553,7 +553,7 @@ class VideoPlayerVideoholeApi { Future play(PlayerMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.play', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.play', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -575,7 +575,7 @@ class VideoPlayerVideoholeApi { Future setDeactivate(PlayerMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.setDeactivate', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.setDeactivate', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -602,7 +602,7 @@ class VideoPlayerVideoholeApi { Future setActivate(PlayerMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.setActivate', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.setActivate', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -629,7 +629,7 @@ class VideoPlayerVideoholeApi { Future track(TrackTypeMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.track', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.track', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -656,7 +656,7 @@ class VideoPlayerVideoholeApi { Future setTrackSelection(SelectedTracksMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.setTrackSelection', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.setTrackSelection', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -683,7 +683,7 @@ class VideoPlayerVideoholeApi { Future position(PlayerMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.position', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.position', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -710,7 +710,7 @@ class VideoPlayerVideoholeApi { Future seekTo(PositionMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.seekTo', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.seekTo', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -732,7 +732,7 @@ class VideoPlayerVideoholeApi { Future pause(PlayerMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.pause', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.pause', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -754,7 +754,7 @@ class VideoPlayerVideoholeApi { Future setMixWithOthers(MixWithOthersMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.setMixWithOthers', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.setMixWithOthers', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; @@ -776,7 +776,7 @@ class VideoPlayerVideoholeApi { Future setDisplayGeometry(GeometryMessage arg_msg) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoPlayerVideoholeApi.setDisplayGeometry', codec, + 'dev.flutter.pigeon.VideoPlayerAvplayApi.setDisplayGeometry', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_msg]) as List?; diff --git a/packages/video_player_avplayer/lib/src/sub_rip.dart b/packages/video_player_avplay/lib/src/sub_rip.dart similarity index 100% rename from packages/video_player_avplayer/lib/src/sub_rip.dart rename to packages/video_player_avplay/lib/src/sub_rip.dart diff --git a/packages/video_player_avplayer/lib/src/tracks.dart b/packages/video_player_avplay/lib/src/tracks.dart similarity index 100% rename from packages/video_player_avplayer/lib/src/tracks.dart rename to packages/video_player_avplay/lib/src/tracks.dart diff --git a/packages/video_player_avplayer/lib/src/video_player_tizen.dart b/packages/video_player_avplay/lib/src/video_player_tizen.dart similarity index 90% rename from packages/video_player_avplayer/lib/src/video_player_tizen.dart rename to packages/video_player_avplay/lib/src/video_player_tizen.dart index bcda46d90..11526dd5e 100644 --- a/packages/video_player_avplayer/lib/src/video_player_tizen.dart +++ b/packages/video_player_avplay/lib/src/video_player_tizen.dart @@ -13,9 +13,9 @@ import 'messages.g.dart'; import 'tracks.dart'; /// An implementation of [VideoPlayerPlatform] that uses the -/// Pigeon-generated [TizenVideoPlayerApi]. +/// Pigeon-generated [VideoPlayerAvplayApi]. class VideoPlayerTizen extends VideoPlayerPlatform { - final VideoPlayerVideoholeApi _api = VideoPlayerVideoholeApi(); + final VideoPlayerAvplayApi _api = VideoPlayerAvplayApi(); @override Future init() { @@ -104,9 +104,7 @@ class VideoPlayerTizen extends VideoPlayerPlatform { Future> getVideoTracks(int playerId) async { final TrackMessage response = await _api.track(TrackTypeMessage( playerId: playerId, - trackType: _intTrackTypeMap.keys.firstWhere( - (int key) => _intTrackTypeMap[key] == TrackType.video, - orElse: () => -1), + trackType: TrackType.video.name, )); final List videoTracks = []; @@ -131,9 +129,7 @@ class VideoPlayerTizen extends VideoPlayerPlatform { Future> getAudioTracks(int playerId) async { final TrackMessage response = await _api.track(TrackTypeMessage( playerId: playerId, - trackType: _intTrackTypeMap.keys.firstWhere( - (int key) => _intTrackTypeMap[key] == TrackType.audio, - orElse: () => -1), + trackType: TrackType.audio.name, )); final List audioTracks = []; @@ -159,9 +155,7 @@ class VideoPlayerTizen extends VideoPlayerPlatform { Future> getTextTracks(int playerId) async { final TrackMessage response = await _api.track(TrackTypeMessage( playerId: playerId, - trackType: _intTrackTypeMap.keys.firstWhere( - (int key) => _intTrackTypeMap[key] == TrackType.text, - orElse: () => -1), + trackType: TrackType.text.name, )); final List textTracks = []; @@ -183,9 +177,7 @@ class VideoPlayerTizen extends VideoPlayerPlatform { return _api.setTrackSelection(SelectedTracksMessage( playerId: playerId, trackId: track.trackId, - trackType: _intTrackTypeMap.keys.firstWhere( - (int key) => _intTrackTypeMap[key] == track.trackType, - orElse: () => -1), + trackType: track.trackType.name, )); } @@ -276,12 +268,6 @@ class VideoPlayerTizen extends VideoPlayerPlatform { VideoFormat.other: 'other', }; - static const Map _intTrackTypeMap = { - 1: TrackType.audio, - 2: TrackType.video, - 3: TrackType.text, - }; - static const Map _intChannelTypeMap = { 1: AudioTrackChannelType.mono, diff --git a/packages/video_player_avplayer/lib/src/web_vtt.dart b/packages/video_player_avplay/lib/src/web_vtt.dart similarity index 100% rename from packages/video_player_avplayer/lib/src/web_vtt.dart rename to packages/video_player_avplay/lib/src/web_vtt.dart diff --git a/packages/video_player_avplayer/lib/video_player.dart b/packages/video_player_avplay/lib/video_player.dart similarity index 100% rename from packages/video_player_avplayer/lib/video_player.dart rename to packages/video_player_avplay/lib/video_player.dart diff --git a/packages/video_player_avplayer/lib/video_player_platform_interface.dart b/packages/video_player_avplay/lib/video_player_platform_interface.dart similarity index 100% rename from packages/video_player_avplayer/lib/video_player_platform_interface.dart rename to packages/video_player_avplay/lib/video_player_platform_interface.dart diff --git a/packages/video_player_avplayer/pigeons/messages.dart b/packages/video_player_avplay/pigeons/messages.dart similarity index 96% rename from packages/video_player_avplayer/pigeons/messages.dart rename to packages/video_player_avplay/pigeons/messages.dart index 3e84c64c3..4dbd9e026 100644 --- a/packages/video_player_avplayer/pigeons/messages.dart +++ b/packages/video_player_avplay/pigeons/messages.dart @@ -41,14 +41,14 @@ class TrackMessage { class TrackTypeMessage { TrackTypeMessage(this.playerId, this.trackType); int playerId; - int trackType; + String trackType; } class SelectedTracksMessage { SelectedTracksMessage(this.playerId, this.trackId, this.trackType); int playerId; int trackId; - int trackType; + String trackType; } class PositionMessage { @@ -83,7 +83,7 @@ class GeometryMessage { } @HostApi() -abstract class VideoPlayerVideoholeApi { +abstract class VideoPlayerAvplayApi { void initialize(); PlayerMessage create(CreateMessage msg); void dispose(PlayerMessage msg); diff --git a/packages/video_player_avplayer/pubspec.yaml b/packages/video_player_avplay/pubspec.yaml similarity index 90% rename from packages/video_player_avplayer/pubspec.yaml rename to packages/video_player_avplay/pubspec.yaml index af2c93597..d68f7a31e 100644 --- a/packages/video_player_avplayer/pubspec.yaml +++ b/packages/video_player_avplay/pubspec.yaml @@ -1,7 +1,7 @@ -name: video_player_avplayer +name: video_player_avplay description: Flutter plugin for displaying inline video on Tizen TV devices. homepage: https://github.com/flutter-tizen/plugins -repository: https://github.com/flutter-tizen/plugins/tree/master/packages/video_player_avplayer +repository: https://github.com/flutter-tizen/plugins/tree/master/packages/video_player_avplay version: 0.1.0 environment: diff --git a/packages/video_player_avplayer/tizen/.gitignore b/packages/video_player_avplay/tizen/.gitignore similarity index 100% rename from packages/video_player_avplayer/tizen/.gitignore rename to packages/video_player_avplay/tizen/.gitignore diff --git a/packages/video_player_avplayer/tizen/inc/boost/any.hpp b/packages/video_player_avplay/tizen/inc/boost/any.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/any.hpp rename to packages/video_player_avplay/tizen/inc/boost/any.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/config.hpp b/packages/video_player_avplay/tizen/inc/boost/config.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/config.hpp rename to packages/video_player_avplay/tizen/inc/boost/config.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/config/compiler/clang.hpp b/packages/video_player_avplay/tizen/inc/boost/config/compiler/clang.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/config/compiler/clang.hpp rename to packages/video_player_avplay/tizen/inc/boost/config/compiler/clang.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/config/platform/linux.hpp b/packages/video_player_avplay/tizen/inc/boost/config/platform/linux.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/config/platform/linux.hpp rename to packages/video_player_avplay/tizen/inc/boost/config/platform/linux.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/config/posix_features.hpp b/packages/video_player_avplay/tizen/inc/boost/config/posix_features.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/config/posix_features.hpp rename to packages/video_player_avplay/tizen/inc/boost/config/posix_features.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/config/select_compiler_config.hpp b/packages/video_player_avplay/tizen/inc/boost/config/select_compiler_config.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/config/select_compiler_config.hpp rename to packages/video_player_avplay/tizen/inc/boost/config/select_compiler_config.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/config/select_platform_config.hpp b/packages/video_player_avplay/tizen/inc/boost/config/select_platform_config.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/config/select_platform_config.hpp rename to packages/video_player_avplay/tizen/inc/boost/config/select_platform_config.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/config/select_stdlib_config.hpp b/packages/video_player_avplay/tizen/inc/boost/config/select_stdlib_config.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/config/select_stdlib_config.hpp rename to packages/video_player_avplay/tizen/inc/boost/config/select_stdlib_config.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/config/stdlib/libstdcpp3.hpp b/packages/video_player_avplay/tizen/inc/boost/config/stdlib/libstdcpp3.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/config/stdlib/libstdcpp3.hpp rename to packages/video_player_avplay/tizen/inc/boost/config/stdlib/libstdcpp3.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/config/suffix.hpp b/packages/video_player_avplay/tizen/inc/boost/config/suffix.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/config/suffix.hpp rename to packages/video_player_avplay/tizen/inc/boost/config/suffix.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/config/user.hpp b/packages/video_player_avplay/tizen/inc/boost/config/user.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/config/user.hpp rename to packages/video_player_avplay/tizen/inc/boost/config/user.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/core/demangle.hpp b/packages/video_player_avplay/tizen/inc/boost/core/demangle.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/core/demangle.hpp rename to packages/video_player_avplay/tizen/inc/boost/core/demangle.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/core/enable_if.hpp b/packages/video_player_avplay/tizen/inc/boost/core/enable_if.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/core/enable_if.hpp rename to packages/video_player_avplay/tizen/inc/boost/core/enable_if.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/core/noncopyable.hpp b/packages/video_player_avplay/tizen/inc/boost/core/noncopyable.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/core/noncopyable.hpp rename to packages/video_player_avplay/tizen/inc/boost/core/noncopyable.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/current_function.hpp b/packages/video_player_avplay/tizen/inc/boost/current_function.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/current_function.hpp rename to packages/video_player_avplay/tizen/inc/boost/current_function.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/detail/workaround.hpp b/packages/video_player_avplay/tizen/inc/boost/detail/workaround.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/detail/workaround.hpp rename to packages/video_player_avplay/tizen/inc/boost/detail/workaround.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/exception/exception.hpp b/packages/video_player_avplay/tizen/inc/boost/exception/exception.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/exception/exception.hpp rename to packages/video_player_avplay/tizen/inc/boost/exception/exception.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/functional/hash/hash_fwd.hpp b/packages/video_player_avplay/tizen/inc/boost/functional/hash/hash_fwd.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/functional/hash/hash_fwd.hpp rename to packages/video_player_avplay/tizen/inc/boost/functional/hash/hash_fwd.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/functional/hash_fwd.hpp b/packages/video_player_avplay/tizen/inc/boost/functional/hash_fwd.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/functional/hash_fwd.hpp rename to packages/video_player_avplay/tizen/inc/boost/functional/hash_fwd.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/adl_barrier.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/adl_barrier.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/adl_barrier.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/adl_barrier.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/arity.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/arity.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/arity.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/arity.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/adl.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/adl.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/adl.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/adl.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/compiler.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/compiler.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/compiler.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/compiler.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/ctps.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/ctps.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/ctps.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/ctps.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/dtp.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/dtp.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/dtp.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/dtp.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/eti.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/eti.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/eti.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/eti.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/gcc.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/gcc.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/gcc.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/gcc.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/integral.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/integral.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/integral.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/integral.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/intel.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/intel.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/intel.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/intel.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/lambda.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/lambda.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/lambda.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/lambda.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/msvc.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/msvc.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/msvc.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/msvc.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/nttp.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/nttp.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/nttp.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/nttp.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/overload_resolution.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/overload_resolution.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/overload_resolution.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/overload_resolution.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/preprocessor.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/preprocessor.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/preprocessor.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/preprocessor.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/static_constant.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/static_constant.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/static_constant.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/static_constant.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/ttp.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/ttp.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/ttp.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/ttp.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/use_preprocessed.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/use_preprocessed.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/use_preprocessed.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/use_preprocessed.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/workaround.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/workaround.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/config/workaround.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/config/workaround.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/include_preprocessed.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/include_preprocessed.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/include_preprocessed.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/include_preprocessed.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/integral_wrapper.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/integral_wrapper.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/integral_wrapper.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/integral_wrapper.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/lambda_arity_param.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/lambda_arity_param.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/lambda_arity_param.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/lambda_arity_param.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/lambda_support.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/lambda_support.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/lambda_support.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/lambda_support.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/na.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/na.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/na.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/na.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/na_fwd.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/na_fwd.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/na_fwd.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/na_fwd.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/na_spec.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/na_spec.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/na_spec.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/na_spec.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/nested_type_wknd.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/nested_type_wknd.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/nested_type_wknd.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/nested_type_wknd.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/nttp_decl.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/nttp_decl.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/nttp_decl.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/nttp_decl.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/preprocessed/gcc/or.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/preprocessed/gcc/or.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/preprocessed/gcc/or.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/preprocessed/gcc/or.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/preprocessor/def_params_tail.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/preprocessor/def_params_tail.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/preprocessor/def_params_tail.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/preprocessor/def_params_tail.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/preprocessor/enum.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/preprocessor/enum.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/preprocessor/enum.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/preprocessor/enum.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/preprocessor/params.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/preprocessor/params.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/preprocessor/params.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/preprocessor/params.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/static_cast.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/static_cast.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/static_cast.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/static_cast.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/template_arity_fwd.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/template_arity_fwd.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/template_arity_fwd.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/template_arity_fwd.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/value_wknd.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/aux_/value_wknd.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/aux_/value_wknd.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/aux_/value_wknd.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/bool.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/bool.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/bool.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/bool.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/bool_fwd.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/bool_fwd.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/bool_fwd.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/bool_fwd.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/eval_if.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/eval_if.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/eval_if.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/eval_if.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/identity.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/identity.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/identity.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/identity.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/if.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/if.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/if.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/if.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/int.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/int.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/int.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/int.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/int_fwd.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/int_fwd.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/int_fwd.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/int_fwd.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/integral_c.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/integral_c.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/integral_c.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/integral_c.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/integral_c_fwd.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/integral_c_fwd.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/integral_c_fwd.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/integral_c_fwd.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/integral_c_tag.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/integral_c_tag.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/integral_c_tag.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/integral_c_tag.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/lambda.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/lambda.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/lambda.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/lambda.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/lambda_fwd.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/lambda_fwd.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/lambda_fwd.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/lambda_fwd.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/limits/arity.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/limits/arity.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/limits/arity.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/limits/arity.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/or.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/or.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/or.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/or.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/mpl/void_fwd.hpp b/packages/video_player_avplay/tizen/inc/boost/mpl/void_fwd.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/mpl/void_fwd.hpp rename to packages/video_player_avplay/tizen/inc/boost/mpl/void_fwd.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/arithmetic/add.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/arithmetic/add.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/arithmetic/add.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/arithmetic/add.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/arithmetic/dec.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/arithmetic/dec.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/arithmetic/dec.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/arithmetic/dec.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/arithmetic/inc.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/arithmetic/inc.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/arithmetic/inc.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/arithmetic/inc.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/arithmetic/sub.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/arithmetic/sub.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/arithmetic/sub.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/arithmetic/sub.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/cat.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/cat.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/cat.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/cat.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/comma_if.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/comma_if.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/comma_if.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/comma_if.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/config/config.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/config/config.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/config/config.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/config/config.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/control/detail/while.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/control/detail/while.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/control/detail/while.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/control/detail/while.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/control/expr_if.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/control/expr_if.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/control/expr_if.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/control/expr_if.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/control/expr_iif.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/control/expr_iif.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/control/expr_iif.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/control/expr_iif.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/control/if.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/control/if.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/control/if.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/control/if.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/control/iif.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/control/iif.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/control/iif.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/control/iif.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/control/while.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/control/while.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/control/while.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/control/while.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/debug/error.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/debug/error.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/debug/error.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/debug/error.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/detail/auto_rec.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/detail/auto_rec.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/detail/auto_rec.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/detail/auto_rec.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/detail/check.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/detail/check.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/detail/check.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/detail/check.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/detail/is_binary.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/detail/is_binary.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/detail/is_binary.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/detail/is_binary.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/empty.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/empty.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/empty.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/empty.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/facilities/empty.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/facilities/empty.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/facilities/empty.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/facilities/empty.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/facilities/expand.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/facilities/expand.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/facilities/expand.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/facilities/expand.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/facilities/identity.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/facilities/identity.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/facilities/identity.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/facilities/identity.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/facilities/overload.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/facilities/overload.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/facilities/overload.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/facilities/overload.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/identity.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/identity.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/identity.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/identity.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/inc.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/inc.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/inc.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/inc.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/adt.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/list/adt.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/adt.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/list/adt.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/detail/edg/fold_left.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/list/detail/edg/fold_left.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/detail/edg/fold_left.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/list/detail/edg/fold_left.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/detail/edg/fold_right.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/list/detail/edg/fold_right.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/detail/edg/fold_right.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/list/detail/edg/fold_right.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/detail/fold_left.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/list/detail/fold_left.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/detail/fold_left.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/list/detail/fold_left.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/detail/fold_right.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/list/detail/fold_right.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/detail/fold_right.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/list/detail/fold_right.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/fold_left.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/list/fold_left.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/fold_left.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/list/fold_left.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/fold_right.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/list/fold_right.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/fold_right.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/list/fold_right.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/reverse.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/list/reverse.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/list/reverse.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/list/reverse.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/logical/and.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/logical/and.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/logical/and.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/logical/and.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/logical/bitand.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/logical/bitand.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/logical/bitand.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/logical/bitand.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/logical/bool.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/logical/bool.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/logical/bool.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/logical/bool.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/logical/compl.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/logical/compl.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/logical/compl.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/logical/compl.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/punctuation/comma.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/punctuation/comma.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/punctuation/comma.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/punctuation/comma.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/punctuation/comma_if.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/punctuation/comma_if.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/punctuation/comma_if.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/punctuation/comma_if.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/repeat.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/repeat.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/repeat.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/repeat.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/repetition/repeat.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/repetition/repeat.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/repetition/repeat.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/repetition/repeat.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/stringize.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/stringize.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/stringize.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/stringize.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/tuple/detail/is_single_return.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/tuple/detail/is_single_return.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/tuple/detail/is_single_return.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/tuple/detail/is_single_return.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/tuple/eat.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/tuple/eat.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/tuple/eat.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/tuple/eat.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/tuple/elem.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/tuple/elem.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/tuple/elem.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/tuple/elem.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/tuple/rem.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/tuple/rem.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/tuple/rem.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/tuple/rem.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/variadic/elem.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/variadic/elem.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/variadic/elem.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/variadic/elem.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/preprocessor/variadic/size.hpp b/packages/video_player_avplay/tizen/inc/boost/preprocessor/variadic/size.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/preprocessor/variadic/size.hpp rename to packages/video_player_avplay/tizen/inc/boost/preprocessor/variadic/size.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/static_assert.hpp b/packages/video_player_avplay/tizen/inc/boost/static_assert.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/static_assert.hpp rename to packages/video_player_avplay/tizen/inc/boost/static_assert.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/throw_exception.hpp b/packages/video_player_avplay/tizen/inc/boost/throw_exception.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/throw_exception.hpp rename to packages/video_player_avplay/tizen/inc/boost/throw_exception.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_index.hpp b/packages/video_player_avplay/tizen/inc/boost/type_index.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_index.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_index.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_index/stl_type_index.hpp b/packages/video_player_avplay/tizen/inc/boost/type_index/stl_type_index.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_index/stl_type_index.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_index/stl_type_index.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_index/type_index_facade.hpp b/packages/video_player_avplay/tizen/inc/boost/type_index/type_index_facade.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_index/type_index_facade.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_index/type_index_facade.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/add_pointer.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/add_pointer.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/add_pointer.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/add_pointer.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/add_reference.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/add_reference.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/add_reference.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/add_reference.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/config.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/config.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/config.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/config.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/decay.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/decay.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/decay.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/decay.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/bool_trait_def.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/bool_trait_def.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/bool_trait_def.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/bool_trait_def.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/bool_trait_undef.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/bool_trait_undef.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/bool_trait_undef.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/bool_trait_undef.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/cv_traits_impl.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/cv_traits_impl.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/cv_traits_impl.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/cv_traits_impl.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/false_result.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/false_result.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/false_result.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/false_result.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/ice_and.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/ice_and.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/ice_and.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/ice_and.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/ice_eq.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/ice_eq.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/ice_eq.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/ice_eq.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/ice_not.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/ice_not.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/ice_not.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/ice_not.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/ice_or.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/ice_or.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/ice_or.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/ice_or.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/is_function_ptr_helper.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/is_function_ptr_helper.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/is_function_ptr_helper.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/is_function_ptr_helper.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/template_arity_spec.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/template_arity_spec.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/template_arity_spec.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/template_arity_spec.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/type_trait_def.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/type_trait_def.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/type_trait_def.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/type_trait_def.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/type_trait_undef.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/type_trait_undef.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/type_trait_undef.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/type_trait_undef.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/yes_no_type.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/detail/yes_no_type.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/detail/yes_no_type.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/detail/yes_no_type.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/ice.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/ice.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/ice.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/ice.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/integral_constant.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/integral_constant.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/integral_constant.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/integral_constant.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/is_array.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/is_array.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/is_array.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/is_array.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/is_const.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/is_const.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/is_const.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/is_const.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/is_function.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/is_function.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/is_function.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/is_function.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/is_lvalue_reference.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/is_lvalue_reference.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/is_lvalue_reference.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/is_lvalue_reference.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/is_reference.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/is_reference.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/is_reference.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/is_reference.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/is_rvalue_reference.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/is_rvalue_reference.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/is_rvalue_reference.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/is_rvalue_reference.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/is_same.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/is_same.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/is_same.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/is_same.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/is_volatile.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/is_volatile.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/is_volatile.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/is_volatile.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/remove_bounds.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/remove_bounds.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/remove_bounds.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/remove_bounds.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/remove_cv.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/remove_cv.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/remove_cv.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/remove_cv.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/type_traits/remove_reference.hpp b/packages/video_player_avplay/tizen/inc/boost/type_traits/remove_reference.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/type_traits/remove_reference.hpp rename to packages/video_player_avplay/tizen/inc/boost/type_traits/remove_reference.hpp diff --git a/packages/video_player_avplayer/tizen/inc/boost/utility/enable_if.hpp b/packages/video_player_avplay/tizen/inc/boost/utility/enable_if.hpp similarity index 100% rename from packages/video_player_avplayer/tizen/inc/boost/utility/enable_if.hpp rename to packages/video_player_avplay/tizen/inc/boost/utility/enable_if.hpp diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/appinfo.h b/packages/video_player_avplay/tizen/inc/plusplayer/appinfo.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/appinfo.h rename to packages/video_player_avplay/tizen/inc/plusplayer/appinfo.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/attribute.h b/packages/video_player_avplay/tizen/inc/plusplayer/attribute.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/attribute.h rename to packages/video_player_avplay/tizen/inc/plusplayer/attribute.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/audioeasinginfo.h b/packages/video_player_avplay/tizen/inc/plusplayer/audioeasinginfo.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/audioeasinginfo.h rename to packages/video_player_avplay/tizen/inc/plusplayer/audioeasinginfo.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/drm.h b/packages/video_player_avplay/tizen/inc/plusplayer/drm.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/drm.h rename to packages/video_player_avplay/tizen/inc/plusplayer/drm.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/eventlistener.h b/packages/video_player_avplay/tizen/inc/plusplayer/eventlistener.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/eventlistener.h rename to packages/video_player_avplay/tizen/inc/plusplayer/eventlistener.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/external_drm.h b/packages/video_player_avplay/tizen/inc/plusplayer/external_drm.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/external_drm.h rename to packages/video_player_avplay/tizen/inc/plusplayer/external_drm.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/plusplayer.h b/packages/video_player_avplay/tizen/inc/plusplayer/plusplayer.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/plusplayer.h rename to packages/video_player_avplay/tizen/inc/plusplayer/plusplayer.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/track.h b/packages/video_player_avplay/tizen/inc/plusplayer/track.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/track.h rename to packages/video_player_avplay/tizen/inc/plusplayer/track.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/types/buffer.h b/packages/video_player_avplay/tizen/inc/plusplayer/types/buffer.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/types/buffer.h rename to packages/video_player_avplay/tizen/inc/plusplayer/types/buffer.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/types/display.h b/packages/video_player_avplay/tizen/inc/plusplayer/types/display.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/types/display.h rename to packages/video_player_avplay/tizen/inc/plusplayer/types/display.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/types/error.h b/packages/video_player_avplay/tizen/inc/plusplayer/types/error.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/types/error.h rename to packages/video_player_avplay/tizen/inc/plusplayer/types/error.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/types/event.h b/packages/video_player_avplay/tizen/inc/plusplayer/types/event.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/types/event.h rename to packages/video_player_avplay/tizen/inc/plusplayer/types/event.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/types/latency.h b/packages/video_player_avplay/tizen/inc/plusplayer/types/latency.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/types/latency.h rename to packages/video_player_avplay/tizen/inc/plusplayer/types/latency.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/types/picturequality.h b/packages/video_player_avplay/tizen/inc/plusplayer/types/picturequality.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/types/picturequality.h rename to packages/video_player_avplay/tizen/inc/plusplayer/types/picturequality.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/types/resource.h b/packages/video_player_avplay/tizen/inc/plusplayer/types/resource.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/types/resource.h rename to packages/video_player_avplay/tizen/inc/plusplayer/types/resource.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/types/source.h b/packages/video_player_avplay/tizen/inc/plusplayer/types/source.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/types/source.h rename to packages/video_player_avplay/tizen/inc/plusplayer/types/source.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/types/stream.h b/packages/video_player_avplay/tizen/inc/plusplayer/types/stream.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/types/stream.h rename to packages/video_player_avplay/tizen/inc/plusplayer/types/stream.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/types/streaming_message.h b/packages/video_player_avplay/tizen/inc/plusplayer/types/streaming_message.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/types/streaming_message.h rename to packages/video_player_avplay/tizen/inc/plusplayer/types/streaming_message.h diff --git a/packages/video_player_avplayer/tizen/inc/plusplayer/types/submitdata.h b/packages/video_player_avplay/tizen/inc/plusplayer/types/submitdata.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/plusplayer/types/submitdata.h rename to packages/video_player_avplay/tizen/inc/plusplayer/types/submitdata.h diff --git a/packages/video_player_avplayer/tizen/inc/video_player_tizen_plugin.h b/packages/video_player_avplay/tizen/inc/video_player_tizen_plugin.h similarity index 100% rename from packages/video_player_avplayer/tizen/inc/video_player_tizen_plugin.h rename to packages/video_player_avplay/tizen/inc/video_player_tizen_plugin.h diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libavcodec_common.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libavcodec_common.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libavcodec_common.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libavcodec_common.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libavformat_mmdash.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libavformat_mmdash.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libavformat_mmdash.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libavformat_mmdash.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libavformat_mmhls.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libavformat_mmhls.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libavformat_mmhls.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libavformat_mmhls.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libavformat_mmhttp.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libavformat_mmhttp.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libavformat_mmhttp.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libavformat_mmhttp.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libavutil_common.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libavutil_common.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libavutil_common.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libavutil_common.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libdash.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libdash.so similarity index 89% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libdash.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libdash.so index b8be05a8040c4491c9a2c4109740c526bc6dfb32..efd201a5ab15c7f8a90579177b34c2f7f64c3e33 100755 GIT binary patch delta 54168 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 k3PZEe;9fc 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 delta 54417 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

`(4%JZQAndldfIyF(juT=`L_ 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 diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libdashplusplayer_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libdashplusplayer_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libdashplusplayer_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libdashplusplayer_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libgstdash.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libgstdash.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libgstdash.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libgstdash.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libgsthls.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libgsthls.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libgsthls.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libgsthls.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libgsthttpdemux.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libgsthttpdemux.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libgsthttpdemux.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libgsthttpdemux.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libgstmmhttpsrc.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libgstmmhttpsrc.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libgstmmhttpsrc.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libgstmmhttpsrc.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libgstsubtitle_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libgstsubtitle_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libgstsubtitle_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libgstsubtitle_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libgstsubtitleparse_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libgstsubtitleparse_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libgstsubtitleparse_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libgstsubtitleparse_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libhls.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libhls.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libhls.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libhls.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libplusplayer_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libplusplayer_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libplusplayer_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libplusplayer_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libplusplayercore_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libplusplayercore_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libplusplayercore_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libplusplayercore_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.0/libtracksource_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/6.0/libtracksource_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.0/libtracksource_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/6.0/libtracksource_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libavcodec_common.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libavcodec_common.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libavcodec_common.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libavcodec_common.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libavformat_mmdash.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libavformat_mmdash.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libavformat_mmdash.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libavformat_mmdash.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libavformat_mmhls.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libavformat_mmhls.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libavformat_mmhls.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libavformat_mmhls.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libavformat_mmhttp.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libavformat_mmhttp.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libavformat_mmhttp.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libavformat_mmhttp.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libavutil_common.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libavutil_common.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libavutil_common.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libavutil_common.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libdash.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libdash.so similarity index 88% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libdash.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libdash.so index 1320cfcf69491075473642c4b4565b5f40c727b8..7bf96391de986a259e4b66c79d8c538669b129b0 100755 GIT binary patch delta 54134 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 T$}6v2b>(fBUAE$;tJ41;G&&55 delta 54200 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

n12jo|DjQwz>2Wo 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 AB>(^b diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libdashplusplayer_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libdashplusplayer_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libdashplusplayer_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libdashplusplayer_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libgstdash.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libgstdash.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libgstdash.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libgstdash.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libgsthls.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libgsthls.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libgsthls.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libgsthls.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libgsthttpdemux.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libgsthttpdemux.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libgsthttpdemux.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libgsthttpdemux.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libgstmmhttpsrc.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libgstmmhttpsrc.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libgstmmhttpsrc.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libgstmmhttpsrc.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libgstsubtitle_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libgstsubtitle_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libgstsubtitle_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libgstsubtitle_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libgstsubtitleparse_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libgstsubtitleparse_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libgstsubtitleparse_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libgstsubtitleparse_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libhls.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libhls.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libhls.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libhls.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libplusplayer_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libplusplayer_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libplusplayer_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libplusplayer_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libplusplayercore_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libplusplayercore_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libplusplayercore_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libplusplayercore_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/6.5/libtracksource_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/6.5/libtracksource_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/6.5/libtracksource_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/6.5/libtracksource_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libavcodec_common.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libavcodec_common.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libavcodec_common.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libavcodec_common.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libavformat_mmdash.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libavformat_mmdash.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libavformat_mmdash.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libavformat_mmdash.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libavformat_mmhls.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libavformat_mmhls.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libavformat_mmhls.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libavformat_mmhls.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libavformat_mmhttp.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libavformat_mmhttp.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libavformat_mmhttp.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libavformat_mmhttp.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libavutil_common.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libavutil_common.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libavutil_common.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libavutil_common.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libdash.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libdash.so similarity index 88% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libdash.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libdash.so index 2ec453e75904e9f5d12273813260747125f7fa08..0d4488e43a1fda8dcbda2a11b23cdae587fe260e 100755 GIT binary patch delta 54125 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 delta 54191 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 M>7^@fzAEGY02hNLY5)KL diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libdashplusplayer_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libdashplusplayer_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libdashplusplayer_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libdashplusplayer_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libgstdash.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libgstdash.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libgstdash.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libgstdash.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libgsthls.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libgsthls.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libgsthls.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libgsthls.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libgsthttpdemux.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libgsthttpdemux.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libgsthttpdemux.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libgsthttpdemux.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libgstmmhttpsrc.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libgstmmhttpsrc.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libgstmmhttpsrc.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libgstmmhttpsrc.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libgstsubtitle_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libgstsubtitle_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libgstsubtitle_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libgstsubtitle_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libgstsubtitleparse_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libgstsubtitleparse_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libgstsubtitleparse_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libgstsubtitleparse_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libhls.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libhls.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libhls.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libhls.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libplusplayer_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libplusplayer_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libplusplayer_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libplusplayer_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libplusplayercore_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libplusplayercore_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libplusplayercore_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libplusplayercore_tvplus.so diff --git a/packages/video_player_avplayer/tizen/lib/armel/7.0/libtracksource_tvplus.so b/packages/video_player_avplay/tizen/lib/armel/7.0/libtracksource_tvplus.so similarity index 100% rename from packages/video_player_avplayer/tizen/lib/armel/7.0/libtracksource_tvplus.so rename to packages/video_player_avplay/tizen/lib/armel/7.0/libtracksource_tvplus.so diff --git a/packages/video_player_avplayer/tizen/project_def.prop b/packages/video_player_avplay/tizen/project_def.prop similarity index 100% rename from packages/video_player_avplayer/tizen/project_def.prop rename to packages/video_player_avplay/tizen/project_def.prop diff --git a/packages/video_player_avplayer/tizen/res/dash_default_settings.jsonx b/packages/video_player_avplay/tizen/res/dash_default_settings.jsonx similarity index 100% rename from packages/video_player_avplayer/tizen/res/dash_default_settings.jsonx rename to packages/video_player_avplay/tizen/res/dash_default_settings.jsonx diff --git a/packages/video_player_avplayer/tizen/src/drm_license_helper.cc b/packages/video_player_avplay/tizen/src/drm_license_helper.cc similarity index 100% rename from packages/video_player_avplayer/tizen/src/drm_license_helper.cc rename to packages/video_player_avplay/tizen/src/drm_license_helper.cc diff --git a/packages/video_player_avplayer/tizen/src/drm_license_helper.h b/packages/video_player_avplay/tizen/src/drm_license_helper.h similarity index 100% rename from packages/video_player_avplayer/tizen/src/drm_license_helper.h rename to packages/video_player_avplay/tizen/src/drm_license_helper.h diff --git a/packages/video_player_avplayer/tizen/src/drm_manager.cc b/packages/video_player_avplay/tizen/src/drm_manager.cc similarity index 100% rename from packages/video_player_avplayer/tizen/src/drm_manager.cc rename to packages/video_player_avplay/tizen/src/drm_manager.cc diff --git a/packages/video_player_avplayer/tizen/src/drm_manager.h b/packages/video_player_avplay/tizen/src/drm_manager.h similarity index 100% rename from packages/video_player_avplayer/tizen/src/drm_manager.h rename to packages/video_player_avplay/tizen/src/drm_manager.h diff --git a/packages/video_player_avplayer/tizen/src/drm_manager_proxy.cc b/packages/video_player_avplay/tizen/src/drm_manager_proxy.cc similarity index 100% rename from packages/video_player_avplayer/tizen/src/drm_manager_proxy.cc rename to packages/video_player_avplay/tizen/src/drm_manager_proxy.cc diff --git a/packages/video_player_avplayer/tizen/src/drm_manager_proxy.h b/packages/video_player_avplay/tizen/src/drm_manager_proxy.h similarity index 100% rename from packages/video_player_avplayer/tizen/src/drm_manager_proxy.h rename to packages/video_player_avplay/tizen/src/drm_manager_proxy.h diff --git a/packages/video_player_avplayer/tizen/src/ecore_wl2_window_proxy.cc b/packages/video_player_avplay/tizen/src/ecore_wl2_window_proxy.cc similarity index 100% rename from packages/video_player_avplayer/tizen/src/ecore_wl2_window_proxy.cc rename to packages/video_player_avplay/tizen/src/ecore_wl2_window_proxy.cc diff --git a/packages/video_player_avplayer/tizen/src/ecore_wl2_window_proxy.h b/packages/video_player_avplay/tizen/src/ecore_wl2_window_proxy.h similarity index 92% rename from packages/video_player_avplayer/tizen/src/ecore_wl2_window_proxy.h rename to packages/video_player_avplay/tizen/src/ecore_wl2_window_proxy.h index 381770841..66c4aa3cc 100644 --- a/packages/video_player_avplayer/tizen/src/ecore_wl2_window_proxy.h +++ b/packages/video_player_avplay/tizen/src/ecore_wl2_window_proxy.h @@ -17,4 +17,4 @@ class EcoreWl2WindowProxy { void *ecore_wl2_window_handle_ = nullptr; }; -#endif +#endif // FLUTTER_PLUGIN_ECORE_WL2_WINDOW_PROXY_H_ diff --git a/packages/video_player_avplayer/tizen/src/log.h b/packages/video_player_avplay/tizen/src/log.h similarity index 93% rename from packages/video_player_avplayer/tizen/src/log.h rename to packages/video_player_avplay/tizen/src/log.h index e13beefa2..6c7b8d5be 100644 --- a/packages/video_player_avplayer/tizen/src/log.h +++ b/packages/video_player_avplay/tizen/src/log.h @@ -6,7 +6,7 @@ #ifdef LOG_TAG #undef LOG_TAG #endif -#define LOG_TAG "VideoPlayerAVPlayerPlugin" +#define LOG_TAG "VideoPlayerAVPlayPlugin" #ifndef __MODULE__ #define __MODULE__ strrchr("/" __FILE__, '/') + 1 diff --git a/packages/video_player_avplayer/tizen/src/media_player.cc b/packages/video_player_avplay/tizen/src/media_player.cc similarity index 92% rename from packages/video_player_avplayer/tizen/src/media_player.cc rename to packages/video_player_avplay/tizen/src/media_player.cc index c4055de2c..6cc37bbad 100644 --- a/packages/video_player_avplayer/tizen/src/media_player.cc +++ b/packages/video_player_avplay/tizen/src/media_player.cc @@ -22,6 +22,18 @@ static std::string RotationToString(player_display_rotation_e rotation) { return std::string(); } +static player_stream_type_e ConvertTrackType(std::string track_type) { + if (track_type == "video") { + return PLAYER_STREAM_TYPE_VIDEO; + } + if (track_type == "audio") { + return PLAYER_STREAM_TYPE_AUDIO; + } + if (track_type == "text") { + return PLAYER_STREAM_TYPE_TEXT; + } +} + MediaPlayer::MediaPlayer(flutter::BinaryMessenger *messenger, void *native_window) : VideoPlayer(messenger), native_window_(native_window) { @@ -176,83 +188,91 @@ void MediaPlayer::SetDisplayRoi(int32_t x, int32_t y, int32_t width, } } -void MediaPlayer::Play() { +bool MediaPlayer::Play() { LOG_INFO("[MediaPlayer] Player starting."); player_state_e state = PLAYER_STATE_NONE; int ret = player_get_state(player_, &state); if (ret != PLAYER_ERROR_NONE) { LOG_ERROR("[MediaPlayer] Unable to get player state."); - return; } if (state == PLAYER_STATE_NONE || state == PLAYER_STATE_IDLE) { LOG_ERROR("[MediaPlayer] Player not ready."); - return; + return false; } if (state == PLAYER_STATE_PLAYING) { LOG_INFO("[MediaPlayer] Player already playing."); - return; + return false; } ret = player_start(player_); if (ret != PLAYER_ERROR_NONE) { LOG_ERROR("[MediaPlayer] player_start failed: %s.", get_error_message(ret)); + return false; } + return true; } -void MediaPlayer::Pause() { +bool MediaPlayer::Pause() { LOG_INFO("[MediaPlayer] Player pausing."); player_state_e state = PLAYER_STATE_NONE; int ret = player_get_state(player_, &state); if (ret != PLAYER_ERROR_NONE) { LOG_ERROR("[MediaPlayer] Unable to get player state."); - return; } if (state == PLAYER_STATE_NONE || state == PLAYER_STATE_IDLE) { LOG_ERROR("[MediaPlayer] Player not ready."); - return; + return false; } if (state != PLAYER_STATE_PLAYING) { LOG_INFO("[MediaPlayer] Player not playing."); - return; + return false; } ret = player_pause(player_); if (ret != PLAYER_ERROR_NONE) { LOG_ERROR("[MediaPlayer] player_pause failed: %s.", get_error_message(ret)); + return false; } + return true; } -void MediaPlayer::SetLooping(bool is_looping) { +bool MediaPlayer::SetLooping(bool is_looping) { LOG_INFO("[MediaPlayer] is_looping: %d.", is_looping); int ret = player_set_looping(player_, is_looping); if (ret != PLAYER_ERROR_NONE) { LOG_ERROR("[MediaPlayer] player_set_looping failed: %s.", get_error_message(ret)); + return false; } + return true; } -void MediaPlayer::SetVolume(double volume) { +bool MediaPlayer::SetVolume(double volume) { LOG_INFO("[MediaPlayer] volume: %f.", volume); int ret = player_set_volume(player_, volume, volume); if (ret != PLAYER_ERROR_NONE) { LOG_ERROR("[MediaPlayer] player_set_volume failed: %s.", get_error_message(ret)); + return false; } + return true; } -void MediaPlayer::SetPlaybackSpeed(double speed) { +bool MediaPlayer::SetPlaybackSpeed(double speed) { LOG_INFO("[MediaPlayer] speed: %f.", speed); int ret = player_set_playback_rate(player_, speed); if (ret != PLAYER_ERROR_NONE) { LOG_ERROR("[MediaPlayer] player_set_playback_rate failed: %s.", get_error_message(ret)); + return false; } + return true; } -void MediaPlayer::SeekTo(int64_t position, SeekCompletedCallback callback) { +bool MediaPlayer::SeekTo(int64_t position, SeekCompletedCallback callback) { LOG_INFO("[MediaPlayer] position: %d.", position); on_seek_completed_ = std::move(callback); @@ -262,7 +282,9 @@ void MediaPlayer::SeekTo(int64_t position, SeekCompletedCallback callback) { on_seek_completed_ = nullptr; LOG_ERROR("[MediaPlayer] player_set_play_position failed: %s.", get_error_message(ret)); + return false; } + return true; } int64_t MediaPlayer::GetPosition() { @@ -313,7 +335,7 @@ void MediaPlayer::GetVideoSize(int32_t *width, int32_t *height) { *height = h; } -bool MediaPlayer::isReady() { +bool MediaPlayer::IsReady() { player_state_e state = PLAYER_STATE_NONE; int ret = player_get_state(player_, &state); if (ret != PLAYER_ERROR_NONE) { @@ -348,7 +370,7 @@ bool MediaPlayer::SetDisplay() { return true; } -flutter::EncodableList MediaPlayer::getTrackInfo(int32_t track_type) { +flutter::EncodableList MediaPlayer::getTrackInfo(std::string track_type) { player_state_e state = PLAYER_STATE_NONE; int ret = player_get_state(player_, &state); if (ret != PLAYER_ERROR_NONE) { @@ -361,9 +383,10 @@ flutter::EncodableList MediaPlayer::getTrackInfo(int32_t track_type) { return {}; } + player_stream_type_e type = ConvertTrackType(track_type); int track_count = 0; - ret = media_player_proxy_->player_get_track_count_v2( - player_, (player_stream_type_e)track_type, &track_count); + ret = media_player_proxy_->player_get_track_count_v2(player_, type, + &track_count); if (ret != PLAYER_ERROR_NONE) { LOG_ERROR("[MediaPlayer] player_get_track_count_v2 failed: %s", get_error_message(ret)); @@ -375,9 +398,9 @@ flutter::EncodableList MediaPlayer::getTrackInfo(int32_t track_type) { flutter::EncodableList trackSelections = {}; flutter::EncodableMap trackSelection = {}; - trackSelection.insert({flutter::EncodableValue("trackType"), - flutter::EncodableValue(track_type)}); - if (track_type == PLAYER_STREAM_TYPE_VIDEO) { + trackSelection.insert( + {flutter::EncodableValue("trackType"), flutter::EncodableValue(type)}); + if (type == PLAYER_STREAM_TYPE_VIDEO) { LOG_INFO("[MediaPlayer] video_count: %d", track_count); for (int video_index = 0; video_index < track_count; video_index++) { @@ -411,7 +434,7 @@ flutter::EncodableList MediaPlayer::getTrackInfo(int32_t track_type) { trackSelections.push_back(flutter::EncodableValue(trackSelection)); } - } else if (track_type == PLAYER_STREAM_TYPE_AUDIO) { + } else if (type == PLAYER_STREAM_TYPE_AUDIO) { LOG_INFO("[MediaPlayer] audio_count: %d", track_count); for (int audio_index = 0; audio_index < track_count; audio_index++) { @@ -445,7 +468,7 @@ flutter::EncodableList MediaPlayer::getTrackInfo(int32_t track_type) { trackSelections.push_back(flutter::EncodableValue(trackSelection)); } - } else if (track_type == PLAYER_STREAM_TYPE_TEXT) { + } else if (type == PLAYER_STREAM_TYPE_TEXT) { LOG_INFO("[MediaPlayer] subtitle_count: %d", track_count); for (int sub_index = 0; sub_index < track_count; sub_index++) { @@ -474,8 +497,9 @@ flutter::EncodableList MediaPlayer::getTrackInfo(int32_t track_type) { return trackSelections; } -bool MediaPlayer::SetTrackSelection(int32_t track_id, int32_t track_type) { - LOG_INFO("[MediaPlayer] track_id: %d,track_type: %d", track_id, track_type); +bool MediaPlayer::SetTrackSelection(int32_t track_id, std::string track_type) { + LOG_INFO("[MediaPlayer] track_id: %d,track_type: %s", track_id, + track_type.c_str()); player_state_e state = PLAYER_STATE_NONE; int ret = player_get_state(player_, &state); @@ -489,8 +513,7 @@ bool MediaPlayer::SetTrackSelection(int32_t track_id, int32_t track_type) { return false; } - ret = - player_select_track(player_, (player_stream_type_e)track_type, track_id); + ret = player_select_track(player_, ConvertTrackType(track_type), track_id); if (ret != PLAYER_ERROR_NONE) { LOG_ERROR("[MediaPlayer] player_select_track failed: %s", get_error_message(ret)); diff --git a/packages/video_player_avplayer/tizen/src/media_player.h b/packages/video_player_avplay/tizen/src/media_player.h similarity index 84% rename from packages/video_player_avplayer/tizen/src/media_player.h rename to packages/video_player_avplay/tizen/src/media_player.h index 042ec9d45..6c8675f86 100644 --- a/packages/video_player_avplayer/tizen/src/media_player.h +++ b/packages/video_player_avplay/tizen/src/media_player.h @@ -28,18 +28,18 @@ class MediaPlayer : public VideoPlayer { void SetDisplayRoi(int32_t x, int32_t y, int32_t width, int32_t height) override; - void Play() override; - void Pause() override; - void SetLooping(bool is_looping) override; - void SetVolume(double volume) override; - void SetPlaybackSpeed(double speed) override; - void SeekTo(int64_t position, SeekCompletedCallback callback) override; + bool Play() override; + bool Pause() override; + bool SetLooping(bool is_looping) override; + bool SetVolume(double volume) override; + bool SetPlaybackSpeed(double speed) override; + bool SeekTo(int64_t position, SeekCompletedCallback callback) override; int64_t GetPosition() override; int64_t GetDuration() override; void GetVideoSize(int32_t *width, int32_t *height) override; - bool isReady() override; - flutter::EncodableList getTrackInfo(int32_t track_type) override; - bool SetTrackSelection(int32_t track_id, int32_t track_type) override; + bool IsReady() override; + flutter::EncodableList getTrackInfo(std::string track_type) override; + bool SetTrackSelection(int32_t track_id, std::string track_type) override; private: bool SetDisplay(); diff --git a/packages/video_player_avplayer/tizen/src/media_player_proxy.cc b/packages/video_player_avplay/tizen/src/media_player_proxy.cc similarity index 91% rename from packages/video_player_avplayer/tizen/src/media_player_proxy.cc rename to packages/video_player_avplay/tizen/src/media_player_proxy.cc index 86c97f12c..06adafac1 100644 --- a/packages/video_player_avplayer/tizen/src/media_player_proxy.cc +++ b/packages/video_player_avplay/tizen/src/media_player_proxy.cc @@ -52,14 +52,14 @@ int MediaPlayerProxy::player_set_ecore_wl_display(player_h player, int height) { if (!media_player_handle_) { LOG_ERROR("media_player_handle_ not valid"); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } FuncPlayerSetEcoreWlDisplay player_set_ecore_wl_display = reinterpret_cast( dlsym(media_player_handle_, "player_set_ecore_wl_display")); if (!player_set_ecore_wl_display) { LOG_ERROR("Fail to find player_set_ecore_wl_display."); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } return player_set_ecore_wl_display(player, type, ecore_wl_window, x, y, width, height); @@ -70,14 +70,14 @@ int MediaPlayerProxy::player_set_drm_handle(player_h player, int drm_handle) { if (!media_player_handle_) { LOG_ERROR("media_player_handle_ not valid"); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } FuncPlayerSetDrmHandle player_set_drm_handle = reinterpret_cast( dlsym(media_player_handle_, "player_set_drm_handle")); if (!player_set_drm_handle) { LOG_ERROR("Fail to find player_set_ecore_wl_display."); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } return player_set_drm_handle(player, drm_type, drm_handle); } @@ -86,14 +86,14 @@ int MediaPlayerProxy::player_set_drm_init_complete_cb( player_h player, security_init_complete_cb callback, void* user_data) { if (!media_player_handle_) { LOG_ERROR("media_player_handle_ not valid"); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } FuncPlayerSetDrmInitCompleteCB player_set_drm_init_complete_cb = reinterpret_cast( dlsym(media_player_handle_, "player_set_drm_init_complete_cb")); if (!player_set_drm_init_complete_cb) { LOG_ERROR("Fail to find player_set_drm_init_complete_cb."); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } return player_set_drm_init_complete_cb(player, callback, user_data); } @@ -103,14 +103,14 @@ int MediaPlayerProxy::player_set_drm_init_data_cb(player_h player, void* user_data) { if (!media_player_handle_) { LOG_ERROR("media_player_handle_ not valid"); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } FuncPlayerSetDrmInitDataCB player_set_drm_init_data_cb = reinterpret_cast( dlsym(media_player_handle_, "player_set_drm_init_data_cb")); if (!player_set_drm_init_data_cb) { LOG_ERROR("Fail to find player_set_drm_init_data_cb."); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } return player_set_drm_init_data_cb(player, callback, user_data); } @@ -120,14 +120,14 @@ int MediaPlayerProxy::player_get_track_count_v2(player_h player, int* pcount) { if (!media_player_handle_) { LOG_ERROR("media_player_handle_ not valid"); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } FuncPlayerGetTrackCountV2 player_get_track_count_v2 = reinterpret_cast( dlsym(media_player_handle_, "player_get_track_count_v2")); if (!player_get_track_count_v2) { LOG_ERROR("Fail to find player_get_track_count_v2."); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } return player_get_track_count_v2(player, type, pcount); } @@ -136,14 +136,14 @@ int MediaPlayerProxy::player_get_video_track_info_v2( player_h player, int index, player_video_track_info_v2** track_info) { if (!media_player_handle_) { LOG_ERROR("media_player_handle_ not valid"); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } FuncPlayerGetVideoTrackInfoV2 player_get_video_track_info_v2 = reinterpret_cast( dlsym(media_player_handle_, "player_get_video_track_info_v2")); if (!player_get_video_track_info_v2) { LOG_ERROR("Fail to find player_get_video_track_info_v2."); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } return player_get_video_track_info_v2(player, index, track_info); } @@ -152,14 +152,14 @@ int MediaPlayerProxy::player_get_audio_track_info_v2( player_h player, int index, player_audio_track_info_v2** track_info) { if (!media_player_handle_) { LOG_ERROR("media_player_handle_ not valid"); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } FuncPlayerGetAudioTrackInfoV2 player_get_audio_track_info_v2 = reinterpret_cast( dlsym(media_player_handle_, "player_get_audio_track_info_v2")); if (!player_get_audio_track_info_v2) { LOG_ERROR("Fail to find player_get_audio_track_info_v2."); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } return player_get_audio_track_info_v2(player, index, track_info); } @@ -168,14 +168,14 @@ int MediaPlayerProxy::player_get_subtitle_track_info_v2( player_h player, int index, player_subtitle_track_info_v2** track_info) { if (!media_player_handle_) { LOG_ERROR("media_player_handle_ not valid"); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } FuncPlayerGetSubtitleTrackInfoV2 player_get_subtitle_track_info_v2 = reinterpret_cast( dlsym(media_player_handle_, "player_get_subtitle_track_info_v2")); if (!player_get_subtitle_track_info_v2) { LOG_ERROR("Fail to find player_get_subtitle_track_info_v2."); - return -1; + return PLAYER_ERROR_NOT_AVAILABLE; } return player_get_subtitle_track_info_v2(player, index, track_info); } diff --git a/packages/video_player_avplayer/tizen/src/media_player_proxy.h b/packages/video_player_avplay/tizen/src/media_player_proxy.h similarity index 100% rename from packages/video_player_avplayer/tizen/src/media_player_proxy.h rename to packages/video_player_avplay/tizen/src/media_player_proxy.h diff --git a/packages/video_player_avplayer/tizen/src/messages.cc b/packages/video_player_avplay/tizen/src/messages.cc similarity index 93% rename from packages/video_player_avplayer/tizen/src/messages.cc rename to packages/video_player_avplay/tizen/src/messages.cc index b9449481f..79ec33fd0 100644 --- a/packages/video_player_avplayer/tizen/src/messages.cc +++ b/packages/video_player_avplay/tizen/src/messages.cc @@ -153,7 +153,8 @@ TrackMessage TrackMessage::FromEncodableList(const EncodableList& list) { // TrackTypeMessage -TrackTypeMessage::TrackTypeMessage(int64_t player_id, int64_t track_type) +TrackTypeMessage::TrackTypeMessage(int64_t player_id, + const std::string& track_type) : player_id_(player_id), track_type_(track_type) {} int64_t TrackTypeMessage::player_id() const { return player_id_; } @@ -162,9 +163,9 @@ void TrackTypeMessage::set_player_id(int64_t value_arg) { player_id_ = value_arg; } -int64_t TrackTypeMessage::track_type() const { return track_type_; } +const std::string& TrackTypeMessage::track_type() const { return track_type_; } -void TrackTypeMessage::set_track_type(int64_t value_arg) { +void TrackTypeMessage::set_track_type(std::string_view value_arg) { track_type_ = value_arg; } @@ -178,7 +179,7 @@ EncodableList TrackTypeMessage::ToEncodableList() const { TrackTypeMessage TrackTypeMessage::FromEncodableList( const EncodableList& list) { - TrackTypeMessage decoded(list[0].LongValue(), list[1].LongValue()); + TrackTypeMessage decoded(list[0].LongValue(), std::get(list[1])); return decoded; } @@ -186,7 +187,7 @@ TrackTypeMessage TrackTypeMessage::FromEncodableList( SelectedTracksMessage::SelectedTracksMessage(int64_t player_id, int64_t track_id, - int64_t track_type) + const std::string& track_type) : player_id_(player_id), track_id_(track_id), track_type_(track_type) {} int64_t SelectedTracksMessage::player_id() const { return player_id_; } @@ -201,9 +202,11 @@ void SelectedTracksMessage::set_track_id(int64_t value_arg) { track_id_ = value_arg; } -int64_t SelectedTracksMessage::track_type() const { return track_type_; } +const std::string& SelectedTracksMessage::track_type() const { + return track_type_; +} -void SelectedTracksMessage::set_track_type(int64_t value_arg) { +void SelectedTracksMessage::set_track_type(std::string_view value_arg) { track_type_ = value_arg; } @@ -219,7 +222,7 @@ EncodableList SelectedTracksMessage::ToEncodableList() const { SelectedTracksMessage SelectedTracksMessage::FromEncodableList( const EncodableList& list) { SelectedTracksMessage decoded(list[0].LongValue(), list[1].LongValue(), - list[2].LongValue()); + std::get(list[2])); return decoded; } @@ -484,10 +487,9 @@ GeometryMessage GeometryMessage::FromEncodableList(const EncodableList& list) { return decoded; } -VideoPlayerVideoholeApiCodecSerializer:: - VideoPlayerVideoholeApiCodecSerializer() {} +VideoPlayerAvplayApiCodecSerializer::VideoPlayerAvplayApiCodecSerializer() {} -EncodableValue VideoPlayerVideoholeApiCodecSerializer::ReadValueOfType( +EncodableValue VideoPlayerAvplayApiCodecSerializer::ReadValueOfType( uint8_t type, flutter::ByteStreamReader* stream) const { switch (type) { case 128: @@ -528,7 +530,7 @@ EncodableValue VideoPlayerVideoholeApiCodecSerializer::ReadValueOfType( } } -void VideoPlayerVideoholeApiCodecSerializer::WriteValue( +void VideoPlayerAvplayApiCodecSerializer::WriteValue( const EncodableValue& value, flutter::ByteStreamWriter* stream) const { if (const CustomEncodableValue* custom_value = std::get_if(&value)) { @@ -624,20 +626,20 @@ void VideoPlayerVideoholeApiCodecSerializer::WriteValue( flutter::StandardCodecSerializer::WriteValue(value, stream); } -/// The codec used by VideoPlayerVideoholeApi. -const flutter::StandardMessageCodec& VideoPlayerVideoholeApi::GetCodec() { +/// The codec used by VideoPlayerAvplayApi. +const flutter::StandardMessageCodec& VideoPlayerAvplayApi::GetCodec() { return flutter::StandardMessageCodec::GetInstance( - &VideoPlayerVideoholeApiCodecSerializer::GetInstance()); + &VideoPlayerAvplayApiCodecSerializer::GetInstance()); } -// Sets up an instance of `VideoPlayerVideoholeApi` to handle messages through -// the `binary_messenger`. -void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, - VideoPlayerVideoholeApi* api) { +// Sets up an instance of `VideoPlayerAvplayApi` to handle messages through the +// `binary_messenger`. +void VideoPlayerAvplayApi::SetUp(flutter::BinaryMessenger* binary_messenger, + VideoPlayerAvplayApi* api) { { auto channel = std::make_unique>( - binary_messenger, - "dev.flutter.pigeon.VideoPlayerVideoholeApi.initialize", &GetCodec()); + binary_messenger, "dev.flutter.pigeon.VideoPlayerAvplayApi.initialize", + &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( [api](const EncodableValue& message, @@ -661,7 +663,7 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, } { auto channel = std::make_unique>( - binary_messenger, "dev.flutter.pigeon.VideoPlayerVideoholeApi.create", + binary_messenger, "dev.flutter.pigeon.VideoPlayerAvplayApi.create", &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( @@ -695,7 +697,7 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, } { auto channel = std::make_unique>( - binary_messenger, "dev.flutter.pigeon.VideoPlayerVideoholeApi.dispose", + binary_messenger, "dev.flutter.pigeon.VideoPlayerAvplayApi.dispose", &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( @@ -728,8 +730,8 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, } { auto channel = std::make_unique>( - binary_messenger, - "dev.flutter.pigeon.VideoPlayerVideoholeApi.setLooping", &GetCodec()); + binary_messenger, "dev.flutter.pigeon.VideoPlayerAvplayApi.setLooping", + &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( [api](const EncodableValue& message, @@ -761,8 +763,8 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, } { auto channel = std::make_unique>( - binary_messenger, - "dev.flutter.pigeon.VideoPlayerVideoholeApi.setVolume", &GetCodec()); + binary_messenger, "dev.flutter.pigeon.VideoPlayerAvplayApi.setVolume", + &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( [api](const EncodableValue& message, @@ -795,7 +797,7 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, { auto channel = std::make_unique>( binary_messenger, - "dev.flutter.pigeon.VideoPlayerVideoholeApi.setPlaybackSpeed", + "dev.flutter.pigeon.VideoPlayerAvplayApi.setPlaybackSpeed", &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( @@ -829,7 +831,7 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, } { auto channel = std::make_unique>( - binary_messenger, "dev.flutter.pigeon.VideoPlayerVideoholeApi.play", + binary_messenger, "dev.flutter.pigeon.VideoPlayerAvplayApi.play", &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( @@ -863,8 +865,7 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, { auto channel = std::make_unique>( binary_messenger, - "dev.flutter.pigeon.VideoPlayerVideoholeApi.setDeactivate", - &GetCodec()); + "dev.flutter.pigeon.VideoPlayerAvplayApi.setDeactivate", &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( [api](const EncodableValue& message, @@ -896,8 +897,8 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, } { auto channel = std::make_unique>( - binary_messenger, - "dev.flutter.pigeon.VideoPlayerVideoholeApi.setActivate", &GetCodec()); + binary_messenger, "dev.flutter.pigeon.VideoPlayerAvplayApi.setActivate", + &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( [api](const EncodableValue& message, @@ -929,7 +930,7 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, } { auto channel = std::make_unique>( - binary_messenger, "dev.flutter.pigeon.VideoPlayerVideoholeApi.track", + binary_messenger, "dev.flutter.pigeon.VideoPlayerAvplayApi.track", &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( @@ -964,7 +965,7 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, { auto channel = std::make_unique>( binary_messenger, - "dev.flutter.pigeon.VideoPlayerVideoholeApi.setTrackSelection", + "dev.flutter.pigeon.VideoPlayerAvplayApi.setTrackSelection", &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( @@ -997,7 +998,7 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, } { auto channel = std::make_unique>( - binary_messenger, "dev.flutter.pigeon.VideoPlayerVideoholeApi.position", + binary_messenger, "dev.flutter.pigeon.VideoPlayerAvplayApi.position", &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( @@ -1031,7 +1032,7 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, } { auto channel = std::make_unique>( - binary_messenger, "dev.flutter.pigeon.VideoPlayerVideoholeApi.seekTo", + binary_messenger, "dev.flutter.pigeon.VideoPlayerAvplayApi.seekTo", &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( @@ -1066,7 +1067,7 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, } { auto channel = std::make_unique>( - binary_messenger, "dev.flutter.pigeon.VideoPlayerVideoholeApi.pause", + binary_messenger, "dev.flutter.pigeon.VideoPlayerAvplayApi.pause", &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( @@ -1100,7 +1101,7 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, { auto channel = std::make_unique>( binary_messenger, - "dev.flutter.pigeon.VideoPlayerVideoholeApi.setMixWithOthers", + "dev.flutter.pigeon.VideoPlayerAvplayApi.setMixWithOthers", &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( @@ -1135,7 +1136,7 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, { auto channel = std::make_unique>( binary_messenger, - "dev.flutter.pigeon.VideoPlayerVideoholeApi.setDisplayGeometry", + "dev.flutter.pigeon.VideoPlayerAvplayApi.setDisplayGeometry", &GetCodec()); if (api != nullptr) { channel->SetMessageHandler( @@ -1169,14 +1170,13 @@ void VideoPlayerVideoholeApi::SetUp(flutter::BinaryMessenger* binary_messenger, } } -EncodableValue VideoPlayerVideoholeApi::WrapError( - std::string_view error_message) { +EncodableValue VideoPlayerAvplayApi::WrapError(std::string_view error_message) { return EncodableValue( EncodableList{EncodableValue(std::string(error_message)), EncodableValue("Error"), EncodableValue()}); } -EncodableValue VideoPlayerVideoholeApi::WrapError(const FlutterError& error) { +EncodableValue VideoPlayerAvplayApi::WrapError(const FlutterError& error) { return EncodableValue(EncodableList{EncodableValue(error.code()), EncodableValue(error.message()), error.details()}); diff --git a/packages/video_player_avplayer/tizen/src/messages.h b/packages/video_player_avplay/tizen/src/messages.h similarity index 84% rename from packages/video_player_avplayer/tizen/src/messages.h rename to packages/video_player_avplay/tizen/src/messages.h index 43de11b83..d4e863492 100644 --- a/packages/video_player_avplayer/tizen/src/messages.h +++ b/packages/video_player_avplay/tizen/src/messages.h @@ -46,7 +46,7 @@ class ErrorOr { const FlutterError& error() const { return std::get(v_); }; private: - friend class VideoPlayerVideoholeApi; + friend class VideoPlayerAvplayApi; ErrorOr() = default; T TakeValue() && { return std::get(std::move(v_)); } @@ -65,8 +65,8 @@ class PlayerMessage { private: static PlayerMessage FromEncodableList(const flutter::EncodableList& list); flutter::EncodableList ToEncodableList() const; - friend class VideoPlayerVideoholeApi; - friend class VideoPlayerVideoholeApiCodecSerializer; + friend class VideoPlayerAvplayApi; + friend class VideoPlayerAvplayApiCodecSerializer; int64_t player_id_; }; @@ -85,8 +85,8 @@ class LoopingMessage { private: static LoopingMessage FromEncodableList(const flutter::EncodableList& list); flutter::EncodableList ToEncodableList() const; - friend class VideoPlayerVideoholeApi; - friend class VideoPlayerVideoholeApiCodecSerializer; + friend class VideoPlayerAvplayApi; + friend class VideoPlayerAvplayApiCodecSerializer; int64_t player_id_; bool is_looping_; }; @@ -106,8 +106,8 @@ class VolumeMessage { private: static VolumeMessage FromEncodableList(const flutter::EncodableList& list); flutter::EncodableList ToEncodableList() const; - friend class VideoPlayerVideoholeApi; - friend class VideoPlayerVideoholeApiCodecSerializer; + friend class VideoPlayerAvplayApi; + friend class VideoPlayerAvplayApiCodecSerializer; int64_t player_id_; double volume_; }; @@ -128,8 +128,8 @@ class PlaybackSpeedMessage { static PlaybackSpeedMessage FromEncodableList( const flutter::EncodableList& list); flutter::EncodableList ToEncodableList() const; - friend class VideoPlayerVideoholeApi; - friend class VideoPlayerVideoholeApiCodecSerializer; + friend class VideoPlayerAvplayApi; + friend class VideoPlayerAvplayApiCodecSerializer; int64_t player_id_; double speed_; }; @@ -150,8 +150,8 @@ class TrackMessage { private: static TrackMessage FromEncodableList(const flutter::EncodableList& list); flutter::EncodableList ToEncodableList() const; - friend class VideoPlayerVideoholeApi; - friend class VideoPlayerVideoholeApiCodecSerializer; + friend class VideoPlayerAvplayApi; + friend class VideoPlayerAvplayApiCodecSerializer; int64_t player_id_; flutter::EncodableList tracks_; }; @@ -160,21 +160,21 @@ class TrackMessage { class TrackTypeMessage { public: // Constructs an object setting all fields. - explicit TrackTypeMessage(int64_t player_id, int64_t track_type); + explicit TrackTypeMessage(int64_t player_id, const std::string& track_type); int64_t player_id() const; void set_player_id(int64_t value_arg); - int64_t track_type() const; - void set_track_type(int64_t value_arg); + const std::string& track_type() const; + void set_track_type(std::string_view value_arg); private: static TrackTypeMessage FromEncodableList(const flutter::EncodableList& list); flutter::EncodableList ToEncodableList() const; - friend class VideoPlayerVideoholeApi; - friend class VideoPlayerVideoholeApiCodecSerializer; + friend class VideoPlayerAvplayApi; + friend class VideoPlayerAvplayApiCodecSerializer; int64_t player_id_; - int64_t track_type_; + std::string track_type_; }; // Generated class from Pigeon that represents data sent in messages. @@ -182,7 +182,7 @@ class SelectedTracksMessage { public: // Constructs an object setting all fields. explicit SelectedTracksMessage(int64_t player_id, int64_t track_id, - int64_t track_type); + const std::string& track_type); int64_t player_id() const; void set_player_id(int64_t value_arg); @@ -190,18 +190,18 @@ class SelectedTracksMessage { int64_t track_id() const; void set_track_id(int64_t value_arg); - int64_t track_type() const; - void set_track_type(int64_t value_arg); + const std::string& track_type() const; + void set_track_type(std::string_view value_arg); private: static SelectedTracksMessage FromEncodableList( const flutter::EncodableList& list); flutter::EncodableList ToEncodableList() const; - friend class VideoPlayerVideoholeApi; - friend class VideoPlayerVideoholeApiCodecSerializer; + friend class VideoPlayerAvplayApi; + friend class VideoPlayerAvplayApiCodecSerializer; int64_t player_id_; int64_t track_id_; - int64_t track_type_; + std::string track_type_; }; // Generated class from Pigeon that represents data sent in messages. @@ -219,8 +219,8 @@ class PositionMessage { private: static PositionMessage FromEncodableList(const flutter::EncodableList& list); flutter::EncodableList ToEncodableList() const; - friend class VideoPlayerVideoholeApi; - friend class VideoPlayerVideoholeApiCodecSerializer; + friend class VideoPlayerAvplayApi; + friend class VideoPlayerAvplayApiCodecSerializer; int64_t player_id_; int64_t position_; }; @@ -270,8 +270,8 @@ class CreateMessage { private: static CreateMessage FromEncodableList(const flutter::EncodableList& list); flutter::EncodableList ToEncodableList() const; - friend class VideoPlayerVideoholeApi; - friend class VideoPlayerVideoholeApiCodecSerializer; + friend class VideoPlayerAvplayApi; + friend class VideoPlayerAvplayApiCodecSerializer; std::optional asset_; std::optional uri_; std::optional package_name_; @@ -294,8 +294,8 @@ class MixWithOthersMessage { static MixWithOthersMessage FromEncodableList( const flutter::EncodableList& list); flutter::EncodableList ToEncodableList() const; - friend class VideoPlayerVideoholeApi; - friend class VideoPlayerVideoholeApiCodecSerializer; + friend class VideoPlayerAvplayApi; + friend class VideoPlayerAvplayApiCodecSerializer; bool mix_with_others_; }; @@ -324,8 +324,8 @@ class GeometryMessage { private: static GeometryMessage FromEncodableList(const flutter::EncodableList& list); flutter::EncodableList ToEncodableList() const; - friend class VideoPlayerVideoholeApi; - friend class VideoPlayerVideoholeApiCodecSerializer; + friend class VideoPlayerAvplayApi; + friend class VideoPlayerAvplayApiCodecSerializer; int64_t player_id_; int64_t x_; int64_t y_; @@ -333,12 +333,12 @@ class GeometryMessage { int64_t height_; }; -class VideoPlayerVideoholeApiCodecSerializer +class VideoPlayerAvplayApiCodecSerializer : public flutter::StandardCodecSerializer { public: - VideoPlayerVideoholeApiCodecSerializer(); - inline static VideoPlayerVideoholeApiCodecSerializer& GetInstance() { - static VideoPlayerVideoholeApiCodecSerializer sInstance; + VideoPlayerAvplayApiCodecSerializer(); + inline static VideoPlayerAvplayApiCodecSerializer& GetInstance() { + static VideoPlayerAvplayApiCodecSerializer sInstance; return sInstance; } @@ -352,11 +352,11 @@ class VideoPlayerVideoholeApiCodecSerializer // Generated interface from Pigeon that represents a handler of messages from // Flutter. -class VideoPlayerVideoholeApi { +class VideoPlayerAvplayApi { public: - VideoPlayerVideoholeApi(const VideoPlayerVideoholeApi&) = delete; - VideoPlayerVideoholeApi& operator=(const VideoPlayerVideoholeApi&) = delete; - virtual ~VideoPlayerVideoholeApi() {} + VideoPlayerAvplayApi(const VideoPlayerAvplayApi&) = delete; + VideoPlayerAvplayApi& operator=(const VideoPlayerAvplayApi&) = delete; + virtual ~VideoPlayerAvplayApi() {} virtual std::optional Initialize() = 0; virtual ErrorOr Create(const CreateMessage& msg) = 0; virtual std::optional Dispose(const PlayerMessage& msg) = 0; @@ -379,16 +379,16 @@ class VideoPlayerVideoholeApi { virtual std::optional SetDisplayGeometry( const GeometryMessage& msg) = 0; - // The codec used by VideoPlayerVideoholeApi. + // The codec used by VideoPlayerAvplayApi. static const flutter::StandardMessageCodec& GetCodec(); - // Sets up an instance of `VideoPlayerVideoholeApi` to handle messages through + // Sets up an instance of `VideoPlayerAvplayApi` to handle messages through // the `binary_messenger`. static void SetUp(flutter::BinaryMessenger* binary_messenger, - VideoPlayerVideoholeApi* api); + VideoPlayerAvplayApi* api); static flutter::EncodableValue WrapError(std::string_view error_message); static flutter::EncodableValue WrapError(const FlutterError& error); protected: - VideoPlayerVideoholeApi() = default; + VideoPlayerAvplayApi() = default; }; #endif // PIGEON_MESSAGES_H_ diff --git a/packages/video_player_avplayer/tizen/src/pending_call.h b/packages/video_player_avplay/tizen/src/pending_call.h similarity index 100% rename from packages/video_player_avplayer/tizen/src/pending_call.h rename to packages/video_player_avplay/tizen/src/pending_call.h diff --git a/packages/video_player_avplayer/tizen/src/plus_player.cc b/packages/video_player_avplay/tizen/src/plus_player.cc similarity index 89% rename from packages/video_player_avplayer/tizen/src/plus_player.cc rename to packages/video_player_avplay/tizen/src/plus_player.cc index f7a0f81c2..be00f8164 100644 --- a/packages/video_player_avplayer/tizen/src/plus_player.cc +++ b/packages/video_player_avplay/tizen/src/plus_player.cc @@ -7,7 +7,6 @@ #include #include #include -#include #include @@ -23,6 +22,18 @@ static std::vector split(const std::string &s, char delim) { return tokens; } +static plusplayer::TrackType ConvertTrackType(std::string track_type) { + if (track_type == "video") { + return plusplayer::TrackType::kTrackTypeVideo; + } + if (track_type == "audio") { + return plusplayer::TrackType::kTrackTypeAudio; + } + if (track_type == "text") { + return plusplayer::TrackType::kTrackTypeSubtitle; + } +} + PlusPlayer::PlusPlayer(flutter::BinaryMessenger *messenger, void *native_window, std::string &video_format) : VideoPlayer(messenger), @@ -36,7 +47,7 @@ int64_t PlusPlayer::Create(const std::string &uri, int drm_type, bool is_prebuffer_mode, flutter::EncodableMap &http_headers) { LOG_INFO("[PlusPlayer] Create player."); - if (!video_format_.compare("dash")) { + if (video_format_ == "dash") { player_ = plusplayer::PlusPlayer::Create(plusplayer::PlayerType::kDASH); } else { player_ = plusplayer::PlusPlayer::Create(); @@ -103,7 +114,7 @@ int64_t PlusPlayer::Create(const std::string &uri, int drm_type, } if (!player_->PrepareAsync()) { - LOG_ERROR("[PlusPlayer] Failed to prepare"); + LOG_ERROR("[PlusPlayer] Failed to prepare."); return -1; } return SetUpEventChannel(); @@ -112,12 +123,23 @@ int64_t PlusPlayer::Create(const std::string &uri, int drm_type, void PlusPlayer::Dispose() { LOG_INFO("[PlusPlayer] Disposing."); - if (player_) { - player_->Stop(); - player_->Close(); + if (!player_) { + LOG_ERROR("[PlusPlayer] Player not created."); + return; + } + if (!player_->Stop()) { + LOG_INFO("[PlusPlayer] Player stop failed."); + return; + } + + plusplayer::State state = player_->GetState(); + if (state == plusplayer::State::kIdle || state == plusplayer::State::kNone) { + if (!player_->Close()) { + LOG_INFO("[PlusPlayer] Player close failed."); + return; + } } - // drm should be released after destroy of player if (drm_manager_) { drm_manager_->ReleaseDrmSession(); } @@ -135,26 +157,31 @@ void PlusPlayer::SetDisplayRoi(int32_t x, int32_t y, int32_t width, } } -void PlusPlayer::Play() { +bool PlusPlayer::Play() { LOG_INFO("[PlusPlayer] Play video."); plusplayer::State state = player_->GetState(); if (state < plusplayer::State::kTrackSourceReady) { LOG_ERROR("[PlusPlayer] Player is not ready."); - return; + return false; } if (state <= plusplayer::State::kReady) { if (!player_->Start()) { LOG_ERROR("[PlusPlayer] Fail to start."); + return false; } + return true; } else if (state == plusplayer::State::kPaused) { if (!player_->Resume()) { LOG_ERROR("[PlusPlayer] Fail to resume playing."); + return false; } + return true; } + return false; } -bool PlusPlayer::SetActivate() { +bool PlusPlayer::Activate() { if (!player_->Activate(plusplayer::kTrackTypeVideo)) { LOG_ERROR("[PlusPlayer] Fail to activate video."); return false; @@ -170,7 +197,7 @@ bool PlusPlayer::SetActivate() { return true; } -bool PlusPlayer::SetDeactivate() { +bool PlusPlayer::Deactivate() { if (is_prebuffer_mode_) { player_->Stop(); return true; @@ -191,53 +218,64 @@ bool PlusPlayer::SetDeactivate() { return true; } -void PlusPlayer::Pause() { +bool PlusPlayer::Pause() { LOG_INFO("[PlusPlayer] Pause video."); plusplayer::State state = player_->GetState(); if (state < plusplayer::State::kReady) { LOG_ERROR("[PlusPlayer] Player is not ready."); - return; + return false; } if (state == plusplayer::State::kPlaying) { if (!player_->Pause()) { LOG_ERROR("[PlusPlayer] Fail to pause video."); + return false; } + return true; } + return false; } -void PlusPlayer::SetLooping(bool is_looping) { +bool PlusPlayer::SetLooping(bool is_looping) { LOG_ERROR("[PlusPlayer] Not support to set looping."); + return false; } -void PlusPlayer::SetVolume(double volume) { +bool PlusPlayer::SetVolume(double volume) { if (player_->GetState() == plusplayer::State::kPlaying || player_->GetState() == plusplayer::State::kPaused) { - player_->SetVolume(volume); + if (!player_->SetVolume(volume)) { + LOG_ERROR("[PlusPlayer] Fail to set volume."); + return false; + } + return true; } + return false; } -void PlusPlayer::SetPlaybackSpeed(double speed) { +bool PlusPlayer::SetPlaybackSpeed(double speed) { LOG_INFO("[PlusPlayer] Sets playback speed(%f).", speed); if (player_->GetState() <= plusplayer::State::kIdle) { LOG_ERROR("[PlusPlayer] Player is not prepared."); - return; + return false; } if (!player_->SetPlaybackRate(speed)) { LOG_ERROR("[PlusPlayer] Fail to set playback rate."); + return false; } + return true; } -void PlusPlayer::SeekTo(int64_t position, SeekCompletedCallback callback) { +bool PlusPlayer::SeekTo(int64_t position, SeekCompletedCallback callback) { LOG_INFO("PlusPlayer seeks to position(%lld)", position); if (player_->GetState() < plusplayer::State::kReady) { LOG_ERROR("[PlusPlayer] Player is not ready."); - return; + return false; } if (on_seek_completed_) { LOG_ERROR("[PlusPlayer] Player is already seeking."); - return; + return false; } on_seek_completed_ = std::move(callback); @@ -250,6 +288,7 @@ void PlusPlayer::SeekTo(int64_t position, SeekCompletedCallback callback) { std::string str = player_->GetStreamingProperty("GET_LIVE_DURATION"); if (str.empty()) { LOG_ERROR("[PlusPlayer] Fail to get live duration."); + return false; } std::vector time_str = split(str, '|'); int64_t start_time = std::stoll(time_str[0].c_str()); @@ -258,19 +297,22 @@ void PlusPlayer::SeekTo(int64_t position, SeekCompletedCallback callback) { if (position < start_time || position > end_time) { on_seek_completed_ = nullptr; LOG_ERROR("[PlusPlayer] position out of range."); - return; + return false; } if (!player_->Seek(position)) { on_seek_completed_ = nullptr; LOG_ERROR("[PlusPlayer] Fail to seek."); + return false; } } else { if (!player_->Seek(position)) { on_seek_completed_ = nullptr; LOG_ERROR("[PlusPlayer] Fail to seek."); + return false; } } + return true; } int64_t PlusPlayer::GetPosition() { @@ -324,17 +366,18 @@ void PlusPlayer::GetVideoSize(int32_t *width, int32_t *height) { *width = track.width; *height = track.height; found = true; + break; } } if (!found) { LOG_ERROR("[PlusPlayer] Failed to get video size."); } else { - LOG_INFO("[PlusPlayer] Video widht: %d, height: %d.", *width, *height); + LOG_INFO("[PlusPlayer] Video width: %d, height: %d.", *width, *height); } } } -bool PlusPlayer::isReady() { +bool PlusPlayer::IsReady() { return plusplayer::State::kReady == player_->GetState(); } @@ -364,33 +407,19 @@ bool PlusPlayer::SetDisplay() { return true; } -flutter::EncodableList PlusPlayer::getTrackInfo(int32_t track_type) { +flutter::EncodableList PlusPlayer::getTrackInfo(std::string track_type) { if (!player_) { LOG_ERROR("[PlusPlayer] Player not created."); return {}; } plusplayer::State state = player_->GetState(); - if (state == plusplayer::State::kNone || state == plusplayer::State::kIdle) { + if (state < plusplayer::State::kTrackSourceReady) { LOG_ERROR("[PlusPlayer] Player is in invalid state."); return {}; } - plusplayer::TrackType type; - switch (track_type) { - case 1: - type = plusplayer::TrackType::kTrackTypeAudio; - break; - case 2: - type = plusplayer::TrackType::kTrackTypeVideo; - break; - case 3: - type = plusplayer::TrackType::kTrackTypeSubtitle; - break; - default: - LOG_ERROR("[PlusPlayer] Invalid track type: %d", track_type); - return {}; - } + plusplayer::TrackType type = ConvertTrackType(track_type); int track_count = player_->GetTrackCount(type); if (track_count <= 0) { @@ -469,8 +498,9 @@ flutter::EncodableList PlusPlayer::getTrackInfo(int32_t track_type) { return trackSelections; } -bool PlusPlayer::SetTrackSelection(int32_t track_id, int32_t track_type) { - LOG_INFO("[PlusPlayer] track_id: %d,track_type: %d", track_id, track_type); +bool PlusPlayer::SetTrackSelection(int32_t track_id, std::string track_type) { + LOG_INFO("[PlusPlayer] track_id: %d,track_type: %s", track_id, + track_type.c_str()); if (!player_) { LOG_ERROR("[PlusPlayer] Player not created."); @@ -478,27 +508,12 @@ bool PlusPlayer::SetTrackSelection(int32_t track_id, int32_t track_type) { } plusplayer::State state = player_->GetState(); - if (state == plusplayer::State::kNone || state == plusplayer::State::kIdle) { + if (state < plusplayer::State::kTrackSourceReady) { LOG_ERROR("[PlusPlayer] Player is in invalid state."); return false; } - plusplayer::TrackType type; - switch (track_type) { - case 1: - type = plusplayer::TrackType::kTrackTypeAudio; - break; - case 2: - type = plusplayer::TrackType::kTrackTypeVideo; - break; - case 3: - type = plusplayer::TrackType::kTrackTypeSubtitle; - break; - default: - LOG_ERROR("[PlusPlayer] Invalid track type: %d", track_type); - return {}; - } - if (!player_->SelectTrack(type, track_id)) { + if (!player_->SelectTrack(ConvertTrackType(track_type), track_id)) { LOG_ERROR("[PlusPlayer] Player select track failed."); return false; } diff --git a/packages/video_player_avplayer/tizen/src/plus_player.h b/packages/video_player_avplay/tizen/src/plus_player.h similarity index 86% rename from packages/video_player_avplayer/tizen/src/plus_player.h rename to packages/video_player_avplay/tizen/src/plus_player.h index 5e20a12ae..6f5b3023c 100644 --- a/packages/video_player_avplayer/tizen/src/plus_player.h +++ b/packages/video_player_avplay/tizen/src/plus_player.h @@ -28,20 +28,20 @@ class PlusPlayer : public VideoPlayer, public plusplayer::EventListener { void SetDisplayRoi(int32_t x, int32_t y, int32_t width, int32_t height) override; - void Play() override; - bool SetDeactivate() override; - bool SetActivate() override; - void Pause() override; - void SetLooping(bool is_looping) override; - void SetVolume(double volume) override; - void SetPlaybackSpeed(double speed) override; - void SeekTo(int64_t position, SeekCompletedCallback callback) override; + bool Play() override; + bool Deactivate() override; + bool Activate() override; + bool Pause() override; + bool SetLooping(bool is_looping) override; + bool SetVolume(double volume) override; + bool SetPlaybackSpeed(double speed) override; + bool SeekTo(int64_t position, SeekCompletedCallback callback) override; int64_t GetPosition() override; int64_t GetDuration() override; void GetVideoSize(int32_t *width, int32_t *height) override; - bool isReady() override; - flutter::EncodableList getTrackInfo(int32_t track_type) override; - bool SetTrackSelection(int32_t track_id, int32_t track_type) override; + bool IsReady() override; + flutter::EncodableList getTrackInfo(std::string track_type) override; + bool SetTrackSelection(int32_t track_id, std::string track_type) override; private: bool SetDisplay(); @@ -89,4 +89,4 @@ class PlusPlayer : public VideoPlayer, public plusplayer::EventListener { SeekCompletedCallback on_seek_completed_; }; -#endif // VIDEO_PLAYER_H_ +#endif // FLUTTER_PLUGIN_PLUS_PLAYER_H_ diff --git a/packages/video_player_avplayer/tizen/src/video_player.cc b/packages/video_player_avplay/tizen/src/video_player.cc similarity index 99% rename from packages/video_player_avplayer/tizen/src/video_player.cc rename to packages/video_player_avplay/tizen/src/video_player.cc index 44fcf1de8..8fbd424ed 100644 --- a/packages/video_player_avplayer/tizen/src/video_player.cc +++ b/packages/video_player_avplay/tizen/src/video_player.cc @@ -47,7 +47,7 @@ int64_t VideoPlayer::SetUpEventChannel() { std::unique_ptr> &&events) -> std::unique_ptr> { event_sink_ = std::move(events); - if (isReady()) { + if (IsReady()) { SendInitialized(); } else { LOG_INFO("Video Player is not ready."); diff --git a/packages/video_player_avplayer/tizen/src/video_player.h b/packages/video_player_avplay/tizen/src/video_player.h similarity index 82% rename from packages/video_player_avplayer/tizen/src/video_player.h rename to packages/video_player_avplay/tizen/src/video_player.h index 53d3c3154..e6d5f2dfd 100644 --- a/packages/video_player_avplayer/tizen/src/video_player.h +++ b/packages/video_player_avplay/tizen/src/video_player.h @@ -35,19 +35,19 @@ class VideoPlayer { virtual void SetDisplayRoi(int32_t x, int32_t y, int32_t width, int32_t height) = 0; - virtual void Play() = 0; - virtual bool SetDeactivate() { return false; }; - virtual bool SetActivate() { return false; }; - virtual void Pause() = 0; - virtual void SetLooping(bool is_looping) = 0; - virtual void SetVolume(double volume) = 0; - virtual void SetPlaybackSpeed(double speed) = 0; - virtual void SeekTo(int64_t position, SeekCompletedCallback callback) = 0; + virtual bool Play() = 0; + virtual bool Deactivate() { return false; }; + virtual bool Activate() { return false; }; + virtual bool Pause() = 0; + virtual bool SetLooping(bool is_looping) = 0; + virtual bool SetVolume(double volume) = 0; + virtual bool SetPlaybackSpeed(double speed) = 0; + virtual bool SeekTo(int64_t position, SeekCompletedCallback callback) = 0; virtual int64_t GetPosition() = 0; virtual int64_t GetDuration() = 0; - virtual bool isReady() = 0; - virtual flutter::EncodableList getTrackInfo(int32_t track_type) = 0; - virtual bool SetTrackSelection(int32_t track_id, int32_t track_type) = 0; + virtual bool IsReady() = 0; + virtual flutter::EncodableList getTrackInfo(std::string track_type) = 0; + virtual bool SetTrackSelection(int32_t track_id, std::string track_type) = 0; // send port is used for drm void RegisterSendPort(Dart_Port send_port) { send_port_ = send_port; } diff --git a/packages/video_player_avplayer/tizen/src/video_player_options.h b/packages/video_player_avplay/tizen/src/video_player_options.h similarity index 100% rename from packages/video_player_avplayer/tizen/src/video_player_options.h rename to packages/video_player_avplay/tizen/src/video_player_options.h diff --git a/packages/video_player_avplayer/tizen/src/video_player_tizen_plugin.cc b/packages/video_player_avplay/tizen/src/video_player_tizen_plugin.cc similarity index 84% rename from packages/video_player_avplayer/tizen/src/video_player_tizen_plugin.cc rename to packages/video_player_avplay/tizen/src/video_player_tizen_plugin.cc index 29a129b7d..73e049f37 100644 --- a/packages/video_player_avplayer/tizen/src/video_player_tizen_plugin.cc +++ b/packages/video_player_avplay/tizen/src/video_player_tizen_plugin.cc @@ -23,7 +23,7 @@ namespace { class VideoPlayerTizenPlugin : public flutter::Plugin, - public VideoPlayerVideoholeApi { + public VideoPlayerAvplayApi { public: static void RegisterWithRegistrar( FlutterDesktopPluginRegistrarRef registrar_ref, @@ -85,7 +85,7 @@ VideoPlayerTizenPlugin::VideoPlayerTizenPlugin( FlutterDesktopPluginRegistrarRef registrar_ref, flutter::PluginRegistrar *plugin_registrar) : registrar_ref_(registrar_ref), plugin_registrar_(plugin_registrar) { - VideoPlayerVideoholeApi::SetUp(plugin_registrar->messenger(), this); + VideoPlayerAvplayApi::SetUp(plugin_registrar->messenger(), this); } VideoPlayerTizenPlugin::~VideoPlayerTizenPlugin() { DisposeAllPlayers(); } @@ -178,12 +178,18 @@ ErrorOr VideoPlayerTizenPlugin::Create( native_window, format); player_id = player->Create(uri, drm_type, license_server_url, prebuffer_mode, http_headers); + if (player_id == -1) { + return FlutterError("Operation failed", "Failed to create a player."); + } players_[player_id] = std::move(player); } else { auto player = std::make_unique(plugin_registrar_->messenger(), native_window); player_id = player->Create(uri, drm_type, license_server_url, prebuffer_mode, http_headers); + if (player_id == -1) { + return FlutterError("Operation failed", "Failed to create a player."); + } players_[player_id] = std::move(player); } @@ -205,9 +211,11 @@ std::optional VideoPlayerTizenPlugin::SetLooping( const LoopingMessage &msg) { VideoPlayer *player = FindPlayerById(msg.player_id()); if (!player) { - return FlutterError("Invalid argument", "Player not found."); + return FlutterError("Invalid argument", "Player not found"); + } + if (!player->SetLooping(msg.is_looping())) { + return FlutterError("SetLooping", "Player set looping failed"); } - player->SetLooping(msg.is_looping()); return std::nullopt; } @@ -215,9 +223,11 @@ std::optional VideoPlayerTizenPlugin::SetVolume( const VolumeMessage &msg) { VideoPlayer *player = FindPlayerById(msg.player_id()); if (!player) { - return FlutterError("Invalid argument", "Player not found."); + return FlutterError("Invalid argument", "Player not found"); + } + if (!player->SetVolume(msg.volume())) { + return FlutterError("SetVolume", "Player set volume failed"); } - player->SetVolume(msg.volume()); return std::nullopt; } @@ -225,9 +235,11 @@ std::optional VideoPlayerTizenPlugin::SetPlaybackSpeed( const PlaybackSpeedMessage &msg) { VideoPlayer *player = FindPlayerById(msg.player_id()); if (!player) { - return FlutterError("Invalid argument", "Player not found."); + return FlutterError("Invalid argument", "Player not found"); + } + if (!player->SetPlaybackSpeed(msg.speed())) { + return FlutterError("SetPlaybackSpeed", "Player set playback speed failed"); } - player->SetPlaybackSpeed(msg.speed()); return std::nullopt; } @@ -236,7 +248,7 @@ ErrorOr VideoPlayerTizenPlugin::Track( VideoPlayer *player = FindPlayerById(msg.player_id()); if (!player) { - return FlutterError("Invalid argument", "Player not found."); + return FlutterError("Invalid argument", "Player not found"); } TrackMessage result(msg.player_id(), player->getTrackInfo(msg.track_type())); @@ -247,7 +259,7 @@ ErrorOr VideoPlayerTizenPlugin::SetTrackSelection( const SelectedTracksMessage &msg) { VideoPlayer *player = FindPlayerById(msg.player_id()); if (!player) { - return FlutterError("Invalid argument", "Player not found."); + return FlutterError("Invalid argument", "Player not found"); } return player->SetTrackSelection(msg.track_id(), msg.track_type()); } @@ -256,35 +268,39 @@ std::optional VideoPlayerTizenPlugin::Play( const PlayerMessage &msg) { VideoPlayer *player = FindPlayerById(msg.player_id()); if (!player) { - return FlutterError("Invalid argument", "Player not found."); + return FlutterError("Invalid argument", "Player not found"); + } + if (!player->Play()) { + return FlutterError("Play", "Player play failed"); } - player->Play(); return std::nullopt; } ErrorOr VideoPlayerTizenPlugin::SetDeactivate(const PlayerMessage &msg) { VideoPlayer *player = FindPlayerById(msg.player_id()); if (!player) { - return FlutterError("Invalid argument", "Player not found."); + return FlutterError("Invalid argument", "Player not found"); } - return player->SetDeactivate(); + return player->Deactivate(); } ErrorOr VideoPlayerTizenPlugin::SetActivate(const PlayerMessage &msg) { VideoPlayer *player = FindPlayerById(msg.player_id()); if (!player) { - return FlutterError("Invalid argument", "Player not found."); + return FlutterError("Invalid argument", "Player not found"); } - return player->SetActivate(); + return player->Activate(); } std::optional VideoPlayerTizenPlugin::Pause( const PlayerMessage &msg) { VideoPlayer *player = FindPlayerById(msg.player_id()); if (!player) { - return FlutterError("Invalid argument", "Player not found."); + return FlutterError("Invalid argument", "Player not found"); + } + if (!player->Pause()) { + return FlutterError("Pause", "Player pause failed"); } - player->Pause(); return std::nullopt; } @@ -292,7 +308,7 @@ ErrorOr VideoPlayerTizenPlugin::Position( const PlayerMessage &msg) { VideoPlayer *player = FindPlayerById(msg.player_id()); if (!player) { - return FlutterError("Invalid argument", "Player not found."); + return FlutterError("Invalid argument", "Player not found"); } PositionMessage result(msg.player_id(), player->GetPosition()); return result; @@ -303,17 +319,20 @@ void VideoPlayerTizenPlugin::SeekTo( std::function reply)> result) { VideoPlayer *player = FindPlayerById(msg.player_id()); if (!player) { - result(FlutterError("Invalid argument", "Player not found.")); + result(FlutterError("Invalid argument", "Player not found")); return; } - player->SeekTo(msg.position(), [result]() -> void { result(std::nullopt); }); + if (!player->SeekTo(msg.position(), + [result]() -> void { result(std::nullopt); })) { + result(FlutterError("SeekTo", "Player seek to failed")); + } } std::optional VideoPlayerTizenPlugin::SetDisplayGeometry( const GeometryMessage &msg) { VideoPlayer *player = FindPlayerById(msg.player_id()); if (!player) { - return FlutterError("Invalid argument", "Player not found."); + return FlutterError("Invalid argument", "Player not found"); } player->SetDisplayRoi(msg.x(), msg.y(), msg.width(), msg.height()); return std::nullopt;