]> granicus.if.org Git - handbrake/commitdiff
bump libmkv from 0.6.4.1-3 to 0.6.5
authorjstebbins <jstebbins.hb@gmail.com>
Wed, 12 Oct 2011 21:14:23 +0000 (21:14 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Wed, 12 Oct 2011 21:14:23 +0000 (21:14 +0000)
This eliminates the need for the patch that was added with flac support.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4283 b64f7644-9d1e-0410-96f1-a4d463321fa5

contrib/libmkv/A00-update-track-private-data.patch [deleted file]
contrib/libmkv/module.defs

diff --git a/contrib/libmkv/A00-update-track-private-data.patch b/contrib/libmkv/A00-update-track-private-data.patch
deleted file mode 100644 (file)
index 97afcf9..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-diff --git a/include/libmkv.h b/include/libmkv.h
-index 4bd6f8c..146a91f 100644
---- a/include/libmkv.h
-+++ b/include/libmkv.h
-@@ -216,6 +216,7 @@ struct mk_TrackConfig_s {
- mk_Writer *mk_createWriter(const char *filename, int64_t timescale,
-                                                  uint8_t vlc_compat);
- mk_Track *mk_createTrack(mk_Writer *w, mk_TrackConfig *tc);
-+int mk_updateTrackPrivateData(mk_Writer *w, mk_Track *track, uint8_t * data, int size );
- int mk_writeHeader(mk_Writer *w, const char *writingApp);
- int mk_startFrame(mk_Writer *w, mk_Track *track);
- int mk_flushFrame(mk_Writer *w, mk_Track *track);
-diff --git a/src/matroska.c b/src/matroska.c
-index f61b6f2..b14fd4c 100644
---- a/src/matroska.c
-+++ b/src/matroska.c
-@@ -171,8 +171,17 @@ int mk_writeHeader(mk_Writer *w, const char *writingApp)
-       w->seek_data.tracks = w->root->d_cur - w->segment_ptr;
--      if (w->tracks)
--              CHECK(mk_closeContext(w->tracks, 0));
-+      if (w->tracks) {
-+              mk_Track * tk;
-+              int i;
-+
-+              CHECK(mk_closeContext(w->tracks, &offset));
-+              for (i = 0; i < w->num_tracks; i++) {
-+                      tk = w->tracks_arr[i];
-+                      if (tk->private_data_size)
-+                              tk->private_data_ptr += offset;
-+              }
-+      }
-       CHECK(mk_flushContextData(w->root));
-@@ -487,12 +496,8 @@ int mk_close(mk_Writer *w)
-       for (i = w->num_tracks - 1; i >= 0; i--) {
-               tk = w->tracks_arr[i];
--              w->tracks_arr[i] = NULL;
--              --w->num_tracks;
-               if (mk_flushFrame(w, tk) < 0)
-                       ret = -1;
--              free(tk);
--              tk = NULL;
-       }
-       if (mk_closeCluster(w) < 0)
-@@ -611,6 +616,24 @@ int mk_close(mk_Writer *w)
-                       ret = -1;
-       }
-+    /* update any track private data that may have changed */
-+      for (i = w->num_tracks - 1; i >= 0; i--) {
-+              tk = w->tracks_arr[i];
-+              if (tk->private_data_size && tk->private_data)
-+              {
-+                      if (mk_seekFile(w, tk->private_data_ptr) < 0)
-+                              ret = -1;
-+                      if (mk_writeBin(w->root, MATROSKA_ID_CODECPRIVATE,
-+                                                      tk->private_data, tk->private_data_size) < 0 ||
-+                              mk_flushContextData(w->root) < 0)
-+                              ret = -1;
-+                      free(tk->private_data);
-+        }
-+              w->tracks_arr[i] = NULL;
-+              --w->num_tracks;
-+              free(tk);
-+      }
-+
-       if (mk_closeContext(w->root, 0) < 0)
-               ret = -1;
-       mk_destroyContexts(w);
-diff --git a/src/matroska.h b/src/matroska.h
-index 515c5ab..2e1eb2f 100644
---- a/src/matroska.h
-+++ b/src/matroska.h
-@@ -269,6 +269,9 @@ struct mk_Track_s {
-       uint64_t default_duration;
-       mk_TrackType track_type;
-       int64_t prev_cue_pos;
-+      uint8_t *private_data;
-+      unsigned private_data_size;
-+      int64_t private_data_ptr;
-       struct {
-               mk_Context *data;
-diff --git a/src/tracks.c b/src/tracks.c
-index d9fc38b..0e224e4 100644
---- a/src/tracks.c
-+++ b/src/tracks.c
-@@ -81,6 +81,8 @@ mk_Track *mk_createTrack(mk_Writer *w, mk_TrackConfig *tc)
-               return NULL;
-       if (tc->codecPrivateSize && (tc->codecPrivate != NULL)) {
-               /* CodecPrivate */
-+              track->private_data_size = tc->codecPrivateSize;
-+              track->private_data_ptr = ti->d_cur;
-               if (mk_writeBin(ti, MATROSKA_ID_CODECPRIVATE, tc->codecPrivate, tc->codecPrivateSize) < 0)
-                       return NULL;
-       }
-@@ -191,17 +193,40 @@ mk_Track *mk_createTrack(mk_Writer *w, mk_TrackConfig *tc)
-                       return NULL;
-       }
--      if (mk_closeContext(ti, 0) < 0)
-+      int64_t offset = 0;
-+      if (mk_closeContext(ti, &offset) < 0)
-               return NULL;
-+      track->private_data_ptr += offset;
-       return track;
- }
-+int mk_updateTrackPrivateData(mk_Writer *w, mk_Track *track, uint8_t * data, int size )
-+{
-+      /* can not write data larger than was previously reserved */
-+      if (size > track->private_data_size)
-+              return -1;
-+
-+      if (track->private_data == NULL)
-+              track->private_data = calloc(1, track->private_data_size);
-+      memcpy(track->private_data, data, size);
-+}
-+
- int mk_writeTracks(mk_Writer *w, mk_Context *tracks)
- {
-+      int i;
-+      mk_Track * tk;
-+      int64_t offset = 0;
-+
-       w->seek_data.tracks = w->root->d_cur;
--      CHECK(mk_closeContext(w->tracks, 0));
-+      CHECK(mk_closeContext(w->tracks, &offset));
-+
-+      for (i = 0; i < w->num_tracks; i++) {
-+              tk = w->tracks_arr[i];
-+              if (tk->private_data_size)
-+                      tk->private_data_ptr += offset;
-+      }
-       return 0;
- }
index 15ec222689e0a3b52875c794385bf6dc342ff955..f16f7d5ef0e09d2c63d72dafedacf7b94ea8848c 100644 (file)
@@ -1,6 +1,6 @@
 $(eval $(call import.MODULE.defs,LIBMKV,libmkv))
 $(eval $(call import.CONTRIB.defs,LIBMKV))
 
-LIBMKV.FETCH.url = http://download.handbrake.fr/handbrake/contrib/libmkv-0.6.4.1-3-g62ce8b9.tar.gz
+LIBMKV.FETCH.url = http://download.handbrake.fr/handbrake/contrib/libmkv-0.6.5-0-g82075ae.tar.gz
 
 LIBMKV.CONFIGURE.bootstrap = rm -fr aclocal.m4 autom4te.cache; mkdir m4; autoreconf -fiv;