It's a weird fail, if your adb logcat does not get the "http 404 error", following referable solution you can make a try.
Test failed to run to completion. Reason: 'Failed to receive adb shell test output within 600000 ms. Test may have timed out, or adb connection to device became unresponsive'. Check device logcat for details.
CTS command :
cts-tf > run cts -c android.media.cts.StreamingMediaPlayerTest -m testHLS
Solution : in your product's device.mk
# limit the HLS bandwidth
PRODUCT_PROPERTY_OVERRIDES += \
media.httplive.max-bw=360000
Trace Code : http live streaming
~/Android_5.1$ find frameworks/av/media/libstagefright/httplive/ -name LiveSession.cpp
frameworks/av/media/libstagefright/httplive/LiveSession.cpp
#if 1
char value[PROPERTY_VALUE_MAX];
ssize_t index = -1;
if (property_get("media.httplive.bw-index", value, NULL)) {
char *end;
index = strtol(value, &end, 10);
CHECK(end > value && *end == '\0');
if (index >= 0 && (size_t)index >= mBandwidthItems.size()) {
index = mBandwidthItems.size() - 1;
}
}
if (index < 0) {
int32_t bandwidthBps;
if (mHTTPDataSource != NULL
&& mHTTPDataSource->estimateBandwidth(&bandwidthBps)) {
ALOGV("bandwidth estimated at %.2f kbps", bandwidthBps / 1024.0f);
} else {
ALOGV("no bandwidth estimate.");
return 0; // Pick the lowest bandwidth stream by default.
}
char value[PROPERTY_VALUE_MAX];
if (property_get("media.httplive.max-bw", value, NULL)) {
char *end;
long maxBw = strtoul(value, &end, 10);
if (end > value && *end == '\0') {
if (maxBw > 0 && bandwidthBps > maxBw) {
ALOGV("bandwidth capped to %ld bps", maxBw);
bandwidthBps = maxBw;
}
}
}
// Pick the highest bandwidth stream below or equal to estimated bandwidth.
index = mBandwidthItems.size() - 1;
while (index > 0) {
// consider only 80% of the available bandwidth, but if we are switching up,
// be even more conservative (70%) to avoid overestimating and immediately
// switching back.
size_t adjustedBandwidthBps = bandwidthBps;
if (index > mCurBandwidthIndex) {
adjustedBandwidthBps = adjustedBandwidthBps * 7 / 10;
} else {
adjustedBandwidthBps = adjustedBandwidthBps * 8 / 10;
}
if (mBandwidthItems.itemAt(index).mBandwidth <= adjustedBandwidthBps) {
break;
}
--index;
}
}
#elif 0