Remove usage of memalign. master
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>
Sun, 14 Jun 2020 17:55:21 +0000 (17:55 +0000)
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>
Sun, 14 Jun 2020 17:55:21 +0000 (17:55 +0000)
Switch to av_malloc instead.
Only vo_vesa remains using memalign as it requests 64-byte alignment,
which is more than av_malloc provides.
The fallback for memalign has been plain malloc, which meant crashes
on e.g. Win32 where malloc is not sufficiently aligned.

git-svn-id: svn://git.mplayerhq.hu/mplayer/trunk@38192 b3059339-0415-0410-9bf9-f77b7e298cf2

configure
libmpdemux/video.c
loader/win32.c
sub/sub.c

index 12d119b..d21df0f 100755 (executable)
--- a/configure
+++ b/configure
@@ -3988,8 +3988,6 @@ if test "$_memalign" = yes ; then
   def_memalign='#define HAVE_MEMALIGN 1'
 else
   def_memalign='#define HAVE_MEMALIGN 0'
-  def_map_memalign='#define memalign(a, b) malloc(b)'
-  darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
 fi
 echores "$_memalign"
 
@@ -9008,7 +9006,6 @@ $def_glob
 $def_gmtime_r
 $def_langinfo
 $def_localtime_r
-$def_map_memalign
 $def_memalign
 $def_nanosleep
 $def_posix_select
@@ -9036,7 +9033,6 @@ $def_kstat
 $def_macosx_bundle
 $def_macosx_finder
 $def_maemo
-$def_memalign_hack
 $def_path_max_check
 $def_priority
 $def_quicktime
index 80e6023..6b0927d 100644 (file)
@@ -134,7 +134,7 @@ switch(video_codec){
    }
    mp_msg(MSGT_DECVIDEO,MSGL_V,"OK!\n");
    if(!videobuffer) {
-     videobuffer = memalign(8, VIDEOBUFFER_SIZE + MP_INPUT_BUFFER_PADDING_SIZE);
+     videobuffer = av_malloc(VIDEOBUFFER_SIZE + MP_INPUT_BUFFER_PADDING_SIZE);
      if (videobuffer) memset(videobuffer+VIDEOBUFFER_SIZE, 0, MP_INPUT_BUFFER_PADDING_SIZE);
      else {
        mp_msg(MSGT_DECVIDEO,MSGL_ERR,MSGTR_ShMemAllocFail);
@@ -229,7 +229,7 @@ switch(video_codec){
    }
    mp_msg(MSGT_DECVIDEO,MSGL_V,"OK!\n");
    if(!videobuffer) {
-     videobuffer = memalign(8, VIDEOBUFFER_SIZE + MP_INPUT_BUFFER_PADDING_SIZE);
+     videobuffer = av_malloc(VIDEOBUFFER_SIZE + MP_INPUT_BUFFER_PADDING_SIZE);
      if (videobuffer) memset(videobuffer+VIDEOBUFFER_SIZE, 0, MP_INPUT_BUFFER_PADDING_SIZE);
      else {
        mp_msg(MSGT_DECVIDEO,MSGL_ERR,MSGTR_ShMemAllocFail);
@@ -275,7 +275,7 @@ switch(video_codec){
  case VIDEO_HEVC: {
    videobuf_len=0; videobuf_code_len=0;
    if(!videobuffer) {
-     videobuffer = memalign(8, VIDEOBUFFER_SIZE + MP_INPUT_BUFFER_PADDING_SIZE);
+     videobuffer = av_malloc(VIDEOBUFFER_SIZE + MP_INPUT_BUFFER_PADDING_SIZE);
      if (videobuffer) memset(videobuffer+VIDEOBUFFER_SIZE, 0, MP_INPUT_BUFFER_PADDING_SIZE);
      else {
        mp_msg(MSGT_DECVIDEO,MSGL_ERR,MSGTR_ShMemAllocFail);
@@ -306,7 +306,7 @@ mpeg_header_parser:
    mp_msg(MSGT_DECVIDEO,MSGL_V,"OK!\n");
    // ========= Read & process sequence header & extension ============
    if(!videobuffer) {
-     videobuffer = memalign(8, VIDEOBUFFER_SIZE + MP_INPUT_BUFFER_PADDING_SIZE);
+     videobuffer = av_malloc(VIDEOBUFFER_SIZE + MP_INPUT_BUFFER_PADDING_SIZE);
      if (videobuffer) memset(videobuffer+VIDEOBUFFER_SIZE, 0, MP_INPUT_BUFFER_PADDING_SIZE);
      else {
        mp_msg(MSGT_DECVIDEO,MSGL_ERR,MSGTR_ShMemAllocFail);
@@ -374,7 +374,7 @@ mpeg_header_parser:
    }
    mp_msg(MSGT_DECVIDEO,MSGL_INFO,"found\n");
    if(!videobuffer) {
-     videobuffer = memalign(8, VIDEOBUFFER_SIZE + MP_INPUT_BUFFER_PADDING_SIZE);
+     videobuffer = av_malloc(VIDEOBUFFER_SIZE + MP_INPUT_BUFFER_PADDING_SIZE);
      if (videobuffer) memset(videobuffer+VIDEOBUFFER_SIZE, 0, MP_INPUT_BUFFER_PADDING_SIZE);
      else {
        mp_msg(MSGT_DECVIDEO,MSGL_ERR,MSGTR_ShMemAllocFail);
index bbd3fae..f4cca1b 100644 (file)
@@ -351,7 +351,7 @@ void* mreq_private(int size, int to_zero, int type);
 void* mreq_private(int size, int to_zero, int type)
 {
     int nsize = size + sizeof(alloc_header);
-    alloc_header* header = memalign(16, nsize);
+    alloc_header* header = av_malloc(nsize);
     if (!header)
         return 0;
     if (to_zero)
@@ -436,7 +436,7 @@ static int my_release(void* memory)
        return 0;
 #endif
     //memset(header + 1, 0xcc, header->size);
-    free(header);
+    av_free(header);
     return 0;
 }
 #endif
index 0d285e1..1422421 100644 (file)
--- a/sub/sub.c
+++ b/sub/sub.c
@@ -156,10 +156,10 @@ static void alloc_buf(mp_osd_obj_t* obj)
     len = obj->stride*(obj->bbox.y2-obj->bbox.y1);
     if (obj->allocated<len) {
        obj->allocated = len;
-       free(obj->bitmap_buffer);
-       free(obj->alpha_buffer);
-       obj->bitmap_buffer = memalign(16, len);
-       obj->alpha_buffer  = memalign(16, len);
+       av_freep(&obj->bitmap_buffer);
+       av_freep(&obj->alpha_buffer);
+       obj->bitmap_buffer = av_malloc(len);
+       obj->alpha_buffer  = av_malloc(len);
     }
     memset(obj->bitmap_buffer, sub_bg_color, len);
     memset(obj->alpha_buffer, sub_bg_alpha, len);
@@ -1101,8 +1101,8 @@ void free_osd_list(void){
     mp_osd_obj_t* obj=vo_osd_list;
     while(obj){
        mp_osd_obj_t* next=obj->next;
-       free(obj->alpha_buffer);
-       free(obj->bitmap_buffer);
+       av_freep(&obj->alpha_buffer);
+       av_freep(&obj->bitmap_buffer);
        free(obj);
        obj=next;
     }