clients: Improve Samsung BD-J5500 support
From SF user Andrea Odetti: The Samsung BD J5500 player does not accept some of the DLNA_PN values used by minidlna for *.mp4 files. For instance AVC_MP4_MP_HD_720p_AAC and AVC_MP4_BL_L31_HD_AAC are problematic as the player would simply ignore the files and not show them. AVC_MP4_HP_HD_AAC works. All the files play normally from a USB key. I've noticed as well that NULL works always, and this is the approach I have followed. So I changed minidlna and added a flag to disable DLNA_PN, and this flag is only used for a Samsung BD J5500 in order not to break other players, which can handle DLNA_PN properly. So when a J5500 is connected we simply set DLNA_PN to NULL and everything works well.
This commit is contained in:
parent
f816911f0c
commit
d894885bc1
@ -63,6 +63,13 @@ struct client_type_s client_types[] =
|
|||||||
EUserAgent
|
EUserAgent
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ ESamsungBDJ5500,
|
||||||
|
FLAG_SAMSUNG | FLAG_DLNA | FLAG_NO_RESIZE | FLAG_CAPTION_RES | FLAG_SKIP_DLNA_PN,
|
||||||
|
"Samsung BD J5500",
|
||||||
|
"[BD]J5500",
|
||||||
|
EUserAgent
|
||||||
|
},
|
||||||
|
|
||||||
/* Samsung Series [CDE] BDPs and TVs must be separated, or some of our
|
/* Samsung Series [CDE] BDPs and TVs must be separated, or some of our
|
||||||
* advertised extra features trigger a folder browsing bug on BDPs. */
|
* advertised extra features trigger a folder browsing bug on BDPs. */
|
||||||
/* User-Agent: DLNADOC/1.50 SEC_HHP_BD-D5100/1.0 */
|
/* User-Agent: DLNADOC/1.50 SEC_HHP_BD-D5100/1.0 */
|
||||||
@ -324,4 +331,3 @@ AddClientCache(struct in_addr addr, int type)
|
|||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
#define FLAG_AUDIO_ONLY 0x00000400
|
#define FLAG_AUDIO_ONLY 0x00000400
|
||||||
#define FLAG_FORCE_SORT 0x00000800
|
#define FLAG_FORCE_SORT 0x00000800
|
||||||
#define FLAG_CAPTION_RES 0x00001000
|
#define FLAG_CAPTION_RES 0x00001000
|
||||||
|
#define FLAG_SKIP_DLNA_PN 0x00002000 /* during browsing */
|
||||||
/* Response-related flags */
|
/* Response-related flags */
|
||||||
#define FLAG_HAS_CAPTIONS 0x80000000
|
#define FLAG_HAS_CAPTIONS 0x80000000
|
||||||
#define RESPONSE_FLAGS 0xF0000000
|
#define RESPONSE_FLAGS 0xF0000000
|
||||||
@ -69,6 +70,7 @@ enum client_types {
|
|||||||
ESamsungSeriesB,
|
ESamsungSeriesB,
|
||||||
ESamsungSeriesCDEBDP,
|
ESamsungSeriesCDEBDP,
|
||||||
ESamsungSeriesCDE,
|
ESamsungSeriesCDE,
|
||||||
|
ESamsungBDJ5500,
|
||||||
ESonyBDP,
|
ESonyBDP,
|
||||||
ESonyBravia,
|
ESonyBravia,
|
||||||
ESonyInternetTV,
|
ESonyInternetTV,
|
||||||
|
@ -905,6 +905,9 @@ callback(void *args, int argc, char **argv, char **azColName)
|
|||||||
else
|
else
|
||||||
dlna_flags |= DLNA_FLAG_TM_I;
|
dlna_flags |= DLNA_FLAG_TM_I;
|
||||||
|
|
||||||
|
if( passed_args->flags & FLAG_SKIP_DLNA_PN )
|
||||||
|
dlna_pn = NULL;
|
||||||
|
|
||||||
if( dlna_pn )
|
if( dlna_pn )
|
||||||
snprintf(dlna_buf, sizeof(dlna_buf), "DLNA.ORG_PN=%s;"
|
snprintf(dlna_buf, sizeof(dlna_buf), "DLNA.ORG_PN=%s;"
|
||||||
"DLNA.ORG_OP=01;"
|
"DLNA.ORG_OP=01;"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user