khronosfws/openmax_al/src/gst_adaptation/xametadataadaptation.c
changeset 47 c2e43643db4c
parent 42 1fa3fb47b1e3
equal deleted inserted replaced
42:1fa3fb47b1e3 47:c2e43643db4c
     9 * Initial Contributors:
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    10 * Nokia Corporation - initial contribution.
    11 *
    11 *
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 * Description: 
    14 * Description:
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 #include <string.h>
    18 #include <string.h>
    19 #include <gst/gst.h>
    19 #include <gst/gst.h>
   108 XAresult XAMetadataAdapt_PreInit(XAAdaptationGstCtx *bCtx)
   108 XAresult XAMetadataAdapt_PreInit(XAAdaptationGstCtx *bCtx)
   109 {
   109 {
   110     XAresult ret = XA_RESULT_SUCCESS;
   110     XAresult ret = XA_RESULT_SUCCESS;
   111     XAMetadataAdaptVars* mdv;
   111     XAMetadataAdaptVars* mdv;
   112     DEBUG_API("->XAMetadataAdapt_PreInit");
   112     DEBUG_API("->XAMetadataAdapt_PreInit");
   113     
   113 
   114     if ( bCtx->baseObj.ctxId == XAMediaRecorderAdaptation )
   114     if ( bCtx->baseObj.ctxId == XAMediaRecorderAdaptation )
   115     {
   115     {
   116         mdv = (XAMetadataAdaptVars*) calloc(1, sizeof(XAMetadataAdaptVars));
   116         mdv = (XAMetadataAdaptVars*) calloc(1, sizeof(XAMetadataAdaptVars));
   117         mdv->currentchild = &(mdv->generaltags);
   117         mdv->currentchild = &(mdv->generaltags);
   118         mdv->traversemode=XA_METADATATRAVERSALMODE_NODE;
   118         mdv->traversemode=XA_METADATATRAVERSALMODE_NODE;
   520                 (mediaType==XA_MEDIATYPE_IMAGE && (type==XA_NODETYPE_AUDIO || type==XA_NODETYPE_VIDEO)) )
   520                 (mediaType==XA_MEDIATYPE_IMAGE && (type==XA_NODETYPE_AUDIO || type==XA_NODETYPE_VIDEO)) )
   521             {
   521             {
   522                 DEBUG_ERR("Nodetype not supported!");
   522                 DEBUG_ERR("Nodetype not supported!");
   523                 ret = XA_RESULT_CONTENT_UNSUPPORTED;
   523                 ret = XA_RESULT_CONTENT_UNSUPPORTED;
   524                 DEBUG_API_A1("<-XAMetadataInsertionItfAdapt_CreateChildNode (%d)", (int)ret);
   524                 DEBUG_API_A1("<-XAMetadataInsertionItfAdapt_CreateChildNode (%d)", (int)ret);
   525                 return ret;            
   525                 return ret;
   526             }
   526             }
   527 
   527 
   528             mdv = mCtx->metadatavars;
   528             mdv = mCtx->metadatavars;
   529             if(!mdv)
   529             if(!mdv)
   530             {
   530             {
   531                 DEBUG_ERR("Metadata variables not initialized!");
   531                 DEBUG_ERR("Metadata variables not initialized!");
   532                 ret = XA_RESULT_PRECONDITIONS_VIOLATED;
   532                 ret = XA_RESULT_PRECONDITIONS_VIOLATED;
   533             }
   533                 return ret;
       
   534             }
       
   535 
   534             switch(type)
   536             switch(type)
   535             {
   537             {
   536             case XA_NODETYPE_IMAGE:
   538             case XA_NODETYPE_IMAGE:
   537                 /*fall-through to use video pipe tags for image*/
   539                 /*fall-through to use video pipe tags for image*/
   538             case XA_NODETYPE_VIDEO:
   540             case XA_NODETYPE_VIDEO:
   856  * XAMetadataAdaptVars* XAMetadataAdapt_GetMetadataVars(XAAdaptationGstCtx *bCtx)
   858  * XAMetadataAdaptVars* XAMetadataAdapt_GetMetadataVars(XAAdaptationGstCtx *bCtx)
   857  * Return metadata variables from different types of context
   859  * Return metadata variables from different types of context
   858  */
   860  */
   859 XAMetadataAdaptVars* XAMetadataAdapt_GetMetadataVars(XAAdaptationGstCtx *bCtx)
   861 XAMetadataAdaptVars* XAMetadataAdapt_GetMetadataVars(XAAdaptationGstCtx *bCtx)
   860 {
   862 {
   861     
   863 
   862     if( bCtx->baseObj.ctxId == XAMediaRecorderAdaptation )
   864     if( bCtx->baseObj.ctxId == XAMediaRecorderAdaptation )
   863     {
   865     {
   864         return ((XAMediaRecorderAdaptationCtx*)bCtx)->metadatavars;
   866         return ((XAMediaRecorderAdaptationCtx*)bCtx)->metadatavars;
   865     }
   867     }
   866     else
   868     else
   983     {
   985     {
   984         DEBUG_API_A2("->XAMetadataAdapt_GstTagCb:\"%s\" from object \"%s\"",
   986         DEBUG_API_A2("->XAMetadataAdapt_GstTagCb:\"%s\" from object \"%s\"",
   985                         GST_MESSAGE_TYPE_NAME(message), GST_OBJECT_NAME(GST_MESSAGE_SRC(message)));
   987                         GST_MESSAGE_TYPE_NAME(message), GST_OBJECT_NAME(GST_MESSAGE_SRC(message)));
   986         gst_message_parse_tag (message, &new_tags);
   988         gst_message_parse_tag (message, &new_tags);
   987         /* NOTE: only general tags received this way (not child nodes)*/
   989         /* NOTE: only general tags received this way (not child nodes)*/
   988         
   990 
   989         if( bCtx->baseObj.ctxId == XAMediaRecorderAdaptation )
   991         if( bCtx->baseObj.ctxId == XAMediaRecorderAdaptation )
   990         {
   992         {
   991             old_tags = &((XAMediaRecorderAdaptationCtx*)bCtx)->metadatavars->generaltags;
   993             old_tags = &((XAMediaRecorderAdaptationCtx*)bCtx)->metadatavars->generaltags;
   992             /* keep user's tags */
   994             /* keep user's tags */
   993             mode = GST_TAG_MERGE_KEEP;
   995             mode = GST_TAG_MERGE_KEEP;