[mythtv-commits] Ticket #12986: Distorted video when recording (but audio is fine)

MythTV noreply at mythtv.org
Wed Feb 1 05:24:01 UTC 2017


#12986: Distorted video when recording (but audio is fine)
----------------------------------+---------------------------
 Reporter:  WilliamDeRieux@…      |          Owner:  jyavenard
     Type:  Bug Report - General  |         Status:  new
 Priority:  critical              |      Milestone:  0.28.1
Component:  MythTV - Recording    |        Version:  0.28.0
 Severity:  high                  |     Resolution:
 Keywords:                        |  Ticket locked:  0
----------------------------------+---------------------------

Comment (by WilliamDeRieux@…):

 Also commit:
 https://github.com/MythTV/mythtv/commit/db5c40cfc14dcca456446fe059b01fe90211dd60

 states:

 {{{
 Create pitch/strides that are a multiple of 32 bytes
 Allows all lines in a frame to be 16-bytes aligned
 }}}

 I really don't understand how a value of 64 was determined...

 {{{
 mythframe.h:
 ------------------------
 static inline void init(VideoFrame *vf, VideoFrameType _codec,
                         unsigned char *_buf, int _width, int _height, int
 _size,
                         const int *p = 0,
                         const int *o = 0,
                         float _aspect = -1.0f, double _rate = -1.0f,
                         int _aligned = 64) MUNUSED;

 static inline uint buffersize(VideoFrameType type, int width, int height,
                               int _aligned = 64)

 videobuffers.h
 ------------------------
   public:
     YUVInfo(uint w, uint h, uint size, const int *p, const int *o,
             int aligned = 64);
 }}}

 I would think that maximum alignment would be 32 (since using a value
 greater than 32 causes the issue)

 Both of these will work (and the distorted video when recording and/or
 watching live tv no longer occurs):

 {{{
 mythframe.h:
 ------------------------
 static inline void init(VideoFrame *vf, VideoFrameType _codec,
                         unsigned char *_buf, int _width, int _height, int
 _size,
                         const int *p = 0,
                         const int *o = 0,
                         float _aspect = -1.0f, double _rate = -1.0f,
                         int _aligned = 0) MUNUSED;

 static inline uint buffersize(VideoFrameType type, int width, int height,
                               int _aligned = 16)

 videobuffers.h
 ------------------------
   public:
     YUVInfo(uint w, uint h, uint size, const int *p, const int *o,
             int aligned = 0);
 }}}

 {{{
 mythframe.h:
 ------------------------
 static inline void init(VideoFrame *vf, VideoFrameType _codec,
                         unsigned char *_buf, int _width, int _height, int
 _size,
                         const int *p = 0,
                         const int *o = 0,
                         float _aspect = -1.0f, double _rate = -1.0f,
                         int _aligned = 32) MUNUSED;

 static inline uint buffersize(VideoFrameType type, int width, int height,
                               int _aligned = 32)

 videobuffers.h
 ------------------------
   public:
     YUVInfo(uint w, uint h, uint size, const int *p, const int *o,
             int aligned = 32);
 }}}

--
Ticket URL: <https://code.mythtv.org/trac/ticket/12986#comment:3>
MythTV <http://www.mythtv.org>
MythTV Media Center


More information about the mythtv-commits mailing list