kmonsoor / pyglet

Automatically exported from code.google.com/p/pyglet
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Crash on pyglet.media.Player.play() after calling seek() on video files #406

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
The following test causes causes the crash for me.

import pyglet
#i've only been able to reproduce when using openal
pyglet.options["audio"] = ('openal',)

#load a video file into a Player
playerVideo = pyglet.media.Player()
playerVideo.queue( pyglet.media.load("assets/test_vid.mpg") )

#if you seek() before playing, pyglet will attempt to allocate an absurd
amount of memory
#and eventually crash
playerVideo.seek(.5)
playerVideo.play()

Paste in the traceback or error message:

Traceback (most recent call last):
  File "pyglet_openal_bug.py", line 28, in <module>
    playerVideo.play()
  File
"/usr/local/custom/lib/python2.6/site-packages/pyglet/media/__init__.py",
line 813, in play
    self.dispatch_events()
  File
"/usr/local/custom/lib/python2.6/site-packages/pyglet/media/__init__.py",
line 944, in dispatch_events
    self._update_schedule()
  File
"/usr/local/custom/lib/python2.6/site-packages/pyglet/media/__init__.py",
line 774, in _update_schedule
    clock.unschedule(self.dispatch_events)
  File "/usr/local/custom/lib/python2.6/site-packages/pyglet/__init__.py",
line 307, in __getattr__
    __import__(import_name)
  File "/usr/local/custom/lib/python2.6/site-packages/pyglet/clock.py",
line 169, in <module>
    _c = pyglet.lib.load_library('c', darwin='/usr/lib/libc.dylib')
  File "/usr/local/custom/lib/python2.6/site-packages/pyglet/lib.py", line
111, in load_library
    path = self.find_library(name)
  File "/usr/local/custom/lib/python2.6/site-packages/pyglet/lib.py", line
288, in find_library
    result = ctypes.util.find_library(path)
  File "/usr/local/custom//lib/python2.6/ctypes/util.py", line 175, in
find_library
    return _get_soname(_findLib_ldconfig(name) or _findLib_gcc(name))
  File "/usr/local/custom//lib/python2.6/ctypes/util.py", line 165, in
_findLib_ldconfig
    os.popen('/sbin/ldconfig -p 2>/dev/null').read())
OSError: [Errno 12] Cannot allocate memory

pyglet 1.1 with Python 2.5: Paste in the output of `python -m pyglet.info`
Other: Paste in the output of tools/gl_info.py (included in source distro):

Python
------------------------------------------------------------------------------
sys.version: 2.6.1 (r261:67515, Feb 12 2009, 11:55:37) 
[GCC 4.1.2 (Gentoo 4.1.2 p1.1)]
sys.platform: linux2
os.getcwd(): /home/funkycrime/projects/FS/git/fret_sensei/code/src/tests

pyglet
------------------------------------------------------------------------------
pyglet.version: 1.1.3
pyglet.__file__:
/usr/local/custom/lib/python2.6/site-packages/pyglet/__init__.pyc
pyglet.options['debug_trace_depth'] = 1
pyglet.options['font'] = ('gdiplus', 'win32')
pyglet.options['xsync'] = True
pyglet.options['debug_trace_flush'] = True
pyglet.options['debug_win32'] = False
pyglet.options['debug_gl_trace'] = False
pyglet.options['debug_x11'] = False
pyglet.options['shadow_window'] = True
pyglet.options['debug_font'] = False
pyglet.options['debug_media'] = False
pyglet.options['debug_trace'] = False
pyglet.options['debug_lib'] = False
pyglet.options['graphics_vbo'] = True
pyglet.options['vsync'] = None
pyglet.options['debug_trace_args'] = False
pyglet.options['debug_gl'] = True
pyglet.options['debug_graphics_batch'] = False
pyglet.options['audio'] = ('directsound', 'openal', 'alsa', 'silent')
pyglet.options['debug_texture'] = False
pyglet.options['debug_gl_trace_args'] = False

pyglet.window
------------------------------------------------------------------------------
platform: <pyglet.window.xlib.XlibPlatform object at 0x84890ec>
display: <pyglet.window.xlib.XlibDisplayDevice object at 0x848918c>
screens[0]: XlibScreen(screen=0, x=0, y=0, width=1680, height=1050, xinerama=1)
screens[1]: XlibScreen(screen=0, x=1680, y=0, width=1680, height=1050,
xinerama=1)
config['double_buffer'] = 1
config['stereo'] = 0
config['buffer_size'] = 32
config['aux_buffers'] = 4
config['sample_buffers'] = 0
config['samples'] = 0
config['red_size'] = 8
config['green_size'] = 8
config['blue_size'] = 8
config['alpha_size'] = 0
config['depth_size'] = 24
config['stencil_size'] = 0
config['accum_red_size'] = 16
config['accum_green_size'] = 16
config['accum_blue_size'] = 16
config['accum_alpha_size'] = 16
context: XlibGLContext()

pyglet.gl.gl_info
------------------------------------------------------------------------------
gl_info.get_version(): 3.0.0 NVIDIA 180.37
gl_info.get_vendor(): NVIDIA Corporation
gl_info.get_renderer(): GeForce 8800 GT/PCI/SSE2
gl_info.get_extensions():
   GL_ARB_color_buffer_float
   GL_ARB_depth_buffer_float
   GL_ARB_depth_texture
   GL_ARB_draw_buffers
   GL_ARB_draw_instanced
   GL_ARB_fragment_program
   GL_ARB_fragment_program_shadow
   GL_ARB_fragment_shader
   GL_ARB_framebuffer_object
   GL_ARB_geometry_shader4
   GL_ARB_half_float_pixel
   GL_ARB_half_float_vertex
   GL_ARB_imaging
   GL_ARB_map_buffer_range
   GL_ARB_multisample
   GL_ARB_multitexture
   GL_ARB_occlusion_query
   GL_ARB_pixel_buffer_object
   GL_ARB_point_parameters
   GL_ARB_point_sprite
   GL_ARB_shader_objects
   GL_ARB_shading_language_100
   GL_ARB_shadow
   GL_ARB_texture_border_clamp
   GL_ARB_texture_buffer_object
   GL_ARB_texture_compression
   GL_ARB_texture_cube_map
   GL_ARB_texture_env_add
   GL_ARB_texture_env_combine
   GL_ARB_texture_env_dot3
   GL_ARB_texture_float
   GL_ARB_texture_mirrored_repeat
   GL_ARB_texture_non_power_of_two
   GL_ARB_texture_rectangle
   GL_ARB_texture_rg
   GL_ARB_transpose_matrix
   GL_ARB_vertex_array_object
   GL_ARB_vertex_buffer_object
   GL_ARB_vertex_program
   GL_ARB_vertex_shader
   GL_ARB_window_pos
   GL_ATI_draw_buffers
   GL_ATI_texture_float
   GL_ATI_texture_mirror_once
   GL_EXTX_framebuffer_mixed_formats
   GL_EXT_Cg_shader
   GL_EXT_abgr
   GL_EXT_bgra
   GL_EXT_bindable_uniform
   GL_EXT_blend_color
   GL_EXT_blend_equation_separate
   GL_EXT_blend_func_separate
   GL_EXT_blend_minmax
   GL_EXT_blend_subtract
   GL_EXT_compiled_vertex_array
   GL_EXT_depth_bounds_test
   GL_EXT_direct_state_access
   GL_EXT_draw_buffers2
   GL_EXT_draw_instanced
   GL_EXT_draw_range_elements
   GL_EXT_fog_coord
   GL_EXT_framebuffer_blit
   GL_EXT_framebuffer_multisample
   GL_EXT_framebuffer_object
   GL_EXT_framebuffer_sRGB
   GL_EXT_geometry_shader4
   GL_EXT_gpu_program_parameters
   GL_EXT_gpu_shader4
   GL_EXT_multi_draw_arrays
   GL_EXT_packed_depth_stencil
   GL_EXT_packed_float
   GL_EXT_packed_pixels
   GL_EXT_pixel_buffer_object
   GL_EXT_point_parameters
   GL_EXT_rescale_normal
   GL_EXT_secondary_color
   GL_EXT_separate_specular_color
   GL_EXT_shadow_funcs
   GL_EXT_stencil_two_side
   GL_EXT_stencil_wrap
   GL_EXT_texture3D
   GL_EXT_texture_array
   GL_EXT_texture_buffer_object
   GL_EXT_texture_compression_latc
   GL_EXT_texture_compression_rgtc
   GL_EXT_texture_compression_s3tc
   GL_EXT_texture_cube_map
   GL_EXT_texture_edge_clamp
   GL_EXT_texture_env_add
   GL_EXT_texture_env_combine
   GL_EXT_texture_env_dot3
   GL_EXT_texture_filter_anisotropic
   GL_EXT_texture_integer
   GL_EXT_texture_lod
   GL_EXT_texture_lod_bias
   GL_EXT_texture_mirror_clamp
   GL_EXT_texture_object
   GL_EXT_texture_sRGB
   GL_EXT_texture_shared_exponent
   GL_EXT_texture_swizzle
   GL_EXT_timer_query
   GL_EXT_vertex_array
   GL_EXT_vertex_array_bgra
   GL_IBM_rasterpos_clip
   GL_IBM_texture_mirrored_repeat
   GL_KTX_buffer_region
   GL_NVX_conditional_render
   GL_NV_blend_square
   GL_NV_conditional_render
   GL_NV_copy_depth_to_color
   GL_NV_depth_buffer_float
   GL_NV_depth_clamp
   GL_NV_explicit_multisample
   GL_NV_fence
   GL_NV_float_buffer
   GL_NV_fog_distance
   GL_NV_fragment_program
   GL_NV_fragment_program2
   GL_NV_fragment_program_option
   GL_NV_framebuffer_multisample_coverage
   GL_NV_geometry_shader4
   GL_NV_gpu_program4
   GL_NV_half_float
   GL_NV_light_max_exponent
   GL_NV_multisample_coverage
   GL_NV_multisample_filter_hint
   GL_NV_occlusion_query
   GL_NV_packed_depth_stencil
   GL_NV_parameter_buffer_object
   GL_NV_pixel_data_range
   GL_NV_point_sprite
   GL_NV_primitive_restart
   GL_NV_register_combiners
   GL_NV_register_combiners2
   GL_NV_texgen_reflection
   GL_NV_texture_compression_vtc
   GL_NV_texture_env_combine4
   GL_NV_texture_expand_normal
   GL_NV_texture_rectangle
   GL_NV_texture_shader
   GL_NV_texture_shader2
   GL_NV_texture_shader3
   GL_NV_transform_feedback
   GL_NV_vertex_array_range
   GL_NV_vertex_array_range2
   GL_NV_vertex_program
   GL_NV_vertex_program1_1
   GL_NV_vertex_program2
   GL_NV_vertex_program2_option
   GL_NV_vertex_program3
   GL_S3_s3tc
   GL_SGIS_generate_mipmap
   GL_SGIS_texture_lod
   GL_SGIX_depth_texture
   GL_SGIX_shadow
   GL_SUN_slice_accum

pyglet.gl.glu_info
------------------------------------------------------------------------------
glu_info.get_version(): 1.3
glu_info.get_extensions():
   GLU_EXT_nurbs_tessellator
   GLU_EXT_object_space_tess

pyglet.gl.glx_info
------------------------------------------------------------------------------
context.is_direct(): 1
glx_info.get_server_vendor(): NVIDIA Corporation
glx_info.get_server_version(): 1.3
glx_info.get_server_extensions():
   GLX_EXT_visual_info
   GLX_EXT_visual_rating
   GLX_SGIX_fbconfig
   GLX_SGIX_pbuffer
   GLX_SGI_video_sync
   GLX_SGI_swap_control
   GLX_EXT_texture_from_pixmap
   GLX_ARB_create_context
   GLX_ARB_multisample
   GLX_NV_float_buffer
   GLX_ARB_fbconfig_float
   GLX_EXT_framebuffer_sRGB
glx_info.get_client_vendor(): NVIDIA Corporation
glx_info.get_client_version(): 1.4
glx_info.get_client_extensions():
   GLX_ARB_get_proc_address
   GLX_ARB_multisample
   GLX_EXT_visual_info
   GLX_EXT_visual_rating
   GLX_EXT_import_context
   GLX_SGI_video_sync
   GLX_NV_swap_group
   GLX_NV_video_out
   GLX_SGIX_fbconfig
   GLX_SGIX_pbuffer
   GLX_SGI_swap_control
   GLX_ARB_create_context
   GLX_NV_float_buffer
   GLX_ARB_fbconfig_float
   GLX_EXT_fbconfig_packed_float
   GLX_EXT_texture_from_pixmap
   GLX_EXT_framebuffer_sRGB
   GLX_NV_present_video
   GLX_NV_multisample_coverage
glx_info.get_extensions():
   GLX_EXT_visual_info
   GLX_EXT_visual_rating
   GLX_SGIX_fbconfig
   GLX_SGIX_pbuffer
   GLX_SGI_video_sync
   GLX_SGI_swap_control
   GLX_EXT_texture_from_pixmap
   GLX_ARB_create_context
   GLX_ARB_multisample
   GLX_NV_float_buffer
   GLX_ARB_fbconfig_float
   GLX_EXT_framebuffer_sRGB
   GLX_ARB_get_proc_address

pyglet.media
------------------------------------------------------------------------------
driver: pyglet.media.drivers.openal

pyglet.media.avbin
------------------------------------------------------------------------------
AVbin not available.

pyglet.media.drivers.openal
------------------------------------------------------------------------------
Library: <CDLL 'libopenal.so', handle 870a6e0 at 872b5ac>
Version: (1, 0)
Extensions:

   weird vorbid_get

Any additional info (platform/language/hardware) that may be relevant?

I've also seen this bug occur on Windows when using OpenAL. I've also
triggered it using both a .flv and .mpg file. I've been able to reproduce
with both 1.1.2 and 1.1.3.

Original issue reported on code.google.com by benjamin...@gmail.com on 29 Mar 2009 at 7:31

GoogleCodeExporter commented 9 years ago
No crash on OS X with 1.1.3, AVbin 5.

Original comment by Alex.Hol...@gmail.com on 29 Mar 2009 at 8:43

GoogleCodeExporter commented 9 years ago
Getting a traceback on linux with 1.2dev

Traceback (most recent call last):
  File "videoseek.py", line 11, in <module>
    playerVideo.seek(.5)
  File "/home/pyalot/development/pyglet/pyglet/media/__init__.py", line 1046, in seek
    self._audio_player.clear()
AttributeError: 'NoneType' object has no attribute 'clear'

Original comment by pyalot@gmail.com on 15 Aug 2009 at 6:10

GoogleCodeExporter commented 9 years ago
I'm pretty sure the bug described by pyalot is an unrelated issue (occurs on 
OSX with 1.2dev, fixed in r2462).

Original comment by m.e.w.ol...@gmail.com on 16 Aug 2009 at 4:09

GoogleCodeExporter commented 9 years ago
Now when seeking no video is being played (black display). Commenting out the 
seek,
the video plays.

Original comment by pyalot@gmail.com on 17 Aug 2009 at 7:49

Attachments:

GoogleCodeExporter commented 9 years ago

Original comment by benjamin...@gmail.com on 20 Aug 2009 at 2:07

GoogleCodeExporter commented 9 years ago
Addition, 5 years later

Description:
After calling .seek() on a video file (mpeg4) the application crashes with 
SIGSEGV (Address boundary error).

Code:
fname = '/full_path/asdf.mp4'
offset = 74.0
video_src = pig.media.load(video_fname)
player = pig.media.Player()
player.queue(video_src)
player.seek(offset)
player.play()

Without the seek the video plays normally (although without sound, but it's not 
important for this bug).

System:
Ubuntu 14.04 x86_64
Python 2.7.6
Pyglet 1.1.4 (via Ubuntu's synaptic distribution)
pyglet.options = {'audio': ('directsound', 'openal', 'alsa', 'silent'),
 'debug_font': False,
 'debug_gl': True,
 'debug_gl_trace': False,
 'debug_gl_trace_args': False,
 'debug_graphics_batch': False,
 'debug_lib': False,
 'debug_media': False,
 'debug_texture': False,
 'debug_trace': False,
 'debug_trace_args': False,
 'debug_trace_depth': 1,
 'debug_trace_flush': True,
 'debug_win32': False,
 'debug_x11': False,
 'font': ('gdiplus', 'win32'),
 'graphics_vbo': True,
 'shadow_window': True,
 'vsync': None,
 'xsync': True}

Original comment by racami...@gmail.com on 20 Oct 2014 at 2:03