Changeset 39602


Ignore:
Timestamp:
01/02/17 00:30:34 (5 years ago)
Author:
obi
Message:

fix gst

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/player.h

    r39270 r39602  
    851851                                GstStructure *extras = gst_structure_new_empty("extras");
    852852        #endif
    853                                 char* tmpstr1 = NULL, *tmpstr2 = NULL, *tmpstr3 = NULL;
     853                                char* tmpstr1 = NULL, *tmpstr2 = NULL, *tmpstr3 = NULL, *tmpstr4 = NULL;
    854854                                tmpstr1 = ostrcat(file, NULL, 0, 0);
    855855                                int count1 = 0, i = 0;
     
    857857                                ret1 = strsplit(tmpstr1, "|", &count1);
    858858       
    859                                 int max = count1;
    860                                 for(i = 0; i < max; i++)
     859                                for(i = 0; i < count1; i++)
    861860                                {
    862861                                        if(i == 0)
     
    867866                                        tmpstr2 = ostrcat(ret1[i].part, NULL, 0, 0);
    868867       
    869                                         int count2 = 0;
     868                                        int count2 = 0, i2 = 0;
    870869                                        struct splitstr* ret2 = NULL;
    871                                         ret2 = strsplit(tmpstr2, "=", &count2);
    872        
    873                                         if(ret2 != NULL && count2 >= 2)
     870                                        ret2 = strsplit(tmpstr2, "&", &count2);
     871
     872                                        if(ret2 != NULL)
    874873                                        {
    875                                                 if(ostrstr(ret2[0].part, "User-Agent") != NULL)
     874                                                for(i2 = 0; i2 < count2; i2++)
    876875                                                {
    877 //                                                      printf("[player.h] skip set user-agent: %s\n", ret2[1].part);
    878                                                         printf("[player.h] set user-agent: %s\n", ret2[1].part);
    879                                                         g_object_set(G_OBJECT(source), "user-agent", ret2[1].part, NULL);
    880                                                 }
    881                                                 else
    882                                                 {
    883                                                         if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "extra-headers") != 0)
    884                                                         {                                       
    885                                                                 GValue header;
    886                                                                 // eDebug("setting extra-header '%s:%s'", name.c_str(), value.c_str());
    887                                                                 printf("[player.h] set extra-header %s: %s\n", ret2[0].part, ret2[1].part);
    888                                                                
    889                                                                 tmpstr3 = ostrcat(ret2[1].part, NULL, 0, 0);
    890                                                                 htmldecode(tmpstr3, tmpstr3);
    891                                                                 printf("[player.h] set extra-header decode %s: %s\n", ret2[0].part, tmpstr3);
    892 
    893                                                                 memset(&header, 0, sizeof(GValue));
    894                                                                 g_value_init(&header, G_TYPE_STRING);
    895                                                                 //value
    896                                                                 g_value_set_string(&header, tmpstr3);
    897                                                                 //name
    898                                                                 gst_structure_set_value(extras, ret2[0].part, &header);
    899                                                                 free(tmpstr3), tmpstr3 = NULL;
     876                                                        int count3 = 0, i3 = 0;
     877                                                        struct splitstr* ret3 = NULL;
     878                                                        tmpstr3 = ostrcat(ret2[i2].part, NULL, 0, 0);
     879                                                        ret3 = strsplit(tmpstr3, "=", &count3);
     880                                       
     881                                                        if(ret3 != NULL)
     882                                                        {
     883                                                                int max = count3 - 1;
     884                                                                for(i3 = 0; i3 < max; i3++)
     885                                                                {
     886                                                                        if(ostrstr(ret3[i3].part, "User-Agent") != NULL)
     887                                                                        {
     888                        //                                                      printf("[player.h] skip set user-agent: %s\n", ret2[1].part);
     889                                                                                printf("[player.h] set user-agent: %s\n", ret3[i3 + 1].part);
     890                                                                                g_object_set(G_OBJECT(source), "user-agent", ret3[i3 + 1].part, NULL);
     891                                                                        }
     892                                                                        else
     893                                                                        {
     894                                                                                if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "extra-headers") != 0)
     895                                                                                {                                       
     896                                                                                        GValue header;
     897                                                                                        // eDebug("setting extra-header '%s:%s'", name.c_str(), value.c_str());
     898                                                                                        printf("[player.h] set extra-header %s: %s\n", ret3[i3].part, ret3[i3 + 1].part);
     899                                                                                       
     900                                                                                        tmpstr4 = ostrcat(ret3[i3 + 1].part, NULL, 0, 0);
     901                                                                                        htmldecode(tmpstr4, tmpstr4);
     902                                                                                        printf("[player.h] set extra-header decode %s: %s\n", ret3[i3].part, tmpstr4);
     903                       
     904                                                                                        memset(&header, 0, sizeof(GValue));
     905                                                                                        g_value_init(&header, G_TYPE_STRING);
     906                                                                                        //value
     907                                                                                        g_value_set_string(&header, tmpstr4);
     908                                                                                        //name
     909                                                                                        gst_structure_set_value(extras, ret3[i3].part, &header);
     910                                                                                        free(tmpstr4), tmpstr4 = NULL;
     911                                                                                }
     912                                                                        }
     913                                                                }
    900914                                                        }
     915                                                        free(ret3), ret3 = NULL;
     916                                                        free(tmpstr3), tmpstr3 = NULL;
    901917                                                }
    902918                                        }
     
    904920                                        free(tmpstr2), tmpstr2 = NULL;
    905921                                }
     922
    906923                                free(ret1), ret1 = NULL;
    907924                                free(tmpstr1), tmpstr1 = NULL;
Note: See TracChangeset for help on using the changeset viewer.