patch-src_metadata_c 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. - magic_file() returns strings like 'audio/mpeg; charset=binary',
  2. ignore the last part
  3. - Add flv and flac file type definitions
  4. --- gmediaserver-0.13.0.orig/src/metadata.c 2007-10-20 11:41:32.000000000 +0200
  5. +++ gmediaserver-0.13.0/src/metadata.c 2022-03-28 07:44:13.332180349 +0200
  6. @@ -86,6 +86,8 @@ typedef enum {
  7. FILE_JPG,
  8. FILE_PNG,
  9. FILE_TIFF,
  10. + FILE_FLV,
  11. + FILE_FLAC,
  12. FILE_UNKNOWN,
  13. FILE_TYPES_COUNT,
  14. } FileType;
  15. @@ -122,6 +124,8 @@ static const char *file_type_dlna_pn[] =
  16. [FILE_JPG] = "JPEG_TN",
  17. [FILE_PNG] = NULL,
  18. [FILE_TIFF] = NULL,
  19. + [FILE_FLV] = NULL,
  20. + [FILE_FLAC] = NULL,
  21. [FILE_UNKNOWN] = NULL,
  22. };
  23. @@ -134,6 +138,8 @@ static const char *file_type_mime_types[
  24. [FILE_OGG] = "audio/vorbis",
  25. [FILE_MPG] = "video/mpeg",
  26. [FILE_MP4] = "video/mp4",
  27. + [FILE_MP4] = "video/x-msvideo",
  28. + [FILE_MP4] = "video/x-matroska",
  29. [FILE_PLS] = "audio/x-scpls",
  30. [FILE_M3U] = "audio/m3u",
  31. [FILE_EXTM3U] = "audio/m3u",
  32. @@ -142,6 +148,8 @@ static const char *file_type_mime_types[
  33. [FILE_JPG] = "image/jpeg",
  34. [FILE_PNG] = "image/png",
  35. [FILE_TIFF] = "image/tiff",
  36. + [FILE_FLV] = "video/x-flv",
  37. + [FILE_FLAC] = "audio/flac",
  38. [FILE_UNKNOWN] = "application/octet-stream",
  39. };
  40. @@ -162,6 +170,8 @@ static const char *file_type_names[] = {
  41. [FILE_JPG] = "jpg",
  42. [FILE_PNG] = "png",
  43. [FILE_TIFF] = "tiff",
  44. + [FILE_FLV] = "flv",
  45. + [FILE_FLAC] = "flac",
  46. [FILE_UNKNOWN] = "unknown",
  47. };
  48. @@ -183,6 +193,8 @@ static const char *file_type_descs[] = {
  49. [FILE_JPG] = "JPEG image",
  50. [FILE_PNG] = "PNG image",
  51. [FILE_TIFF] = "TIFF image",
  52. + [FILE_FLV] = "Flash video",
  53. + [FILE_FLAC] = "FLAC audio",
  54. };
  55. static ItemClass file_type_item_classes[] = {
  56. @@ -202,6 +214,8 @@ static ItemClass file_type_item_classes[
  57. [FILE_JPG] = ITEM_IMAGE,
  58. [FILE_PNG] = ITEM_IMAGE,
  59. [FILE_TIFF] = ITEM_IMAGE,
  60. + [FILE_FLV] = ITEM_VIDEO,
  61. + [FILE_FLAC] = ITEM_AUDIO,
  62. };
  63. static Entry *scan_entry(const char *fullpath, const char *name, int32_t parent, int indent_size, InodeList *inl);
  64. @@ -325,6 +339,9 @@ check_file_content_type(const char *full
  65. return FILE_UNKNOWN;
  66. }
  67. + /* ignore trailing data */
  68. + *strchrnul(magic, ';') = '\0';
  69. +
  70. if (strcmp(magic, "application/octet-stream") != 0
  71. && strncmp(magic, "text/plain", 10) != 0) {
  72. struct {