<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Bryan Moore wrote:
<blockquote
 cite="mid:BFB494C8E2696649AD6DE7138283EBFC0135C97C@agserv02.airgain.lan"
 type="cite">
  <meta http-equiv="Content-Type" content="text/html; ">
  <meta name="Generator" content="Microsoft Word 11 (filtered medium)">
  <style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Batang;
        panose-1:2 3 6 0 0 1 1 1 1 1;}
@font-face
        {font-family:"\@Batang";}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
  </style>
  <div class="Section1">
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;">See three “FIX” items
below<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;">[ Re-submitting because
it didn’t show up in the
digest as I wasn’t yet in vlc-devel. ]<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">ref:  "<a
 moz-do-not-send="true"
 href="http://forum.videolan.org/viewtopic.php?f=7&t=57973&p=193157#p193157"
 title="blocked::http://forum.videolan.org/viewtopic.php?f=7&t=57973&p=193157#p193157">http://forum.videolan.org/viewtopic.php?f=7&t=57973&p=193157#p193157</a>"<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">Based on
information that was explained in detail in
the above post, we are proposing 3 sets of patches to vlc to correct
problems
that reduce video playback quality, particularly for streaming H.264
video, and
also video playback via X11 and XVideo (in general).<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">As stated in the
subject line, these patches were
tested on 0.9.8a and appear to apply as well to the latest 'git'
repository
fetch.<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">NOTE:  code
changes surrounded by comments,
'Airgain begin' and 'Airgain end'<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">FIX #1: frame
buffer size<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">modules/demux/live555.cpp
file, function
'SessionsSetup', assignments to 'tk->' members: use 'i_buffer' in
lieu of
hard-coded <o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">65536 for initial
buffer size.<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  // Airgain
begin - increase video buffer to
'i_buffer' bytes (see above)<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  //
tk->i_buffer = 65536;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  //
tk->p_buffer = (uint8_t *)malloc( 65536
);<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  tk->i_buffer
= i_buffer;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  tk->p_buffer
= (uint8_t *)malloc( i_buffer
);<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  // Airgain end<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">FIX #2: correct
I-frame timing<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">file
include/vlc_block.h, function
'block_ChainExtract'<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">static size_t
block_ChainExtract( block_t *p_list,
void *p_data, size_t i_max )<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">{<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   size_t i_total
= 0;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   uint8_t *p =
(uint8_t*)p_data;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   // Airgain
begin<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   block_t
*p_list0 = p_list;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   // Airgain end<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   while( p_list
&& i_max )<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   {<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     size_t
i_copy = __MIN(
i_max, p_list->i_buffer );<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     memcpy( p,
p_list->p_buffer, i_copy );<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     i_max -=
i_copy;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     i_total +=
i_copy;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     p += i_copy;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     // Airgain
begin<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">    
if(!p_list0->i_dts
&& !p_list0->i_pts)<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     {<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">      
p_list0->i_dts = p_list->i_dts;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">      
p_list0->i_pts = p_list->i_pts;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     }<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     // Airgain
end<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     p_list =
p_list->p_next;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   }<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   return i_total;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">}<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">file
modules/packetizer/h264.c, function
'ParseNALBlock', near the end<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   /* Append the
block */<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   if( p_frag )<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">    
block_ChainAppend(
&p_sys->p_frame, p_frag );<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   *pb_used_ts =
false;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   if(
p_sys->i_frame_dts < 0
&& p_sys->i_frame_pts < 0 )<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   {<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     // Airgain
begin - if B
frame or i_frag_pts is zero, do NOT assign frame [pd]ts !<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">    
if(i_frag_pts &&
p_sys->slice.i_frame_type != 8)<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     {<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     // Airgain
end<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">    
p_sys->i_frame_dts =
i_frag_dts;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">    
p_sys->i_frame_pts =
i_frag_pts;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     *pb_used_ts
= true;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     // Airgain
begin<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     }<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     // Airgain
end<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   }<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   return p_pic;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">}<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">file
modules/packetizer/h264.c, function
'OutputPicture', also near the end<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   else<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   {<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">     p_pic =
block_ChainGather(
p_sys->p_frame );<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   }<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   // Airgain
begin - do not assign
i_[pd]ts from frame [pd]ts unless mine are <= 0<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  
if(p_pic->i_dts <= 0 &&
p_pic->i_pts <= 0)<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   {<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   // Airgain end<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  
p_pic->i_dts =
p_sys->i_frame_dts;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  
p_pic->i_pts =
p_sys->i_frame_pts;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   // Airgain
begin<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   }<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   // Airgain end<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  
p_pic->i_length = 0; /* FIXME */<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  
p_pic->i_flags |=
p_sys->slice.i_frame_type;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  
p_sys->slice.i_frame_type = 0;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  
p_sys->p_frame = NULL;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  
p_sys->i_frame_dts = -1;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  
p_sys->i_frame_pts = -1;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  
p_sys->b_slice = false;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   return p_pic;<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">}<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">FIX #3:  (X11
only) - using XFlush + usleep to
send commands to XServer and thread-switch _before_ XSync<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">file
modules/video_output/x11/xcommon.c, function
'DisplayVideo', near the end<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   }<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   // Airgain
begin - XFlush to send
commands, usleep to force context switch.<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   // This is
likely to help client/server
interaction<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   XFlush(
p_vout->p_sys->p_display
); // force commands to be sent<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   usleep(500);
// then switch contexts
before waiting<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   // Airgain end<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   /* Make sure
the command is sent now -
do NOT use XFlush !*/<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">   XSync(
p_vout->p_sys->p_display,
False );<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">  
vlc_mutex_unlock(
&p_vout->p_sys->lock );<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Courier New" size="2"><span
 style="font-size: 10pt; font-family: "Courier New";">}<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;">Regards,</span></font><o:p></o:p></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;">Bryan M for Bob F</span></font><o:p></o:p></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;"><a moz-do-not-send="true"
 href="http://www.airgain.com/">http://www.Airgain.com</a><o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Times New Roman" size="3"><span
 style="font-size: 12pt;"><o:p> </o:p></span></font></p>
  <p class="MsoNormal"><st1:Street w:st="on"><st1:address
 style="background-position: left bottom; background-image: url(res://ietag.dll/#34/#1001); background-repeat: repeat-x;"
 tabindex="0" w:st="on"><font face="Times New Roman" size="3"><span
 style="font-size: 12pt;"><o:p> </o:p></span></font></st1:address></st1:Street></p>
  </div>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
vlc-devel mailing list
To unsubscribe or modify your subscription options:
<a class="moz-txt-link-freetext" href="http://mailman.videolan.org/listinfo/vlc-devel">http://mailman.videolan.org/listinfo/vlc-devel</a>
  </pre>
</blockquote>
<br>
Have you tested? will not break any other rtsp live555 stream e.g
mpeg-2ts?<br>
</body>
</html>