Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions .github/workflows/linux-gcc9.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ jobs:
build_libmatroska:
name: libmatroska for Linux gcc9
runs-on: ubuntu-22.04
env:
CMAKE_MATROSKA_OPTIONS: -DBUILD_EXAMPLES=ON
CC: gcc-9
CXX: g++-9
steps:
- name: list compilers
run: dpkg --list | grep compiler
Expand All @@ -25,9 +29,6 @@ jobs:

- name: Configure libebml
run: cmake -S libebml -B libebml/_build
env:
CC: gcc-9
CXX: g++-9

- name: Build libebml
run: cmake --build libebml/_build --parallel
Expand All @@ -36,10 +37,7 @@ jobs:
run: cmake --install libebml/_build --prefix ${GITHUB_WORKSPACE}/_built

- name: Configure CMake
run: cmake -S . -B _build -DEBML_DIR="${GITHUB_WORKSPACE}/_built/lib/cmake/EBML"
env:
CC: gcc-9
CXX: g++-9
run: cmake -S . -B _build ${{ env.CMAKE_MATROSKA_OPTIONS }} -DEBML_DIR="${GITHUB_WORKSPACE}/_built/lib/cmake/EBML"

- name: Build with CMake
run: cmake --build _build --parallel
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/linux.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
cxx: ['g++-14', 'clang++-18']
env:
CMAKE_OPTIONS: -DBUILD_TESTING=ON -G Ninja
CMAKE_MATROSKA_OPTIONS: -DBUILD_EXAMPLES=OFF
CMAKE_MATROSKA_OPTIONS: -DBUILD_EXAMPLES=ON
CXX: ${{matrix.cxx}}
steps:
- name: list compilers
Expand Down Expand Up @@ -51,6 +51,8 @@ jobs:
Current:
name: libmatroska for Linux
runs-on: ubuntu-latest
env:
CMAKE_MATROSKA_OPTIONS: -DBUILD_EXAMPLES=ON
steps:

- name: Get pushed code
Expand All @@ -73,7 +75,7 @@ jobs:
run: cmake --install libebml/_build --prefix ${GITHUB_WORKSPACE}/_built

- name: Configure CMake
run: cmake -S . -B _build -DEBML_DIR="${GITHUB_WORKSPACE}/_built/lib/cmake/EBML" -G Ninja
run: cmake -S . -B _build ${{ env.CMAKE_MATROSKA_OPTIONS }} -DEBML_DIR="${GITHUB_WORKSPACE}/_built/lib/cmake/EBML" -G Ninja

- name: Build with CMake
run: cmake --build _build --parallel
Expand All @@ -86,7 +88,7 @@ jobs:
runs-on: ubuntu-latest
env:
CMAKE_OPTIONS: -DDEV_MODE=ON -DBUILD_TESTING=ON -DCMAKE_SYSTEM_PROCESSOR=s390x -DCMAKE_CROSSCOMPILING_EMULATOR="qemu-s390x;-L;/usr/s390x-linux-gnu/" -G Ninja
CMAKE_MATROSKA_OPTIONS: -DBUILD_EXAMPLES=OFF
CMAKE_MATROSKA_OPTIONS: -DBUILD_EXAMPLES=ON
CXX: s390x-linux-gnu-g++
steps:
- name: install toolchain
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ jobs:
build_libmatroska:
name: libmatroska for macOS
runs-on: macos-latest
env:
CMAKE_MATROSKA_OPTIONS: -DBUILD_EXAMPLES=ON
steps:
- name: Get pushed code
uses: actions/checkout@v4
Expand All @@ -30,7 +32,7 @@ jobs:
run: cmake --install libebml/_build --prefix ${GITHUB_WORKSPACE}/_built

- name: Configure CMake
run: cmake -S . -B _build -DEBML_DIR="${GITHUB_WORKSPACE}/_built/lib/cmake/EBML" -G Ninja
run: cmake -S . -B _build ${{ env.CMAKE_MATROSKA_OPTIONS }} -DEBML_DIR="${GITHUB_WORKSPACE}/_built/lib/cmake/EBML" -G Ninja

- name: Build with CMake
run: cmake --build _build --parallel
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/windows.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ jobs:
build_libmatroska:
name: ${{ matrix.config }} libmatroska for Windows
runs-on: windows-latest
env:
CMAKE_MATROSKA_OPTIONS: -DBUILD_EXAMPLES=ON
strategy:
fail-fast: false
matrix:
Expand All @@ -34,7 +36,7 @@ jobs:
run: cmake --install libebml/_build --config ${{ matrix.config }} --prefix ${GITHUB_WORKSPACE}/_built

- name: Configure CMake
run: cmake -S . -B _build -DEBML_DIR="${GITHUB_WORKSPACE}/_built/lib/cmake/EBML" -G "Ninja Multi-Config"
run: cmake -S . -B _build ${{ env.CMAKE_MATROSKA_OPTIONS }} -DEBML_DIR="${GITHUB_WORKSPACE}/_built/lib/cmake/EBML" -G "Ninja Multi-Config"

- name: Build with CMake
run: cmake --build _build --config ${{ matrix.config }} --parallel
Expand Down
5 changes: 3 additions & 2 deletions test/ebml/test0.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@
\see http://www-106.ibm.com/developerworks/unicode/library/u-encode.html
*/

#include <stdio.h>
#include <cstdio>
#include <cstdint>

#include <ebml/StdIOCallback.h>

Expand Down Expand Up @@ -267,7 +268,7 @@ int main(void)
printf(" : %d", int32(*(EbmlSInteger*)EvaledElementLevel0));
break;
case EBML_BINARY:
printf(" : binary data, size = %ld", (*(EbmlBinary*)EvaledElementLevel0).GetSize());
printf(" : binary data, size = %zu", (*(EbmlBinary*)EvaledElementLevel0).GetSize());
printf(" [%02X]", binary(*(EbmlBinary*)EvaledElementLevel0));
break;
case EBML_STRING:
Expand Down
34 changes: 17 additions & 17 deletions test/ebml/test00.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,13 @@ int main(void)

printf("Write EBML + Matroska elements\n");
EDocType & MyDocType = GetChild<EDocType>(TestHead);
*static_cast<EbmlString *>(&MyDocType) = "matroska";
MyDocType.SetValue("matroska");

EDocTypeVersion & MyDocTypeVer = GetChild<EDocTypeVersion>(TestHead);
*(static_cast<EbmlUInteger *>(&MyDocTypeVer)) = 1;
MyDocTypeVer.SetValue(1);

EDocTypeReadVersion & MyDocTypeReadVer = GetChild<EDocTypeReadVersion>(TestHead);
*(static_cast<EbmlUInteger *>(&MyDocTypeReadVer)) = 1;
MyDocTypeReadVer.SetValue(1);

TestHead.Render(Ebml_file);

Expand All @@ -100,7 +100,7 @@ int main(void)
KaxFileName * pFileName1 = static_cast<KaxFileName *>(pAttachment1->FindFirstElt(KaxFileName::ClassInfos, true));
if (pFileName1 == NULL)
return -1;
*static_cast<EbmlUnicodeString *>(pFileName1) = "file1.txt";
pFileName1->SetValueUTF8("file1.txt");
KaxFileData * pFileData1 = static_cast<KaxFileData *>(pAttachment1->FindFirstElt(KaxFileData::ClassInfos, true));
if (pFileData1 == NULL)
return -1;
Expand All @@ -115,7 +115,7 @@ int main(void)
KaxFileName * pFileName2 = static_cast<KaxFileName *>(pAttachment2->FindFirstElt(KaxFileName::ClassInfos, true));
if (pFileName2 == NULL)
return -1;
*static_cast<EbmlUnicodeString *>(pFileName2) = "file2.txt";
pFileName2->SetValueUTF8("file2.txt");
// Add a void element (data is discarded)
EbmlVoid * pVoid = static_cast<EbmlVoid *>(pAttachment2->FindFirstElt(EbmlVoid::ClassInfos, true));
if (pVoid == NULL)
Expand Down Expand Up @@ -144,13 +144,13 @@ int main(void)
// read the data until a possible element is found (valid ID + size combination)
printf("Read EBML elements & skip data\n");
// find the EBML head in the file
ElementLevel0 = aStream.FindNextID(EbmlHead::ClassInfos, 0xFFFFFFFFL, false);
ElementLevel0 = aStream.FindNextID(EbmlHead::ClassInfos, 0xFFFFFFFFL);
if (ElementLevel0 != NULL)
{
printf("ID : ");
for (unsigned int i=0; i<EbmlId(*ElementLevel0).Length; i++)
{
printf("[%02X]", EbmlId(*ElementLevel0).Value[i]);
printf("[%02X]", (EbmlId(*ElementLevel0).Value >> ((3-i) * 8)) & 0xFF);
}
printf("\n");

Expand All @@ -160,26 +160,26 @@ int main(void)
}

// example to read attachements in the file
ElementLevel0 = aStream.FindNextID(KaxSegment::ClassInfos, 0xFFFFFFFFL, false);
ElementLevel0 = aStream.FindNextID(KaxSegment::ClassInfos, 0xFFFFFFFFL);
while (ElementLevel0 != NULL)
{
printf("ID : ");
for (unsigned int i=0; i<EbmlId(*ElementLevel0).Length; i++)
{
printf("[%02X]", EbmlId(*ElementLevel0).Value[i]);
printf("[%02X]", (EbmlId(*ElementLevel0).Value >> ((3-i) * 8)) & 0xFF);
}
printf("\n");

int bUpperElement = 0;

ElementLevel1 = aStream.FindNextID(KaxSegment_Context, bUpperElement, 0xFFFFFFFFL, true);
ElementLevel1 = aStream.FindNextElement(KaxSegment_Context, bUpperElement, 0xFFFFFFFFL, true);

while (ElementLevel1 != NULL) {
/// \todo switch the type of the element to check if it's one we want to handle, like attachements
if (EbmlId(*ElementLevel1) == KaxAttachments::ClassInfos.GlobalId) {
printf("Attachments detected\n");

ElementLevel2 = aStream.FindNextID(KaxAttachments_Context, bUpperElement, 0xFFFFFFFFL, true);
ElementLevel2 = aStream.FindNextElement(KaxAttachments_Context, bUpperElement, 0xFFFFFFFFL, true);
while (ElementLevel2 != NULL) {
/// \todo switch the type of the element to check if it's one we want to handle, like attachements
if (EbmlId(*ElementLevel2) == KaxAttached::ClassInfos.GlobalId) {
Expand All @@ -188,7 +188,7 @@ int main(void)
#ifdef SKIP_ATTACHED
ElementLevel2 = ElementLevel2->SkipData(aStream, KaxAttached_Context);
if (ElementLevel2 == NULL) {
ElementLevel2 = aStream.FindNextID(KaxAttachments_Context, bUpperElement, 0xFFFFFFFFL, true);
ElementLevel2 = aStream.FindNextElement(KaxAttachments_Context, bUpperElement, 0xFFFFFFFFL);

if (bUpperElement) {
printf("Upper level1 element found\n");
Expand All @@ -199,7 +199,7 @@ int main(void)
}
#else // SKIP_ATTACHED
// Display the filename (if it exists)
ElementLevel3 = aStream.FindNextID(KaxAttached_Context, bUpperElement, 0xFFFFFFFFL, false);
ElementLevel3 = aStream.FindNextElement(KaxAttached_Context, bUpperElement, 0xFFFFFFFFL, false);
while (ElementLevel3 != NULL) {
/// \todo switch the type of the element to check if it's one we want to handle, like attachements
if (EbmlId(*ElementLevel3) == KaxFileName::ClassInfos.GlobalId) {
Expand All @@ -210,7 +210,7 @@ int main(void)
ElementLevel3->SkipData(aStream, KaxAttached_Context);
}
delete ElementLevel3;
ElementLevel3 = aStream.FindNextID(KaxAttached_Context, bUpperElement, 0xFFFFFFFFL, false);
ElementLevel3 = aStream.FindNextElement(KaxAttached_Context, bUpperElement, 0xFFFFFFFFL, false);
if (bUpperElement)
break;
}
Expand All @@ -222,22 +222,22 @@ int main(void)
ElementLevel2->SkipData(aStream, KaxAttached_Context);
delete ElementLevel2;

ElementLevel2 = aStream.FindNextID(KaxAttachments_Context, bUpperElement, 0xFFFFFFFFL, true);
ElementLevel2 = aStream.FindNextElement(KaxAttachments_Context, bUpperElement, 0xFFFFFFFFL, true);
}
#endif // SKIP_ATTACHED
}
}
ElementLevel1->SkipData(aStream, KaxAttachments_Context);
delete ElementLevel1;

ElementLevel1 = aStream.FindNextID(KaxSegment_Context, bUpperElement, 0xFFFFFFFFL, true);
ElementLevel1 = aStream.FindNextElement(KaxSegment_Context, bUpperElement, 0xFFFFFFFFL, true);
}

ElementLevel0->SkipData(aStream, KaxSegment_Context);
if (ElementLevel0 != NULL)
delete ElementLevel0;

ElementLevel0 = aStream.FindNextID(KaxSegment_Context, bUpperElement, 0xFFFFFFFFL, true);
ElementLevel0 = aStream.FindNextElement(KaxSegment_Context, bUpperElement, 0xFFFFFFFFL, true);
}

Ebml_Wfile.close();
Expand Down
Loading