Advertisement
Guest User

torkvemada

a guest
Oct 12th, 2009
394
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. --- mplayer-1.0~rc2.orig/cfg-common.h
  2. +++ mplayer-1.0~rc2/cfg-common.h
  3. @@ -87,6 +87,9 @@
  4. {"rtsp-port", "MPlayer was compiled without network support.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
  5. {"rtsp-destination", "MPlayer was compiled without network support.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
  6. #endif
  7. +#ifdef USE_ICONV
  8. + {"tagcp", &tag_cp, CONF_TYPE_STRING, 0, 0, 0, NULL},
  9. +#endif
  10.  
  11. // ------------------------- demuxer options --------------------
  12.  
  13. --- mplayer-1.0~rc2.orig/libass/ass_mp.c
  14. +++ mplayer-1.0~rc2/libass/ass_mp.c
  15. @@ -64,8 +64,10 @@
  16.  
  17. #ifdef USE_ICONV
  18. extern char* sub_cp;
  19. +extern char* tag_cp;
  20. #else
  21. static char* sub_cp = 0;
  22. +static char* tag_cp = 0;
  23. #endif
  24.  
  25. extern void process_force_style(ass_track_t* track);
  26. --- mplayer-1.0~rc2.orig/stream/http.c
  27. +++ mplayer-1.0~rc2/stream/http.c
  28. @@ -27,6 +27,10 @@
  29. #include "network.h"
  30. #include "help_mp.h"
  31.  
  32. +#ifdef USE_ICONV
  33. +#include <iconv.h>
  34. +char *tag_cp=NULL;
  35. +#endif
  36.  
  37. extern mime_struct_t mime_type_table[];
  38. extern int stream_cache_size;
  39. @@ -114,6 +118,43 @@
  40. char *info = malloc(metalen + 1);
  41. unsigned nlen = my_read(fd, info, metalen, sc);
  42. info[nlen] = 0;
  43. +#ifdef USE_ICONV
  44. + iconv_t iconv_converter = (iconv_t)(-1);
  45. + char *outcp = "UTF-8";
  46. + char *incp = tag_cp;
  47. + if (tag_cp && (iconv_converter == (iconv_t)(-1)))
  48. + {
  49. + if ((iconv_converter = iconv_open (outcp, incp)) == (iconv_t)(-1))
  50. + {
  51. + mp_msg(MSGT_DEMUXER, MSGL_ERR, "ICY: can't open iconv.\n");
  52. + }
  53. + }
  54. + if (iconv_converter != (iconv_t)(-1))
  55. + {
  56. + size_t tmp_conv_len = nlen * 4;
  57. + size_t conv_len = tmp_conv_len;
  58. + size_t tmp_len = nlen;
  59. + char *tmp_info = info;
  60. + char *converted_info = (char*)malloc(conv_len + 1);
  61. + if (!converted_info)
  62. + mp_msg(MSGT_DEMUXER, MSGL_ERR, "ICY: can't allocate memory.\n");
  63. + char *tmp_conv_info = converted_info;
  64. + if ((conv_len = iconv(iconv_converter, &tmp_info, &tmp_len, &tmp_conv_info, &tmp_conv_len)) == (size_t)(-1))
  65. + {
  66. + mp_msg(MSGT_DEMUXER, MSGL_WARN, "ICY: error while iconving info.\n");
  67. + free(converted_info);
  68. + (void)iconv_close(iconv_converter);
  69. + }
  70. + else
  71. + {
  72. + *tmp_conv_info='\0';
  73. + free(info);
  74. + info = converted_info;
  75. + (void)iconv_close(iconv_converter);
  76. + iconv_converter = (iconv_t)(-1);
  77. + }
  78. + }
  79. +#endif /* USE_ICONV */
  80. mp_msg(MSGT_DEMUXER, MSGL_INFO, "\nICY Info: %s\n", info);
  81. free(info);
  82. }
  83. --- mplayer-1.0~rc2.orig/stream/stream.h
  84. +++ mplayer-1.0~rc2/stream/stream.h
  85. @@ -299,6 +299,7 @@
  86. extern int dvd_angle;
  87.  
  88. extern char * audio_stream;
  89. +extern char * tag_cp;
  90.  
  91. typedef struct {
  92. int id; // 0 - 31 mpeg; 128 - 159 ac3; 160 - 191 pcm
  93.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement