예제 #1
0
/*----------------------------------------------------------------------
|   AP4_SgpdAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_SgpdAtom::InspectFields(AP4_AtomInspector& inspector)
{
    char fourcc[5];
    AP4_FormatFourChars(fourcc, m_GroupingType);
    inspector.AddField("grouping_type", fourcc);
    if (m_Version >= 1) {
        inspector.AddField("default_length", m_DefaultLength);
    }
    inspector.AddField("entry_count", m_Entries.ItemCount());
    
    // inspect entries
    char header[32];
    unsigned int i=0;
    for (AP4_List<AP4_DataBuffer>::Item* item = m_Entries.FirstItem();
                                         item;
                                         item = item->GetNext()) {
        AP4_DataBuffer* entry = item->GetData();
        AP4_FormatString(header, sizeof(header), "entry %02d", i);
        ++i;
        inspector.AddField(header, entry->GetData(), entry->GetDataSize());
    }

    return AP4_SUCCESS;
}
예제 #2
0
/*----------------------------------------------------------------------
|   AP4_IpmpDescriptor::Inspect
+---------------------------------------------------------------------*/
AP4_Result
AP4_IpmpDescriptor::Inspect(AP4_AtomInspector& inspector)
{
    char info[64];
    AP4_FormatString(info, sizeof(info), "size=%ld+%ld", 
                     GetHeaderSize(),m_PayloadSize);
    inspector.StartElement("[IPMP_Descriptor]", info);
    inspector.AddField("IPMP_DescriptorID", m_DescriptorId);
    inspector.AddField("IPMPS_Type", m_IpmpsType, AP4_AtomInspector::HINT_HEX);
    if (m_DescriptorId == 0xFF && m_IpmpsType == 0xFFFF) {
        inspector.AddField("IPMP_DescriptorIDEx", m_DescriptorIdEx);
        inspector.AddField("IPMP_ToolID", (const unsigned char*)(&m_ToolId[0]), 16, AP4_AtomInspector::HINT_HEX);
        inspector.AddField("controlPointCode", m_ControlPointCode);
        if (m_ControlPointCode > 0) {
            inspector.AddField("sequenceCode", m_SequenceCode);
        }
    } else if (m_IpmpsType == 0) {
        inspector.AddField("URL", m_Url.GetChars());
    } else {
        inspector.AddField("data size", m_Data.GetDataSize());
    }

    inspector.EndElement();

    return AP4_SUCCESS;
}
예제 #3
0
/*----------------------------------------------------------------------
|   AP4_BlocAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_BlocAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("base_location", GetBaseLocation());
    inspector.AddField("purchase_location", GetPurchaseLocation());
    return AP4_SUCCESS;
}
예제 #4
0
/*----------------------------------------------------------------------
|   AP4_GrpiAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_GrpiAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("key encryption method", m_KeyEncryptionMethod);
    inspector.AddField("group id",              m_GroupId.GetChars());
    inspector.AddField("group key",             m_GroupKey.GetData(), 
                                                m_GroupKey.GetDataSize());
    return AP4_SUCCESS;
}
예제 #5
0
/*----------------------------------------------------------------------
|       AP4_TkhdAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_TkhdAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("enabled", ((m_Flags & AP4_TKHD_FLAG_TRACK_ENABLED) ? 1 : 0), AP4_AtomInspector::HINT_BOOLEAN);
    inspector.AddField("id", m_TrackId);
    inspector.AddField("duration", (AP4_UI32)m_Duration);

    return AP4_SUCCESS;
}
예제 #6
0
/*----------------------------------------------------------------------
|   AP4_TrefTypeAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_TrefTypeAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("track_id_count", m_TrackIds.ItemCount());
    for (AP4_Ordinal i=0; i<m_TrackIds.ItemCount(); i++) {
    	inspector.AddField("track id ", m_TrackIds[i]);
    }
    return AP4_SUCCESS;
}
예제 #7
0
/*----------------------------------------------------------------------
|       AP4_IsfmAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_IsfmAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("selective_encryption", m_SelectiveEncryption);
    inspector.AddField("key_indicator_length", m_KeyIndicatorLength);
    inspector.AddField("IV_length", m_IvLength);

    return AP4_SUCCESS;
}
예제 #8
0
/*----------------------------------------------------------------------
|       AP4_RtpAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_RtpAtom::InspectFields(AP4_AtomInspector& inspector)
{
    char format_string[5];
    AP4_FormatFourChars(format_string, m_DescriptionFormat);
    inspector.AddField("description_format", format_string);
    inspector.AddField("sdp_text", m_SdpText.c_str());

    return AP4_SUCCESS;
}
예제 #9
0
/*----------------------------------------------------------------------
|   AP4_MkidAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_MkidAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("entry_count", m_Entries.ItemCount());
    for (unsigned int i=0; i<m_Entries.ItemCount(); i++) {
        inspector.AddField("KID", m_Entries[i].m_KID, 16);
        inspector.AddField("content_id", m_Entries[i].m_ContentId.GetChars());
    }
    return AP4_SUCCESS;
}
예제 #10
0
/*----------------------------------------------------------------------
|   AP4_HmhdAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_HmhdAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("max_pdu_size", m_MaxPduSize);
    inspector.AddField("avg_pdu_size", m_AvgPduSize);
    inspector.AddField("max_bitrate",  m_MaxBitrate);
    inspector.AddField("avg_bitrate",  m_AvgBitrate);

    return AP4_SUCCESS;
}
예제 #11
0
/*----------------------------------------------------------------------
|   AP4_Expandable::Inspect
+---------------------------------------------------------------------*/
AP4_Result
AP4_Expandable::Inspect(AP4_AtomInspector& inspector)
{
    char name[64];
    AP4_FormatString(name, sizeof(name), "#:%02x", m_ClassId);
    inspector.StartDescriptor(name, GetHeaderSize(), GetSize());
    inspector.EndDescriptor();

    return AP4_SUCCESS;
}
예제 #12
0
파일: Ap4TrexAtom.cpp 프로젝트: 9aa5/Bento4
/*----------------------------------------------------------------------
|   AP4_TrexAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_TrexAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("track id", m_TrackId);
    inspector.AddField("default sample description index", m_DefaultSampleDescriptionIndex);
    inspector.AddField("default sample duration", m_DefaultSampleDuration);
    inspector.AddField("default sample size", m_DefaultSampleSize);
    inspector.AddField("default sample flags", m_DefaultSampleFlags, AP4_AtomInspector::HINT_HEX);

    return AP4_SUCCESS;
}
예제 #13
0
/*----------------------------------------------------------------------
|       AP4_UrlAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_UrlAtom::InspectFields(AP4_AtomInspector& inspector)
{
    if (m_Flags & 1) {
        inspector.AddField("location", "[local to file]");
    } else {
        inspector.AddField("location", m_Url.c_str());
    }

    return AP4_SUCCESS;
}
예제 #14
0
/*----------------------------------------------------------------------
|   AP4_TkhdAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_TkhdAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("enabled", ((m_Flags & AP4_TKHD_FLAG_TRACK_ENABLED) ? 1 : 0), AP4_AtomInspector::HINT_BOOLEAN);
    inspector.AddField("id", m_TrackId);
    inspector.AddField("duration", m_Duration);
    inspector.AddFieldF("width", (float)m_Width/65536.0f);
    inspector.AddFieldF("height", (float)m_Height/65536.0f);
    
    return AP4_SUCCESS;
}
예제 #15
0
/*----------------------------------------------------------------------
|       AP4_VmhdAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_VmhdAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("graphics_mode", m_GraphicsMode);
    char formatted[16];
    AP4_StringFormat(formatted, sizeof(formatted), "%04x,%04x,%04x",
        m_OpColor[0], m_OpColor[1], m_OpColor[2]);
    inspector.AddField("op_color", formatted);

    return AP4_SUCCESS;
}
예제 #16
0
/*----------------------------------------------------------------------
|   AP4_ElstAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_ElstAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("entry count", m_Entries.ItemCount());
    for (AP4_Ordinal i=0; i<m_Entries.ItemCount(); i++) {
        inspector.AddField("entry/segment duration", (AP4_UI32)m_Entries[i].m_SegmentDuration);
        inspector.AddField("entry/media time", (AP4_SI32)m_Entries[i].m_MediaTime);
        inspector.AddField("entry/media rate", (AP4_UI16)m_Entries[i].m_MediaRate);
    }

    return AP4_SUCCESS;
}
예제 #17
0
/*----------------------------------------------------------------------
|   AP4_StcoAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_StcoAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("entry_count", m_EntryCount);
    if (inspector.GetVerbosity() >= 1) {
        char header[32];
        for (AP4_Ordinal i=0; i<m_EntryCount; i++) {
            AP4_FormatString(header, sizeof(header), "entry %8d", i);
            inspector.AddField(header, m_Entries[i]);
        }
    }
    return AP4_SUCCESS;
}
예제 #18
0
/*----------------------------------------------------------------------
|   AP4_VisualSampleEntry::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_VisualSampleEntry::InspectFields(AP4_AtomInspector& inspector)
{
    // dump the fields of the base class
    AP4_SampleEntry::InspectFields(inspector);

    // fields
    inspector.AddField("width", m_Width);
    inspector.AddField("height", m_Height);
    inspector.AddField("compressor", m_CompressorName.GetChars());

    return AP4_SUCCESS;
}
예제 #19
0
/*----------------------------------------------------------------------
|   AP4_SubtitleSampleEntry::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_SubtitleSampleEntry::InspectFields(AP4_AtomInspector& inspector)
{
    // dump the fields of the base class
    AP4_SampleEntry::InspectFields(inspector);

    // fields
    inspector.AddField("namespace",       m_Namespace.GetChars());
    inspector.AddField("schema_location", m_SchemaLocation.GetChars());
    inspector.AddField("image_mime_type", m_ImageMimeType.GetChars());

    return AP4_SUCCESS;
}
예제 #20
0
/*----------------------------------------------------------------------
|   AP4_RtpHintSampleEntry::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_RtpHintSampleEntry::InspectFields(AP4_AtomInspector& inspector)
{
    // sample entry
    AP4_SampleEntry::InspectFields(inspector);
    
    // fields
    inspector.AddField("hint_track_version", m_HintTrackVersion);
    inspector.AddField("highest_compatible_version", m_HighestCompatibleVersion);
    inspector.AddField("max_packet_size", m_MaxPacketSize);
    
    return AP4_SUCCESS;
}
예제 #21
0
/*----------------------------------------------------------------------
|   AP4_IkmsAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_IkmsAtom::InspectFields(AP4_AtomInspector& inspector)
{
    if (m_Version == 1) {
        char id[5];
        AP4_FormatFourChars(id, m_KmsId);
        inspector.AddField("kms_id", id);
        inspector.AddField("kms_version", m_KmsVersion);
    }
    inspector.AddField("kms_uri", m_KmsUri.GetChars());

    return AP4_SUCCESS;
}
예제 #22
0
/*----------------------------------------------------------------------
|   AP4_Expandable::Inspect
+---------------------------------------------------------------------*/
AP4_Result
AP4_Expandable::Inspect(AP4_AtomInspector& inspector)
{
    char name[6];
    AP4_FormatString(name, sizeof(name), "[#:%02x]", m_ClassId);
    char info[64];
    AP4_FormatString(info, sizeof(info), "size=%ld+%ld",
                     GetHeaderSize(),
                     m_PayloadSize);
    inspector.StartElement(name, info);
    inspector.EndElement();

    return AP4_SUCCESS;
}
예제 #23
0
파일: Ap4Ipmp.cpp 프로젝트: 9aa5/Bento4
/*----------------------------------------------------------------------
|   AP4_IpmpDescriptorPointer::Inspect
+---------------------------------------------------------------------*/
AP4_Result
AP4_IpmpDescriptorPointer::Inspect(AP4_AtomInspector& inspector)
{
    inspector.StartDescriptor("IPMP_DescriptorPointer", GetHeaderSize(), GetSize());
    inspector.AddField("IPMP_DescriptorID", m_DescriptorId);
    if (m_DescriptorId == 0xFF) {
        inspector.AddField("IPMP_DescriptorIDEx", m_DescriptorIdEx);
        inspector.AddField("IPMP_ES_ID",          m_EsId);
    }

    inspector.EndDescriptor();

    return AP4_SUCCESS;
}
예제 #24
0
/*----------------------------------------------------------------------
|   AP4_AudioSampleEntry::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_AudioSampleEntry::InspectFields(AP4_AtomInspector& inspector)
{
    // dump the fields from the base class
    AP4_SampleEntry::InspectFields(inspector);

    // fields
    inspector.AddField("channel_count", GetChannelCount());
    inspector.AddField("sample_size", GetSampleSize());
    inspector.AddField("sample_rate", GetSampleRate());
    if (m_QtVersion) {
        inspector.AddField("qt_version", m_QtVersion);
    }
    
    return AP4_SUCCESS;
}
예제 #25
0
/*----------------------------------------------------------------------
|   AP4_SampleEntry::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_SampleEntry::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("data_reference_index", m_DataReferenceIndex);

    return AP4_SUCCESS;
}
예제 #26
0
/*----------------------------------------------------------------------
|   AP4_TfdtAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_TfdtAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("base media decode time", m_BaseMediaDecodeTime);

    return AP4_SUCCESS;
}
예제 #27
0
/*----------------------------------------------------------------------
|       AP4_Co64Atom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_Co64Atom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("entry_count", m_EntryCount);

    return AP4_SUCCESS;
}
예제 #28
0
/*----------------------------------------------------------------------
|   AP4_MfhdAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_MfhdAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("sequence number", m_SequenceNumber);

    return AP4_SUCCESS;
}
예제 #29
0
/*----------------------------------------------------------------------
|       AP4_IkmsAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_IkmsAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("kms_uri", m_KmsUri.c_str());

    return AP4_SUCCESS;
}
예제 #30
0
/*----------------------------------------------------------------------
|   AP4_StssAtom::InspectFields
+---------------------------------------------------------------------*/
AP4_Result
AP4_StssAtom::InspectFields(AP4_AtomInspector& inspector)
{
    inspector.AddField("entry_count", m_Entries.ItemCount());

    return AP4_SUCCESS;
}