Mplayer,mplayer-svn and youtube

GNUtoo at no-log.org GNUtoo at no-log.org
Thu Sep 25 19:08:29 CEST 2008


Hello,
it'd like to be able to view youtube on the freerunner.
I've tried the following script(found here:
http://lists.openmoko.org/pipermail/community/2008-September/031377.html):
#!/bin/sh
if [ -z "$DISPLAY" ]; then
	echo "Specify a DISPLAY"
	exit 1
fi

if [ -z "$1" ]; then
	echo "Specify a youtube video ID"
	exit 1
else
	ytv="$1"
fi

xres=$(expr "$(xrandr)" : ".*current \([0-9]\{3\}\)")

if [ $xres = "640" ]; then
	fstep=3;
else
	fstep=2;
fi

mplayer -vo xv -fs -vf framestep=$fstep \
 "http://3v1n0.net/youtube-full-dl/?download=flv&ytv=$ytv"

But there is 2 problems:
*mplayer exits before the end of the video:
# ./youtube.sh YE7VzlLtp-4
MPlayer 1.0rc2-4.1.2 (C) 2000-2007 MPlayer Team
CPU: ARM

Playing http://3v1n0.net/youtube-full-dl/?download=flv&ytv=YE7VzlLtp-4.
Resolving 3v1n0.net for AF_INET6...
Couldn't resolve name for AF_INET6: 3v1n0.net
Resolving 3v1n0.net for AF_INET...
Connecting to server 3v1n0.net[212.85.158.4]: 80...
Cache size set to 320 KBytes
Cache fill: 15.00% (49152 bytes)
libavformat file format detected.
[lavf] Video stream found, -vid 0
[lavf] Audio stream found, -aid 1
VIDEO:  [FLV1]  320x240  0bpp  24.000 fps    0.0 kbps ( 0.0 kbyte/s)
Opening video filter: [framestep=2]
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffflv] vfm: ffmpeg (FFmpeg Flash video)
==========================================================================
==========================================================================
Forced audio codec: mad
Opening audio decoder: [libmad] libmad mpeg audio decoder
AUDIO: 22050 Hz, 1 ch, s16le, 64.0 kbit/18.14% (ratio: 8000->44100)
Selected audio codec: [mad] afm: libmad (libMAD MPEG layer 1-2-3)
==========================================================================
AO: [alsa] 44100Hz 1ch s16le (2 bytes per sample)
FPS forced to be 24.000  (ftime: 0.042).
Starting playback...
VDec: vo config request - 320 x 240 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
VO: [xv] 320x240 => 320x240 Planar YV12  [fs]
New_Face failed. Maybe the font path is wrong.
Please supply the text font file (~/.mplayer/subfont.ttf).
subtitle font: load_sub_face failed.
Cannot sync MAD frame:  0.002 ct:  0.003   0/  0 26% 21% 17.5% 0 0 0%
Cannot sync MAD frame
Cannot sync MAD frame: -0.002 ct:  0.002   0/  0 26% 21% 17.5% 0 0 0%
Cannot sync MAD frame: -0.048 ct: -0.002   0/  0 26% 21% 17.4% 0 0 0%
Cannot sync MAD frame: -0.232 ct: -0.006   0/  0 26% 21% 17.4% 0 0 0%
Cannot sync MAD frame: -0.236 ct: -0.010   0/  0 26% 21% 17.4% 0 0 0%
Cannot sync MAD frame: -0.298 ct: -0.014   0/  0 26% 21% 17.4% 0 0 0%
Cannot sync MAD frame: -0.482 ct: -0.018   0/  0 26% 21% 17.4% 0 0 0%
[flv @ 0x6c08f0]illegal ac vlc code at 13x6
[flv @ 0x6c08f0]Error at MB: 139
[flv @ 0x6c08f0]concealing 216 DC, 216 AC, 216 MV errors
Cannot sync MAD frame: -0.465 ct: -0.023   0/  0 26% 21% 17.4% 0 0 0%
A: 309.5 V: 310.0 A-V: -0.515 ct: -0.027   0/  0 26% 21% 17.4% 0 0 0%

Exiting... (End of file)
root at om-gta02:~#

*sync problem between the audio and the video:
i've tried:
-fps 24 -correct-pts -framedrop with success on big buck bunny but not on
gta4 trailer...

i've tried to compile mplayer-svn from oe with this patch:
--- mplayer/libmpeg2/motion_comp_arm_s.S                2008-07-13
14:40:22.000000000 +0200
+++ mplayer/libmpeg2/motion_comp_arm_s.S_patched        2008-09-24
22:02:46.000000000 +0200
@@ -25,7 +25,6 @@
        .global MC_put_o_16_arm
 MC_put_o_16_arm:
        @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int
height)
-       pld [r1]
         stmfd sp!, {r4-r11, lr} @ R14 is also called LR
        and r4, r1, #3
        adr r5, MC_put_o_16_arm_align_jt
@@ -35,7 +34,6 @@
 MC_put_o_16_arm_align0:
        ldmia r1, {r4-r7}
        add r1, r1, r2
-       pld [r1]
        stmia r0, {r4-r7}
        subs r3, r3, #1
        add r0, r0, r2
@@ -46,7 +44,6 @@
        ldmia r1, {r4-r8}
        add r1, r1, r2
        mov r9, r4, lsr #(\shift)
-       pld [r1]
        mov r10, r5, lsr #(\shift)
        orr r9, r9, r5, lsl #(32-\shift)
        mov r11, r6, lsr #(\shift)
@@ -85,7 +82,6 @@
        .global MC_put_o_8_arm
 MC_put_o_8_arm:
        @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int
height)
-       pld [r1]
         stmfd sp!, {r4-r10, lr} @ R14 is also called LR
        and r4, r1, #3
        adr r5, MC_put_o_8_arm_align_jt
@@ -94,7 +90,6 @@
 MC_put_o_8_arm_align0:
        ldmia r1, {r4-r5}
        add r1, r1, r2
-       pld [r1]
        stmia r0, {r4-r5}
        add r0, r0, r2
        subs r3, r3, #1
@@ -105,7 +100,6 @@
        ldmia r1, {r4-r6}
        add r1, r1, r2
        mov r9, r4, lsr #(\shift)
-       pld [r1]
        mov r10, r5, lsr #(\shift)
        orr r9, r9, r5, lsl #(32-\shift)
        orr r10, r10, r6, lsl #(32-\shift)
@@ -154,7 +148,6 @@
        .global MC_put_x_16_arm
 MC_put_x_16_arm:
        @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int
height)
-       pld [r1]
         stmfd sp!, {r4-r11,lr} @ R14 is also called LR
        and r4, r1, #3
        adr r5, MC_put_x_16_arm_align_jt
@@ -179,7 +172,6 @@
 MC_put_x_16_arm_align0:
        ldmia r1, {r4-r8}
        add r1, r1, r2
-       pld [r1]
        AVG_PW r7, r8
        AVG_PW r6, r7
        AVG_PW r5, r6
@@ -193,7 +185,6 @@
        and r1, r1, #0xFFFFFFFC
 1:     ldmia r1, {r4-r8}
        add r1, r1, r2
-       pld [r1]
        ADJ_ALIGN_QW 8, r4, r5, r6, r7, r8
        AVG_PW r7, r8
        AVG_PW r6, r7
@@ -208,7 +199,6 @@
        and r1, r1, #0xFFFFFFFC
 1:     ldmia r1, {r4-r8}
        add r1, r1, r2
-       pld [r1]
        ADJ_ALIGN_QW 16, r4, r5, r6, r7, r8
        AVG_PW r7, r8
        AVG_PW r6, r7
@@ -223,7 +213,6 @@
        and r1, r1, #0xFFFFFFFC
 1:     ldmia r1, {r4-r8}
        add r1, r1, r2
-       pld [r1]
        ADJ_ALIGN_QW 24, r4, r5, r6, r7, r8
        AVG_PW r7, r8
        AVG_PW r6, r7
@@ -246,7 +235,6 @@
        .global MC_put_x_8_arm
 MC_put_x_8_arm:
        @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int
height)
-       pld [r1]
         stmfd sp!, {r4-r11,lr} @ R14 is also called LR
        and r4, r1, #3
        adr r5, MC_put_x_8_arm_align_jt
@@ -267,7 +255,6 @@
 MC_put_x_8_arm_align0:
        ldmia r1, {r4-r6}
        add r1, r1, r2
-       pld [r1]
        AVG_PW r5, r6
        AVG_PW r4, r5
        stmia r0, {r5-r6}
@@ -279,7 +266,6 @@
        and r1, r1, #0xFFFFFFFC
 1:     ldmia r1, {r4-r6}
        add r1, r1, r2
-       pld [r1]
        ADJ_ALIGN_DW 8, r4, r5, r6
        AVG_PW r5, r6
        AVG_PW r4, r5
@@ -292,7 +278,6 @@
        and r1, r1, #0xFFFFFFFC
 1:     ldmia r1, {r4-r6}
        add r1, r1, r2
-       pld [r1]
        ADJ_ALIGN_DW 16, r4, r5, r6
        AVG_PW r5, r6
        AVG_PW r4, r5
@@ -305,7 +290,6 @@
        and r1, r1, #0xFFFFFFFC
 1:     ldmia r1, {r4-r6}
        add r1, r1, r2
-       pld [r1]
        ADJ_ALIGN_DW 24, r4, r5, r6
        AVG_PW r5, r6
        AVG_PW r4, r5
but it fails at
| ccache arm-angstrom-linux-gnueabi-gcc -march=armv4t -mtune=arm920t -o
mplayer mplayer.o m_property.o mp_fifo.o mp_msg.o mixer.o parser-mpcmd.o
command.o input/input.o libao2/audio_out.o libao2/ao_mpegpes.o
libao2/ao_null.o libao2/ao_pcm.o libao2/ao_sdl.o libao2/ao_v4l2.o
libao2/ao_oss.o libao2/ao_alsa.o libvo/aspect.o libvo/geometry.o
libvo/spuenc.o libvo/video_out.o libvo/vo_mpegpes.o libvo/vo_null.o
libvo/vo_yuv4mpeg.o libvo/x11_common.o libvo/vo_x11.o libvo/vo_xover.o
libvo/vo_xv.o libvo/vo_dga.o libvo/vo_fbdev.o libvo/vo_fbdev2.o
libvo/vo_png.o libvo/vo_jpeg.o libvo/vo_sdl.o libvo/vo_v4l2.o asxparser.o
codec-cfg.o cpudetect.o edl.o find_sub.o get_path.o m_config.o m_option.o
m_struct.o mpcommon.o parser-cfg.o playtree.o playtreeparser.o spudec.o
sub_cc.o subopt-helper.o subreader.o vobsub.o libaf/af.o libaf/af_center.o
libaf/af_channels.o libaf/af_comp.o libaf/af_delay.o libaf/af_dummy.o
libaf/af_equalizer.o libaf/af_extrastereo.o libaf/af_format.o
libaf/af_gate.o libaf/af_hrtf.o libaf/af_karaoke.o libaf/af_pan.o
libaf/af_resample.o libaf/af_scaletempo.o libaf/af_sinesuppress.o
libaf/af_sub.o libaf/af_surround.o libaf/af_sweep.o libaf/af_tools.o
libaf/af_volnorm.o libaf/af_volume.o libaf/filter.o libaf/format.o
libaf/reorder_ch.o libaf/window.o libmpcodecs/ad.o libmpcodecs/ad_alaw.o
libmpcodecs/ad_dk3adpcm.o libmpcodecs/ad_dvdpcm.o libmpcodecs/ad_hwac3.o
libmpcodecs/ad_hwmpa.o libmpcodecs/ad_imaadpcm.o libmpcodecs/ad_msadpcm.o
libmpcodecs/ad_msgsm.o libmpcodecs/ad_pcm.o libmpcodecs/dec_audio.o
libmpcodecs/dec_video.o libmpcodecs/img_format.o libmpcodecs/mp_image.o
libmpcodecs/native/nuppelvideo.o
libmpcodecs/native/rtjpegn.olibmpcodecs/native/xa_gsm.o
libmpcodecs/pullup.o libmpcodecs/vd.o libmpcodecs/vd_hmblck.o
libmpcodecs/vd_lzo.o libmpcodecs/vd_mpegpes.o libmpcodecs/vd_mtga.o
libmpcodecs/vd_null.o libmpcodecs/vd_nuv.o libmpcodecs/vd_raw.o
libmpcodecs/vd_sgi.o libmpcodecs/vf.o libmpcodecs/vf_1bpp.o
libmpcodecs/vf_2xsai.o libmpcodecs/vf_blackframe.o
libmpcodecs/vf_boxblur.o libmpcodecs/vf_crop.o libmpcodecs/vf_cropdetect.o
libmpcodecs/vf_decimate.o libmpcodecs/vf_delogo.o
libmpcodecs/vf_denoise3d.o libmpcodecs/vf_detc.o libmpcodecs/vf_dint.o
libmpcodecs/vf_divtc.o libmpcodecs/vf_down3dright.o libmpcodecs/vf_dsize.o
libmpcodecs/vf_dvbscale.o libmpcodecs/vf_eq.o libmpcodecs/vf_eq2.o
libmpcodecs/vf_expand.o libmpcodecs/vf_field.o libmpcodecs/vf_fil.o
libmpcodecs/vf_filmdint.o libmpcodecs/vf_flip.o libmpcodecs/vf_format.o
libmpcodecs/vf_framestep.o libmpcodecs/vf_halfpack.o
libmpcodecs/vf_harddup.o libmpcodecs/vf_hqdn3d.o libmpcodecs/vf_hue.o
libmpcodecs/vf_il.o libmpcodecs/vf_ilpack.o libmpcodecs/vf_ivtc.o
libmpcodecs/vf_kerndeint.o libmpcodecs/vf_mirror.o
libmpcodecs/vf_noformat.o libmpcodecs/vf_noise.o libmpcodecs/vf_ow.o
libmpcodecs/vf_palette.o libmpcodecs/vf_perspective.o
libmpcodecs/vf_phase.o libmpcodecs/vf_pp7.o libmpcodecs/vf_pullup.o
libmpcodecs/vf_rectangle.o libmpcodecs/vf_remove_logo.o
libmpcodecs/vf_rgb2bgr.o libmpcodecs/vf_rgbtest.o libmpcodecs/vf_rotate.o
libmpcodecs/vf_sab.o libmpcodecs/vf_scale.o libmpcodecs/vf_smartblur.o
libmpcodecs/vf_softpulldown.o libmpcodecs/vf_softskip.o
libmpcodecs/vf_swapuv.o libmpcodecs/vf_telecine.o libmpcodecs/vf_test.o
libmpcodecs/vf_tfields.o libmpcodecs/vf_tile.o libmpcodecs/vf_tinterlace.o
libmpcodecs/vf_unsharp.o libmpcodecs/vf_vo.o libmpcodecs/vf_yadif.o
libmpcodecs/vf_yuvcsp.o libmpcodecs/vf_yuy2.o libmpcodecs/vf_yvu9.o
libmpdemux/aac_hdr.o libmpdemux/asfheader.o libmpdemux/aviheader.o
libmpdemux/aviprint.o libmpdemux/demuxer.o libmpdemux/demux_aac.o
libmpdemux/demux_asf.o libmpdemux/demux_audio.o libmpdemux/demux_avi.o
libmpdemux/demux_demuxers.o libmpdemux/demux_film.o libmpdemux/demux_fli.o
libmpdemux/demux_lmlm4.o libmpdemux/demux_mf.o libmpdemux/demux_mkv.o
libmpdemux/demux_mov.o libmpdemux/demux_mpg.o libmpdemux/demux_nsv.o
libmpdemux/demux_nuv.o libmpdemux/demux_pva.o libmpdemux/demux_rawaudio.o
libmpdemux/demux_rawvideo.o libmpdemux/demux_realaud.o
libmpdemux/demux_real.o libmpdemux/demux_roq.o libmpdemux/demux_smjpeg.o
libmpdemux/demux_ts.o libmpdemux/demux_ty.o libmpdemux/demux_ty_osd.o
libmpdemux/demux_viv.o libmpdemux/demux_vqf.o libmpdemux/demux_y4m.o
libmpdemux/ebml.o libmpdemux/extension.o libmpdemux/mf.o
libmpdemux/mp3_hdr.o libmpdemux/mp_taglists.o libmpdemux/mpeg_hdr.o
libmpdemux/mpeg_packetizer.o libmpdemux/parse_es.o libmpdemux/parse_mp4.o
libmpdemux/video.o libmpdemux/yuv4mpeg.o libmpdemux/yuv4mpeg_ratio.o
libvo/aclib.o libvo/osd.o libvo/sub.o osdep/getch2.o osdep/timer-linux.o
stream/open.o stream/stream.o stream/stream_cue.o stream/stream_file.o
stream/stream_mf.o stream/stream_null.o stream/url.o libvo/font_load.o
libmpcodecs/ad_faad.o libvo/font_load_ft.o libmpcodecs/vf_bmovl.o
osdep/mmap_anon.o libaf/af_export.o libmpcodecs/vd_ijpg.o
libmpcodecs/ad_liba52.o liba52/crc.o liba52/resample.o
liba52/bit_allocate.o liba52/bitstream.o liba52/downmix.o liba52/imdct.o
liba52/parse.o libass/ass.o libass/ass_bitmap.o libass/ass_cache.o
libass/ass_font.o libass/ass_fontconfig.o libass/ass_library.o
libass/ass_mp.o libass/ass_render.o libass/ass_utils.o
libmpcodecs/vf_ass.o av_opts.o libaf/af_lavcresample.o
libmpcodecs/ad_ffmpeg.o libmpcodecs/vd_ffmpeg.o libmpcodecs/vf_lavc.o
libmpcodecs/vf_lavcdeint.o libmpcodecs/vf_screenshot.o
libaf/af_lavcac3enc.o libmpcodecs/vf_fspp.o libmpcodecs/vf_geq.o
libmpcodecs/vf_mcdeint.o libmpcodecs/vf_qp.o libmpcodecs/vf_spp.o
libmpcodecs/vf_uspp.o libmpdemux/demux_lavf.o libfaad2/bits.o
libfaad2/cfft.o libfaad2/common.o libfaad2/decoder.o libfaad2/drc.o
libfaad2/drm_dec.o libfaad2/error.o libfaad2/filtbank.o libfaad2/hcr.o
libfaad2/huffman.o libfaad2/ic_predict.o libfaad2/is.o
libfaad2/lt_predict.o libfaad2/mdct.o libfaad2/mp4.o libfaad2/ms.o
libfaad2/output.o libfaad2/pns.o libfaad2/ps_dec.o libfaad2/ps_syntax.o
libfaad2/pulse.o libfaad2/rvlc.o libfaad2/sbr_dct.o libfaad2/sbr_dec.o
libfaad2/sbr_e_nf.o libfaad2/sbr_fbt.o libfaad2/sbr_hfadj.o
libfaad2/sbr_hfgen.o libfaad2/sbr_huff.o libfaad2/sbr_qmf.o
libfaad2/sbr_syntax.o libfaad2/sbr_tf_grid.o libfaad2/specrec.o
libfaad2/ssr.o libfaad2/ssr_fb.o libfaad2/ssr_ipqf.o libfaad2/syntax.o
libfaad2/tns.o libmpcodecs/ad_libmad.o libmpcodecs/vd_libmpeg2.o
libmpeg2/alloc.o libmpeg2/cpu_accel.o libmpeg2/cpu_state.o
libmpeg2/decode.o libmpeg2/header.o libmpeg2/idct.o libmpeg2/motion_comp.o
libmpeg2/slice.o libmpcodecs/vf_pp.o libmpcodecs/ad_libvorbis.o
libmpdemux/demux_ogg.o stream/stream_netstream.o
stream/asf_mmst_streaming.o stream/asf_streaming.o stream/cookies.o
stream/http.o stream/network.o stream/pnm.o stream/rtp.o stream/udp.o
stream/tcp.o stream/stream_rtp.o stream/stream_udp.o stream/librtsp/rtsp.o
stream/realrtsp/asmrp.o stream/realrtsp/real.o stream/realrtsp/rmff.o
stream/realrtsp/sdpplin.o stream/realrtsp/xbuffer.o stream/stream_rtsp.o
stream/freesdp/common.o stream/freesdp/errorlist.o stream/freesdp/parser.o
stream/librtsp/rtsp_rtp.o stream/librtsp/rtsp_session.o osdep/shmem.o
libmpcodecs/vd_mpng.o stream/cache2.o tremor/bitwise.o tremor/block.o
tremor/codebook.o tremor/floor0.o tremor/floor1.o tremor/framing.o
tremor/info.o tremor/mapping0.o tremor/mdct.o tremor/registry.o
tremor/res012.o tremor/sharedbook.o tremor/synthesis.o tremor/window.o
unrar_exec.o libmpeg2/motion_comp_arm.o libmpeg2/motion_comp_arm_s.o
libmpeg2/motion_comp_iwmmxt.o libswscale/libswscale.a
libavformat/libavformat.a libavcodec/libavcodec.a libavutil/libavutil.a
libpostproc/libpostproc.a -lXv -lXxf86dga
-Wl,-rpath,/home/gnutoo/oetmp/staging/arm-angstrom-linux-gnueabi/usr/lib
-lSDL -lpthread -lmp3lame
-L/home/gnutoo/oetmp/staging/arm-angstrom-linux-gnueabi/usr/lib
-Wl,-z,noexecstack 
-L/home/gnutoo/oetmp/staging/arm-angstrom-linux-gnueabi/usr/lib
-Wl,-rpath-link,/home/gnutoo/oetmp/staging/arm-angstrom-linux-gnueabi/usr/lib
-Wl,-O1   -lncurses -lpng -lz -ljpeg -lasound -ldl -lpthread
-L/home/gnutoo/oetmp/staging/arm-angstrom-linux-gnueabi/usr/lib -lfreetype
-lfontconfig  -lz -lmad -lpthread -ldl   -lm
| libmpeg2/motion_comp.o: In function `mpeg2_mc_init':
| motion_comp.c:(.text+0x68): undefined reference to `mpeg2_mc_iwmmxt'
| collect2: ld returned 1 exit status
| make: *** [mplayer] Error 1
| FATAL: oe_runmake failed
NOTE: Task failed:
/home/gnutoo/oetmp/work/armv4t-angstrom-linux-gnueabi/mplayer-0.0+1.0rc2+svnr27047-r6/temp/log.do_compile.14114
NOTE: package mplayer-0.0+1.0rc2+svnr27047-r6: task do_compile: failed
ERROR: TaskFailed event exception, aborting
NOTE: package mplayer-0.0+1.0rc2+svnr27047: failed
ERROR: Build of
/home/gnutoo/dev/embedded/oe/local_repository/packages/mplayer/mplayer_svn.bb
do_compile failed
ERROR: Task 7
(/home/gnutoo/dev/embedded/oe/local_repository/packages/mplayer/mplayer_svn.bb,
do_compile) failed
NOTE: Tasks Summary: Attempted 736 tasks of which 730 didn't need to be
rerun and 1 failed.
ERROR:
'/home/gnutoo/dev/embedded/oe/local_repository/packages/mplayer/mplayer_svn.bb'
failed
NOTE: build 200809251855: completed

Mabe i should invest time in making a bb file for the current trunk of
mplayer and so i would be able to test the patch and send it upstream(to
mplayer) but i don't know if i will have the time because i just passed
the written and oral part of an exam and so i've a project to do in order
to pass the exam





More information about the community mailing list