The patch number 8634 was added via Hans Verkuil <[EMAIL PROTECTED]>
to http://linuxtv.org/hg/v4l-dvb master development tree.

Kernel patches in this development tree may be modified to be backward
compatible with older kernels. Compatibility modifications will be
removed before inclusion into the mainstream Kernel

If anyone has any objections, please let us know by sending a message to:
        [EMAIL PROTECTED]

------

From: Janne Grunau  <[EMAIL PROTECTED]>
v4l2: extend MPEG Encoding API with AVC and AAC


Adds Advanced Audio Coding (AAC) and MPEG-4 Advanced Video Coding
(AVC/H.264) as audio/video codecs to the extended controls API.
Updates cx2341x driver to the new values.

Priority: normal

Signed-off-by: Janne Grunau <[EMAIL PROTECTED]>
Signed-off-by: Hans Verkuil <[EMAIL PROTECTED]>


---

 linux/drivers/media/video/cx2341x.c     |    5 ++++-
 linux/drivers/media/video/v4l2-common.c |   14 ++++++++------
 linux/include/linux/videodev2.h         |    6 ++++--
 3 files changed, 16 insertions(+), 9 deletions(-)

diff -r 82cd672b0fb2 -r 7853c6099651 linux/drivers/media/video/cx2341x.c
--- a/linux/drivers/media/video/cx2341x.c       Thu Aug 07 18:26:25 2008 +0200
+++ b/linux/drivers/media/video/cx2341x.c       Fri Aug 08 12:21:00 2008 +0200
@@ -509,7 +509,10 @@ int cx2341x_ctrl_query(const struct cx23
                /* this setting is read-only for the cx2341x since the
                   V4L2_CID_MPEG_STREAM_TYPE really determines the
                   MPEG-1/2 setting */
-               err = v4l2_ctrl_query_fill_std(qctrl);
+               err = v4l2_ctrl_query_fill(qctrl,
+                                          V4L2_MPEG_VIDEO_ENCODING_MPEG_1,
+                                          V4L2_MPEG_VIDEO_ENCODING_MPEG_2, 1,
+                                          V4L2_MPEG_VIDEO_ENCODING_MPEG_2);
                if (err == 0)
                        qctrl->flags |= V4L2_CTRL_FLAG_READ_ONLY;
                return err;
diff -r 82cd672b0fb2 -r 7853c6099651 linux/drivers/media/video/v4l2-common.c
--- a/linux/drivers/media/video/v4l2-common.c   Thu Aug 07 18:26:25 2008 +0200
+++ b/linux/drivers/media/video/v4l2-common.c   Fri Aug 08 12:21:00 2008 +0200
@@ -188,9 +188,10 @@ const char **v4l2_ctrl_get_menu(u32 id)
                NULL
        };
        static const char *mpeg_audio_encoding[] = {
-               "Layer I",
-               "Layer II",
-               "Layer III",
+               "MPEG-1 Layer I",
+               "MPEG-1 Layer II",
+               "MPEG-1 Layer III",
+               "MPEG-4 AAC",
                NULL
        };
        static const char *mpeg_audio_l1_bitrate[] = {
@@ -272,6 +273,7 @@ const char **v4l2_ctrl_get_menu(u32 id)
        static const char *mpeg_video_encoding[] = {
                "MPEG-1",
                "MPEG-2",
+               "MPEG-4 AVC",
                NULL
        };
        static const char *mpeg_video_aspect[] = {
@@ -359,7 +361,7 @@ int v4l2_ctrl_query_fill(struct v4l2_que
        /* MPEG controls */
        case V4L2_CID_MPEG_CLASS:               name = "MPEG Encoder Controls"; 
break;
        case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ: name = "Audio Sampling 
Frequency"; break;
-       case V4L2_CID_MPEG_AUDIO_ENCODING:      name = "Audio Encoding Layer"; 
break;
+       case V4L2_CID_MPEG_AUDIO_ENCODING:      name = "Audio Encoding"; break;
        case V4L2_CID_MPEG_AUDIO_L1_BITRATE:    name = "Audio Layer I Bitrate"; 
break;
        case V4L2_CID_MPEG_AUDIO_L2_BITRATE:    name = "Audio Layer II 
Bitrate"; break;
        case V4L2_CID_MPEG_AUDIO_L3_BITRATE:    name = "Audio Layer III 
Bitrate"; break;
@@ -494,7 +496,7 @@ int v4l2_ctrl_query_fill_std(struct v4l2
        case V4L2_CID_MPEG_AUDIO_ENCODING:
                return v4l2_ctrl_query_fill(qctrl,
                                V4L2_MPEG_AUDIO_ENCODING_LAYER_1,
-                               V4L2_MPEG_AUDIO_ENCODING_LAYER_3, 1,
+                               V4L2_MPEG_AUDIO_ENCODING_AAC, 1,
                                V4L2_MPEG_AUDIO_ENCODING_LAYER_2);
        case V4L2_CID_MPEG_AUDIO_L1_BITRATE:
                return v4l2_ctrl_query_fill(qctrl,
@@ -536,7 +538,7 @@ int v4l2_ctrl_query_fill_std(struct v4l2
        case V4L2_CID_MPEG_VIDEO_ENCODING:
                return v4l2_ctrl_query_fill(qctrl,
                                V4L2_MPEG_VIDEO_ENCODING_MPEG_1,
-                               V4L2_MPEG_VIDEO_ENCODING_MPEG_2, 1,
+                               V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC, 1,
                                V4L2_MPEG_VIDEO_ENCODING_MPEG_2);
        case V4L2_CID_MPEG_VIDEO_ASPECT:
                return v4l2_ctrl_query_fill(qctrl,
diff -r 82cd672b0fb2 -r 7853c6099651 linux/include/linux/videodev2.h
--- a/linux/include/linux/videodev2.h   Thu Aug 07 18:26:25 2008 +0200
+++ b/linux/include/linux/videodev2.h   Fri Aug 08 12:21:00 2008 +0200
@@ -908,6 +908,7 @@ enum v4l2_mpeg_audio_encoding {
        V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0,
        V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1,
        V4L2_MPEG_AUDIO_ENCODING_LAYER_3 = 2,
+       V4L2_MPEG_AUDIO_ENCODING_AAC     = 3,
 };
 #define V4L2_CID_MPEG_AUDIO_L1_BITRATE                 (V4L2_CID_MPEG_BASE+102)
 enum v4l2_mpeg_audio_l1_bitrate {
@@ -990,8 +991,9 @@ enum v4l2_mpeg_audio_crc {
 /*  MPEG video */
 #define V4L2_CID_MPEG_VIDEO_ENCODING           (V4L2_CID_MPEG_BASE+200)
 enum v4l2_mpeg_video_encoding {
-       V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0,
-       V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1,
+       V4L2_MPEG_VIDEO_ENCODING_MPEG_1     = 0,
+       V4L2_MPEG_VIDEO_ENCODING_MPEG_2     = 1,
+       V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2,
 };
 #define V4L2_CID_MPEG_VIDEO_ASPECT             (V4L2_CID_MPEG_BASE+201)
 enum v4l2_mpeg_video_aspect {


---

Patch is available at: 
http://linuxtv.org/hg/v4l-dvb/rev/7853c609965133fd0dd5fbb538e1ac49a913a43f

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to