]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/nut.c
cosmetical change of mp3_parse_xing() to prepare for upcoming VBRI tag support
[ffmpeg] / libavformat / nut.c
index 91509afbd8eb28b43b0f89f0ae2e06977565ce01..e329a510d19777b013aeca45359950b0d46ba433 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 #include "nut.h"
+#include "tree.h"
 
 unsigned long av_crc04C11DB7_update(unsigned long checksum, const uint8_t *buf, unsigned int len){
     return av_crc(av_crc04C11DB7, checksum, buf, len);
@@ -42,3 +43,21 @@ int64_t ff_lsb2full(StreamContext *stream, int64_t lsb){
     return  ((lsb - delta)&mask) + delta;
 }
 
+int ff_nut_sp_pos_cmp(syncpoint_t *a, syncpoint_t *b){
+    return (a->pos - b->pos>>32) - (b->pos - a->pos>>32);
+}
+
+int ff_nut_sp_pts_cmp(syncpoint_t *a, syncpoint_t *b){
+    return (a->ts - b->ts>>32) - (b->ts - a->ts>>32);
+}
+
+void ff_nut_add_sp(NUTContext *nut, int64_t pos, int64_t back_ptr, int64_t ts){
+    syncpoint_t *sp2, *sp= av_mallocz(sizeof(syncpoint_t));
+
+    sp->pos= pos;
+    sp->back_ptr= back_ptr;
+    sp->ts= ts;
+    sp2= av_tree_insert(&nut->syncpoints, sp, ff_nut_sp_pos_cmp);
+    if(sp2 && sp2 != sp)
+        av_free(sp);
+}