mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 13:25:37 +00:00
Bug 1414742 - logging BufferReader error only when enabling mozlog in MP4Metadata. r=kinetik
MozReview-Commit-ID: z69MJKQV5y --HG-- extra : rebase_source : 36da5aa42e65320c147cb4f1887d9e2569df1726
This commit is contained in:
parent
0937eb5b3b
commit
38793a1060
@ -34,7 +34,7 @@ using mozilla::media::TimeUnit;
|
||||
namespace mp4_demuxer
|
||||
{
|
||||
|
||||
static LazyLogModule sLog("MP4Metadata");
|
||||
LazyLogModule gMP4MetadataLog("MP4Metadata");
|
||||
|
||||
class DataSourceAdapter : public DataSource
|
||||
{
|
||||
@ -180,7 +180,7 @@ bool
|
||||
IndiceWrapperStagefright::GetIndice(size_t aIndex, Index::Indice& aIndice) const
|
||||
{
|
||||
if (aIndex >= mIndice.Length()) {
|
||||
MOZ_LOG(sLog, LogLevel::Error, ("Index overflow in indice"));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Error, ("Index overflow in indice"));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -220,7 +220,7 @@ bool
|
||||
IndiceWrapperRust::GetIndice(size_t aIndex, Index::Indice& aIndice) const
|
||||
{
|
||||
if (aIndex >= mIndice->length) {
|
||||
MOZ_LOG(sLog, LogLevel::Error, ("Index overflow in indice"));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Error, ("Index overflow in indice"));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -279,12 +279,12 @@ MP4Metadata::GetNumberTracks(mozilla::TrackInfo::TrackType aType) const
|
||||
|
||||
MP4Metadata::ResultAndTrackCount numTracksRust =
|
||||
mRust->GetNumberTracks(aType);
|
||||
MOZ_LOG(sLog, LogLevel::Info, ("%s tracks found: stagefright=(%s)%u rust=(%s)%u",
|
||||
TrackTypeToString(aType),
|
||||
numTracks.Result().Description().get(),
|
||||
numTracks.Ref(),
|
||||
numTracksRust.Result().Description().get(),
|
||||
numTracksRust.Ref()));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Info, ("%s tracks found: stagefright=(%s)%u rust=(%s)%u",
|
||||
TrackTypeToString(aType),
|
||||
numTracks.Result().Description().get(),
|
||||
numTracks.Ref(),
|
||||
numTracksRust.Result().Description().get(),
|
||||
numTracksRust.Ref()));
|
||||
|
||||
|
||||
// Consider '0' and 'error' the same for comparison purposes.
|
||||
@ -479,9 +479,10 @@ ConvertIndex(FallibleTArray<Index::Indice>& aDest,
|
||||
indice.sync = s_indice.sync;
|
||||
// FIXME: Make this infallible after bug 968520 is done.
|
||||
MOZ_ALWAYS_TRUE(aDest.AppendElement(indice, mozilla::fallible));
|
||||
MOZ_LOG(sLog, LogLevel::Debug, ("s_o: %" PRIu64 ", e_o: %" PRIu64 ", s_c: %" PRIu64 ", e_c: %" PRIu64 ", s_d: %" PRIu64 ", sync: %d\n",
|
||||
indice.start_offset, indice.end_offset, indice.start_composition, indice.end_composition,
|
||||
indice.start_decode, indice.sync));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Debug,
|
||||
("s_o: %" PRIu64 ", e_o: %" PRIu64 ", s_c: %" PRIu64 ", e_c: %" PRIu64 ", s_d: %" PRIu64 ", sync: %d\n",
|
||||
indice.start_offset, indice.end_offset, indice.start_composition,
|
||||
indice.end_composition, indice.start_decode, indice.sync));
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
@ -715,7 +716,7 @@ bool
|
||||
RustStreamAdaptor::Read(uint8_t* buffer, uintptr_t size, size_t* bytes_read)
|
||||
{
|
||||
if (!mOffset.isValid()) {
|
||||
MOZ_LOG(sLog, LogLevel::Error, ("Overflow in source stream offset"));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Error, ("Overflow in source stream offset"));
|
||||
return false;
|
||||
}
|
||||
bool rv = mSource->ReadAt(mOffset.value(), buffer, size, bytes_read);
|
||||
@ -736,7 +737,7 @@ read_source(uint8_t* buffer, uintptr_t size, void* userdata)
|
||||
size_t bytes_read = 0;
|
||||
bool rv = source->Read(buffer, size, &bytes_read);
|
||||
if (!rv) {
|
||||
MOZ_LOG(sLog, LogLevel::Warning, ("Error reading source data"));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Warning, ("Error reading source data"));
|
||||
return -1;
|
||||
}
|
||||
return bytes_read;
|
||||
@ -759,16 +760,16 @@ MP4MetadataRust::Init()
|
||||
mRustParser.reset(mp4parse_new(&io));
|
||||
MOZ_ASSERT(mRustParser);
|
||||
|
||||
if (MOZ_LOG_TEST(sLog, LogLevel::Debug)) {
|
||||
if (MOZ_LOG_TEST(gMP4MetadataLog, LogLevel::Debug)) {
|
||||
mp4parse_log(true);
|
||||
}
|
||||
|
||||
mp4parse_status rv = mp4parse_read(mRustParser.get());
|
||||
MOZ_LOG(sLog, LogLevel::Debug, ("rust parser returned %d\n", rv));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Debug, ("rust parser returned %d\n", rv));
|
||||
Telemetry::Accumulate(Telemetry::MEDIA_RUST_MP4PARSE_SUCCESS,
|
||||
rv == mp4parse_status_OK);
|
||||
if (rv != mp4parse_status_OK && rv != mp4parse_status_OOM) {
|
||||
MOZ_LOG(sLog, LogLevel::Info, ("Rust mp4 parser fails to parse this stream."));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Info, ("Rust mp4 parser fails to parse this stream."));
|
||||
MOZ_ASSERT(rv > 0);
|
||||
Telemetry::Accumulate(Telemetry::MEDIA_RUST_MP4PARSE_ERROR_CODE, rv);
|
||||
return false;
|
||||
@ -813,13 +814,13 @@ MP4MetadataRust::GetNumberTracks(mozilla::TrackInfo::TrackType aType) const
|
||||
uint32_t tracks;
|
||||
auto rv = mp4parse_get_track_count(mRustParser.get(), &tracks);
|
||||
if (rv != mp4parse_status_OK) {
|
||||
MOZ_LOG(sLog, LogLevel::Warning,
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Warning,
|
||||
("rust parser error %d counting tracks", rv));
|
||||
return {MediaResult(NS_ERROR_DOM_MEDIA_METADATA_ERR,
|
||||
RESULT_DETAIL("Rust parser error %d", rv)),
|
||||
MP4Metadata::NumberTracksError()};
|
||||
}
|
||||
MOZ_LOG(sLog, LogLevel::Info, ("rust parser found %u tracks", tracks));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Info, ("rust parser found %u tracks", tracks));
|
||||
|
||||
uint32_t total = 0;
|
||||
for (uint32_t i = 0; i < tracks; ++i) {
|
||||
@ -885,7 +886,7 @@ MP4MetadataRust::GetTrackInfo(mozilla::TrackInfo::TrackType aType,
|
||||
mp4parse_track_info info;
|
||||
auto rv = mp4parse_get_track_info(mRustParser.get(), trackIndex.value(), &info);
|
||||
if (rv != mp4parse_status_OK) {
|
||||
MOZ_LOG(sLog, LogLevel::Warning, ("mp4parse_get_track_info returned %d", rv));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Warning, ("mp4parse_get_track_info returned %d", rv));
|
||||
return {MediaResult(NS_ERROR_DOM_MEDIA_METADATA_ERR,
|
||||
RESULT_DETAIL("Cannot find %s track #%zu",
|
||||
TrackTypeToStr(aType),
|
||||
@ -907,8 +908,8 @@ MP4MetadataRust::GetTrackInfo(mozilla::TrackInfo::TrackType aType,
|
||||
case mp4parse_codec_AC3: codec_string = "ac-3"; break;
|
||||
case mp4parse_codec_EC3: codec_string = "ec-3"; break;
|
||||
}
|
||||
MOZ_LOG(sLog, LogLevel::Debug, ("track codec %s (%u)\n",
|
||||
codec_string, info.codec));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Debug,
|
||||
("track codec %s (%u)\n", codec_string, info.codec));
|
||||
#endif
|
||||
|
||||
// This specialization interface is crazy.
|
||||
@ -918,7 +919,7 @@ MP4MetadataRust::GetTrackInfo(mozilla::TrackInfo::TrackType aType,
|
||||
mp4parse_track_audio_info audio;
|
||||
auto rv = mp4parse_get_track_audio_info(mRustParser.get(), trackIndex.value(), &audio);
|
||||
if (rv != mp4parse_status_OK) {
|
||||
MOZ_LOG(sLog, LogLevel::Warning, ("mp4parse_get_track_audio_info returned error %d", rv));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Warning, ("mp4parse_get_track_audio_info returned error %d", rv));
|
||||
return {MediaResult(NS_ERROR_DOM_MEDIA_METADATA_ERR,
|
||||
RESULT_DETAIL("Cannot parse %s track #%zu",
|
||||
TrackTypeToStr(aType),
|
||||
@ -934,7 +935,7 @@ MP4MetadataRust::GetTrackInfo(mozilla::TrackInfo::TrackType aType,
|
||||
mp4parse_track_video_info video;
|
||||
auto rv = mp4parse_get_track_video_info(mRustParser.get(), trackIndex.value(), &video);
|
||||
if (rv != mp4parse_status_OK) {
|
||||
MOZ_LOG(sLog, LogLevel::Warning, ("mp4parse_get_track_video_info returned error %d", rv));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Warning, ("mp4parse_get_track_video_info returned error %d", rv));
|
||||
return {MediaResult(NS_ERROR_DOM_MEDIA_METADATA_ERR,
|
||||
RESULT_DETAIL("Cannot parse %s track #%zu",
|
||||
TrackTypeToStr(aType),
|
||||
@ -947,7 +948,7 @@ MP4MetadataRust::GetTrackInfo(mozilla::TrackInfo::TrackType aType,
|
||||
}
|
||||
break;
|
||||
default:
|
||||
MOZ_LOG(sLog, LogLevel::Warning, ("unhandled track type %d", aType));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Warning, ("unhandled track type %d", aType));
|
||||
return {MediaResult(NS_ERROR_DOM_MEDIA_METADATA_ERR,
|
||||
RESULT_DETAIL("Cannot handle %s track #%zu",
|
||||
TrackTypeToStr(aType),
|
||||
@ -967,7 +968,7 @@ MP4MetadataRust::GetTrackInfo(mozilla::TrackInfo::TrackType aType,
|
||||
if (e && e->IsValid()) {
|
||||
return {NS_OK, Move(e)};
|
||||
}
|
||||
MOZ_LOG(sLog, LogLevel::Debug, ("TrackInfo didn't validate"));
|
||||
MOZ_LOG(gMP4MetadataLog, LogLevel::Debug, ("TrackInfo didn't validate"));
|
||||
|
||||
return {MediaResult(NS_ERROR_DOM_MEDIA_METADATA_ERR,
|
||||
RESULT_DETAIL("Invalid %s track #%zu",
|
||||
|
@ -9,10 +9,13 @@
|
||||
#include "nscore.h"
|
||||
#include "nsTArray.h"
|
||||
#include "MediaData.h"
|
||||
#include "mozilla/Logging.h"
|
||||
#include "mozilla/Result.h"
|
||||
|
||||
namespace mp4_demuxer {
|
||||
|
||||
extern mozilla::LazyLogModule gMP4MetadataLog;
|
||||
|
||||
class MOZ_RAII BufferReader
|
||||
{
|
||||
public:
|
||||
@ -57,7 +60,7 @@ public:
|
||||
{
|
||||
auto ptr = Read(1);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to read data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
return *ptr;
|
||||
@ -67,7 +70,7 @@ public:
|
||||
{
|
||||
auto ptr = Read(2);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to read data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
return mozilla::BigEndian::readUint16(ptr);
|
||||
@ -77,7 +80,7 @@ public:
|
||||
{
|
||||
auto ptr = Read(2);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to read data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
return mozilla::LittleEndian::readInt16(ptr);
|
||||
@ -87,7 +90,7 @@ public:
|
||||
{
|
||||
auto ptr = Read(3);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to read data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
return ptr[0] << 16 | ptr[1] << 8 | ptr[2];
|
||||
@ -102,7 +105,7 @@ public:
|
||||
{
|
||||
auto ptr = Read(3);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to read data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
int32_t result = int32_t(ptr[2] << 16 | ptr[1] << 8 | ptr[0]);
|
||||
@ -116,7 +119,7 @@ public:
|
||||
{
|
||||
auto ptr = Read(4);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to read data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
return mozilla::BigEndian::readUint32(ptr);
|
||||
@ -126,7 +129,7 @@ public:
|
||||
{
|
||||
auto ptr = Read(4);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to read data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
return mozilla::BigEndian::readInt32(ptr);
|
||||
@ -136,7 +139,7 @@ public:
|
||||
{
|
||||
auto ptr = Read(8);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to read data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
return mozilla::BigEndian::readUint64(ptr);
|
||||
@ -146,7 +149,7 @@ public:
|
||||
{
|
||||
auto ptr = Read(8);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to read data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
return mozilla::BigEndian::readInt64(ptr);
|
||||
@ -182,7 +185,7 @@ public:
|
||||
{
|
||||
auto ptr = Peek(1);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to peek data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
return *ptr;
|
||||
@ -192,7 +195,7 @@ public:
|
||||
{
|
||||
auto ptr = Peek(2);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to peek data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
return mozilla::BigEndian::readUint16(ptr);
|
||||
@ -202,7 +205,7 @@ public:
|
||||
{
|
||||
auto ptr = Peek(3);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to peek data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
return ptr[0] << 16 | ptr[1] << 8 | ptr[2];
|
||||
@ -217,7 +220,7 @@ public:
|
||||
{
|
||||
auto ptr = Peek(4);
|
||||
if (!ptr) {
|
||||
NS_WARNING("Failed to peek data");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return mozilla::Err(NS_ERROR_FAILURE);
|
||||
}
|
||||
return mozilla::BigEndian::readUint32(ptr);
|
||||
@ -234,7 +237,7 @@ public:
|
||||
const uint8_t* Seek(size_t aOffset)
|
||||
{
|
||||
if (aOffset >= mLength) {
|
||||
NS_WARNING("Seek failed");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure, offset: %zu", __func__, aOffset));
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@ -261,7 +264,7 @@ public:
|
||||
{
|
||||
auto ptr = Read(sizeof(T));
|
||||
if (!ptr) {
|
||||
NS_WARNING("ReadType failed");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return 0;
|
||||
}
|
||||
return *reinterpret_cast<const T*>(ptr);
|
||||
@ -272,7 +275,7 @@ public:
|
||||
{
|
||||
auto ptr = Read(aLength * sizeof(T));
|
||||
if (!ptr) {
|
||||
NS_WARNING("ReadArray failed");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -286,7 +289,7 @@ public:
|
||||
{
|
||||
auto ptr = Read(aLength * sizeof(T));
|
||||
if (!ptr) {
|
||||
NS_WARNING("ReadArray failed");
|
||||
MOZ_LOG(gMP4MetadataLog, mozilla::LogLevel::Error, ("%s: failure", __func__));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user