modify pd for downloading at playing state and capture
authorYounghwan Ahn <younghwan_.an@samsung.com>
Mon, 17 Dec 2012 07:55:01 +0000 (16:55 +0900)
committerYounghwan Ahn <younghwan_.an@samsung.com>
Mon, 17 Dec 2012 07:59:09 +0000 (16:59 +0900)
Change-Id: Ie07c7f738d2c0cc6a885bbec03f6ec1c907cefe4

packaging/libmm-player.spec
src/mm_player.c
src/mm_player_capture.c
src/mm_player_pd.c
src/mm_player_priv.c

index c1536945430b03ed1f91dc7b5831e9245f9e20d0..0bd76b0234670d331b1b1dfde027a991953c48a1 100644 (file)
@@ -4,7 +4,7 @@ Summary:    Multimedia Framework Player Library
 Version:    0.2.7
 Release:    0
 Group:      System/Libraries
-License:    Apache v2.0
+License:    Apache License, Version 2.0
 URL:        http://source.tizen.org
 Source0:    %{name}-%{version}.tar.gz
 Requires(post):  /sbin/ldconfig
index 620363000685ee0648401d85d8f0a26264b3fedb..b0be141d4f348c9caba84973b6c596c572dae6e5 100755 (executable)
@@ -136,6 +136,8 @@ int  mm_player_destroy(MMHandleType player)
                ((mm_player_t*)player)->cmd_lock = NULL;
        }
 
+       memset( (mm_player_t*)player, 0x00, sizeof(mm_player_t) );
+
        /* free player */
        g_free( (void*)player );
 
index b9e5f0c2bc3d99c65f0a4aa2d4e2fab59cb1426a..beed57f75e368d37252956f8e3f9701b1f435a72 100755 (executable)
@@ -216,6 +216,7 @@ __mmplayer_capture_thread(gpointer data)
                        debug_log("e[0]=%d, e[1]=%d", player->captured.e[0], player->captured.e[1]);\r
                        debug_log("a[0]=%p, a[1]=%p", player->captured.a[0], player->captured.a[1]);\r
 \r
+                       #if 0\r
                        if (mm_attrs_get_int_by_name(player->attrs, "content_video_width", &(player->captured.w[0])) != MM_ERROR_NONE)\r
                        {\r
                                debug_error("failed to get content width attribute");\r
@@ -227,6 +228,7 @@ __mmplayer_capture_thread(gpointer data)
                                debug_error("failed to get content height attribute");\r
                                goto ERROR;\r
                        }\r
+                       #endif\r
 \r
                        linear_y_plane_size = (player->captured.w[0] * player->captured.h[0]);\r
                        linear_uv_plane_size = (player->captured.w[0] * player->captured.h[0]/2);\r
@@ -370,9 +372,10 @@ __mmplayer_get_video_frame_from_buffer(mm_player_t* player, GstBuffer *buffer)
                                if ( !proved || !proved->a[0] || !proved->a[1] )\r
                                        return MM_ERROR_PLAYER_INTERNAL;\r
 \r
-                               yplane_size = (proved->s[0] * proved->e[0]);\r
-                               uvplane_size = (proved->s[1] * proved->e[1]);\r
+                               yplane_size = proved->y_size;\r
+                               uvplane_size = proved->uv_size;\r
 \r
+                               debug_msg ("yplane_size=%d, uvplane_size=%d\n",yplane_size,uvplane_size);\r
                                memset(&player->captured, 0x00, sizeof(MMPlayerMPlaneImage));\r
                                memcpy(&player->captured, proved, sizeof(MMPlayerMPlaneImage));\r
 \r
index 11d8826db66db0c3bc97fd68c8c4e6b2aef520aa..2c4dfb3ae3814347736737eed67d1ec727ccdb22 100755 (executable)
@@ -278,7 +278,7 @@ gboolean _mmplayer_destroy_pd_downloader (MMHandleType handle)
 
        pd = MM_PLAYER_GET_PD(handle);
 
-       if (pd->downloader_pipeline)
+       if ( pd && pd->downloader_pipeline)
                _mmplayer_unrealize_pd_downloader (handle);
 
        /* release PD handle */
index 6ae08ca10cd00a295746070fcd767e9bd6d14f81..0cb250b13cea308ad5a1f787fe892156d8feac75 100755 (executable)
@@ -307,9 +307,6 @@ __mmplayer_check_state(mm_player_t* player, enum PlayerCommandState command)
 
                case MMPLAYER_COMMAND_START:
                {
-                       if (MMPLAYER_IS_HTTP_PD(player))
-                               goto INVALID_STATE;
-
                        MMPLAYER_TARGET_STATE(player) = MM_PLAYER_STATE_PLAYING;
 
                        if ( pending_state == MM_PLAYER_STATE_NONE )
@@ -887,8 +884,9 @@ __mmplayer_set_state(mm_player_t* player, int state) // @
                         * note that this is only happening pause command has come before the state of pipeline
                         * reach to the PLAYING.
                         */
-                        if ( ! player->sent_bos ) // managed prepare sync case
+                        if ( ! player->sent_bos )
                         {
+                               player->need_update_content_attrs = TRUE;
                                player->need_update_content_dur = TRUE;
                                _mmplayer_update_content_attrs( player );
                         }
@@ -914,6 +912,12 @@ __mmplayer_set_state(mm_player_t* player, int state) // @
                                player->need_update_content_dur = TRUE;
                                _mmplayer_update_content_attrs ( player );
                        }
+                       if (MMPLAYER_IS_STREAMING(player))
+                       {
+                               /* force setting value to TRUE for streaming */
+                               player->need_update_content_attrs = TRUE;
+                               _mmplayer_update_content_attrs ( player );
+                       }
 
                        if ( player->cmd == MMPLAYER_COMMAND_START  && !player->sent_bos )
                        {
@@ -6915,9 +6919,6 @@ _mmplayer_pause(MMHandleType hplayer) // @
                         */
                        mm_attrs_get_int_by_name(player->attrs, "profile_prepare_async", &async);
                        debug_log("prepare mode : %s", (async ? "async" : "sync"));
-
-                       if (__mmplayer_start_streaming_ext(player) != MM_ERROR_NONE)
-                               return MM_ERROR_PLAYER_INTERNAL;
                }
                break;
 
@@ -7878,7 +7879,7 @@ static void __mmplayer_pipeline_complete(GstElement *decodebin,  gpointer data)
                __mmplayer_post_missed_plugin( player );
        }
        
-       MMPLAYER_GENERATE_DOT_IF_ENABLED ( player, "pipeline-status-complate" );
+       MMPLAYER_GENERATE_DOT_IF_ENABLED ( player, "pipeline-status-complete" );
 }
 
 static gboolean __mmplayer_configure_audio_callback(mm_player_t* player)
@@ -8887,7 +8888,7 @@ __mmplayer_dump_pipeline_state( mm_player_t* player )
                                gst_element_get_state(GST_ELEMENT (item),&state, &pending,time);
 
                                factory = gst_element_get_factory (item) ;
-                                debug_log("%s:%s : From:%s To:%s   refcount : %d\n", GST_OBJECT_NAME(factory) , GST_ELEMENT_NAME(item) ,
+                                debug_error("%s:%s : From:%s To:%s   refcount : %d\n", GST_OBJECT_NAME(factory) , GST_ELEMENT_NAME(item) ,
                                        gst_element_state_get_name(state), gst_element_state_get_name(pending) , GST_OBJECT_REFCOUNT_VALUE(item));
 
 
@@ -8912,7 +8913,7 @@ __mmplayer_dump_pipeline_state( mm_player_t* player )
 
        factory = gst_element_get_factory (item) ;
 
-       debug_log("%s:%s : From:%s To:%s  refcount : %d\n",
+       debug_error("%s:%s : From:%s To:%s  refcount : %d\n",
                GST_OBJECT_NAME(factory),
                GST_ELEMENT_NAME(item),
                gst_element_state_get_name(state),