[vlc-commits] codec: cc: add raw payload support

Francois Cartegnie git at videolan.org
Thu May 18 12:34:49 CEST 2017


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Wed May 17 20:33:47 2017 +0200| [23b152441e012debe1f36c763db1ae5950da3b10] | committer: Francois Cartegnie

codec: cc: add raw payload support

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=23b152441e012debe1f36c763db1ae5950da3b10
---

 modules/codec/cc.h | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/modules/codec/cc.h b/modules/codec/cc.h
index c221dacefd..7a76f2a734 100644
--- a/modules/codec/cc.h
+++ b/modules/codec/cc.h
@@ -33,6 +33,7 @@
 enum cc_payload_type_e
 {
     CC_PAYLOAD_NONE,
+    CC_PAYLOAD_RAW,
     CC_PAYLOAD_GA94,
     CC_PAYLOAD_DVD,
     CC_PAYLOAD_REPLAYTV,
@@ -106,7 +107,19 @@ static inline void cc_Extract( cc_data_t *c, enum cc_payload_type_e i_payload_ty
     c->i_payload_type        = i_payload_type;
     c->i_payload_other_count = 0;
 
-    if( i_payload_type == CC_PAYLOAD_GA94 )
+    if( i_payload_type == CC_PAYLOAD_RAW )
+    {
+        for( int i = 0; i + 2 < i_src; i += 3 )
+        {
+            if( c->i_data + 3 > CC_MAX_DATA_SIZE )
+                break;
+
+            const uint8_t *cc = &p_src[i];
+            cc_AppendData( c, cc[0], &cc[1] );
+        }
+        c->b_reorder = true;
+    }
+    else if( i_payload_type == CC_PAYLOAD_GA94 )
     {
         /* cc_data()
          *          u1 reserved(1)



More information about the vlc-commits mailing list