Projects
Multimedia
bento4
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 19
View file
bento4.changes
Changed
@@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Wed Jun 24 07:15:34 UTC 2020 - Luigi Baldoni <aloisio@gmx.com> + +- Update to version 1.6.0-637 + +------------------------------------------------------------------- Sun Jun 7 12:35:09 UTC 2020 - aloisio@gmx.com - Update to version 1.6.0-636
View file
bento4.spec
Changed
@@ -16,10 +16,10 @@ # -%define _over 1.6.0-636 -%define _libver 1_6_0r636 +%define _over 1.6.0-637 +%define _libver 1_6_0r637 Name: bento4 -Version: 1.6.0r636 +Version: 1.6.0r637 Release: 0 Summary: C++ toolkit for all your MP4 and MPEG DASH media format needs License: GPL-2.0-or-later
View file
bento4-1.6.0r636.tar.gz/Build/Docker/Dockerfile -> bento4-1.6.0r637.tar.gz/Build/Docker/Dockerfile
Changed
@@ -1,7 +1,7 @@ FROM alpine:latest # Setup environment variables -ENV BENTO4_VERSION 1.6.0-636 +ENV BENTO4_VERSION 1.6.0-637 # Install Dependencies RUN apk update && apk add --no-cache ca-certificates bash python3 make cmake gcc g++ git
View file
bento4-1.6.0r636.tar.gz/Source/C++/Apps/Mp4Info/Mp4Info.cpp -> bento4-1.6.0r637.tar.gz/Source/C++/Apps/Mp4Info/Mp4Info.cpp
Changed
@@ -1074,7 +1074,8 @@ bool show_sample_data, AP4_AvcSampleDescription* avc_desc) { - printf("[%06d] size=%6d duration=%6d", + printf("[%02d.%06d] size=%6d duration=%6d", + track.GetId(), index+1, (int)sample.GetSize(), (int)sample.GetDuration()); @@ -1617,15 +1618,18 @@ stream->Seek(0); AP4_LinearReader reader(movie, stream); AP4_List<AP4_Track>::Item* track_item = movie.GetTracks().FirstItem(); + AP4_Array<unsigned int> counters; while (track_item) { reader.EnableTrack(track_item->GetData()->GetId()); track_item = track_item->GetNext(); + counters.Append(0); } AP4_Sample sample; AP4_DataBuffer sample_data; AP4_UI32 prev_track_id = 0; - for(unsigned int i=0; ; i++) { + unsigned int* counter = &counters[0]; + for (;;) { AP4_UI32 track_id = 0; AP4_Result result = reader.ReadNextSample(sample, sample_data, track_id); if (AP4_SUCCEEDED(result)) { @@ -1637,10 +1641,25 @@ if (track_id != prev_track_id) { printf("Track %d:\n", track_id); prev_track_id = track_id; + + // find the right counter for this track + unsigned int counter_index = 0; + for (AP4_List<AP4_Track>::Item* track_item = movie.GetTracks().FirstItem(); + track_item; + track_item = track_item->GetNext(), ++counter_index) { + if (track_item->GetData()->GetId() == track_id) { + if (counter_index < counters.ItemCount()) { + counter = &counters[counter_index]; + } + break; + } + } } - ShowSample_Text(*track, sample, sample_data, i, verbose, show_sample_data, avc_desc); + ShowSample_Text(*track, sample, sample_data, *counter, verbose, show_sample_data, avc_desc); printf("\n"); + + ++*counter; } else { break; }
View file
bento4-1.6.0r636.tar.gz/Source/C++/Core/Ap4Processor.cpp -> bento4-1.6.0r637.tar.gz/Source/C++/Core/Ap4Processor.cpp
Changed
@@ -285,6 +285,7 @@ trun->SetDataOffset((AP4_SI32)((mdat_out_start+mdat_size)-base_data_offset)); // write the mdat + AP4_UI32 default_sample_size = 0; for (unsigned int j=0; j<sample_tables[i]->GetSampleCount(); j++, trun_sample_index++) { // advance the trun index if necessary if (trun_sample_index >= trun->GetEntries().ItemCount()) { @@ -312,6 +313,13 @@ // update the trun entry trun->UseEntries()[trun_sample_index].sample_size = sample_data_out.GetDataSize(); + + // if this entry uses the default sample size, adjust the default accordingly + // (NOTE: there's only one default, so this assumes, of course, that all sample + // sizes change the same way, if they change at all) + if (default_sample_size == 0 && (trun->GetFlags() & AP4_TRUN_FLAG_SAMPLE_SIZE_PRESENT) == 0) { + default_sample_size = sample_data_out.GetDataSize(); + } } else { // write the sample data (unmodified) result = output.Write(sample_data_in.GetData(), sample_data_in.GetDataSize()); @@ -328,7 +336,9 @@ tfhd->SetBaseDataOffset(mdat_out_start+AP4_ATOM_HEADER_SIZE); } if (tfhd->GetFlags() & AP4_TFHD_FLAG_DEFAULT_SAMPLE_SIZE_PRESENT) { - tfhd->SetDefaultSampleSize(trun->GetEntries()[0].sample_size); + if (default_sample_size) { + tfhd->SetDefaultSampleSize(default_sample_size); + } } // give the handler a chance to update the atoms
View file
bento4-1.6.0r636.tar.gz/Source/C++/Core/Ap4StszAtom.cpp -> bento4-1.6.0r637.tar.gz/Source/C++/Core/Ap4StszAtom.cpp
Changed
@@ -78,8 +78,7 @@ } stream.ReadUI32(m_SampleSize); - AP4_UI32 sample_count; - stream.ReadUI32(sample_count); + stream.ReadUI32(m_SampleCount); if (m_SampleSize == 0) { // means that the samples have different sizes // check for overflow if (m_SampleCount > (size - AP4_FULL_ATOM_HEADER_SIZE - 8) / 4) { @@ -87,16 +86,15 @@ } // read the entries - unsigned char* buffer = new unsigned char[sample_count * 4]; - AP4_Result result = stream.Read(buffer, sample_count*4); + unsigned char* buffer = new unsigned char[m_SampleCount * 4]; + AP4_Result result = stream.Read(buffer, m_SampleCount * 4); if (AP4_FAILED(result)) { delete[] buffer; return; } - m_SampleCount = sample_count; - m_Entries.SetItemCount((AP4_Cardinal)sample_count); - for (unsigned int i=0; i<sample_count; i++) { - m_Entries[i] = AP4_BytesToUInt32BE(&buffer[i*4]); + m_Entries.SetItemCount((AP4_Cardinal)m_SampleCount); + for (unsigned int i = 0; i < m_SampleCount; i++) { + m_Entries[i] = AP4_BytesToUInt32BE(&buffer[i * 4]); } delete[] buffer; }
View file
bento4-1.6.0r636.tar.gz/Source/Python/utils/mp4-dash.py -> bento4-1.6.0r637.tar.gz/Source/Python/utils/mp4-dash.py
Changed
@@ -58,7 +58,7 @@ # setup main options VERSION = "2.0.0" -SDK_REVISION = '636' +SDK_REVISION = '637' SCRIPT_PATH = path.abspath(path.dirname(__file__)) sys.path += [SCRIPT_PATH]
View file
bento4-1.6.0r636.tar.gz/Source/Python/utils/mp4-hls.py -> bento4-1.6.0r637.tar.gz/Source/Python/utils/mp4-hls.py
Changed
@@ -31,7 +31,7 @@ # setup main options VERSION = "1.2.0" -SDK_REVISION = '636' +SDK_REVISION = '637' SCRIPT_PATH = path.abspath(path.dirname(__file__)) sys.path += [SCRIPT_PATH]
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.